@SuppressWarnings("rawtypes") @Override public void visit(Collection collection) { Iterator iterator = collection.iterator(); while (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof Visitable) ((Visitable) o).accept(this); else if (o instanceof Collection) visit((Collection) o); } }
public double calculatePostage() { // create a visitor PostageVisitor visitor = new PostageVisitor(); // iterate through all items for (Visitable item : items) { item.accept(visitor); } double postage = visitor.getTotalPostage(); return postage; }
public void visitVisitableCollection(VisitableCollection collection) { for (Object o : collection.value) { if (o instanceof Visitable) ((Visitable) o).accept(this); } }