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