List of usage examples for com.google.common.collect SortedMapDifference entriesOnlyOnRight
@Override SortedMap<K, V> entriesOnlyOnRight();
From source file:org.geogit.api.plumbing.diff.TreeDifference.java
private SortedMap<NodeRef, NodeRef> findRenames(SortedMapDifference<String, MutableTree> difference) { SortedMap<String, MutableTree> entriesOnlyOnLeft = difference.entriesOnlyOnLeft(); SortedMap<String, MutableTree> entriesOnlyOnRight = difference.entriesOnlyOnRight(); SortedMap<NodeRef, NodeRef> matches = newTreeMap(); for (Map.Entry<String, MutableTree> right : entriesOnlyOnRight.entrySet()) { for (Map.Entry<String, MutableTree> left : entriesOnlyOnLeft.entrySet()) { Node leftNode = left.getValue().getNode(); Node rightNode = right.getValue().getNode(); if (rightNode.getObjectId().equals(leftNode.getObjectId())) { String leftParent = NodeRef.parentPath(left.getKey()); String rightParent = NodeRef.parentPath(right.getKey()); NodeRef leftRef = new NodeRef(leftNode, leftParent, ObjectId.NULL); NodeRef rightRef = new NodeRef(rightNode, rightParent, ObjectId.NULL); matches.put(leftRef, rightRef); }/* w ww . j a v a2s . c om*/ } } return matches; }
From source file:org.geogit.api.plumbing.diff.TreeDifference.java
/** * Finds child refs that exist on the right root tree, don't exist on the left root tree, and * are not renames./* w w w .j a v a2 s.c o m*/ * * @return */ public SortedSet<NodeRef> findNewTrees() { SortedMap<String, MutableTree> leftEntries = leftTree.getChildrenAsMap(); SortedMap<String, MutableTree> rightEntries = rightTree.getChildrenAsMap(); SortedMapDifference<String, MutableTree> difference; difference = difference(leftEntries, rightEntries); Map<String, MutableTree> entriesOnlyOnRight; entriesOnlyOnRight = newHashMap(difference.entriesOnlyOnRight()); // ignore renames Map<NodeRef, NodeRef> pureRenames = findRenames(difference); for (NodeRef renamedTo : pureRenames.values()) { entriesOnlyOnRight.remove(renamedTo.path()); } SortedSet<NodeRef> newTreeRefs = Sets.newTreeSet(); for (Map.Entry<String, MutableTree> newTree : entriesOnlyOnRight.entrySet()) { Node node = newTree.getValue().getNode(); String parentPath = NodeRef.parentPath(newTree.getKey()); // pass NULL to the NodeRef metadataId, to it defers to the one in the Node in case it // has one (see NodeRef.getMetadataId()) ObjectId metadataId = ObjectId.NULL; NodeRef ref = new NodeRef(node, parentPath, metadataId); newTreeRefs.add(ref); } return newTreeRefs; }