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. ");
		}
	}