From 9accd008054dd04e71ca823b120ee1f9fb95123c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Mon, 10 Mar 2014 15:03:23 +0000
Subject: [PATCH] - Improved (slightly) use of Common-CLI + finished clitest.sh
 for TransformQuery

---
 .../inrialpes/exmo/align/cli/EvalAlign.java   | 15 ++++--------
 .../exmo/align/cli/TransformQuery.java        |  2 +-
 test/clitest.sh                               | 23 +++++++++++++++----
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/cli/EvalAlign.java b/src/fr/inrialpes/exmo/align/cli/EvalAlign.java
index 49b25402..7d14b80f 100644
--- a/src/fr/inrialpes/exmo/align/cli/EvalAlign.java
+++ b/src/fr/inrialpes/exmo/align/cli/EvalAlign.java
@@ -85,7 +85,7 @@ public class EvalAlign extends CommonCLI {
 
     public EvalAlign() {
 	super();
-	options.addOption( OptionBuilder.withLongOpt( "impl" ).hasArg().withDescription( "Use the given CLASS for evaluator" ).withArgName("CLASS").create( 'i' ) );
+	options.addOption( OptionBuilder.withLongOpt( "impl" ).hasArg().withType(Class.class).withDescription( "Use the given CLASS for evaluator" ).withArgName("CLASS").create( 'i' ) );
     }
 
     public static void main(String[] args) {
@@ -97,9 +97,9 @@ public class EvalAlign extends CommonCLI {
 	Evaluator eval = null;
 	String alignName1 = null;
 	String alignName2 = null;
-	String classname = null;
 	PrintWriter writer = null;
 	CommandLine line = null;
+	Class<?> evaluatorClass = null;
 
 	try { 
 	    line = parseCommandLine( args );
@@ -109,7 +109,7 @@ public class EvalAlign extends CommonCLI {
 	    usage();
 	    System.exit(-1);
 	}
-	if ( line.hasOption( 'i' ) ) classname = line.getOptionValue( 'i' );
+	if ( line.hasOption( 'i' ) ) evaluatorClass = (Class<?>) line.getOptionObject( 'i' );
 	String[] argList = line.getArgs();
 	if ( argList.length > 1 ) {
 	    alignName1 = argList[0];
@@ -138,16 +138,13 @@ public class EvalAlign extends CommonCLI {
 	boolean totry = true; // 2013: This should not be necessary anymore
 	while ( totry ) {
 	    totry = false;
-	    if ( classname != null ) {
+	    if ( evaluatorClass != null ) {
 		// Create evaluator object
 		try {
 		    Class[] cparams = { Alignment.class, Alignment.class };
-		    Class<?> evaluatorClass = Class.forName(classname);
 		    Constructor evaluatorConstructor = evaluatorClass.getConstructor(cparams);
 		    Object [] mparams = {(Object)align1, (Object)align2};
 		    eval = (Evaluator)evaluatorConstructor.newInstance(mparams);
-		} catch (ClassNotFoundException ex) {
-		    logger.debug( "IGNORED Exception", ex );
 		} catch (InstantiationException ex) {
 		    logger.debug( "IGNORED Exception", ex );
 		} catch (InvocationTargetException ex) {
@@ -155,7 +152,7 @@ public class EvalAlign extends CommonCLI {
 		} catch (IllegalAccessException ex) {
 		    logger.debug( "IGNORED Exception", ex );
 		} catch (NoSuchMethodException ex) {
-		    logger.error( "No such method: {}", classname );
+		    logger.error( "No such method: {}", evaluatorClass );
 		    usage();
 		    throw( ex );
 		}
@@ -182,10 +179,8 @@ public class EvalAlign extends CommonCLI {
 	try {
 	    OutputStream stream;
 	    if ( outputfilename == null ) {
-		//writer = (PrintStream) System.out;
 		stream = System.out;
 	    } else {
-		//writer = new PrintStream(new FileOutputStream(filename));
 		stream = new FileOutputStream( outputfilename );
 	    }
 	    writer = new PrintWriter (
diff --git a/src/fr/inrialpes/exmo/align/cli/TransformQuery.java b/src/fr/inrialpes/exmo/align/cli/TransformQuery.java
index a90b0d37..0bb884f9 100644
--- a/src/fr/inrialpes/exmo/align/cli/TransformQuery.java
+++ b/src/fr/inrialpes/exmo/align/cli/TransformQuery.java
@@ -62,7 +62,7 @@ public class TransformQuery extends CommonCLI {
 	super();
 	options.addOption( "e", "echo", false, "Echo the input query" );
 	//options.addOption( OptionBuilder.withLongOpt( "process" ).hasArg().withDescription( "Process the query against a particular CLASS" ).withArgName("CLASS").create( 'p' ) );
-	options.addOption( OptionBuilder.withLongOpt( "query" ).hasArg().withDescription( "get the query from the corresponding FILE" ).withArgName("FILE").create( 'q' ) );
+	options.addOption( OptionBuilder.withLongOpt( "query" ).hasArg().withType(File.class).withDescription( "get the query from the corresponding FILE" ).withArgName("FILE").create( 'q' ) );
 	options.addOption( OptionBuilder.withLongOpt( "alignment" ).hasArg().withDescription( "use the alignment identified by URI" ).withArgName("URI").create( 'a' ) );
     }
 
diff --git a/test/clitest.sh b/test/clitest.sh
index 4c760b9b..02a8e943 100644
--- a/test/clitest.sh
+++ b/test/clitest.sh
@@ -19,6 +19,8 @@ mkdir -p $RESDIR
 # GOTO
 if false; then
 echo this is for avoiding some parts
+#GOTO
+fi
 
 echo "\t\tTHE -z OPTIONS RELY ON LOGBACK BEING PROPERLY DEFINED"
 echo "\t\t *** Testing Procalign ***"
@@ -937,8 +939,6 @@ echo "\t(same as Procalign)"
 echo "\t-P,--params <FILE>"
 echo "\t(same as Procalign)"
 
-#GOTO
-fi
 
 ########################################################################
 # TransformQuery
@@ -963,9 +963,22 @@ java -cp $CP fr.inrialpes.exmo.align.cli.TransformQuery --help &> $RESDIR/queryt
 if [ -s  $RESDIR/queryt-h.txt ]; then diff $RESDIR/queryt-h.txt $RESDIR/queryt-help.txt; else echo error with $RESDIR/queryt-h.txt; fi
 
 #-------------------
-echo "\tno-op (not testable because wait for input)"
-#java -cp $CP fr.inrialpes.exmo.align.cli.TransformQuery &> $RESDIR/queryt-noop.rdf
-#if [ ! -s  $RESDIR/queryt-noop.xml ]; then echo error with TRANSQ-NOOP; fi
+echo "\tno-op"
+java -cp $CP fr.inrialpes.exmo.align.cli.TransformQuery &> $RESDIR/queryt-noop.rdf <<EOF
+PREFIX dt:   <http://example.org/datatype#> .
+PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+PREFIX xmls:  <http://www.w3.org/2001/XMLSchema#> .
+PREFIX foaf:  <http://xmlns.com/foaf/0.1/> .
+PREFIX onto1: <http://www.example.org/ontology1#> .
+
+SELECT *
+FROM XXX
+WHERE {
+    ?X rdf:type <http://www.example.org/ontology1#reviewedarticle>.
+    ?X rdf:type onto1:reviewedarticle .
+  }
+EOF
+if [ ! -s  $RESDIR/queryt-noop.rdf ]; then echo error with TRANSQ-NOOP; fi
 
 #-------------------
 echo "\t<QUERY>"
-- 
GitLab