private Vector getWordsFromCode(String word, Hashtable codes) { Configuration config = Configuration.getConfiguration(); Vector result = new Vector(); int[][] matrix = new int[0][0]; final int configDistance = config.getInteger(Configuration.SPELL_THRESHOLD); for (Enumeration i = codes.keys(); i.hasMoreElements();) { String code = (String) i.nextElement(); List simwordlist = getWords(code); for (Iterator iter = simwordlist.iterator(); iter.hasNext();) { String similar = (String) iter.next(); int distance = EditDistance.getDistance(word, similar, matrix); if (distance < configDistance) { Word w = new Word(similar, distance); result.addElement(w); } } } return result; }
static final int costOfDeletingSourceCharacter = config.getInteger(Configuration.COST_REMOVE_CHAR); static final int costOfInsertingSourceCharacter = config.getInteger(Configuration.COST_INSERT_CHAR); static final int costOfSubstitutingLetters = config.getInteger(Configuration.COST_SUBST_CHARS); static final int costOfSwappingLetters = config.getInteger(Configuration.COST_SWAP_CHARS); static final int costOfChangingCase = config.getInteger(Configuration.COST_CHANGE_CASE);