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 2012/10/23 21:22:54 UTC

svn commit: r1401407 - /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java

Author: andy
Date: Tue Oct 23 19:22:54 2012
New Revision: 1401407

URL: http://svn.apache.org/viewvc?rev=1401407&view=rev
Log:
check result set header for same variables.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java?rev=1401407&r1=1401406&r2=1401407&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetCompare.java Tue Oct 23 19:22:54 2012
@@ -18,10 +18,7 @@
 
 package com.hp.hpl.jena.sparql.resultset;
 
-import java.util.ArrayList ;
-import java.util.Collection ;
-import java.util.Iterator ;
-import java.util.List ;
+import java.util.* ;
 
 import org.openjena.atlas.iterator.Iter ;
 import org.openjena.atlas.iterator.Transform ;
@@ -101,6 +98,8 @@ public class ResultSetCompare
     
     public static boolean equalsByValue(ResultSet rs1, ResultSet rs2)
     {
+        if ( ! compareHeader(rs1, rs2) ) return false ;
+        
         //return equivalent(convert(rs1), convert(rs2), new BNodeIso(NodeUtils.sameValue)) ;
         
         // Add the isomprohism test
@@ -139,6 +138,8 @@ public class ResultSetCompare
 
     public static boolean equalsByTerm(ResultSet rs1, ResultSet rs2)
     {
+        if ( ! compareHeader(rs1, rs2) ) return false ;
+
         //return equivalent(convert(rs1), convert(rs2), new BNodeIso(NodeUtils.sameTerm)) ;
         ResultSetRewindable rs1a = ResultSetFactory.makeRewindable(rs1) ;
         ResultSetRewindable rs2a = ResultSetFactory.makeRewindable(rs2) ;
@@ -165,6 +166,8 @@ public class ResultSetCompare
 
     public static boolean equalsByValueAndOrder(ResultSet rs1, ResultSet rs2)
     {
+        if ( ! compareHeader(rs1, rs2) ) return false ;
+
         return equivalentByOrder(convert(rs1) , convert(rs2), new BNodeIso(NodeUtils.sameValue)) ;
     }
 
@@ -181,6 +184,8 @@ public class ResultSetCompare
      */
     public static boolean equalsByTermAndOrder(ResultSet rs1, ResultSet rs2)
     {
+        if ( ! compareHeader(rs1, rs2) ) return false ;
+
         return equivalentByOrder(convert(rs1) , convert(rs2), new BNodeIso(NodeUtils.sameTerm)) ;
     }
 
@@ -205,6 +210,16 @@ public class ResultSetCompare
         if ( ! containedIn(bind1, bind2, test) ) return false ;
         return true ;
     }
+    
+    static private boolean compareHeader(ResultSet rs1, ResultSet rs2)
+    {
+        if ( rs1 == null && rs2 == null ) return true ;
+        if ( rs1 == null ) return false ;
+        if ( rs2 == null ) return false ;
+        Set<String> names1 = new HashSet<String>(rs1.getResultVars()) ;
+        Set<String> names2 = new HashSet<String>(rs2.getResultVars()) ;
+        return names1.equals(names2) ;
+    }
 
     static private List<Binding> convert(ResultSet rs)
     {