Author: andy
Date: Sun Sep 22 09:30:15 2013
New Revision: 1525334

URL: http://svn.apache.org/r1525334
Log:
JENA-537
Provide a default query syntax, and apply it to a command line string argument.
Syntax determination is:
     *  Explicitly given --syntax</li>
     *  File extension
     *  Command default
     *  System default

Modified:
    jena/trunk/jena-arq/src/main/java/arq/arq.java
    jena/trunk/jena-arq/src/main/java/arq/cmdline/ModQueryIn.java
    jena/trunk/jena-arq/src/main/java/arq/qparse.java
    jena/trunk/jena-arq/src/main/java/arq/query.java
    jena/trunk/jena-arq/src/main/java/arq/rsparql.java
    jena/trunk/jena-arq/src/main/java/arq/sparql.java

Modified: jena/trunk/jena-arq/src/main/java/arq/arq.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/arq.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/arq.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/arq.java Sun Sep 22 09:30:15 2013
@@ -18,19 +18,20 @@
 
 package arq;
 
-import java.util.ArrayList ;
-import java.util.List ;
+import com.hp.hpl.jena.query.Syntax ;
 
 /** A program to execute queries from the command line in ARQ mode. */
 
-public class arq
+public class arq extends query
 {
-    public static void main(String... argv)
-    {
-        List<String> a = new ArrayList<String>() ;
-        for ( int i = 0 ; i < argv.length ; i++ ) a.add(argv[i]) ;
-        a.add(0, "--syntax=arq") ;
-        argv = a.toArray(argv) ;
-        query.main(argv) ;
+    public static void main (String... argv) {
+        new arq(argv).mainRun() ;
     }
+    
+    public arq(String[] argv) {
+        super(argv) ; 
+    }
+
+    @Override
+    protected Syntax getDefaultSyntax()     { return Syntax.syntaxARQ ; } 
  }

Modified: jena/trunk/jena-arq/src/main/java/arq/cmdline/ModQueryIn.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/cmdline/ModQueryIn.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/cmdline/ModQueryIn.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/cmdline/ModQueryIn.java Sun Sep 22 
09:30:15 2013
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package arq.cmdline;
+package arq.cmdline ;
 
 import java.io.IOException ;
 
@@ -32,154 +32,125 @@ import com.hp.hpl.jena.shared.JenaExcept
 import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
 import com.hp.hpl.jena.util.FileUtils ;
 
-public class ModQueryIn implements ArgModuleGeneral
-{
-    protected final ArgDecl queryFileDecl = new ArgDecl(ArgDecl.HasValue, 
"query", "file") ;
+public class ModQueryIn implements ArgModuleGeneral {
+    protected final ArgDecl queryFileDecl   = new ArgDecl(ArgDecl.HasValue, 
"query", "file") ;
     protected final ArgDecl querySyntaxDecl = new ArgDecl(ArgDecl.HasValue, 
"syntax", "syn", "in") ;
-    protected final ArgDecl queryBaseDecl = new ArgDecl(ArgDecl.HasValue, 
"base") ;
+    protected final ArgDecl queryBaseDecl   = new ArgDecl(ArgDecl.HasValue, 
"base") ;
+
+    private Syntax          defaultQuerySyntax     = Syntax.syntaxARQ ;
+    private Syntax          querySyntax     = null ;
+    private String          queryFilename   = null ;
+    private String          queryString     = null ;
+    private Query           query           = null ;
+    private String          baseURI         = null ;
+
+    public ModQueryIn(Syntax defaultSyntax) {
+        defaultQuerySyntax = defaultSyntax ;
+        querySyntax = defaultSyntax ;
+    }
 
-    private Syntax querySyntax = Syntax.syntaxARQ ;
-    private String queryFilename   = null ;
-    private String queryString = null ;
-    private Query query = null ;
-    private String baseURI = null ;
-    
-    
     @Override
-    public void registerWith(CmdGeneral cmdLine)
-    {
+    public void registerWith(CmdGeneral cmdLine) {
         cmdLine.getUsage().startCategory("Query") ;
-        cmdLine.add(queryFileDecl,
-                    "--query, --file",
-                    "File containing a query") ;
-        cmdLine.add(querySyntaxDecl,
-                    "--syntax, --in",
-                    "Syntax of the query") ;
-        cmdLine.add(queryBaseDecl,
-                    "--base",
-                    "Base URI for the query") ;
+        cmdLine.add(queryFileDecl,   "--query, --file",  "File containing a 
query") ;
+        cmdLine.add(querySyntaxDecl, "--syntax, --in",   "Syntax of the 
query") ;
+        cmdLine.add(queryBaseDecl,   "--base",           "Base URI for the 
query") ;
     }
 
     @Override
-    public void processArgs(CmdArgModule cmdline) throws 
IllegalArgumentException
-    {
+    public void processArgs(CmdArgModule cmdline) throws 
IllegalArgumentException {
         if ( cmdline.contains(queryBaseDecl) )
-            baseURI = cmdline.getValue(queryBaseDecl) ; 
-        
-        if ( cmdline.contains(queryFileDecl) )
-        {
+            baseURI = cmdline.getValue(queryBaseDecl) ;
+
+        if ( cmdline.contains(queryFileDecl) ) {
             queryFilename = cmdline.getValue(queryFileDecl) ;
-            querySyntax = Syntax.guessFileSyntax(queryFilename) ;
+            querySyntax = Syntax.guessFileSyntax(queryFilename, 
defaultQuerySyntax) ;
         }
-        
+
         if ( cmdline.getNumPositional() == 0 && queryFilename == null )
             cmdline.cmdError("No query string or query file") ;
 
         if ( cmdline.getNumPositional() > 1 )
             cmdline.cmdError("Only one query string allowed") ;
-        
+
         if ( cmdline.getNumPositional() == 1 && queryFilename != null )
             cmdline.cmdError("Either query string or query file - not both") ;
 
-        // Guess syntax
-        if ( queryFilename == null )
-        {
+        if ( queryFilename == null ) {
             // One positional argument.
             String qs = cmdline.getPositionalArg(0) ;
-            if ( cmdline.matchesIndirect(qs) ) 
-                querySyntax = Syntax.guessFileSyntax(qs) ;
-            
+            if ( cmdline.matchesIndirect(qs) )
+                querySyntax = Syntax.guessFileSyntax(qs, defaultQuerySyntax) ;
+
             queryString = cmdline.indirect(qs) ;
         }
-        
+
         // Set syntax
-        if ( cmdline.contains(querySyntaxDecl) )
-        {
+        if ( cmdline.contains(querySyntaxDecl) ) {
             // short name
             String s = cmdline.getValue(querySyntaxDecl) ;
             Syntax syn = Syntax.lookup(s) ;
             if ( syn == null )
-                cmdline.cmdError("Unrecognized syntax: "+s) ;
-            querySyntax = syn ; 
+                cmdline.cmdError("Unrecognized syntax: " + s) ;
+            querySyntax = syn ;
         }
     }
-    
-    public Syntax getQuerySyntax()
-    {
+
+    public Syntax getQuerySyntax() {
         return querySyntax ;
     }
-    
-    public Query getQuery()
-    {
+
+    public Query getQuery() {
         if ( query != null )
             return query ;
-        
-        if ( queryFilename != null && queryString != null )
-        {
-            System.err.println("Both query string and query file name given" ) 
;
+
+        if ( queryFilename != null && queryString != null ) {
+            System.err.println("Both query string and query file name given") ;
             throw new TerminationException(1) ;
         }
-        
-        if ( queryFilename == null && queryString == null )
-        {
-            System.err.println("No query string and no query file name given" 
) ;
+
+        if ( queryFilename == null && queryString == null ) {
+            System.err.println("No query string and no query file name given") 
;
             throw new TerminationException(1) ;
         }
 
-        try
-        {
-            if ( queryFilename != null )
-            {
-                if ( queryFilename.equals("-") )
-                {
+        try {
+            if ( queryFilename != null ) {
+                if ( queryFilename.equals("-") ) {
                     try {
                         // Stderr?
-                        queryString  = 
FileUtils.readWholeFileAsUTF8(System.in) ;
+                        queryString = FileUtils.readWholeFileAsUTF8(System.in) 
;
                         // And drop into next if
-                    } catch (IOException ex)
-                    {
+                    } catch (IOException ex) {
                         throw new CmdException("Error reading stdin", ex) ;
                     }
-                }
-                else
-                {
+                } else {
                     query = QueryFactory.read(queryFilename, baseURI, 
getQuerySyntax()) ;
                     return query ;
                 }
             }
-            
+
             query = QueryFactory.create(queryString, baseURI, 
getQuerySyntax()) ;
             return query ;
-        }
-        catch (ARQInternalErrorException intEx)
-        {
+        } catch (ARQInternalErrorException intEx) {
             System.err.println(intEx.getMessage()) ;
-            if ( intEx.getCause() != null )
-            {
+            if ( intEx.getCause() != null ) {
                 System.err.println("Cause:") ;
                 intEx.getCause().printStackTrace(System.err) ;
                 System.err.println() ;
             }
             intEx.printStackTrace(System.err) ;
             throw new TerminationException(99) ;
-        }
-        catch (QueryParseException parseEx)
-        {
+        } catch (QueryParseException parseEx) {
             System.err.println(parseEx.getMessage()) ;
             throw new TerminationException(2) ;
-        }
-        catch (QueryException qEx)
-        {
+        } catch (QueryException qEx) {
             System.err.println(qEx.getMessage()) ;
             throw new TerminationException(2) ;
-        }
-        catch (JenaException ex)
-        {
+        } catch (JenaException ex) {
             System.err.println(ex.getMessage()) ;
             throw new TerminationException(2) ;
-        }
-        catch (Exception ex)
-        {
+        } catch (Exception ex) {
             System.out.flush() ;
             ex.printStackTrace(System.err) ;
             throw new TerminationException(98) ;

Modified: jena/trunk/jena-arq/src/main/java/arq/qparse.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/qparse.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/qparse.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/qparse.java Sun Sep 22 09:30:15 2013
@@ -46,7 +46,7 @@ import com.hp.hpl.jena.sparql.util.Utils
 
 public class qparse extends CmdARQ
 {
-    protected ModQueryIn    modQuery        = new ModQueryIn() ;
+    protected ModQueryIn    modQuery        = new 
ModQueryIn(Syntax.syntaxSPARQL_11) ;
     protected ModQueryOut   modOutput       = new ModQueryOut() ; 
     protected ModEngine     modEngine       = new ModEngine() ;
     protected final ArgDecl argDeclPrint    = new ArgDecl(ArgDecl.HasValue, 
"print") ;

Modified: jena/trunk/jena-arq/src/main/java/arq/query.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/query.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/query.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/query.java Sun Sep 22 09:30:15 2013
@@ -53,7 +53,7 @@ public class query extends CmdARQ
     protected boolean queryOptimization = true ;
     
     protected ModTime       modTime =     new ModTime() ;
-    protected ModQueryIn    modQuery =    new ModQueryIn() ;
+    protected ModQueryIn    modQuery =    null;
     protected ModDataset    modDataset =  null ;
     protected ModResultsOut modResults =  new ModResultsOut() ;
     protected ModEngine     modEngine =   new ModEngine() ;
@@ -66,7 +66,9 @@ public class query extends CmdARQ
     public query(String[] argv)
     {
         super(argv) ;
+        modQuery = new ModQueryIn(getDefaultSyntax()) ; 
         modDataset = setModDataset() ;
+       
         super.addModule(modQuery) ;
         super.addModule(modResults) ;
         super.addModule(modDataset) ;
@@ -79,6 +81,18 @@ public class query extends CmdARQ
         super.add(argOptimize, "--optimize=", "Turn the query optimizer on or 
off (default: on)") ;
     }
 
+    /** Default syntax used when the syntax can not be determined from the 
command name or file extension
+     *  The order of determination is:
+     *  <ul>
+     *  <li>Explicitly given --syntax</li>
+     *  <li>File extension</li>
+     *  <li>Command default</li>
+     *  <li>System default</li>
+     *  </ul>
+     *  
+     */
+    protected Syntax getDefaultSyntax()     { return Syntax.defaultQuerySyntax 
; }
+
     @Override
     protected void processModulesAndArgs()
     {

Modified: jena/trunk/jena-arq/src/main/java/arq/rsparql.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/rsparql.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/rsparql.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/rsparql.java Sun Sep 22 09:30:15 2013
@@ -27,13 +27,14 @@ import arq.cmdline.ModResultsOut ;
 import com.hp.hpl.jena.query.Query ;
 import com.hp.hpl.jena.query.QueryExecution ;
 import com.hp.hpl.jena.query.QueryExecutionFactory ;
+import com.hp.hpl.jena.query.Syntax ;
 import com.hp.hpl.jena.sparql.engine.http.HttpQuery ;
 import com.hp.hpl.jena.sparql.engine.http.QueryExceptionHTTP ;
 import com.hp.hpl.jena.sparql.util.QueryExecUtils ;
 
 public class rsparql extends CmdARQ
 {
-    protected ModQueryIn    modQuery =      new ModQueryIn() ;
+    protected ModQueryIn    modQuery =      new 
ModQueryIn(Syntax.syntaxSPARQL_11) ;
     protected ModRemote     modRemote =     new ModRemote() ;
     protected ModResultsOut modResults =    new ModResultsOut() ;
 

Modified: jena/trunk/jena-arq/src/main/java/arq/sparql.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/sparql.java?rev=1525334&r1=1525333&r2=1525334&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/sparql.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/sparql.java Sun Sep 22 09:30:15 2013
@@ -18,12 +18,20 @@
 
 package arq;
 
+import com.hp.hpl.jena.query.Syntax ;
+
 /** A program to execute queries from the command line in SPARQL mode. */
 
-public class sparql
+public class sparql extends query
 {
-    public static void main (String... argv)
-    {
-        query.main(argv) ;
+    public static void main (String... argv) {
+        new sparql(argv).mainRun() ;
+    }
+    
+    public sparql(String[] argv) {
+        super(argv) ; 
     }
- }
+
+    @Override
+    protected Syntax getDefaultSyntax()     { return Syntax.syntaxSPARQL_11 ; 
} 
+}


Reply via email to