code: public void addHierarchy(String superclass, String[] packages) {
      List<String> 	names;
      List<Class>		classes;
      String[]		patterns;
      int			i;
      Pattern		p;
      ClassLocator	locator;
  
      locator    = getClassLocator();
      names      = locator.findNames(superclass, packages);
      classes    = locator.findClasses(superclass, packages);
      // remove blacklisted classes
      if (m_Blacklist.containsKey(superclass)) {
        try {
          patterns = m_Blacklist.getProperty(superclass).replaceAll(" ", "").split(",");
          for (String pattern: patterns) {
            p = Pattern.compile(pattern);
            // names
            i = 0;
            while (i < names.size()) {
              if (p.matcher(names.get(i)).matches())
                names.remove(i);
              else
                i++;
            }
            // classes
            i = 0;
            while (i < classes.size()) {
              if (p.matcher(classes.get(i).getName()).matches())
                classes.remove(i);
              else
                i++;
            }
          }
        }
        catch (Exception ex) {
          getLogger().log(Level.SEVERE, "Failed to blacklist classes for superclass '" +  superclass + "':", ex);
        }
      }
      // create class list
      updateClassnames(m_CacheNames, superclass, new HashSet<>(names));
      updateClassnames(m_ListNames, superclass, new ArrayList<>(names));
      updateClasses(m_CacheClasses, superclass, new HashSet<>(classes));
      updateClasses(m_ListClasses, superclass, new ArrayList<>(classes));
    }
docs: Adds/appends a class hierarchy.
  
  @param superclass	the superclass
  @param packages	the packages