Hi all, Under the package opennlp.tools.util.featuregen there is an interface AdaptiveFeatureGenerator and an abstract class FeatureGeneratorAdapter. The interface defines the createFeatures(), updateAdaptiveData(), and clearAdaptiveData() methods. The abstract class implements this interface to provide default implementations of the updateAdaptiveData() and clearAdaptiveData() functions. Feature generators then either implement the interface or extend the abstract class.
I created a patch to refactor these classes to remove the interface and use the abstract class. (My motivation was I kept getting AdaptiveFeatureGenerator and FeatureGeneratorAdapter confused due to their similar naming and the inconsistency of feature generators either implementing or extending.) The project does build and test with the patch applied. If you think this is a worthwhile change I'll submit it on JIRA. If not, no problem and I'll work on not being confused. (Or if there's a reason for both the interface and the abstract class that I'm not aware of please let me know!) Thanks, Jeff
