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/09/06 17:52:33 UTC

[03/10] jena git commit: Fix .equals

Fix .equals

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

Branch: refs/heads/master
Commit: 921062862d974fb228f3f5460c0f4ced10ab9e9f
Parents: 6ed9cdd
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Sep 5 21:42:13 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Sep 5 21:42:13 2015 +0100

----------------------------------------------------------------------
 .../jena/sparql/algebra/op/OpPropFunc.java      | 21 ++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/92106286/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpPropFunc.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpPropFunc.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpPropFunc.java
index a124930..e79df00 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpPropFunc.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpPropFunc.java
@@ -18,12 +18,15 @@
 
 package org.apache.jena.sparql.algebra.op;
 
+import java.util.List ;
+
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.OpVisitor ;
 import org.apache.jena.sparql.algebra.Transform ;
 import org.apache.jena.sparql.pfunction.PropFuncArg ;
 import org.apache.jena.sparql.sse.Tags ;
+import org.apache.jena.sparql.util.Iso ;
 import org.apache.jena.sparql.util.NodeIsomorphismMap ;
 
 /** Property functions (or any OpBGP replacement)
@@ -83,11 +86,25 @@ public class OpPropFunc extends Op1
     {
         if ( ! ( other instanceof OpPropFunc ) ) return false ;
         OpPropFunc procFunc = (OpPropFunc)other ;
-        
-        
+        if ( ! isomorphic(getSubjectArgs(), procFunc.getSubjectArgs(), labelMap) )
+            return false ;
+        if ( ! isomorphic(getObjectArgs(), procFunc.getObjectArgs(), labelMap) )
+            return false ;
         return getSubOp().equalTo(procFunc.getSubOp(), labelMap) ;
     }
 
+    private static boolean isomorphic(PropFuncArg pfa1, PropFuncArg pfa2, NodeIsomorphismMap labelMap) {
+        if ( pfa1 == null && pfa2 == null )
+            return true ;
+        if ( pfa1 == null ) return false ;
+        if ( pfa2 == null ) return false ;
+        
+        List<Node> list1 = pfa1.getArgList() ;
+        List<Node> list2 = pfa2.getArgList() ;
+                
+        return Iso.isomorphicNodes(list1, list2, labelMap) ;
+    }
+    
     @Override
     public String getName()
     {