Handle --syntax
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c6e1970e Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c6e1970e Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c6e1970e Branch: refs/heads/add-contract-tests Commit: c6e1970e8b7c89bdabb9615cfc23598be3968c86 Parents: 3656b68 Author: Andy Seaborne <[email protected]> Authored: Fri May 1 15:10:09 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Fri May 1 15:18:37 2015 +0100 ---------------------------------------------------------------------- jena-arq/src/main/java/arq/uparse.java | 51 ++++++++++++++++++----------- 1 file changed, 32 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/c6e1970e/jena-arq/src/main/java/arq/uparse.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/uparse.java b/jena-arq/src/main/java/arq/uparse.java index 12b7108..2e930ff 100644 --- a/jena-arq/src/main/java/arq/uparse.java +++ b/jena-arq/src/main/java/arq/uparse.java @@ -39,7 +39,7 @@ public class uparse extends CmdARQ protected static final ArgDecl syntaxArg = new ArgDecl(ArgDecl.HasValue, "syntax", "syn") ; protected static final ArgDecl argDeclPrint = new ArgDecl(ArgDecl.HasValue, "print") ; List<String> requestFiles = null ; - protected Syntax updateSyntax = Syntax.defaultUpdateSyntax ; + protected Syntax updateSyntax = null ; private boolean printUpdate = false ; private boolean printNone = false ; @@ -62,21 +62,24 @@ public class uparse extends CmdARQ if ( super.cmdStrictMode ) updateSyntax = Syntax.syntaxSPARQL_11 ; + // Set syntax + if ( super.contains(syntaxArg) ) { + // short name + String s = super.getValue(syntaxArg) ; + Syntax syn = Syntax.lookup(s) ; + if ( syn == null ) + super.cmdError("Unrecognized syntax: " + s) ; + updateSyntax = syn ; + } + for ( String arg : getValues( argDeclPrint ) ) { if ( arg.equalsIgnoreCase( "query" ) ) - { printUpdate = true; - } else if ( arg.equalsIgnoreCase( "none" ) ) - { printNone = true; - } else - { - throw new CmdException( - "Not a recognized print form: " + arg + " : Choices are: update, none" ); - } + throw new CmdException("Not a recognized print form: " + arg + " : Choices are: update, none" ); } if ( !printUpdate && ! printNone ) @@ -95,17 +98,27 @@ public class uparse extends CmdARQ { for ( String filename : requestFiles ) { + Syntax syntax = updateSyntax ; + if ( syntax == null ) + syntax = Syntax.guessUpdateFileSyntax(filename) ; String x = oneFile( filename ); if ( x != null ) - { - execOne( x ); - } + execOne( x, syntax ); } - for ( String x : super.positionals ) - { - x = indirect( x ); - execOne( x ); + + + + for ( String x : super.positionals ) { + Syntax syntax = updateSyntax ; + if ( matchesIndirect(x) ) { + if ( syntax == null ) + syntax = Syntax.guessUpdateFileSyntax(x) ; + x = indirect( x ); + } + if ( syntax == null ) + syntax = Syntax.defaultUpdateSyntax ; + execOne( x, syntax ); } } @@ -123,11 +136,11 @@ public class uparse extends CmdARQ } } - private void execOne(String updateString) + private void execOne(String updateString, Syntax syntax) { UpdateRequest req ; try { - req = UpdateFactory.create(updateString, updateSyntax) ; + req = UpdateFactory.create(updateString, syntax) ; } catch (QueryParseException ex) { System.err.print("Parse error: ") ; @@ -147,7 +160,7 @@ public class uparse extends CmdARQ String updateString2 = w.asString() ; UpdateRequest req2 = null ; try { - req2 = UpdateFactory.create(updateString2, updateSyntax) ; + req2 = UpdateFactory.create(updateString2, syntax) ; } catch (QueryParseException ex) { System.err.println("Can not reparse update after serialization") ;
