bounds.expandToInclude(JTS.bounds(g, crs));
}
}
}
NodeRef node = new NodeRef(Node.create(NodeRef.nodeFromPath(path), objectId, ObjectId.NULL,
TYPE.FEATURE, bounds), NodeRef.parentPath(path), ObjectId.NULL);
Optional<NodeRef> parentNode = geogig.command(FindTreeChild.class)
.setParent(geogig.workingTree().getTree()).setChildPath(node.getParentPath())
.setIndex(true).call();
RevTreeBuilder treeBuilder = null;
ObjectId metadataId = ObjectId.NULL;
if (parentNode.isPresent()) {
metadataId = parentNode.get().getMetadataId();
Optional<RevTree> parsed = geogig.command(RevObjectParse.class)
.setObjectId(parentNode.get().getNode().getObjectId()).call(RevTree.class);
checkState(parsed.isPresent(), "Parent tree couldn't be found in the repository.");
treeBuilder = new RevTreeBuilder(geogig.objectDatabase(), parsed.get());
treeBuilder.remove(node.getNode().getName());
} else {
treeBuilder = new RevTreeBuilder(geogig.stagingDatabase());
}
treeBuilder.put(node.getNode());
ObjectId newTreeId = geogig
.command(WriteBack.class)
.setAncestor(
geogig.workingTree().getTree().builder(geogig.stagingDatabase()))
.setChildPath(node.getParentPath()).setToIndex(true).setTree(treeBuilder.build())
.setMetadataId(metadataId).call();
geogig.workingTree().updateWorkHead(newTreeId);
AddOp command = geogig.command(AddOp.class);