public static SimpleFeature build(FeatureBuilder featureBuilder, ObjectInfo<RevFeature> info, @Nullable GeometryFactory geometryFactory) { String fid = info.node().getName(); RevFeature revFeature = info.object(); SimpleFeature feature = (SimpleFeature) featureBuilder.build(fid, revFeature, geometryFactory); feature.getUserData().put(Hints.USE_PROVIDED_FID, Boolean.TRUE); feature.getUserData().put(Hints.PROVIDED_FID, fid); feature.getUserData().put(RevFeature.class, revFeature); feature.getUserData().put(RevFeatureType.class, featureBuilder.getType()); return feature; } }
public Node node() { return ref().getNode(); }
public static <T extends RevObject> ObjectInfo<T> of(NodeRef ref, T obj) { checkNotNull(ref, "ref"); checkNotNull(obj, "obj"); return new ObjectInfo<T>(ref, obj); } }
public Map<String, SimpleFeature> getFeatures(@NonNull String rootTreeIsh, @Nullable String layerName) { Map<String, RevFeatureType> types = getFeatureTypes(rootTreeIsh); String treeIsh = layerName == null ? rootTreeIsh : String.format("%s:%s", rootTreeIsh, layerName); Map<String, NodeRef> nodes = getFeatureNodes(treeIsh); Context context = getContext(); Map<String, SimpleFeature> featuresByPath = new HashMap<>(); try (AutoCloseableIterator<ObjectInfo<RevFeature>> features = context.objectDatabase() .getObjects(nodes.values().iterator(), BulkOpListener.NOOP_LISTENER, RevFeature.class)) { features.forEachRemaining(rf -> { String typeName = rf.ref().getParentPath(); String path = rf.ref().path(); String id = rf.node().getName(); SimpleFeature feature = (SimpleFeature) new FeatureBuilder(types.get(typeName)) .build(id, rf.object()); featuresByPath.put(path, feature); }); } return featuresByPath; }
if (objType == null || objType.equals(obj.getType())) { ObjectInfo<T> info = ObjectInfo.of(n, type.cast(obj)); result.add(info); sharedCache.put(obj);
while (features.hasNext()) { ObjectInfo<RevFeature> obj = features.next(); RevFeature revFeature = obj.object(); Optional<Object> value = revFeature.get(attributeIndex); if (value.isPresent()) {
private @Nullable ObjectInfo<T> computeNext() { checkOpen(); try (RocksDBReference dbRef = dbhandle.getReference()) { while (noderefs.hasNext()) { final NodeRef ref = noderefs.next(); final ObjectId id = ref.getObjectId(); id.getRawValue(keybuff); final int size = dbRef.db().get(readOps, keybuff, valueBuff); if (RocksDB.NOT_FOUND == size) { listener.notFound(id); continue; } if (size > valueBuff.length) { valueBuff = dbRef.db().get(readOps, keybuff); } RevObject object = serializer().read(id, new ByteArrayInputStream(valueBuff)); if (type.isInstance(object)) { listener.found(id, Integer.valueOf(size)); return ObjectInfo.of(ref, type.cast(object)); } else { listener.notFound(id); } } } catch (Exception e) { throw new RuntimeException(e); } return null; } };
if (objType == null || objType.equals(obj.getType())) { ObjectInfo<T> info = ObjectInfo.of(n, type.cast(obj)); getObjectOpResult.add(info); sharedCache.put(obj);
public static SimpleFeature build(FeatureBuilder featureBuilder, ObjectInfo<RevFeature> info, @Nullable GeometryFactory geometryFactory) { String fid = info.node().getName(); RevFeature revFeature = info.object(); SimpleFeature feature = (SimpleFeature) featureBuilder.build(fid, revFeature, geometryFactory); feature.getUserData().put(Hints.USE_PROVIDED_FID, Boolean.TRUE); feature.getUserData().put(Hints.PROVIDED_FID, fid); feature.getUserData().put(RevFeature.class, revFeature); feature.getUserData().put(RevFeatureType.class, featureBuilder.getType()); return feature; } }
public Node node() { return ref().getNode(); }
public static <T extends RevObject> ObjectInfo<T> of(NodeRef ref, T obj) { checkNotNull(ref, "ref"); checkNotNull(obj, "obj"); return new ObjectInfo<T>(ref, obj); } }
private @Nullable ObjectInfo<T> computeNext() { checkOpen(); try (RocksDBReference dbRef = dbhandle.getReference()) { while (noderefs.hasNext()) { final NodeRef ref = noderefs.next(); final ObjectId id = ref.getObjectId(); id.getRawValue(keybuff); final int size = dbRef.db().get(readOps, keybuff, valueBuff); if (RocksDB.NOT_FOUND == size) { listener.notFound(id); continue; } if (size > valueBuff.length) { valueBuff = dbRef.db().get(readOps, keybuff); } RevObject object = serializer().read(id, new ByteArrayInputStream(valueBuff)); if (type.isInstance(object)) { listener.found(id, Integer.valueOf(size)); return ObjectInfo.of(ref, type.cast(object)); } else { listener.notFound(id); } } } catch (Exception e) { throw Throwables.propagate(e); } return null; } };
@Override public SimpleFeature apply(ObjectInfo<RevFeature> info) { FeatureBuilder featureBuilder = get(info.ref().getMetadataId()); return build(featureBuilder, info, null); }
T obj = cacheHit(id, cached); if (obj != null) { hits.add(new ObjectInfo<T>(node, obj));
@Override protected ObjectInfo<T> computeNext() { checkState(isOpen(), "Database is closed"); NodeRef ref; while ((ref = getNext(refs, null)) != null) { ObjectId id = ref.getObjectId(); RevObject obj = getIfPresent(id); if (obj == null || !type.isInstance(obj)) { listener.notFound(id); } else { listener.found(id, null); return ObjectInfo.of(ref, type.cast(obj)); } } return endOfData(); } };
@Override public SimpleFeature apply(ObjectInfo<RevFeature> info) { FeatureBuilder featureBuilder = get(info.ref().getMetadataId()); return build(featureBuilder, info, null); }
T obj = cacheHit(id, cached); if (obj != null) { hits.add(new ObjectInfo<T>(node, obj));
@Override protected ObjectInfo<T> computeNext() { checkState(isOpen(), "Database is closed"); NodeRef ref; while ((ref = getNext(refs, null)) != null) { ObjectId id = ref.getObjectId(); RevObject obj = getIfPresent(id); if (obj == null || !type.isInstance(obj)) { listener.notFound(id); } else { listener.found(id, null); return ObjectInfo.of(ref, type.cast(obj)); } } return endOfData(); } };
private ObjectInfo<T> tryNextCached() { while (nodes.hasNext()) { NodeRef node = nodes.peek(); ObjectId id = node.getObjectId(); RevObject cached = cache.getIfPresent(id); if (cached == null) { return null; } else { nodes.next(); T obj = cacheHit(id, cached); if (obj != null) { return new ObjectInfo<T>(node, obj); } } } return null; }