org.biojava.bio.seq
Class SimpleFeatureRealizer

java.lang.Object
  extended by org.biojava.bio.seq.SimpleFeatureRealizer
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

Constructor Summary
SimpleFeatureRealizer()
           
SimpleFeatureRealizer(FeatureRealizer fallBack)
           
 
Method Summary
 void addImplementation(Class template, Class impl)
          Install a new mapping from a class of Feature.Template to a class of Feature implementations.
 Feature realizeFeature(Sequence seq, FeatureHolder parent, Feature.Template temp)
          Install a feature on the specified sequence.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleFeatureRealizer

public SimpleFeatureRealizer()

SimpleFeatureRealizer

public SimpleFeatureRealizer(FeatureRealizer fallBack)
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
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.