private void doFetchPrevious() { hasPreviousTriples = false; while(iterator.hasPrevious()){ TripleID previous = iterator.previous(); if(previous.match(pattern)) { hasPreviousTriples = true; hasMoreTriples = true; previousTriple.assign(previous); break; } } }
public static Comparator<TripleID> getComparator(TripleComponentOrder order) { if(order==TripleComponentOrder.SPO) { return TripleIDComparatorSPO.getInstance(); } return new TripleIDComparator(order); }
@Override public void load(Triples triples, ProgressListener listener) { this.clear(); IteratorTripleID it = triples.searchAll(); while(it.hasNext()) { TripleID triple = it.next(); this.insert(triple.getSubject(), triple.getPredicate(), triple.getObject()); } sorted = false; }
public void assign(TripleID replacement) { subject = replacement.getSubject(); object = replacement.getObject(); predicate = replacement.getPredicate(); }
@Override public boolean test(TripleID t) { if(varIsSO[0] && t.getSubject()>numSharedSO) { return false; } if(varIsSO[2] && t.getObject()>numSharedSO) { return false; } return true; } });
@Override public void addTriple(TripleString str) throws IOException { str.dumpNtriple(out); }
@Override public long estimatedNumResults() { return iterator.estimatedNumResults(); }
@Override public boolean hasNext() { return iterator.hasNext(); }
@Override public ResultEstimationType numResultEstimation() { return iterator.numResultEstimation(); }
@Override public boolean canGoTo() { return pattern.isEmpty(); }
@Override public void remove() { iterator.remove(); }
@Override public boolean update(TripleID triple, int subj, int pred, int obj) { if (triple==null) return false; triple.setAll(subj, pred, obj); sorted = false; return true; }
public static TripleIDComparatorSPO getInstance() { if(instance==null) { instance = new TripleIDComparatorSPO(); } return instance; }
@Override public void goToStart() { iterator.goToStart(); }
@Override public long estimatedNumResults() { return iterator.estimatedNumResults(); }
@Override public boolean hasNext() { return iterator.hasNext(); }
@Override public ResultEstimationType numResultEstimation() { return iterator.numResultEstimation(); }
@Override public void remove() { iterator.remove(); }