/** * @return the number of {@link Node}s in the {@link #trees} property */ public default int treesSize() { return trees().size(); }
public Trees(RevTree tree) { if (tree.numTrees() == 0) { this.trees = Collections.emptyIterator(); } else if (tree.treesSize() > 0) { this.trees = Iterators.filter(tree.trees().iterator(), boundsFilter); } else if (tree.bucketsSize() > 0) { this.trees = new TreeBuckets(tree); } else { this.trees = Collections.emptyIterator(); } }
public static void deepEquals(@NonNull RevTree expected, @NonNull RevTree actual) { assertEquals(TYPE.TREE, actual.getType()); assertEquals(expected.getId(), expected.getId()); assertEquals(expected.size(), expected.size()); assertEquals(expected.numTrees(), expected.numTrees()); assertEquals(expected.treesSize(), expected.treesSize()); assertEquals(expected.featuresSize(), expected.featuresSize()); assertEquals(expected.bucketsSize(), expected.bucketsSize()); deepEquals(expected.trees(), actual.trees()); deepEquals(expected.features(), actual.features()); deepEquals(expected.getBuckets(), actual.getBuckets()); for (Bucket b : expected.getBuckets()) { deepEquals(b, actual.getBucket(b.getIndex()).orElse(null)); } }
public default Node getTree(int index) { return trees().get(index); }
/** * Performs the given action for each element of the {@link #trees} collection respecting its * iteration order */ public default void forEachTree(Consumer<Node> consumer) { trees().forEach(consumer); }
public AllTrees(ObjectId id, ObjectStore from) { this.from = from; this.tree = from.getTree(id); this.trees = tree.trees().iterator(); buckets = tree.getBuckets().iterator(); bucketTrees = Collections.emptyIterator(); }
public Trees(RevTree tree) { if (tree.numTrees() == 0) { this.trees = Collections.emptyIterator(); } else if (!tree.trees().isEmpty()) { this.trees = Iterators.filter(tree.trees().iterator(), boundsFilter); } else if (!tree.buckets().isEmpty()) { this.trees = new TreeBuckets(tree); } else { this.trees = Collections.emptyIterator(); } }
public AllTrees(ObjectId id, ObjectStore from) { this.from = from; this.tree = from.getTree(id); this.trees = tree.trees().iterator(); buckets = tree.buckets().values().iterator(); bucketTrees = Collections.emptyIterator(); }
@Override public void funnel(RevTree from, PrimitiveSink into) { ImmutableList<Node> trees = from.trees(); ImmutableList<Node> features = from.features(); ImmutableSortedMap<Integer, Bucket> buckets = from.buckets(); funnel(into, trees, features, buckets); }
private int writeLeafTree(RevTree tree, FlatBufferBuilder builder) { return writeLeafTree(builder, tree.size(), tree.trees(), tree.features()); }
@Override protected void print(RevTree revTree, Writer w) throws IOException { println(w, "size\t", Long.toString(revTree.size())); println(w, "numtrees\t", Integer.toString(revTree.numTrees())); writeChildren(w, revTree.trees()); writeChildren(w, revTree.features()); writeBuckets(w, revTree.getBuckets()); }
@Override protected void print(RevTree revTree, Writer w) throws IOException { println(w, "size\t", Long.toString(revTree.size())); println(w, "numtrees\t", Integer.toString(revTree.numTrees())); writeChildren(w, revTree.trees()); writeChildren(w, revTree.features()); writeBuckets(w, revTree.buckets()); }
public static Set<ObjectId> verifyAllReachableTrees(ObjectStore store, ObjectId treeId) { Set<ObjectId> allIds = new HashSet<>(); RevTree tree = store.getTree(treeId); allIds.add(tree.getId()); tree.trees() .forEach(node -> allIds.addAll(verifyAllReachableTrees(store, node.getObjectId()))); tree.getBuckets() .forEach(b -> allIds.addAll(verifyAllReachableTrees(store, b.getObjectId()))); return allIds; } }
public static Envelope boundsOf(RevTree tree) { Envelope env = new Envelope(); tree.buckets().values().forEach((b) -> b.expand(env)); tree.trees().forEach((t) -> t.expand(env)); tree.features().forEach((f) -> f.expand(env)); return env; }
public static void assertEqualsFully(RevTree o1, RevTree o2) { assertEquals(o1.size(), o2.size()); assertEquals(o1.numTrees(), o2.numTrees()); assertEqualsFully(o1.features(), o2.features()); assertEqualsFully(o1.trees(), o2.trees()); assertEquals(Lists.newArrayList(o1.getBuckets()), Lists.newArrayList(o2.getBuckets())); }
private void assertEqualsFully(RevTree o1, RevTree o2) { assertEquals(o1.size(), o2.size()); assertEquals(o1.numTrees(), o2.numTrees()); assertNodesEqual(o1.features(), o2.features()); assertNodesEqual(o1.trees(), o2.trees()); assertEquals(Lists.newArrayList(o1.getBuckets()), Lists.newArrayList(o2.getBuckets())); }
private RevTree forceTreeId(RevTreeBuilder b, ObjectId treeId) { RevTree tree = b.build(); long size = tree.size(); int childTreeCount = tree.numTrees(); ImmutableList<Node> trees = tree.trees(); ImmutableList<Node> features = tree.features(); SortedMap<Integer, Bucket> buckets = tree.buckets(); RevTree fakenId = RevTreeBuilder.create(treeId, size, childTreeCount, trees, features, buckets); return fakenId; }