package org.rdfhdt.hdt.rdf.parsers; import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Statement; import org.apache.jena.rdf.model.StmtIterator; import org.rdfhdt.hdt.enums.ResultEstimationType; import org.rdfhdt.hdt.triples.IteratorTripleString; import org.rdfhdt.hdt.triples.TripleString; public class JenaModelIterator implements IteratorTripleString { private Model model; private StmtIterator iterator; public JenaModelIterator(Model model) { this.model = model; this.iterator = model.listStatements(); } @Override public boolean hasNext() { return iterator.hasNext(); } @Override public TripleString next() { Statement stm = iterator.nextStatement(); return new TripleString( stm.getSubject().toString(), stm.getPredicate().toString(), stm.getObject().toString()); } @Override public void goToStart() { this.iterator = model.listStatements(); } @Override public long estimatedNumResults() { return model.size(); } @Override public ResultEstimationType numResultEstimation() { return ResultEstimationType.MORE_THAN; } @Override public void remove() { throw new UnsupportedOperationException(); } @Override public boolean hasPrevious() { throw new UnsupportedOperationException(); } @Override public TripleString previous() { throw new UnsupportedOperationException(); } }