Koji Sekiguchi created OPENNLP-1161:
---------------------------------------
Summary: avoid using concrete tag names of XML config in
GeneratorFactory.extractArtifactSerializerMappings()
Key: OPENNLP-1161
URL: https://issues.apache.org/jira/browse/OPENNLP-1161
Project: OpenNLP
Issue Type: Improvement
Components: Formats, Name Finder
Affects Versions: 1.8.3
Reporter: Koji Sekiguchi
Assignee: Koji Sekiguchi
Priority: Blocker
When working on OPENNLP-1154, I noticed this.
In GeneratorFactory.extractArtifactSerializerMappings(), it specifies concrete
XML tag names:
{code:java}
for (int i = 0; i < allElements.getLength(); i++) {
if (allElements.item(i) instanceof Element) {
Element xmlElement = (Element) allElements.item(i);
String dictName = xmlElement.getAttribute("dict");
if (dictName != null) {
switch (xmlElement.getTagName()) {
case "wordcluster":
mapping.put(dictName, new
WordClusterDictionary.WordClusterDictionarySerializer());
break;
case "brownclustertoken":
mapping.put(dictName, new BrownCluster.BrownClusterSerializer());
break;
case "brownclustertokenclass"://, ;
mapping.put(dictName, new BrownCluster.BrownClusterSerializer());
break;
case "brownclusterbigram": //, ;
mapping.put(dictName, new BrownCluster.BrownClusterSerializer());
break;
case "dictionary":
mapping.put(dictName, new DictionarySerializer());
break;
}
}
String modelName = xmlElement.getAttribute("model");
if (modelName != null) {
switch (xmlElement.getTagName()) {
case "tokenpos":
mapping.put(modelName, new POSModelSerializer());
break;
}
}
}
}
{code}
Instead, we'd better let FeatureGeneratorFactories implement a method that
returns mapping (Map<String, ArtifactSerializer<?>>) and in
GeneratorFactory.extractArtifactSerializerMappings(), the framework just calls
the method of FeatureGeneratorFactories, which are found in XML config.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)