/** * */ package org.seqcode.gseutils.datastructures; import java.util.*; import org.seqcode.gseutils.EventSource; import java.io.PrintStream; /** * @author Timothy Danford * */ public interface Taxonomy<X> extends Cloneable, EventSource<TaxonomyEvent> { public Collection<X> getAllElements(); public Collection<X> getImmediateElements(); public Taxonomy<X> getSubTaxonomy(String subAddr); public Taxonomy<X> getSubTaxonomy(Collection<String> addr); public Set<String> getAddrs(); public boolean hasAddr(String a); public void addElement(X v); public void addElement(Collection<String> addr, X v); public void recursiveRemoveElement(X v); public void addTaxonomy(String addr, Taxonomy<X> tax); public int size(); public int getNumSubTaxonomies(); public int getNumElements(); public Taxonomy<X> combine(Taxonomy<X> t); public void print(PrintStream ps); }