@Override
    public void visitClass(@NotNull PsiClass aClass) {
      // no call to super, so it doesn't drill down into inner classes
      final String className = aClass.getName();
      if (className == null) {
        return;
      }
      final PsiClass outerClass =
        ClassUtils.getOutermostContainingClass(aClass);
      final String qualifiedName = outerClass.getQualifiedName();
      if (qualifiedName == null) {
        return;
      }
      if (className.equals(qualifiedName)) {
        return;
      }
      final StringTokenizer tokenizer =
        new StringTokenizer(qualifiedName, ".");
      String currentPackageName = null;
      String lastPackageName = null;
      while (tokenizer.hasMoreTokens()) {
        lastPackageName = currentPackageName;
        currentPackageName = tokenizer.nextToken();
      }
      if (lastPackageName == null) {
        return;
      }
      final String lowercaseClassName = StringUtil.toLowerCase(className);
      final String lowercasePackageName = StringUtil.toLowerCase(lastPackageName);
      if (!lowercaseClassName.startsWith(lowercasePackageName)) {
        return;
      }
      registerClassError(aClass);
    }
@Override
    public void visitClass(@NotNull PsiClass aClass)