001package org.maltparser.core.feature.function;
002
003import org.maltparser.core.exception.MaltChainedException;
004import org.maltparser.core.feature.value.FeatureValue;
005import org.maltparser.core.symbol.SymbolTable;
006/**
007*
008*
009* @author Johan Hall
010*/
011public interface FeatureFunction extends Function {
012        /**
013         * Returns the string representation of the integer <code>code</code> according to the feature function. 
014         * 
015         * @param code the integer representation of the symbol
016         * @return the string representation of the integer <code>code</code> according to the feature function.
017         * @throws MaltChainedException
018         */
019        public abstract String getSymbol(int code) throws MaltChainedException;
020        /**
021         * Returns the integer representation of the string <code>symbol</code> according to the feature function.
022         * 
023         * @param symbol the string representation of the symbol
024         * @return the integer representation of the string <code>symbol</code> according to the feature function.
025         * @throws MaltChainedException
026         */
027        public abstract int getCode(String symbol) throws MaltChainedException; 
028        /**
029         * Returns the symbol table used by the feature function.
030         * 
031         * @return the symbol table used by the feature function.
032         */
033        public abstract SymbolTable getSymbolTable();
034        /**
035         * Returns the feature value
036         * 
037         * @return the feature value
038         */
039        public abstract FeatureValue getFeatureValue(); 
040        
041        public abstract int getType();
042        public abstract String getMapIdentifier();
043}