You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/08/24 10:13:12 UTC

[03/50] jena git commit: fix bugs for qparse of JENA-491

fix bugs for qparse of JENA-491

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/68254a2b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/68254a2b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/68254a2b

Branch: refs/heads/master
Commit: 68254a2be094342aec75ff6e7028af5ab36e3b61
Parents: 9920b52
Author: confidencesun <co...@gmail.com>
Authored: Wed Jul 29 11:29:51 2015 +0800
Committer: confidencesun <co...@gmail.com>
Committed: Wed Jul 29 11:29:51 2015 +0800

----------------------------------------------------------------------
 .../constructquads/ExampleConstructQuads.java   | 10 +++++++-
 .../jena/sparql/lang/arq/ARQParserBase.java     |  6 +++--
 .../jena/sparql/serializer/FmtTemplate.java     | 26 +++++++++++++++++---
 .../org/apache/jena/sparql/syntax/Template.java | 19 +++++++++++++-
 4 files changed, 54 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/68254a2b/jena-arq/src-examples/arq/examples/constructquads/ExampleConstructQuads.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/constructquads/ExampleConstructQuads.java b/jena-arq/src-examples/arq/examples/constructquads/ExampleConstructQuads.java
index ae724ec..4ef097e 100644
--- a/jena-arq/src-examples/arq/examples/constructquads/ExampleConstructQuads.java
+++ b/jena-arq/src-examples/arq/examples/constructquads/ExampleConstructQuads.java
@@ -65,6 +65,7 @@ public class ExampleConstructQuads {
 		Iterator<Quad> quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		// construct default graph 1
 		System.out.println("construct default graph 1:");
@@ -74,6 +75,7 @@ public class ExampleConstructQuads {
 		quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		// construct default graph 2
 		System.out.println("construct default graph 2:");
@@ -83,6 +85,7 @@ public class ExampleConstructQuads {
 		quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		// construct triples
 		System.out.println("construct default graph 2:");
@@ -92,6 +95,7 @@ public class ExampleConstructQuads {
 		Iterator<Triple> triples = qexec.execConstructTriples();
 		PrintUtil.printOut(triples);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		//construct dataset
 		System.out.println("construct dataset:");
@@ -101,6 +105,7 @@ public class ExampleConstructQuads {
 		Dataset d = qexec.execConstructDataset();
 		RDFDataMgr.write(System.out, d, Lang.TRIG) ;
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		//short form 1
 		System.out.println("short form 1:");
@@ -110,6 +115,7 @@ public class ExampleConstructQuads {
 		quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		//short form 2
 		System.out.println("short form 2:");
@@ -119,6 +125,7 @@ public class ExampleConstructQuads {
 		quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		//short form 3
 		System.out.println("short form 3:");
@@ -128,6 +135,7 @@ public class ExampleConstructQuads {
 		triples = qexec.execConstructTriples();
 		PrintUtil.printOut(triples);
 		qexec.close();
+		arq.qparse.main("--in", "arq", queryString);
 		
 		//short form 4
 		System.out.println("short form 4:");
@@ -137,7 +145,7 @@ public class ExampleConstructQuads {
 		quads = qexec.execConstructQuads();
 		PrintUtil.printOut(quads);
 		qexec.close();
-		
+		arq.qparse.main("--in", "arq", queryString);
 
 	}
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/68254a2b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
index 3a11805..eac508e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
@@ -93,8 +93,10 @@ class ARQParserBase
         }
         for(Node n: graphs.keySet()){
           Element el = new ElementPathBlock(graphs.get(n));
-          if(! Quad.defaultGraphIRI.equals(n) ){
-            el = new ElementNamedGraph(n, el);
+          if(! Quad.defaultGraphNodeGenerated.equals(n) ){
+        	ElementGroup e = new ElementGroup();
+        	e.addElement(el);
+            el = new ElementNamedGraph(n, e);
           }
           elg.addElement(el);
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/68254a2b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/FmtTemplate.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/FmtTemplate.java b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/FmtTemplate.java
index a1b65fd..d422d1c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/serializer/FmtTemplate.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/serializer/FmtTemplate.java
@@ -18,9 +18,10 @@
 
 package org.apache.jena.sparql.serializer;
 
-import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.sparql.syntax.Template ;
+import org.apache.jena.atlas.io.IndentedLineBuffer;
+import org.apache.jena.atlas.io.IndentedWriter;
+import org.apache.jena.sparql.syntax.Template;
+import org.apache.jena.sparql.util.FmtUtils;
 
 public class FmtTemplate extends FormatterBase
     implements FormatterTemplate 
@@ -51,6 +52,19 @@ public class FmtTemplate extends FormatterBase
     @Override
     public void format(Template template)
     {
+    	
+    	if (template.isConstructQuadTemplate()){
+            out.print("{") ;
+            out.incIndent(INDENT) ;
+            out.pad() ;
+            
+    		out.print("GRAPH");
+    		out.print(" ");
+    		out.print(FmtUtils.stringForNode(template.getGraphNode()));
+    		out.print(" ");
+    	}
+    	
+    
         out.print("{") ;
         out.incIndent(INDENT) ;
         out.pad() ;
@@ -60,6 +74,12 @@ public class FmtTemplate extends FormatterBase
         out.decIndent(INDENT) ;
         out.print("}") ;
         out.newline() ;
+        
+    	if (template.isConstructQuadTemplate()){
+            out.decIndent(INDENT) ;
+            out.print("}") ;
+            out.newline() ;
+    	}
 
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/68254a2b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/Template.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/Template.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/Template.java
index 248ce7e..eb970c1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/Template.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/Template.java
@@ -53,6 +53,17 @@ public class Template
     	this.bgp = bgp;
     	this.qp = null;
     }
+    
+    public boolean isConstructQuadTemplate(){
+    	return this.qp != null && ! this.getQuads().isEmpty();
+    }
+    
+    public Node getGraphNode() {
+    	if (!this.isConstructQuadTemplate()){
+    		return null;
+    	}
+    	return this.getQuads().get(0).getGraph();
+    }
 
 //    public void addTriple(Triple t) { quads.addTriple(t) ; }
 //    public int mark() { return quads.mark() ; }
@@ -123,9 +134,15 @@ public class Template
         hash = hashNode(quad.getSubject())   ^ hash<<1 ;
         hash = hashNode(quad.getPredicate()) ^ hash<<1 ;
         hash = hashNode(quad.getObject())    ^ hash<<1 ;
-        hash = hashNode(quad.getGraph())     ^ hash<<1 ;
+        hash = hashGraph(quad.getGraph())    ^ hash<<1 ;
         return hash ;
     }
+    
+    private static int hashGraph(Node node){
+    	if ( node == null ) return Quad.defaultGraphNodeGenerated.hashCode() ; 
+        if ( node.isBlank() ) return 59 ;
+        return node.hashCode() ;
+    }
 
     private static int hashNode(Node node)
     {