@Override public G next() throws NoSuchElementException { G next = features.next(); String featureId = next.getIdentifier().getID(); Ref ref = typeTree.get(featureId); String versionId = ref == null ? null : ref.getObjectId().toString(); return VersionedFeatureWrapper.wrap(next, versionId); }
@Override protected F computeNext() { if (!iterator.hasNext()) { return endOfData(); } F next = iterator.next(); String featureId = next.getIdentifier().getID(); Ref ref = currentTypeTree.get(featureId); String versionId = ref == null ? null : ref.getObjectId().toString(); return VersionedFeatureWrapper.wrap(next, versionId); }
@Override public Feature apply(final Ref featureRef) { String featureId = featureRef.getName(); ObjectId contentId = featureRef.getObjectId(); StagingDatabase database = repo.getIndex().getDatabase(); Feature feature; try { ObjectReader<Feature> featureReader = serialisingFactory.createFeatureReader(type, featureId); feature = database.get(contentId, featureReader); } catch (IOException e) { throw new RuntimeException(e); } return VersionedFeatureWrapper.wrap(feature, featureRef.getObjectId().toString()); }