|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface FeatureHolder
The interface for objects that contain features.
Feature holders abstract the containment of a feature from the objects that implements both the real container or the features. FeatureHolders are like sets of features.
RichFeatureRelationshipHolder
Nested Class Summary | |
---|---|
static class |
FeatureHolder.EmptyFeatureHolder
|
Field Summary | |
---|---|
static FeatureHolder |
EMPTY_FEATURE_HOLDER
|
static ChangeType |
FEATURES
Signals that features have been added or removed directly within this FeatureHolder. |
static ChangeType |
SCHEMA
Signals that the schema of this FeatureHolder has changed. |
Method Summary | |
---|---|
boolean |
containsFeature(Feature f)
Check if the feature is present in this holder. |
int |
countFeatures()
Count how many features are contained. |
Feature |
createFeature(Feature.Template ft)
Create a new Feature, and add it to this FeatureHolder. |
Iterator<Feature> |
features()
Iterate over the features in no well defined order. |
FeatureHolder |
filter(FeatureFilter filter)
Query this set of features using a supplied FeatureFilter . |
FeatureHolder |
filter(FeatureFilter fc,
boolean recurse)
Return a new FeatureHolder that contains all of the children of this one that passed the filter fc. |
FeatureFilter |
getSchema()
Return a schema-filter for this FeatureHolder . |
void |
removeFeature(Feature f)
Remove a feature from this FeatureHolder. |
Methods inherited from interface org.biojava.utils.Changeable |
---|
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener |
Field Detail |
---|
static final ChangeType FEATURES
static final ChangeType SCHEMA
static final FeatureHolder EMPTY_FEATURE_HOLDER
Method Detail |
---|
int countFeatures()
Iterator<Feature> features()
FeatureHolder filter(FeatureFilter fc, boolean recurse)
fc
- the FeatureFilter to applyrecurse
- true if all features-of-features should be scanned, and a
single flat collection of features returned, or false if
just immediate children should be filtered.FeatureHolder filter(FeatureFilter filter)
FeatureFilter
.
filter
- the FeatureFilter
to apply.
filter
.Feature createFeature(Feature.Template ft) throws BioException, ChangeVetoException
BioException
- if something went wrong during creating the feature
ChangeVetoException
- if this FeatureHolder does not support
creation of new features, or if the change was vetoedvoid removeFeature(Feature f) throws ChangeVetoException, BioException
ChangeVetoException
- if this FeatureHolder does not support
feature removal or if the change was vetoed
BioException
- if there was an error removing the featureboolean containsFeature(Feature f)
f
- the Feature to check
FeatureFilter getSchema()
FeatureHolder
. This is a filter
which all Feature
s immediately contained by this FeatureHolder
will match. It need not directly match their child features, but it can (and should!) provide
information about them using FeatureFilter.OnlyChildren
filters. In cases where there
is no feature hierarchy, this can be indicated by including FeatureFilter.leaf
in
the schema filter.
For the truly non-informative case, it is possible to return FeatureFilter.all
. However,
it is almost always possible to provide slightly more information that this. For example, Sequence
objects should, at a minimum, return FeatureFilter.top_level
. Feature
objects
should, as a minimum, return FeatureFilter.ByParent(new FeatureFilter.ByFeature(this))
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |