Class SimpleFeatureRealizer

  • All Implemented Interfaces:
    java.io.Serializable, FeatureRealizer

    public class SimpleFeatureRealizer
    extends java.lang.Object
    implements FeatureRealizer, java.io.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
    • Constructor Detail

      • SimpleFeatureRealizer

        public SimpleFeatureRealizer()
      • SimpleFeatureRealizer

        public SimpleFeatureRealizer​(FeatureRealizer fallBack)
    • Method Detail

      • addImplementation

        public void addImplementation​(java.lang.Class template,
                                      java.lang.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
        Description copied from interface: FeatureRealizer
        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.