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