@Override public Void call() { RevTree tree = builder.build(); Node treeNode; { ObjectId treeMetadataId = builder.getDefaultMetadataId(); String name = NodeRef.nodeFromPath(treePath); ObjectId oid = tree.getId(); Envelope bounds = SpatialOps.boundsOf(tree); treeNode = Node.create(name, oid, treeMetadataId, RevObject.TYPE.TREE, bounds); } final String parentPath = NodeRef.parentPath(treePath); final ObjectId parentMetadataId; if (NodeRef.ROOT.equals(parentPath)) { parentMetadataId = ObjectId.NULL; } else { Optional<NodeRef> parentRef = context .command(FindTreeChild.class) .setChildPath(parentPath) .setIndex(true) .setParent(workHead) .setParentPath(NodeRef.ROOT) .call(); parentMetadataId = parentRef.isPresent() ? parentRef.get().getMetadataId() : ObjectId.NULL; } NodeRef newTreeRef = new NodeRef(treeNode, parentPath, parentMetadataId); target.put(newTreeRef, tree); return null; }
public Node put(final ObjectId revFeatureId, final Feature feature) { final RevTreeBuilder2 treeBuilder = getTreeBuilder(feature); String fid = feature.getIdentifier().getID(); BoundingBox bounds = feature.getBounds(); FeatureType type = feature.getType(); final Node node = treeBuilder.putFeature(revFeatureId, fid, bounds, type); return node; }
public void remove(FeatureToDelete feature) { final RevTreeBuilder2 treeBuilder = getTreeBuilder(feature); String fid = feature.getIdentifier().getID(); treeBuilder.removeFeature(fid); }