001    package org.maltparser.core.feature.function;
002    
003    import org.maltparser.core.exception.MaltChainedException;
004    /**
005    *
006    *
007    * @author Johan Hall
008    */
009    public interface Function {
010            /**
011             * Initialize the feature function
012             * 
013             * @param arguments an array of arguments with the type returned by getParameterTypes()
014             * @throws MaltChainedException
015             */
016            public void initialize(Object[] arguments) throws MaltChainedException;
017            /**
018             * Returns an array of class types used by the feature extraction system to invoke initialize with
019             * correct arguments.
020             * 
021             * @return an array of class types
022             */
023            public Class<?>[] getParameterTypes();
024            /**
025             * Cause the feature function to update the feature value.
026             * 
027             * @throws MaltChainedException
028             */
029            public void update() throws MaltChainedException;
030    }