this.logger.logrb(Level.CONFIG, "DictionaryAnnotator", "initialize", MESSAGE_DIGEST,
"dictionary_annotator_filter_feature_condition", new Object[] { buffer.toString() });
}
// create dictionary file parser
DictionaryFileParser fileParser = new DictionaryFileParserImpl();
// get UIMA datapath and tokenize it into its elements
StringTokenizer tokenizer = new StringTokenizer(getContext().getDataPath(), PATH_SEPARATOR);
ArrayList<File> datapathElements = new ArrayList<File>();
while (tokenizer.hasMoreTokens()) {
// add datapath elements to the 'datapathElements' array list
datapathElements.add(new File(tokenizer.nextToken()));
}
// parse dictionary files
ArrayList<Dictionary> dicts = new ArrayList<Dictionary>();
for (int i = 0; i < dictionaryFileNames.length; i++) {
// try to resolve the relative file name with classpath or datapath
DictionaryFile file = resolveRelativeFilePath(dictionaryFileNames[i], datapathElements);
// if the current dictionary file wasn't found, throw an exception
if (file == null) {
throw new DictionaryAnnotatorConfigException("dictionary_annotator_resource_not_found",
new Object[] { dictionaryFileNames[i] });
} else {
// log concept file path
this.logger.logrb(Level.CONFIG, "DictionaryAnnotator", "initialize", MESSAGE_DIGEST,
"dictionary_annotator_dictionary_file", new Object[] { file.getFilePath() });
// parse dictionary file
Dictionary dict = fileParser.parseDictionaryFile(file.getFilePath(), file.getStream(),
new HashMapDictionaryBuilder());
// add dictionary to the dictionary list
dicts.add(dict);
}
}