http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/92ddfa59/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloConstantIndexSetTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloConstantIndexSetTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloConstantIndexSetTest.java
new file mode 100644
index 0000000..438775b
--- /dev/null
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloConstantIndexSetTest.java
@@ -0,0 +1,811 @@
+package mvm.rya.indexing.external;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import junit.framework.Assert;
+import mvm.rya.indexing.IndexPlanValidator.IndexPlanValidator;
+import mvm.rya.indexing.external.tupleSet.AccumuloIndexSet;
+import 
mvm.rya.indexing.external.tupleSet.ExternalProcessorTest.ExternalTupleVstor;
+import mvm.rya.indexing.external.tupleSet.ExternalTupleSet;
+
+import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.MutationsRejectedException;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.TableExistsException;
+import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.mock.MockInstance;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Range;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.hadoop.io.Text;
+import org.junit.Before;
+import org.junit.Test;
+import org.openrdf.model.URI;
+import org.openrdf.model.impl.LiteralImpl;
+import org.openrdf.model.impl.URIImpl;
+import org.openrdf.model.vocabulary.RDF;
+import org.openrdf.model.vocabulary.RDFS;
+import org.openrdf.query.BindingSet;
+import org.openrdf.query.MalformedQueryException;
+import org.openrdf.query.QueryEvaluationException;
+import org.openrdf.query.QueryLanguage;
+import org.openrdf.query.QueryResultHandlerException;
+import org.openrdf.query.TupleQueryResultHandler;
+import org.openrdf.query.TupleQueryResultHandlerException;
+import org.openrdf.query.algebra.TupleExpr;
+import org.openrdf.query.parser.ParsedQuery;
+import org.openrdf.query.parser.sparql.SPARQLParser;
+import org.openrdf.repository.RepositoryException;
+import org.openrdf.repository.sail.SailRepository;
+import org.openrdf.repository.sail.SailRepositoryConnection;
+import org.openrdf.sail.Sail;
+import org.openrdf.sail.SailException;
+import org.openrdf.sail.memory.MemoryStore;
+
+import com.beust.jcommander.internal.Sets;
+import com.google.common.collect.Lists;
+
+public class AccumuloConstantIndexSetTest {
+
+    
+    private SailRepositoryConnection conn;
+    private Connector accCon;
+    String tablename = "table";
+    Sail s;
+    URI obj, obj2, subclass, subclass2, talksTo;
+
+    @Before
+    public void init() throws RepositoryException, 
TupleQueryResultHandlerException, QueryEvaluationException,
+            MalformedQueryException, AccumuloException, 
AccumuloSecurityException, TableExistsException {
+
+        s = new MemoryStore();
+        SailRepository repo = new SailRepository(s);
+        repo.initialize();
+        conn = repo.getConnection();
+
+        URI sub = new URIImpl("uri:entity");
+        subclass = new URIImpl("uri:class");
+        obj = new URIImpl("uri:obj");
+        talksTo = new URIImpl("uri:talksTo");
+
+        conn.add(sub, RDF.TYPE, subclass);
+        conn.add(sub, RDFS.LABEL, new LiteralImpl("label"));
+        conn.add(sub, talksTo, obj);
+
+        URI sub2 = new URIImpl("uri:entity2");
+        subclass2 = new URIImpl("uri:class2");
+        obj2 = new URIImpl("uri:obj2");
+
+        conn.add(sub2, RDF.TYPE, subclass2);
+        conn.add(sub2, RDFS.LABEL, new LiteralImpl("label2"));
+        conn.add(sub2, talksTo, obj2);
+
+        accCon = new MockInstance().getConnector("root", "".getBytes());
+        accCon.tableOperations().create(tablename);
+
+    }
+    
+    
+    
+    
+    @Test
+    public void testEvaluateTwoIndexVarInstantiate1() {
+
+        URI superclass = new URIImpl("uri:superclass");
+        URI superclass2 = new URIImpl("uri:superclass2");
+
+        try {
+            conn.add(subclass, RDF.TYPE, superclass);
+            conn.add(subclass2, RDF.TYPE, superclass2);
+            conn.add(obj, RDFS.LABEL, new LiteralImpl("label"));
+            conn.add(obj2, RDFS.LABEL, new LiteralImpl("label2"));
+        } catch (RepositoryException e5) {
+            // TODO Auto-generated catch block
+            e5.printStackTrace();
+        }
+
+        try {
+            if (accCon.tableOperations().exists("table2")) {
+                accCon.tableOperations().delete("table2");
+            }
+            accCon.tableOperations().create("table2");
+        } catch (AccumuloException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (AccumuloSecurityException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (TableExistsException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (TableNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        try {
+            conn.add(obj, RDFS.LABEL, new LiteralImpl("label"));
+            conn.add(obj2, RDFS.LABEL, new LiteralImpl("label2"));
+        } catch (RepositoryException e3) {
+            // TODO Auto-generated catch block
+            e3.printStackTrace();
+        }
+
+        // TODO Auto-generated method stub
+        String indexSparqlString = ""//
+                + "SELECT ?dog ?pig ?duck  " //
+                + "{" //
+                + "  ?pig a ?dog . "//
+                + "  ?pig <http://www.w3.org/2000/01/rdf-schema#label> ?duck 
"//
+                + "}";//
+
+        String indexSparqlString2 = ""//
+                + "SELECT ?o ?f ?e ?c ?l  " //
+                + "{" //
+                + "  ?e <uri:talksTo> ?o . "//
+                + "  ?o <http://www.w3.org/2000/01/rdf-schema#label> ?l. "//
+                + "  ?c a ?f . " //
+                + "}";//
+
+        String queryString = ""//
+                + "SELECT ?c ?l ?f ?o " //
+                + "{" //
+                + "  <uri:entity> a ?c . "//
+                + "  <uri:entity> <http://www.w3.org/2000/01/rdf-schema#label> 
?l. "//
+                + "  <uri:entity> <uri:talksTo> ?o . "//
+                + "  ?o <http://www.w3.org/2000/01/rdf-schema#label> ?l. "//
+                + "  ?c a ?f . " //
+                + "}";//
+
+     
+
+        List<ExternalTupleSet> index = Lists.newArrayList();
+        AccumuloIndexSet ais1 = null;
+        AccumuloIndexSet ais2 = null;
+
+        try {
+            ais1 = new AccumuloIndexSet(indexSparqlString, conn, accCon, 
tablename);
+            ais2 = new AccumuloIndexSet(indexSparqlString2, conn, accCon, 
"table2");
+        } catch (MalformedQueryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (SailException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (QueryEvaluationException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (MutationsRejectedException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (TableNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+      
+       
+        CountingResultHandler crh1 = new CountingResultHandler();
+        CountingResultHandler crh2 = new CountingResultHandler();
+
+        try {
+            conn.prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh1);
+        } catch (TupleQueryResultHandlerException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (QueryEvaluationException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (MalformedQueryException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (RepositoryException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        }
+
+        ParsedQuery pq = null;
+        SPARQLParser sp = new SPARQLParser();
+        try {
+            pq = sp.parseQuery(queryString, null);
+        } catch (MalformedQueryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        index.add(ais1);
+        index.add(ais2);
+        
+        ExternalProcessor processor = new ExternalProcessor(index);
+
+        Sail processingSail = new ExternalSail(s, processor);
+        SailRepository smartSailRepo = new SailRepository(processingSail);
+        try {
+            smartSailRepo.initialize();
+        } catch (RepositoryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        
+        try {
+            
smartSailRepo.getConnection().prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh2);
+        } catch (TupleQueryResultHandlerException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (QueryEvaluationException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (MalformedQueryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (RepositoryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        
+       
+        Assert.assertEquals(crh1.getCount(), crh2.getCount());
+
+    }
+    
+    
+    
+    
+    
+  @Test
+    public void testEvaluateThreeIndexVarInstantiate() {
+
+        URI superclass = new URIImpl("uri:superclass");
+        URI superclass2 = new URIImpl("uri:superclass2");
+
+        URI sub = new URIImpl("uri:entity");
+        subclass = new URIImpl("uri:class");
+        obj = new URIImpl("uri:obj");
+        talksTo = new URIImpl("uri:talksTo");
+
+        URI howlsAt = new URIImpl("uri:howlsAt");
+        URI subType = new URIImpl("uri:subType");
+        
+
+        try {
+            conn.add(subclass, RDF.TYPE, superclass);
+            conn.add(subclass2, RDF.TYPE, superclass2);
+            conn.add(obj, RDFS.LABEL, new LiteralImpl("label"));
+            conn.add(obj2, RDFS.LABEL, new LiteralImpl("label2"));
+            conn.add(sub, howlsAt, superclass);
+            conn.add(superclass, subType, obj);
+        } catch (RepositoryException e5) {
+            // TODO Auto-generated catch block
+            e5.printStackTrace();
+        }
+
+        try {
+            if (accCon.tableOperations().exists("table2")) {
+                accCon.tableOperations().delete("table2");
+            }
+            accCon.tableOperations().create("table2");
+
+            if (accCon.tableOperations().exists("table3")) {
+                accCon.tableOperations().delete("table3");
+            }
+            accCon.tableOperations().create("table3");
+        } catch (AccumuloException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (AccumuloSecurityException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (TableExistsException e4) {
+            // TODO Auto-generated catch block
+            e4.printStackTrace();
+        } catch (TableNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        try {
+            conn.add(obj, RDFS.LABEL, new LiteralImpl("label"));
+            conn.add(obj2, RDFS.LABEL, new LiteralImpl("label2"));
+        } catch (RepositoryException e3) {
+            // TODO Auto-generated catch block
+            e3.printStackTrace();
+        }
+
+        // TODO Auto-generated method stub
+        String indexSparqlString = ""//
+                + "SELECT ?dog ?pig ?duck  " //
+                + "{" //
+                + "  ?pig a ?dog . "//
+                + "  ?pig <http://www.w3.org/2000/01/rdf-schema#label> ?duck 
"//
+                + "}";//
+
+        String indexSparqlString2 = ""//
+                + "SELECT ?o ?f ?e ?c ?l  " //
+                + "{" //
+                + "  ?e <uri:talksTo> ?o . "//
+                + "  ?o <http://www.w3.org/2000/01/rdf-schema#label> ?l. "//
+                + "  ?c a ?f . " //
+                + "}";//
+
+        String indexSparqlString3 = ""//
+                + "SELECT ?wolf ?sheep ?chicken  " //
+                + "{" //
+                + "  ?wolf <uri:howlsAt> ?sheep . "// 
+                + "  ?sheep <uri:subType> ?chicken. "//
+                + "}";//
+
+        String queryString = ""//
+                + "SELECT ?c ?l ?f ?o " //
+                + "{" //
+                + "  <uri:entity> a ?c . "//
+                + "  <uri:entity> <http://www.w3.org/2000/01/rdf-schema#label> 
?l. "//
+                + "  <uri:entity> <uri:talksTo> ?o . "//
+                + "  ?o <http://www.w3.org/2000/01/rdf-schema#label> ?l. "//
+                + "  ?c a ?f . " //
+                + "  <uri:entity> <uri:howlsAt> ?f. "//
+                + "  ?f <uri:subType> <uri:obj>. "//
+                + "}";//
+
+
+        List<ExternalTupleSet> index = Lists.newArrayList();
+        AccumuloIndexSet ais1 = null;
+        AccumuloIndexSet ais2 = null;
+        AccumuloIndexSet ais3 = null;
+
+        try {
+            ais1 = new AccumuloIndexSet(indexSparqlString, conn, accCon, 
tablename);
+            ais2 = new AccumuloIndexSet(indexSparqlString2, conn, accCon, 
"table2");
+            ais3 = new AccumuloIndexSet(indexSparqlString3, conn, accCon, 
"table3");
+        } catch (MalformedQueryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (SailException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (QueryEvaluationException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (MutationsRejectedException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (TableNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        index.add(ais1);
+        index.add(ais3);
+        index.add(ais2);
+
+        CountingResultHandler crh1 = new CountingResultHandler();
+        CountingResultHandler crh2 = new CountingResultHandler();
+
+        try {
+            conn.prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh1);
+        } catch (TupleQueryResultHandlerException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (QueryEvaluationException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (MalformedQueryException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        } catch (RepositoryException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        }
+
+        ExternalProcessor processor = new ExternalProcessor(index);
+
+        Sail processingSail = new ExternalSail(s, processor);
+        SailRepository smartSailRepo = new SailRepository(processingSail);
+        try {
+            smartSailRepo.initialize();
+        } catch (RepositoryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        
+        try {
+            
smartSailRepo.getConnection().prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh2);
+        } catch (TupleQueryResultHandlerException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (QueryEvaluationException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (MalformedQueryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (RepositoryException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        
+       
+        
+        
+        
+       
+//         Scanner s = null;
+//        try {
+//            s = accCon.createScanner("table3", new Authorizations());
+//        } catch (TableNotFoundException e) {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        } 
+//         s.setRange(new Range());       
+//         Iterator<Entry<Key,Value>> i = s.iterator();
+//         
+//         while (i.hasNext()) {
+//             Entry<Key, Value> entry = i.next();
+//             Key k = entry.getKey();
+//             System.out.println(k);
+//
+//         } 
+        
+        
+        
+        
+        
+        
+        Assert.assertEquals(crh1.getCount(), crh2.getCount());
+
+        
+        
+        
+        
+
+    }
+    
+    
+    
+    
+    
+    
+  @Test
+  public void testEvaluateFilterInstantiate() {
+
+      URI e1 = new URIImpl("uri:e1");
+      URI e2 = new URIImpl("uri:e2");
+      URI e3 = new URIImpl("uri:e3");
+      URI f1 = new URIImpl("uri:f1");
+      URI f2 = new URIImpl("uri:f2");
+      URI f3 = new URIImpl("uri:f3");
+      URI g1 = new URIImpl("uri:g1");
+      URI g2 = new URIImpl("uri:g2");
+      URI g3 = new URIImpl("uri:g3");
+      
+
+      
+      try {
+          conn.add(e1, talksTo, f1);
+          conn.add(f1, talksTo, g1);
+          conn.add(g1, talksTo, e1);
+          conn.add(e2, talksTo, f2);
+          conn.add(f2, talksTo, g2);
+          conn.add(g2, talksTo, e2);
+          conn.add(e3, talksTo, f3);
+          conn.add(f3, talksTo, g3);
+          conn.add(g3, talksTo, e3);
+      } catch (RepositoryException e5) {
+          // TODO Auto-generated catch block
+          e5.printStackTrace();
+      }
+
+
+      String queryString = ""//
+              + "SELECT ?x ?y ?z " //
+              + "{" //
+              + "Filter(?x = <uri:e1>) . " //
+              + " ?x <uri:talksTo> ?y. " //
+              + " ?y <uri:talksTo> ?z. " //
+              + " ?z <uri:talksTo> <uri:e1>. " //
+              + "}";//
+      
+      
+      
+      String indexSparqlString = ""//
+              + "SELECT ?a ?b ?c ?d " //
+              + "{" //
+              + "Filter(?a = ?d) . " //
+              + " ?a <uri:talksTo> ?b. " //
+              + " ?b <uri:talksTo> ?c. " //
+              + " ?c <uri:talksTo> ?d. " //
+              + "}";//
+      
+
+
+      List<ExternalTupleSet> index = Lists.newArrayList();
+      AccumuloIndexSet ais1 = null;
+
+      try {
+          ais1 = new AccumuloIndexSet(indexSparqlString, conn, accCon, 
tablename);
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (SailException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MutationsRejectedException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (TableNotFoundException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      index.add(ais1);
+   
+      CountingResultHandler crh1 = new CountingResultHandler();
+      CountingResultHandler crh2 = new CountingResultHandler();
+
+      try {
+          conn.prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh1);
+      } catch (TupleQueryResultHandlerException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      ExternalProcessor processor = new ExternalProcessor(index);
+
+      Sail processingSail = new ExternalSail(s, processor);
+      SailRepository smartSailRepo = new SailRepository(processingSail);
+      try {
+          smartSailRepo.initialize();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      
+      try {
+          
smartSailRepo.getConnection().prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh2);
+      } catch (TupleQueryResultHandlerException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+      
+    
+      
+       
+      
+      
+      
+      
+      Assert.assertEquals(crh1.getCount(), crh2.getCount());
+
+      
+      
+      
+      
+
+  }
+  
+  
+  
+  
+  @Test
+  public void testEvaluateCompoundFilterInstantiate() {
+
+      URI e1 = new URIImpl("uri:e1");
+      URI f1 = new URIImpl("uri:f1");
+      
+      
+      try {
+          conn.add(e1, talksTo, e1);
+          conn.add(e1, talksTo, f1);
+          conn.add(f1, talksTo, e1);
+
+      } catch (RepositoryException e5) {
+          // TODO Auto-generated catch block
+          e5.printStackTrace();
+      }
+
+
+      String queryString = ""//
+              + "SELECT ?x ?y ?z " //
+              + "{" //
+              + "Filter(?x = <uri:e1> && ?y = <uri:e1>) . " //
+              + " ?x <uri:talksTo> ?y. " //
+              + " ?y <uri:talksTo> ?z. " //
+              + " ?z <uri:talksTo> <uri:e1>. " //
+              + "}";//
+      
+      
+      
+      String indexSparqlString = ""//
+              + "SELECT ?a ?b ?c ?d " //
+              + "{" //
+              + "Filter(?a = ?d && ?b = ?d) . " //
+              + " ?a <uri:talksTo> ?b. " //
+              + " ?b <uri:talksTo> ?c. " //
+              + " ?c <uri:talksTo> ?d. " //
+              + "}";//
+      
+
+
+      List<ExternalTupleSet> index = Lists.newArrayList();
+      AccumuloIndexSet ais1 = null;
+
+      try {
+          ais1 = new AccumuloIndexSet(indexSparqlString, conn, accCon, 
tablename);
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (SailException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MutationsRejectedException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (TableNotFoundException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      index.add(ais1);
+   
+      CountingResultHandler crh1 = new CountingResultHandler();
+      CountingResultHandler crh2 = new CountingResultHandler();
+
+      try {
+          conn.prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh1);
+      } catch (TupleQueryResultHandlerException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      ExternalProcessor processor = new ExternalProcessor(index);
+
+      Sail processingSail = new ExternalSail(s, processor);
+      SailRepository smartSailRepo = new SailRepository(processingSail);
+      try {
+          smartSailRepo.initialize();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+
+      
+      try {
+          
smartSailRepo.getConnection().prepareTupleQuery(QueryLanguage.SPARQL, 
queryString).evaluate(crh2);
+      } catch (TupleQueryResultHandlerException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (QueryEvaluationException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (MalformedQueryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      } catch (RepositoryException e) {
+          // TODO Auto-generated catch block
+          e.printStackTrace();
+      }
+      
+//      System.out.println("Counts are " + crh1.getCount() + " and " + 
crh2.getCount());
+//      
+//      
+//    Scanner s = null;
+//   try {
+//       s = accCon.createScanner(tablename, new Authorizations());
+//   } catch (TableNotFoundException e) {
+//       // TODO Auto-generated catch block
+//       e.printStackTrace();
+//   } 
+//    s.setRange(new Range());       
+//    Iterator<Entry<Key,Value>> i = s.iterator();
+//    
+//    while (i.hasNext()) {
+//        Entry<Key, Value> entry = i.next();
+//        Key k = entry.getKey();
+//        System.out.println(k);
+//
+//    } 
+      
+      
+    Assert.assertEquals(2, crh1.getCount());
+    
+    Assert.assertEquals(crh1.getCount(), crh2.getCount());
+
+     
+      
+      
+
+  }
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+    
+    
+    
+    
+
+    public static class CountingResultHandler implements 
TupleQueryResultHandler {
+        private int count = 0;
+
+        public int getCount() {
+            return count;
+        }
+
+        public void resetCount() {
+            this.count = 0;
+        }
+
+        @Override
+        public void startQueryResult(List<String> arg0) throws 
TupleQueryResultHandlerException {
+        }
+
+        @Override
+        public void handleSolution(BindingSet arg0) throws 
TupleQueryResultHandlerException {
+            count++;
+        }
+
+        @Override
+        public void endQueryResult() throws TupleQueryResultHandlerException {
+        }
+
+        @Override
+        public void handleBoolean(boolean arg0) throws 
QueryResultHandlerException {
+            // TODO Auto-generated method stub
+
+        }
+
+        @Override
+        public void handleLinks(List<String> arg0) throws 
QueryResultHandlerException {
+            // TODO Auto-generated method stub
+
+        }
+    }
+
+}

Reply via email to