AccumuloTemporalIndexer extends AbstractAccumuloIndexer implements TemporalIndexer { @Override public CloseableIteration<Statement, QueryEvaluationException> queryIntervalAfter( final TemporalInterval queryInterval, final StatementConstraints constraints) throws QueryEvaluationException { final Scanner scanner = getScanner(); if (scanner != null) { final Range range = new Range(new Key(Range.followingPrefix(new Text(queryInterval.getHasEnd().getAsKeyBytes()))), false, null, true); scanner.setRange(range); if (constraints.hasContext()) { scanner.fetchColumn(new Text(constraints.getContext().toString()), new Text(KeyParts.CQ_BEGIN)); } else { scanner.fetchColumn(new Text(""), new Text(KeyParts.CQ_BEGIN)); } } return getIteratorWrapper(scanner); }  @Override void init(); @Override void setConf(final Configuration conf); @Override Configuration getConf(); @Override void storeStatement(final RyaStatement statement); void removeInterval(final BatchWriter writer, final TemporalInterval interval, final Statement statement); void removeInstant(final BatchWriter writer, final TemporalInstant instant, final Statement statement); void addInterval(final BatchWriter writer, final TemporalInterval interval, final Statement statement); void addInstant(final BatchWriter writer, final TemporalInstant instant, final Statement statement); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantEqualsInstant(
            final TemporalInstant queryInstant, final StatementConstraints constraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantBeforeInstant(
            final TemporalInstant queryInstant, final StatementConstraints constraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantAfterInstant(
            final TemporalInstant queryInstant, final StatementConstraints constraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantBeforeInterval(
            final TemporalInterval givenInterval, final StatementConstraints contraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantAfterInterval(
            final TemporalInterval givenInterval, final StatementConstraints contraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantInsideInterval(
            final TemporalInterval queryInterval, final StatementConstraints constraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantHasBeginningInterval(
            final TemporalInterval queryInterval, final StatementConstraints contraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryInstantHasEndInterval(
            final TemporalInterval queryInterval, final StatementConstraints contraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryIntervalEquals(
            final TemporalInterval query, final StatementConstraints contraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryIntervalBefore(
            final TemporalInterval queryInterval, final StatementConstraints constraints); @Override CloseableIteration<Statement, QueryEvaluationException> queryIntervalAfter(
            final TemporalInterval queryInterval, final StatementConstraints constraints); @Override Set<IRI> getIndexablePredicates(); @Override void flush(); @Override void close(); @Override String getTableName(); static String makeTableName(final String ryaInstanceName); @Override void deleteStatement(final RyaStatement statement); @Override void setConnector(final Connector connector); @Override void destroy(); @Override void purge(final RdfCloudTripleStoreConfiguration configuration); @Override void dropAndDestroy(); @Override void setMultiTableBatchWriter(MultiTableBatchWriter writer);  }
@Test public void testQueryIntervalAfter() throws IOException, QueryEvaluationException { tIndexer.storeStatement(convertStatement(spo_B00_E01)); tIndexer.storeStatement(convertStatement(spo_B02_E29)); tIndexer.storeStatement(convertStatement(spo_B02_E30)); tIndexer.storeStatement(convertStatement(spo_B02_E31)); tIndexer.storeStatement(convertStatement(spo_B02_E40)); tIndexer.storeStatement(convertStatement(spo_B03_E20)); tIndexer.storeStatement(convertStatement(spo_B29_E30)); tIndexer.storeStatement(convertStatement(spo_B30_E32)); tIndexer.storeStatement(convertStatement(spo_B02)); tIndexer.storeStatement(convertStatement(seriesSpo[1])); tIndexer.storeStatement(convertStatement(seriesSpo[2])); tIndexer.storeStatement(convertStatement(seriesSpo[31])); tIndexer.flush(); CloseableIteration<Statement, QueryEvaluationException> iter; iter = tIndexer.queryIntervalAfter(tvB02_E29, EMPTY_CONSTRAINTS); Assert.assertTrue("spo_B30_E32 should be found, but actually returned empty results. spo_B30_E32=" + spo_B30_E32, iter.hasNext()); Statement s = iter.next(); Assert.assertTrue("spo_B30_E32 should be found, but found another. spo_B30_E32="+spo_B30_E32+", but found="+s, spo_B30_E32.equals(s)); Assert.assertFalse("Find no more than one, but actually has more.", iter.hasNext()); }