public void preload(Iterable<ObjectId> trees) { Iterator<RevTree> preloaded = store.getAll(trees, BulkOpListener.NOOP_LISTENER, RevTree.class); while (preloaded.hasNext()) { getTreeId(preloaded.next()); } } }
public void preload(Iterable<ObjectId> trees) { Iterator<RevTree> preloaded = store.getAll(trees, BulkOpListener.NOOP_LISTENER, RevTree.class); while (preloaded.hasNext()) { getTreeId(preloaded.next()); } } }
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; }
public RevTree getTree(final ObjectId treeId) { Integer internalId = oidMapping.inverse().get(treeId); final RevTree tree; if (internalId == null) { tree = store.getTree(treeId); getTreeId(tree); if (tree.bucketsSize() > 0) { List<ObjectId> bucketIds = new ArrayList<>(tree.bucketsSize()); tree.forEachBucket(bucket -> bucketIds.add(bucket.getObjectId())); preload(bucketIds); } } else { tree = resolve(internalId.intValue()); } return tree; }
public RevTree getTree(final ObjectId treeId) { Integer internalId = oidMapping.inverse().get(treeId); final RevTree tree; if (internalId == null) { tree = store.getTree(treeId); getTreeId(tree); if (!tree.buckets().isEmpty()) { preload(Iterables.transform(tree.buckets().values(), (b) -> b.getObjectId())); } } else { tree = resolve(internalId.intValue()); } return tree; }
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; }