test_class.file: cim-common/src/test/java/com/crossoverjie/cim/common/data/construct/TrieTreeTest.java
test_class.identifier: TrieTreeTest
test_case.body: @Test
      public void prefixSearch() throws Exception {
          TrieTree trieTree = new TrieTree();
          trieTree.insert("abc");
          trieTree.insert("abd");
          trieTree.insert("ABe");
  
          List<String> ab = trieTree.prefixSearch("AB");
          for (String s : ab) {
              System.out.println(s);
          }
  
          System.out.println("========");
  
          //char[] chars = new char[3] ;
          //for (int i = 0; i < 3; i++) {
          //    int a = 97 + i ;
          //    chars[i] = (char) a ;
          //}
          //
          //String s = String.valueOf(chars);
          //System.out.println(s);
      }
test_case.class_method_signature: TrieTreeTest.prefixSearch()
test_case.full_signature: @Test public void prefixSearch()
test_case.identifier: prefixSearch
test_case.invocations: insert insert insert prefixSearch println println
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void prefixSearch()
focal_class.declarator: CHILDREN_LENGTH = 26 * 2
focal_class.modifier: private static final
focal_class.original_string: private static final int CHILDREN_LENGTH = 26 * 2;
focal_class.type: int
focal_class.var_name: CHILDREN_LENGTH
focal_class.declarator: MAX_CHAR_LENGTH = 16
focal_class.modifier: private static final
focal_class.original_string: private static final int MAX_CHAR_LENGTH = 16;
focal_class.type: int
focal_class.var_name: MAX_CHAR_LENGTH
focal_class.declarator: UPPERCASE_STAR = 'A'
focal_class.modifier: private static final
focal_class.original_string: private static final char UPPERCASE_STAR = 'A';
focal_class.type: char
focal_class.var_name: UPPERCASE_STAR
focal_class.declarator: LOWERCASE_STAR = 'G'
focal_class.modifier: private static final
focal_class.original_string: private static final char LOWERCASE_STAR = 'G';
focal_class.type: char
focal_class.var_name: LOWERCASE_STAR
focal_class.declarator: root
focal_class.modifier: private
focal_class.original_string: private Node root;
focal_class.type: Node
focal_class.var_name: root
focal_class.file: cim-common/src/main/java/com/crossoverjie/cim/common/data/construct/TrieTree.java
focal_class.identifier: TrieTree
focal_class.class_method_signature: TrieTree.TrieTree()
focal_class.full_signature: public  TrieTree()
focal_class.identifier: TrieTree
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  TrieTree()
focal_class.class_method_signature: TrieTree.insert(String data)
focal_class.full_signature: public void insert(String data)
focal_class.identifier: insert
focal_class.modifiers: public
focal_class.parameters: (String data)
focal_class.return: void
focal_class.signature: void insert(String data)
focal_class.class_method_signature: TrieTree.insert(Node root, String data)
focal_class.full_signature: private void insert(Node root, String data)
focal_class.identifier: insert
focal_class.modifiers: private
focal_class.parameters: (Node root, String data)
focal_class.return: void
focal_class.signature: void insert(Node root, String data)
focal_class.class_method_signature: TrieTree.prefixSearch(String key)
focal_class.full_signature: public List<String> prefixSearch(String key)
focal_class.identifier: prefixSearch
focal_class.modifiers: public
focal_class.parameters: (String key)
focal_class.return: List<String>
focal_class.signature: List<String> prefixSearch(String key)
focal_class.class_method_signature: TrieTree.query(Node child, List<String> value, String key, String result)
focal_class.full_signature: private List<String> query(Node child, List<String> value, String key, String result)
focal_class.identifier: query
focal_class.modifiers: private
focal_class.parameters: (Node child, List<String> value, String key, String result)
focal_class.return: List<String>
focal_class.signature: List<String> query(Node child, List<String> value, String key, String result)
focal_class.class_method_signature: TrieTree.all()
focal_class.full_signature: public List<String> all()
focal_class.identifier: all
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> all()
focal_class.class_method_signature: TrieTree.depth(Node node, List<String> list, char[] chars, int index)
focal_class.full_signature: public List<String> depth(Node node, List<String> list, char[] chars, int index)
focal_class.identifier: depth
focal_class.modifiers: public
focal_class.parameters: (Node node, List<String> list, char[] chars, int index)
focal_class.return: List<String>
focal_class.signature: List<String> depth(Node node, List<String> list, char[] chars, int index)
focal_method.body: public List<String> prefixSearch(String key) {
          List<String> value = new ArrayList<String>();
          if (StringUtil.isEmpty(key)) {
              return value;
          }
  
          char k = key.charAt(0);
          int index;
          if (Character.isUpperCase(k)) {
              index = k - UPPERCASE_STAR;
          } else {
              index = k - LOWERCASE_STAR;
  
          }
          if (root.children != null && root.children[index] != null) {
              return query(root.children[index], value,
                      key.substring(1), String.valueOf(k));
          }
          return value;
      }
focal_method.class_method_signature: TrieTree.prefixSearch(String key)
focal_method.full_signature: public List<String> prefixSearch(String key)
focal_method.identifier: prefixSearch
focal_method.invocations: isEmpty charAt isUpperCase query substring valueOf
focal_method.modifiers: public
focal_method.parameters: (String key)
focal_method.return: List<String>
focal_method.signature: List<String> prefixSearch(String key)