@Override protected DiffObjectCount _call() { checkState(oldRefSpec != null || oldTreeId != null, "old ref spec not provided"); checkState(newRefSpec != null || newTreeId != null, "new ref spec not provided"); final RevTree oldTree = getTree(oldRefSpec, oldTreeId); final RevTree newTree = getTree(newRefSpec, newTreeId); DiffObjectCount diffCount; ObjectDatabase index = objectDatabase(); PreOrderDiffWalk visitor = new PreOrderDiffWalk(oldTree, newTree, index, index); DiffCountConsumer counter = new DiffCountConsumer(index); PreOrderDiffWalk.Consumer filter = counter; if (!pathFilters.isEmpty()) { filter = new PathFilteringDiffConsumer(pathFilters, counter); } visitor.walk(filter); diffCount = counter.get(); return diffCount; }
@Override public boolean bucket(NodeRef leftParent, NodeRef rightParent, BucketIndex bucketIndex, @Nullable Bucket left, @Nullable Bucket right) { if (bucketIndex.left().isEmpty() || bucketIndex.right().isEmpty()) { Bucket bucket = left == null ? right : left; addTreeFeatures(bucket.getObjectId(), left != null, right != null); return false; } return true; }
private DiffObjectCount count(RevTree left, RevTree right) { PreOrderDiffWalk visitor = new PreOrderDiffWalk(left, right, odb, odb); DiffCountConsumer consumer = new DiffCountConsumer(odb); visitor.walk(consumer); DiffObjectCount count = consumer.get(); return count; }
@Override public boolean bucket(NodeRef leftParent, NodeRef rightParent, BucketIndex bucketIndex, @Nullable Bucket left, @Nullable Bucket right) { if (bucketIndex.left().isEmpty() || bucketIndex.right().isEmpty()) { Bucket bucket = left == null ? right : left; RevTree tree = (left == null ? rightSource : leftSource).getTree(bucket.getObjectId()); addTreeFeatures(tree, left != null, right != null); return false; } return true; }
private DiffObjectCount count(RevTree left, RevTree right) { PreOrderDiffWalk visitor = new PreOrderDiffWalk(left, right, odb, odb); DiffCountConsumer consumer = new DiffCountConsumer(odb); visitor.walk(consumer); DiffObjectCount count = consumer.get(); return count; }
@Override public boolean tree(NodeRef left, NodeRef right) { final NodeRef node = left == null ? right : left; if (NodeRef.ROOT.equals(node.name())) { // ignore the call on the root tree and follow the traversal return true; } if (left == null || right == null) { addTreeFeatures(node.getObjectId(), left != null, right != null); if (left == null) { count.addedTrees(1); } else { count.removedTrees(1); } return false; } count.changedTrees(1);// the tree changed, or this method wouldn't have been called return true; }
@Override protected DiffObjectCount _call() { checkState(oldRefSpec != null || oldTreeId != null || oldTree != null, "old ref spec not provided"); checkState(newRefSpec != null || newTreeId != null || newTree != null, "new ref spec not provided"); final ObjectStore leftSource = this.leftSource == null ? objectDatabase() : this.leftSource; final ObjectStore rightSource = this.rightSource == null ? objectDatabase() : this.rightSource; final RevTree oldTree = getTree(oldRefSpec, oldTreeId, this.oldTree, leftSource); final RevTree newTree = getTree(newRefSpec, newTreeId, this.newTree, rightSource); DiffObjectCount diffCount; PreOrderDiffWalk visitor = new PreOrderDiffWalk(oldTree, newTree, leftSource, rightSource); DiffCountConsumer counter = new DiffCountConsumer(leftSource, rightSource); PreOrderDiffWalk.Consumer filter = counter; if (!pathFilters.isEmpty()) { filter = new PathFilteringDiffConsumer(pathFilters, counter); } visitor.walk(filter); diffCount = counter.get(); return diffCount; }
@Override public boolean tree(NodeRef left, NodeRef right) { final NodeRef node = left == null ? right : left; if (NodeRef.ROOT.equals(node.name())) { // ignore the call on the root tree and follow the traversal return true; } if (left == null || right == null) { RevTree tree = (left == null ? rightSource : leftSource).getTree(node.getObjectId()); addTreeFeatures(tree, left != null, right != null); if (left == null) { count.addedTrees(1); } else { count.removedTrees(1); } return false; } count.changedTrees(1);// the tree changed, or this method wouldn't have been called return true; }