docs: public void addSubTerm(final IndexTerm term) {
          int i = 0;
          final int subTermNum = subTerms.size();
  
          if (IndexTermPrefix.SEE != term.getTermPrefix() && IndexTermPrefix.SEE_ALSO != term.getTermPrefix()) {
              //if the term is not "index-see" or "index-see-also"
              leaf = false;
          }
  
          for (; i < subTermNum; i++) {
              final IndexTerm subTerm = subTerms.get(i);
  
              if (subTerm.equals(term)) {
                  return;
              }
  
              // Add targets when same term name and same term key
              if (subTerm.getTermFullName().equals(term.getTermFullName())
                      && subTerm.getTermKey().equals(term.getTermKey())) {
                  subTerm.addTargets(term.getTargetList());
                  subTerm.addSubTerms(term.getSubTerms());
                  return;
              }
          }
  
          if (i == subTermNum) {
              subTerms.add(term);
          }
      }