void (@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); }