protected abstract Node resolve(RevTree tree);
@Override public final Node resolve(TreeCache cache) { RevTree tree = cache.resolve(leafRevTreeId); ImmutableList<Node> collection = collection(tree); Node node; try { node = collection.get(nodeIndex); } catch (IndexOutOfBoundsException e) { e.printStackTrace(); throw e; } return node; }
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; }
@Test public void lazyFeatureNodeResolve() { DAGNode node = DAGNode.featureNode(5, 511); when(cache.resolve(eq(5))).thenReturn(featuresTree); Node resolved = node.resolve(cache); assertNotNull(resolved); Node expected = featuresTree.features().get(511); RevObjectTestUtil.deepEquals(expected, resolved); }
@Test public void lazyFeatureNodeResolve() { DAGNode node = DAGNode.featureNode(5, 511); when(cache.resolve(eq(5))).thenReturn(featuresTree); Node resolved = node.resolve(cache); assertNotNull(resolved); assertSame(featuresTree.features().get(511), resolved); }