Exemplo n.º 1
0
 @Override
 TrieNode add(final TrieBranch o, final int l, final InputInfo ii) throws QueryException {
   TrieNode[] ch = null;
   int nu = used, ns = size;
   final int kl = kids.length;
   for (int k = 0; k < kl; k++) {
     final TrieNode n = kids[k], ok = o.kids[k];
     if (ok != null) {
       final TrieNode nw = n == null ? ok : ok.addAll(n, l + 1, ii);
       if (nw != n) {
         if (ch == null) ch = copyKids();
         ch[k] = nw;
         nu |= 1 << k;
         ns += nw.size - (n == null ? 0 : n.size);
       }
     }
   }
   return ch == null ? this : new TrieBranch(ch, nu, ns);
 }