• All Implemented Interfaces:
    Serializable, FeatureRealizer

    public class SimpleFeatureRealizer
    extends Object
    implements FeatureRealizer, Serializable

    FeatureRealizer which uses a lookup table to map template classes to implementations. Optionally, this implementation can fall back on another FeatureRealizer if it fails.

    When searching for a Feature implementation to match a specific Feature.Template class, the following search order is used:

    1. Mappings added to this SimpleFeatureRealizer, in reverse order of addition.
    2. Any mappings known to the fallback realizer, if one is installed.
    3. If no mapping can be found, a BioException is thrown.
    Author:
    Thomas Down
    See Also:
    Serialized Form
    • Method Detail

      • addImplementation

        public void addImplementation​(Class template,
                                      Class impl)
                               throws BioException

        Install a new mapping from a class of Feature.Template to a class of Feature implementations. The implementation class MUST have a public constructor of the form (Sequence, FeatureHolder, Feature.Template).

        A newly added implementation takes precendence over any existing implementations if a template can be realized by more than one implementation.

        Parameters:
        template - The class of templates to implement.
        impl - A class of Feature which can be used to implement these templates.
        Throws:
        BioException
      • realizeFeature

        public Feature realizeFeature​(Sequence seq,
                                      FeatureHolder parent,
                                      Feature.Template temp)
                               throws BioException

        Install a feature on the specified sequence.

        Specified by:
        realizeFeature in interface FeatureRealizer
        Parameters:
        seq - The sequence to which the feature will be added.
        parent - The FeatureHolder which is to be the Feature's immediate parent.
        temp - A description of the desired feature.
        Returns:
        A newly constructed feature, to be added to the sequence.
        Throws:
        BioException - If the feature could not be constructed.