private HashMap<Character, ITrieNode> getAvailableChildren(HashMap<Integer,Integer> frontierMap) {
        if (this.children == null || this.children.size() == 0) {
            return null;
        }
        HashMap<Character, ITrieNode> returnMap = new HashMap<Character, ITrieNode>(this.children.size());
        for (ITrieNode t: this.children.values()) {
            if (frontierMap.containsKey(t.id)) {
                returnMap.put(t.value, t);
            }
        }
        if (returnMap.size() == 0) {
            return null;
        }
        return returnMap;
    }