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 2016/09/12 15:29:55 UTC

[1/2] jena git commit: Add abbreviated () forms for triple and quad.

Repository: jena
Updated Branches:
  refs/heads/master 2ec0d674c -> 59e5e06c8


Add abbreviated () forms for triple and quad.

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

Branch: refs/heads/master
Commit: 7a39f8f52754f63c604110ef9d2f1a4929367c31
Parents: 2ec0d67
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Sep 11 17:21:55 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Sep 11 17:22:05 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/sparql/sse/SSE.java    | 48 ++++++++++++++++++--
 .../jena/sparql/sse/writers/WriterNode.java     | 34 ++++++++++----
 2 files changed, 69 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/7a39f8f5/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
index c9d1b3e..6de6137 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
@@ -445,14 +445,16 @@ public class SSE
         return handler.getItem() ;
     }
     
-    
-    
     // ---- To String
+    private static String strForNull = "<<null>>" ; 
+    
     public static String str(Node node) {
         return str(node, getPrefixMapString()) ;
     }
     
     public static String str(Node node, PrefixMapping pmap) {
+        if ( node == null )
+            return strForNull ;
         return string((out)->WriterNode.output(out, node, sCxt(pmap))) ;
     }
 
@@ -461,7 +463,21 @@ public class SSE
     }
 
     public static String str(Triple triple, PrefixMapping pmap) {
-        return string((out)->WriterNode.output(out, triple, sCxt(pmap))) ;
+        if ( triple == null )
+            return strForNull ;
+        return string((out)->WriterNode.outputNoTag(out, triple, sCxt(pmap))) ;
+    }
+
+    /** Plain - with (), not (triple ...) */
+    public static String strPlain(Triple triple) {
+        return strPlain(triple, getPrefixMapString()) ;
+    }
+
+    /** Plain - with (), not (triple ...) */
+    public static String strPlain(Triple triple, PrefixMapping pmap) {
+        if ( triple == null )
+            return strForNull ;
+        return string((out)->WriterNode.outputPlain(out, triple, sCxt(pmap))) ;
     }
 
     public static String str(Quad quad) {
@@ -469,7 +485,21 @@ public class SSE
     }
     
     public static String str(Quad quad, PrefixMapping pmap) {
-        return string((out)->WriterNode.output(out, quad, sCxt(pmap))) ;
+        if ( quad == null )
+            return strForNull ;
+        return string((out)->WriterNode.outputNoTag(out, quad, sCxt(pmap))) ;
+    }
+    
+    /** Plain - with (), not (quad ...) */
+    public static String strPlain(Quad quad) {
+        return strPlain(quad, getPrefixMapString()) ;
+    }
+    
+    /** Plain - with (), not (quad ...) */
+    public static String strPlain(Quad quad, PrefixMapping pmap) {
+        if ( quad == null )
+            return strForNull ;
+        return string((out)->WriterNode.outputPlain(out, quad, sCxt(pmap))) ;
     }
     
     public static String str(Graph graph) {
@@ -477,6 +507,8 @@ public class SSE
     }
     
     public static String str(Graph graph, PrefixMapping pmap) {
+        if ( graph == null )
+            return strForNull ;
         return string((out)->WriterGraph.output(out, graph, sCxt(pmap))) ;
     }
     
@@ -485,6 +517,8 @@ public class SSE
     }
     
     public static String str(DatasetGraph dsg,  PrefixMapping pmap) {
+        if ( dsg == null )
+            return strForNull ;
         return string((out)->WriterGraph.output(out, dsg, sCxt(pmap))) ;
     }
     
@@ -493,6 +527,8 @@ public class SSE
     }
     
     public static String str(Expr expr, PrefixMapping pmap) {
+        if ( expr == null )
+            return strForNull ;
         return string((out)->WriterExpr.output(out, expr, sCxt(pmap))) ;
     }
 
@@ -501,6 +537,8 @@ public class SSE
     }
     
     public static String str(BasicPattern bgp, PrefixMapping pmap) {
+        if ( bgp == null )
+            return strForNull ;
         return string((out)->WriterGraph.output(out, bgp, sCxt(pmap))) ;
     }
 
@@ -509,6 +547,8 @@ public class SSE
     }
     
     public static String str(Op op, PrefixMapping pmap) {
+        if ( op == null )
+            return strForNull ;
         return string((out)->WriterOp.output(out, op, sCxt(pmap))) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/7a39f8f5/jena-arq/src/main/java/org/apache/jena/sparql/sse/writers/WriterNode.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/writers/WriterNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/writers/WriterNode.java
index 3bcb8f5..78b99d3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/writers/WriterNode.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/writers/WriterNode.java
@@ -42,32 +42,48 @@ public class WriterNode
         WriterLib.finishOneLine(out, Tags.tagTriple) ;
     }
     
+    public static void outputNoTag(IndentedWriter out, Triple triple, SerializationContext naming)
+    {
+        // No tag, with ()
+        out.print("(") ;
+        outputPlain(out, triple, naming) ;
+        out.print(")") ;
+    }
+    
     public static void outputPlain(IndentedWriter out, Triple triple, SerializationContext naming)
     {
-        // No tag
+        // No tag, no ()
         output(out, triple.getSubject(), naming) ;
         out.print(" ") ;
         output(out, triple.getPredicate(), naming) ;
         out.print(" ") ;
         output(out, triple.getObject(), naming) ;
     }
-    
-    public static void output(IndentedWriter out, Quad qp, SerializationContext naming)
+
+    public static void output(IndentedWriter out, Quad quad, SerializationContext naming)
     {
         WriterLib.startOneLine(out, Tags.tagQuad) ;
-        outputPlain(out, qp, naming) ;
+        outputPlain(out, quad, naming) ;
         WriterLib.finishOneLine(out, Tags.tagQuad) ;
     }
     
-    public static void outputPlain(IndentedWriter out, Quad qp, SerializationContext naming)
+    public static void outputNoTag(IndentedWriter out, Quad quad, SerializationContext naming)
+    {
+        // No tag, with ()
+        out.print("(") ;
+        outputPlain(out, quad, naming) ;
+        out.print(")") ;
+    }
+    
+    public static void outputPlain(IndentedWriter out, Quad quad, SerializationContext naming)
     {
-        output(out, qp.getGraph(), naming) ;
+        output(out, quad.getGraph(), naming) ;
         out.print(" ") ;
-        output(out, qp.getSubject(), naming) ;
+        output(out, quad.getSubject(), naming) ;
         out.print(" ") ;
-        output(out, qp.getPredicate(), naming) ;
+        output(out, quad.getPredicate(), naming) ;
         out.print(" ") ;
-        output(out, qp.getObject(), naming) ;
+        output(out, quad.getObject(), naming) ;
     }
     
     public static void output(IndentedWriter out, Node node, SerializationContext naming)


[2/2] jena git commit: Unordered list equality.

Posted by an...@apache.org.
Unordered list equality.

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

Branch: refs/heads/master
Commit: 59e5e06c85c98c9c65a9c1addbc4252626e9d061
Parents: 7a39f8f
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Sep 11 17:22:27 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Sep 11 17:22:27 2016 +0100

----------------------------------------------------------------------
 .../org/apache/jena/sparql/path/TestPath.java   | 37 +++++---------------
 .../apache/jena/atlas/lib/CollectionUtils.java  |  2 +-
 .../org/apache/jena/atlas/lib/ListUtils.java    | 16 +++++++++
 .../org/apache/jena/atlas/junit/BaseTest.java   |  9 ++---
 4 files changed, 28 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/59e5e06c/jena-arq/src/test/java/org/apache/jena/sparql/path/TestPath.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/path/TestPath.java b/jena-arq/src/test/java/org/apache/jena/sparql/path/TestPath.java
index 30cb8d5..6ac15f6 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/path/TestPath.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/path/TestPath.java
@@ -18,7 +18,8 @@
 
 package org.apache.jena.sparql.path;
 
-import java.util.ArrayList ;
+import static org.apache.jena.atlas.lib.ListUtils.equalsUnordered ;
+
 import java.util.Arrays ;
 import java.util.Iterator ;
 import java.util.List ;
@@ -40,9 +41,6 @@ import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.engine.binding.BindingFactory ;
 import org.apache.jena.sparql.graph.GraphFactory ;
-import org.apache.jena.sparql.path.Path ;
-import org.apache.jena.sparql.path.PathLib ;
-import org.apache.jena.sparql.path.PathParser ;
 import org.apache.jena.sparql.path.eval.PathEval ;
 import org.apache.jena.sparql.sse.Item ;
 import org.apache.jena.sparql.sse.SSE ;
@@ -321,37 +319,20 @@ public class TestPath extends BaseTest
     
 
     // ----
-    private static void test(Graph graph, Node start, String string, Node... expectedNodes)
-    {
-       test(graph, start, string, expectedNodes, true) ;
+    private static void test(Graph graph, Node start, String string, Node... expectedNodes) {
+        test(graph, start, string, expectedNodes, true) ;
     }
-    
-    private static void testReverse(Graph graph, Node start, String string, Node... expectedNodes)
-    {
-       test(graph, start, string, expectedNodes, false) ;
+
+    private static void testReverse(Graph graph, Node start, String string, Node... expectedNodes) {
+        test(graph, start, string, expectedNodes, false) ;
     }
 
-    private static void test(Graph graph, Node start, String string, Node[] expectedNodes, boolean directionForward)
-    {
+    private static void test(Graph graph, Node start, String string, Node[] expectedNodes, boolean directionForward) {
         Path p = PathParser.parse(string, pmap) ;
         Iterator<Node> resultsIter = 
             directionForward ? PathEval.eval(graph, start, p, ARQ.getContext()) : PathEval.evalReverse(graph, start, p, ARQ.getContext()) ; 
         List<Node> results = Iter.toList(resultsIter) ;
         List<Node> expected = Arrays.asList(expectedNodes) ;
-        // Unordered by counting equality.
-        Assert.assertTrue("expected:"+expected+", got:"+results, sameUnorder(expected, results)) ;
-    }
-    
-    static boolean sameUnorder(List<Node> expected, List<Node> results)
-    {
-        // Copy - this is modified.
-        List<Node> x = new ArrayList<>(results) ;
-        for ( Node n : expected )
-        {
-            if ( ! x.contains(n) )
-                return false ;
-            x.remove(n) ;
-        }
-        return x.isEmpty() ;
+        Assert.assertTrue("expected:"+expected+", got:"+results, equalsUnordered(expected, results)) ;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/59e5e06c/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
index 6b91daa..0392be9 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
@@ -27,7 +27,7 @@ public class CollectionUtils
 		return c1.stream().noneMatch(c2::contains);
     }
     
-    /** Test for same elements, regarless of carinality */ 
+    /** Test for same elements, regarless of cardinality */ 
     public static <T> boolean sameElts(Collection<T> left, Collection<T> right) {
         return right.containsAll(left) && left.containsAll(right) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/59e5e06c/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
index 200b836..272fb28 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/ListUtils.java
@@ -79,6 +79,22 @@ public class ListUtils
 		out.print(list.stream().map(String::valueOf).collect(joining(sep)));
     }
     
+    /**
+     * Compare two lists, same elements, order of the lists may be different, elements
+     * must have the same cardinality.
+     */
+    public static <T> boolean equalsUnordered(List<T> list1, List<T> list2) {
+        if ( list1.size() != list2.size() )
+            return false ;
+        // containsAll bothe ways round isn't enough.
+        List<T> list2a = new ArrayList<>(list2) ;
+        for ( T elt : list1 )
+            list2a.remove(elt) ;
+        if ( list2a.size() != 0 )
+            return false ;
+        return true ;
+    }
+    
     /** Return a list of lists of all the elements of collection in every order
      *  Easy to run out of heap memory.
      *  

http://git-wip-us.apache.org/repos/asf/jena/blob/59e5e06c/jena-base/src/test/java/org/apache/jena/atlas/junit/BaseTest.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/junit/BaseTest.java b/jena-base/src/test/java/org/apache/jena/atlas/junit/BaseTest.java
index 5976047..51becfb 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/junit/BaseTest.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/junit/BaseTest.java
@@ -18,10 +18,10 @@
 
 package org.apache.jena.atlas.junit ;
 
-import java.util.ArrayList ;
 import java.util.List ;
 import java.util.Locale ;
 
+import org.apache.jena.atlas.lib.ListUtils ;
 import org.junit.Assert ;
 
 public class BaseTest extends Assert {
@@ -42,12 +42,7 @@ public class BaseTest extends Assert {
     }
     
     public static <T> void assertEqualsUnordered(String msg, List<T> list1, List<T> list2) {
-        if ( list1.size() != list2.size() )
-            fail(msg(msg, list1, list2)) ;
-        List<T> list2a = new ArrayList<>(list2) ;
-        for ( T elt : list1 )
-            list2a.remove(elt) ;
-        if ( list2a.size() != 0 )
+        if ( ! ListUtils.equalsUnordered(list1, list2) )
             fail(msg(msg, list1, list2)) ;
     }