public int getSymbolStringToCode(String symbol) throws MaltChainedException {
if (symbol != null) {
if (nullValues == null || !nullValues.isNullValue(symbol)) {
if (trie == null) {
throw new SymbolException("The symbol table is corrupt. ");
}
if (this.symbolTableMode == TrieSymbolTableHandler.ADD_NEW_TO_TRIE) {
final Integer entry = trie.getEntry(symbol, this);
if (entry == null) {
throw new SymbolException("Could not find the symbol '"+symbol+"' in the symbol table. ");
}
return entry.intValue();
} else {
final Integer entry = trie.getEntry(symbol, this);
if (entry != null) {
return entry.intValue();
} else {
Integer tmpEntry = tmpStorageStrIntMap.get(symbol);
if (tmpEntry == null) {
throw new SymbolException("Could not find the symbol '"+symbol+"' in the symbol table. ");
}
return tmpEntry.intValue();
}
}
} else {
return nullValues.symbolToCode(symbol);
}
} else {
throw new SymbolException("The symbol code '"+symbol+"' cannot be found in the symbol table. ");
}
}