docs: public boolean classMatch(String targetClass, String templateClass)
      {
  //x        if (targetClass.startsWith(Constants.ROOT_PACKAGE)) // Always
  //x            targetClass = targetClass.substring(Constants.ROOT_PACKAGE.length() - 1);
  //x        if (templateClass.startsWith(Constants.ROOT_PACKAGE)) // Never
  //x            templateClass = templateClass.substring(Constants.ROOT_PACKAGE.length() - 1);
  //x        if (targetClass.startsWith(Constants.THIN_SUBPACKAGE))
  //x            if (!templateClass.startsWith(THIN_CLASS))
  //x                targetClass = targetClass.substring(THIN_CLASS.length());   // Include thin classes
          if (targetClass.startsWith(BASE_CLASS))
              return true;    // Allow access to all base classes
          if (templateClass.endsWith("*"))
          {
              if (templateClass.startsWith("*"))
              	return targetClass.indexOf(templateClass.substring(1, templateClass.length() - 1)) != -1;
              return targetClass.startsWith(templateClass.substring(0, templateClass.length() - 1));
          }
          else
          {   // Exact match
              return templateClass.equalsIgnoreCase(targetClass);
          }
      }