@Override public RevTree build() { return build(() -> false); }
@Override public boolean put(Node node) { return super.put(node); }
@Override public boolean remove(Node node) { return super.remove(node); }
@Override public boolean update(Node oldNode, Node newNode) { checkNotNull(oldNode, "Argument oldNode is null"); checkNotNull(newNode, "Argument newNode is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); int delta = clusteringStrategy().update(oldNode, newNode); return delta != 0; }
@Override public boolean update(Node oldNode, Node newNode) { return super.update(oldNode, newNode); }
@Override public boolean update(Node oldNode, Node newNode) { checkNotNull(oldNode, "Argument oldNode is null"); checkNotNull(newNode, "Argument newNode is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); int delta = clusteringStrategy().update(oldNode, newNode); return delta != 0; }
@Override public boolean put(final Node node) { checkNotNull(node, "Argument node is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); int delta = clusteringStrategy().put(node); checkState(delta != -1); return delta == 1; }
@Override public RevTree build() { return build(() -> false); }
@Override public boolean remove(Node node) { checkNotNull(node, "Argument node is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); boolean removed = clusteringStrategy().remove(node); return removed; }
public @Override void dispose() { if (!disposed.get()) { build(() -> true); } }
@Override public boolean put(final Node node) { checkNotNull(node, "Argument node is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); int delta = clusteringStrategy().put(node); checkState(delta != -1); return delta == 1; }
@Override public boolean remove(Node node) { checkNotNull(node, "Argument node is null"); checkState(!disposed.get(), "TreeBuilder is already disposed"); boolean removed = clusteringStrategy().remove(node); return removed; }
public int getDepth() { return clusteringStrategy().depth(); }
@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; } }