public @Nullable NodeId computeId(Node node) { return clusteringStrategy.computeId(node); }
public @Nullable NodeId computeId(Node node) { return clusteringStrategy.computeId(node); }
public @Override int bucket(Node node, int depth) { NodeId nodeId = computeId(node); TreeId bucketId = computeBucketId(nodeId, depth); int leafBucket = bucketId.leafBucket(); return leafBucket; }
private Map<NodeId, DAGNode> lazyNodes(final RevTree tree) { if (tree.isEmpty()) { return ImmutableMap.of(); } final TreeCache treeCache = storageProvider.getTreeCache(); final int cacheTreeId = treeCache.getTreeId(tree).intValue(); Map<NodeId, DAGNode> dagNodes = new HashMap<>(); List<Node> treeNodes = tree.trees(); for (int i = 0; i < treeNodes.size(); i++) { NodeId nodeId = computeId(treeNodes.get(i)); DAGNode dagNode = DAGNode.treeNode(cacheTreeId, i); dagNodes.put(nodeId, dagNode); } ImmutableList<Node> featureNodes = tree.features(); for (int i = 0; i < featureNodes.size(); i++) { NodeId nodeId = computeId(featureNodes.get(i)); DAGNode dagNode = DAGNode.featureNode(cacheTreeId, i); dagNodes.put(nodeId, dagNode); } return dagNodes; }
private Map<NodeId, DAGNode> lazyNodes(final RevTree tree) { if (tree.isEmpty()) { return Collections.emptyMap(); } final TreeCache treeCache = storageProvider.getTreeCache(); final int cacheTreeId = treeCache.getTreeId(tree).intValue(); Map<NodeId, DAGNode> dagNodes = new HashMap<>(); final int treesSize = tree.treesSize(); for (int i = 0; i < treesSize; i++) { NodeId nodeId = computeId(tree.getTree(i)); DAGNode dagNode = DAGNode.treeNode(cacheTreeId, i); dagNodes.put(nodeId, dagNode); } final int featuresSize = tree.featuresSize(); for (int i = 0; i < featuresSize; i++) { NodeId nodeId = computeId(tree.getFeature(i)); DAGNode dagNode = DAGNode.featureNode(cacheTreeId, i); dagNodes.put(nodeId, dagNode); } return dagNodes; }
/** * @param * @return {@code 0} if the operation resulted in no change, {@code 1} if the node was * inserted/updated, {@code -1} if the node was deleted */ public int put(final Node node) { @Nullable final NodeId nodeId = computeId(node); if (null == nodeId) { return 0; } // nodeId can be null if it's not to be added to the tree at all (e.g. a non spatial // feature in a spatial index) boolean remove = node.getObjectId().isNull(); int delta; writeLock.lock(); try { delta = put(root, nodeId, remove); dagCache.prune(); } finally { writeLock.unlock(); } if (!remove) { storageProvider.saveNode(nodeId, node); } return delta; }
/** * @param * @return {@code 0} if the operation resulted in no change, {@code 1} if the node was * inserted/updated, {@code -1} if the node was deleted */ public int put(final Node node) { @Nullable final NodeId nodeId = computeId(node); if (null == nodeId) { return 0; } // nodeId can be null if it's not to be added to the tree at all (e.g. a non spatial // feature in a spatial index) boolean remove = node.getObjectId().isNull(); int delta; writeLock.lock(); try { delta = put(root, nodeId, remove); dagCache.prune(); } finally { writeLock.unlock(); } if (!remove) { storageProvider.saveNode(nodeId, node); } return delta; }
NodeId nodeId = strategy.computeId(ref); Node currNode = strategy.getNode(nodeId); strategy.put(ref);
NodeId nodeId = strategy.computeId(ref); Node currNode = strategy.getNode(nodeId); strategy.put(ref);