private void checkExists(ObjectId id, Object o, ObjectStore store) { if (!store.exists(id)) { throw new IllegalStateException("Object " + o + " not found."); } }
private void checkExists(ObjectId id, Object o, ObjectStore store) { if (!store.exists(id)) { throw new IllegalStateException("Object " + o + " not found."); } }
@Override public boolean exists(ObjectId id) { return subject.get().exists(id); }
@Override public boolean exists(ObjectId id) { return subject.get().exists(id); }
@Override public @Nullable RevTree build(BooleanSupplier abortFlag) { Preconditions.checkNotNull(abortFlag); boolean alreadyDisposed = disposed.getAndSet(true); checkState(!alreadyDisposed, "TreeBuilder is already disposed"); RevTree tree; final ClusteringStrategy clusteringStrategy = clusteringStrategy(); try { tree = DAGTreeBuilder.build(clusteringStrategy, target, abortFlag); if (!abortFlag.getAsBoolean()) { Preconditions.checkState(tree != null); Preconditions.checkState(target.exists(tree.getId()), "tree not saved %s", tree); this.original = tree; } } finally { clusteringStrategy.dispose(); } return tree; }
@Override public final RevTree build(BooleanSupplier abortFlag) { Preconditions.checkNotNull(abortFlag); boolean alreadyDisposed = disposed.getAndSet(true); checkState(!alreadyDisposed, "TreeBuilder is already disposed"); RevTree tree; final ClusteringStrategy clusteringStrategy = clusteringStrategy(); try { tree = DAGTreeBuilder.build(clusteringStrategy, target, abortFlag); if (!abortFlag.getAsBoolean()) { Preconditions.checkState(tree != null); Preconditions.checkState(target.exists(tree.getId()), "tree not saved %s", tree); this.original = tree; } } finally { clusteringStrategy.dispose(); } return tree; } }
private void copyTree(final ObjectId treeId, final ObjectStore from, final ObjectStore to, final Set<ObjectId> metadataIds) { if (to.exists(treeId)) { return; } Supplier<Iterator<NodeRef>> refs = command(LsTreeOp.class).setReference(treeId.toString()) .setStrategy(Strategy.DEPTHFIRST_ONLY_FEATURES); // Supplier<Iterator<Node>> nodes = Suppliers.compose(// // it -> Iterators.transform(it, NodeRef::getNode)// // , refs); Iterator<Node> ns = Streams.stream(refs.get()).map(NodeRef::getNode).iterator(); Supplier<Iterator<Node>> nodes = Suppliers.ofInstance(ns); // move all features, recursively as given by the LsTreeOp strategy copyObjects(from, to, nodes, metadataIds); // iterator that traverses the tree,all its subtrees, an bucket trees Iterator<RevTree> allSubtreesAndBuckets = new AllTrees(treeId, from); to.putAll(allSubtreesAndBuckets); }
private void copyTree(final ObjectId treeId, final ObjectStore from, final ObjectStore to, final Set<ObjectId> metadataIds) { if (to.exists(treeId)) { return; } Supplier<Iterator<NodeRef>> refs = command(LsTreeOp.class).setReference(treeId.toString()) .setStrategy(Strategy.DEPTHFIRST_ONLY_FEATURES); Supplier<Iterator<Node>> nodes = Suppliers.compose(// (it) -> Iterators.transform(it, (ref) -> ref.getNode())// , refs); // move all features, recursively as given by the LsTreeOp strategy copyObjects(from, to, nodes, metadataIds); // iterator that traverses the tree,all its subtrees, an bucket trees Iterator<RevTree> allSubtreesAndBuckets = new AllTrees(treeId, from); to.putAll(allSubtreesAndBuckets); }
protected ObjectId createAndSaveTree(final List<Node> nodes, final boolean insertInListOrder) throws Exception { List<Node> insert = nodes; if (!insertInListOrder) { insert = new ArrayList<>(nodes); Collections.shuffle(insert); } RevTreeBuilder treeBuilder = createBuiler(); nodes.forEach((n) -> treeBuilder.put(n)); RevTree tree = treeBuilder.build(); assertTrue(objectStore.exists(tree.getId())); assertEquals(nodes.size(), tree.size()); return tree.getId(); }
protected ObjectId createAndSaveTree(final List<Node> nodes, final boolean insertInListOrder) throws Exception { List<Node> insert = nodes; if (!insertInListOrder) { insert = new ArrayList<>(nodes); Collections.shuffle(insert); } RevTreeBuilder treeBuilder = createBuiler(); nodes.forEach((n) -> treeBuilder.put(n)); RevTree tree = treeBuilder.build(); assertTrue(objectStore.exists(tree.getId())); assertEquals(nodes.size(), tree.size()); return tree.getId(); }
@Test public void testDeleteAll() { ImmutableList<RevObject> objs = ImmutableList.of(feature(0, null, "some value"), feature(1, "value", new Integer(111)), feature(2, (Object) null)); for (RevObject o : objs) { assertTrue(db.put(o)); } ObjectId notInDb1 = RevObjectTestSupport.hashString("fake1"); ObjectId notInDb2 = RevObjectTestSupport.hashString("fake2"); Function<RevObject, ObjectId> toId = p -> p.getId(); List<ObjectId> ids = Lists.newArrayList(concat(singletonIterator(notInDb1), transform(objs.iterator(), toId), singletonIterator(notInDb2))); db.deleteAll(ids.iterator()); for (ObjectId id : ids) { assertFalse(db.exists(id)); } }
@Test public void testDeleteAll() { ImmutableList<RevObject> objs = ImmutableList.of(feature(0, null, "some value"), feature(1, "value", new Integer(111)), feature(2, (Object) null)); for (RevObject o : objs) { assertTrue(db.put(o)); } ObjectId notInDb1 = RevObjectTestSupport.hashString("fake1"); ObjectId notInDb2 = RevObjectTestSupport.hashString("fake2"); Function<RevObject, ObjectId> toId = p -> p.getId(); List<ObjectId> ids = Lists.newArrayList(concat(singletonIterator(notInDb1), transform(objs.iterator(), toId), singletonIterator(notInDb2))); db.deleteAll(ids.iterator()); for (ObjectId id : ids) { assertFalse(db.exists(id)); } }
@Test public void testDelete() { assertTrue(db.put(RevTree.EMPTY)); db.delete(RevTree.EMPTY_TREE_ID); assertFalse(db.exists(RevTree.EMPTY_TREE_ID)); }
@Test public void testDelete() { assertTrue(db.put(RevTree.EMPTY)); db.delete(RevTree.EMPTY_TREE_ID); assertFalse(db.exists(RevTree.EMPTY_TREE_ID)); }
@Test public void testChecksClosed() { db.close(); checkClosed(() -> db.delete(ObjectId.NULL)); checkClosed(() -> db.deleteAll(emptyIterator())); checkClosed(() -> db.deleteAll(emptyIterator(), NOOP_LISTENER)); checkClosed(() -> db.exists(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.getAll(ImmutableList.of())); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER)); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, RevTree.class)); checkClosed(() -> db.getIfPresent(ObjectId.NULL)); checkClosed(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.lookUp("abcd1234")); checkClosed(() -> db.put(RevTree.EMPTY)); checkClosed(() -> db.putAll(emptyIterator())); checkClosed(() -> db.putAll(emptyIterator(), NOOP_LISTENER)); }
@Test public void testChecksClosed() { db.close(); checkClosed(() -> db.delete(ObjectId.NULL)); checkClosed(() -> db.deleteAll(emptyIterator())); checkClosed(() -> db.deleteAll(emptyIterator(), NOOP_LISTENER)); checkClosed(() -> db.exists(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID)); checkClosed(() -> db.get(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.getAll(ImmutableList.of())); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER)); checkClosed(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, RevTree.class)); checkClosed(() -> db.getIfPresent(ObjectId.NULL)); checkClosed(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, RevTree.class)); checkClosed(() -> db.lookUp("abcd1234")); checkClosed(() -> db.put(RevTree.EMPTY)); checkClosed(() -> db.putAll(emptyIterator())); checkClosed(() -> db.putAll(emptyIterator(), NOOP_LISTENER)); }
@Test public void testChecksNullArgs() { checkNullArgument(() -> db.delete(null)); checkNullArgument(() -> db.deleteAll(null)); checkNullArgument(() -> db.deleteAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.deleteAll(emptyIterator(), null)); checkNullArgument(() -> db.exists(null)); checkNullArgument(() -> db.get(null)); checkNullArgument(() -> db.get(null, RevTree.class)); checkNullArgument(() -> db.get(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.getAll(null)); checkNullArgument(() -> db.getAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, null)); checkNullArgument(() -> db.getAll(ImmutableList.of(), null)); checkNullArgument(() -> db.getIfPresent(null)); checkNullArgument(() -> db.getIfPresent(null, RevTree.class)); checkNullArgument(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.lookUp(null)); checkNullArgument(() -> db.put(null)); checkNullArgument(() -> db.putAll(null)); checkNullArgument(() -> db.putAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.putAll(emptyIterator(), null)); }
@Test public void testChecksNullArgs() { checkNullArgument(() -> db.delete(null)); checkNullArgument(() -> db.deleteAll(null)); checkNullArgument(() -> db.deleteAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.deleteAll(emptyIterator(), null)); checkNullArgument(() -> db.exists(null)); checkNullArgument(() -> db.get(null)); checkNullArgument(() -> db.get(null, RevTree.class)); checkNullArgument(() -> db.get(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.getAll(null)); checkNullArgument(() -> db.getAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.getAll(ImmutableList.of(), NOOP_LISTENER, null)); checkNullArgument(() -> db.getAll(ImmutableList.of(), null)); checkNullArgument(() -> db.getIfPresent(null)); checkNullArgument(() -> db.getIfPresent(null, RevTree.class)); checkNullArgument(() -> db.getIfPresent(RevTree.EMPTY_TREE_ID, null)); checkNullArgument(() -> db.lookUp(null)); checkNullArgument(() -> db.put(null)); checkNullArgument(() -> db.putAll(null)); checkNullArgument(() -> db.putAll(null, NOOP_LISTENER)); checkNullArgument(() -> db.putAll(emptyIterator(), null)); }