public void accept (final @Nonnull Taxon taxon, final @Nonnull TaxonomyVisitor visitor) { visitor.preVisit(taxon); visitor.visit(taxon); for (final Taxon subTaxon : taxon.findSubTaxa().results()) { accept(subTaxon, visitor); } visitor.postVisit(taxon); } }