private Multimap<Integer, Node> getChangesByBucket() { Multimap<Integer, Node> changesByBucket = ArrayListMultimap.create(); if (!featureChanges.isEmpty()) { for (Node change : featureChanges.values()) { Integer bucketIndex = computeBucket(change.getName()); changesByBucket.put(bucketIndex, change); } featureChanges.clear(); } if (!treeChanges.isEmpty()) { for (Node change : treeChanges.values()) { Integer bucketIndex = computeBucket(change.getName()); changesByBucket.put(bucketIndex, change); } treeChanges.clear(); } if (!deletes.isEmpty()) { for (String delete : deletes) { Integer bucketIndex = computeBucket(delete); Node node = Node.create(delete, ObjectId.NULL, ObjectId.NULL, TYPE.FEATURE, null); changesByBucket.put(bucketIndex, node); } deletes.clear(); } return changesByBucket; }
private Optional<Node> getInternal(final String key, final boolean deep) { Node found = featureChanges.get(key); if (found == null) { found = treeChanges.get(key); } if (found != null) { return Optional.of(found); } if (!deep) { return Optional.absent(); } if (deletes.contains(key)) { return Optional.absent(); } final Integer bucketIndex = computeBucket(key); final Bucket bucket = bucketTreesByBucket.get(bucketIndex); if (bucket == null) { return Optional.absent(); } RevTree subtree = loadTree(bucket.getObjectId()); DepthSearch depthSearch = new DepthSearch(obStore); Optional<Node> node = depthSearch.getDirectChild(subtree, key, depth + 1); if (node.isPresent()) { return Optional.of(node.get()); } else { return Optional.absent(); } }
private Multimap<Integer, Node> getChangesByBucket() { Multimap<Integer, Node> changesByBucket = ArrayListMultimap.create(); if (!featureChanges.isEmpty()) { for (Node change : featureChanges.values()) { Integer bucketIndex = computeBucket(change.getName()); changesByBucket.put(bucketIndex, change); } featureChanges.clear(); } if (!treeChanges.isEmpty()) { for (Node change : treeChanges.values()) { Integer bucketIndex = computeBucket(change.getName()); changesByBucket.put(bucketIndex, change); } treeChanges.clear(); } if (!deletes.isEmpty()) { for (String delete : deletes) { Integer bucketIndex = computeBucket(delete); Node node = RevObjectFactory.defaultInstance().createNode(delete, ObjectId.NULL, ObjectId.NULL, TYPE.FEATURE, null, null); changesByBucket.put(bucketIndex, node); } deletes.clear(); } return changesByBucket; }
private Optional<Node> getInternal(final String key, final boolean deep) { Node found = featureChanges.get(key); if (found == null) { found = treeChanges.get(key); } if (found != null) { return Optional.of(found); } if (!deep) { return Optional.absent(); } if (deletes.contains(key)) { return Optional.absent(); } final Integer bucketIndex = computeBucket(key); final Bucket bucket = bucketTreesByBucket.get(bucketIndex); if (bucket == null) { return Optional.absent(); } RevTree subtree = loadTree(bucket.getObjectId()); DepthSearch depthSearch = new DepthSearch(obStore); Optional<Node> node = depthSearch.getDirectChild(subtree, key, depth + 1); if (node.isPresent()) { return Optional.of(node.get()); } else { return Optional.absent(); } }