/** * Return <code>true</code> if the {@link #getResult()} is not <code>null</code>. */ public boolean hasResult() { return getResult() != null; } }
/** * Return true if this {@link AddonTree} contians the given {@link Addon}. */ public boolean contains(final Addon addon) { ValuedVisitor<AddonImpl, Addon> visitor = new ValuedVisitor<AddonImpl, Addon>() { @Override public void visit(Addon instance) { if (instance.equals(addon)) { setResult((AddonImpl) instance); } } }; depthFirst(visitor); return visitor.hasResult(); }
@Override public Iterator<Addon> iterator() { ValuedVisitor<Set<Addon>, Addon> visitor = new ValuedVisitor<Set<Addon>, Addon>() { { setResult(new HashSet<Addon>()); } @Override public void visit(Addon instance) { if (!root.equals(instance)) getResult().add(instance); } }; breadthFirst(visitor); return visitor.getResult().iterator(); }
addon = visitor.getResult();