public class LazyFilterFeatureHolder extends java.lang.Object implements FeatureHolder
filter request with the
two queries ANDed together.FeatureHolder.EmptyFeatureHolderEMPTY_FEATURE_HOLDER, FEATURES, SCHEMA| Constructor and Description |
|---|
LazyFilterFeatureHolder(FeatureHolder fh,
FeatureFilter ff) |
| Modifier and Type | Method and Description |
|---|---|
void |
addChangeListener(ChangeListener cl)
Add a listener that will be informed of all changes.
|
void |
addChangeListener(ChangeListener cl,
ChangeType ct)
Add a listener that will be informed of changes of a given type.
|
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 temp)
Create a new Feature, and add it to this FeatureHolder.
|
java.util.Iterator |
features()
Iterate over the features in no well defined order.
|
FeatureHolder |
filter(FeatureFilter ff)
Query this set of features using a supplied
FeatureFilter. |
FeatureHolder |
filter(FeatureFilter ff,
boolean recurse)
Return a new FeatureHolder that contains all of the children of this one
that passed the filter fc.
|
protected ChangeSupport |
getChangeSupport() |
FeatureFilter |
getSchema()
Return a schema-filter for this
FeatureHolder. |
protected boolean |
hasListeners() |
boolean |
isUnchanging(ChangeType ct)
A particular ChangeType can never be raised by this Changeable.
|
void |
removeChangeListener(ChangeListener cl)
Remove a listener that was interested in all types of changes.
|
void |
removeChangeListener(ChangeListener cl,
ChangeType ct)
Remove a listener that was interested in a specific types of changes.
|
void |
removeFeature(Feature f)
Remove a feature from this FeatureHolder.
|
public LazyFilterFeatureHolder(FeatureHolder fh, FeatureFilter ff)
public java.util.Iterator features()
FeatureHolderfeatures in interface FeatureHolderpublic int countFeatures()
FeatureHoldercountFeatures in interface FeatureHolderpublic boolean containsFeature(Feature f)
FeatureHoldercontainsFeature in interface FeatureHolderf - the Feature to checkpublic FeatureHolder filter(FeatureFilter ff)
FeatureHolderFeatureFilter.filter in interface FeatureHolderff - the FeatureFilter to apply.filter.public FeatureHolder filter(FeatureFilter ff, boolean recurse)
FeatureHolderfilter in interface FeatureHolderff - 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.public Feature createFeature(Feature.Template temp) throws ChangeVetoException, BioException
FeatureHoldercreateFeature in interface FeatureHolderChangeVetoException - if this FeatureHolder does not support
creation of new features, or if the change was vetoedBioException - if something went wrong during creating the featurepublic void removeFeature(Feature f) throws ChangeVetoException, BioException
FeatureHolderremoveFeature in interface FeatureHolderChangeVetoException - if this FeatureHolder does not support
feature removal or if the change was vetoedBioException - if there was an error removing the featureprotected boolean hasListeners()
protected ChangeSupport getChangeSupport()
public final void addChangeListener(ChangeListener cl)
ChangeableaddChangeListener in interface Changeablecl - the ChangeListener to addpublic final void addChangeListener(ChangeListener cl, ChangeType ct)
ChangeableaddChangeListener in interface Changeablecl - the ChangeListenerct - the ChangeType it is to be informed ofpublic final void removeChangeListener(ChangeListener cl)
ChangeableremoveChangeListener in interface Changeablecl - a ChangeListener to removepublic final void removeChangeListener(ChangeListener cl, ChangeType ct)
ChangeableremoveChangeListener in interface Changeablecl - a ChangeListener to removect - the ChangeType that it was interested inpublic boolean isUnchanging(ChangeType ct)
ChangeableA particular ChangeType can never be raised by this Changeable.
If this returns true, then it is guaranteed that change events of this type (and all child types) can never under any circumstances be fired by this Changeable instance. If it returns false, that does not mean that this type of event will or even can be raised, but that it is worth registering listeners incase.
isUnchanging in interface Changeablect - the ChangeType to checkpublic FeatureFilter getSchema()
FeatureHolderFeatureHolder. This is a filter
which all Features 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)).
getSchema in interface FeatureHolder