/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cismap.commons.features; import java.util.Collection; import java.util.List; import de.cismet.cismap.commons.*; /** * DOCUMENT ME! * * @author thorsten.hell@cismet.de * @version $Revision$, $Date$ */ public interface FeatureCollection extends ServiceLayer { //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @param l DOCUMENT ME! */ void addFeatureCollectionListener(FeatureCollectionListener l); /** * DOCUMENT ME! * * @param l DOCUMENT ME! */ void removeFeatureCollectionListener(FeatureCollectionListener l); /** * DOCUMENT ME! * * @return DOCUMENT ME! */ int getFeatureCount(); /** * DOCUMENT ME! * * @return DOCUMENT ME! */ List<Feature> getAllFeatures(); /** * DOCUMENT ME! * * @param feature DOCUMENT ME! * * @return DOCUMENT ME! */ boolean contains(final Feature feature); /** * DOCUMENT ME! * * @param index DOCUMENT ME! * * @return DOCUMENT ME! */ Feature getFeature(int index); /** * DOCUMENT ME! * * @return DOCUMENT ME! */ boolean areFeaturesEditable(); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void select(Feature f); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void select(Collection<Feature> cf); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void addToSelection(Feature f); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void addToSelection(Collection<Feature> cf); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void unselect(Feature f); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void unselect(Collection<Feature> cf); /** * DOCUMENT ME! */ void unselectAll(); /** * DOCUMENT ME! * * @param quiet DOCUMENT ME! */ void unselectAll(boolean quiet); /** * DOCUMENT ME! * * @return DOCUMENT ME! */ Collection getSelectedFeatures(); /** * DOCUMENT ME! * * @param f DOCUMENT ME! * * @return DOCUMENT ME! */ boolean isSelected(Feature f); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void addFeature(Feature f); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void addFeatures(Collection<? extends Feature> cf); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void removeFeatures(Collection<Feature> cf); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void removeFeature(Feature f); /** * DOCUMENT ME! * * @param cf DOCUMENT ME! */ void substituteFeatures(Collection<Feature> cf); /** * DOCUMENT ME! */ void removeAllFeatures(); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void holdFeature(Feature f); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void unholdFeature(Feature f); /** * DOCUMENT ME! * * @param f DOCUMENT ME! * * @return DOCUMENT ME! */ boolean isHoldFeature(Feature f); /** * DOCUMENT ME! * * @param holdAll DOCUMENT ME! */ void setHoldAll(boolean holdAll); /** * DOCUMENT ME! * * @param f DOCUMENT ME! */ void reconsiderFeature(Feature f); }