Package org.biojava.bio.symbol
Class AbstractReversibleTranslationTable
- java.lang.Object
-
- org.biojava.bio.symbol.AbstractReversibleTranslationTable
-
- All Implemented Interfaces:
ReversibleTranslationTable
,TranslationTable
- Direct Known Subclasses:
SimpleReversibleTranslationTable
public abstract class AbstractReversibleTranslationTable extends Object implements ReversibleTranslationTable
an abstract class implementing basic functionality of a translation table that translates Symbols from one Alphabet to another.- Author:
- Matthew Pocock, Keith James (docs), Thomas Down, Greg Cox, Mark Schreiber, David Huen (refactoring)
-
-
Field Summary
-
Fields inherited from interface org.biojava.bio.symbol.TranslationTable
ALT_YEAST_NUC, ASCID_MITO, BACTERIAL, BLEPH_MNUC, CHLORO_MITO, CILIATE_NUC, ECHIN_MITO, EUPL_NUC, FWORM_MITO, INVERT_MITO, MOLD_MITO, SCENE_MITO, TREMA_MITO, UNIVERSAL, VERT_MITO, YEAST_MITO
-
-
Constructor Summary
Constructors Constructor Description AbstractReversibleTranslationTable()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Symbol
doTranslate(Symbol sym)
this method is expected to translate any symbol in the source alphabet.protected abstract Symbol
doUntranslate(Symbol sym)
this method is expected to reverse-translate any symbol in the source alphabet.abstract Alphabet
getSourceAlphabet()
The alphabet of Symbols that can be translated.abstract Alphabet
getTargetAlphabet()
The alphabet of Symbols that will be produced.Symbol
translate(Symbol sym)
Translate a single symbol from source alphabet to the target alphabet.Symbol
untranslate(Symbol sym)
Translate a single symbol from target alphabet to the source alphabet.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.biojava.bio.symbol.TranslationTable
translate
-
-
-
-
Constructor Detail
-
AbstractReversibleTranslationTable
public AbstractReversibleTranslationTable()
-
-
Method Detail
-
getSourceAlphabet
public abstract Alphabet getSourceAlphabet()
Description copied from interface:TranslationTable
The alphabet of Symbols that can be translated.- Specified by:
getSourceAlphabet
in interfaceTranslationTable
- Returns:
- the source Alphabet
-
getTargetAlphabet
public abstract Alphabet getTargetAlphabet()
Description copied from interface:TranslationTable
The alphabet of Symbols that will be produced.- Specified by:
getTargetAlphabet
in interfaceTranslationTable
- Returns:
- the target Alphabet
-
doUntranslate
protected abstract Symbol doUntranslate(Symbol sym) throws IllegalSymbolException
this method is expected to reverse-translate any symbol in the source alphabet. Failure can be indicated by returning a null if, for example, your method only handles AtomicSymbols and you want BasisSymbols to be taken apart. If you are sure the symbol is illegal, you can throw the IllegalSymbolException immediately to bypass further processing.As an optimisation, if your method is capable of immediately translating an ambiguity Symbol, just return it and the alternate route of establishing the translation through doing an ambiguity lookup will be avoided.
- Throws:
IllegalSymbolException
-
untranslate
public Symbol untranslate(Symbol sym) throws IllegalSymbolException
Description copied from interface:ReversibleTranslationTable
Translate a single symbol from target alphabet to the source alphabet.- Specified by:
untranslate
in interfaceReversibleTranslationTable
- Parameters:
sym
- the Symbol to translate (member of target alphabet)- Returns:
- the translated version of sym (member of source alphabet)
- Throws:
IllegalSymbolException
- if sym is not a member of the target alphabet
-
doTranslate
protected abstract Symbol doTranslate(Symbol sym) throws IllegalSymbolException
this method is expected to translate any symbol in the source alphabet. Failure can be indicated by returning a null if, for example, your method only handles AtomicSymbols and you want BasisSymbols to be taken apart. If you are sure the symbol is illegal, you can throw the IllegalSymbolException immediately to bypass further processing.As an optimisation, if your method is capable of immediately translating an ambiguity Symbol, just return it and the alternate route of establishing the translation through doing an ambiguity lookup will be avoided.
- Throws:
IllegalSymbolException
-
translate
public Symbol translate(Symbol sym) throws IllegalSymbolException
Description copied from interface:TranslationTable
Translate a single symbol from source alphabet to the target alphabet.- Specified by:
translate
in interfaceTranslationTable
- Parameters:
sym
- the Symbol to translate (member of source alphabet)- Returns:
- the translated version of sym (member of target alphabet)
- Throws:
IllegalSymbolException
- if sym is not a member of the source alphabet
-
-