void (GenericDomValue<PsiClass> psiClassDomValue, DomElementAnnotationHolder holder) { final PsiClass psiClass = psiClassDomValue.getValue(); if (psiClass == null) return; if (psiClass.getContainingClass() != null && !StringUtil.containsChar(StringUtil.notNullize(psiClassDomValue.getRawText()), '$')) { holder.createProblem(psiClassDomValue, DevKitBundle.message("inspections.plugin.xml.inner.class.must.be.separated.with.dollar")); } Module module = psiClassDomValue.getModule(); if (module == null) return; if (!isIdeaProjectOrJetBrains(psiClassDomValue)) return; IdeaPlugin ideaPlugin = psiClassDomValue.getParentOfType(IdeaPlugin.class, true); assert ideaPlugin != null; String pluginPackage = ideaPlugin.getPackage().getStringValue(); if (pluginPackage == null) return; final String psiClassFqn = psiClass.getQualifiedName(); assert psiClassFqn != null; // only highlight if located in the same module if (!StringUtil.startsWith(psiClassFqn, pluginPackage + ".") && module == ModuleUtilCore.findModuleForPsiElement(psiClass)) { holder.createProblem(psiClassDomValue, HighlightSeverity.ERROR, DevKitBundle.message("inspections.plugin.xml.dependency.class.located.in.wrong.package", psiClassFqn, pluginPackage), new MoveToPackageFix(psiClass.getContainingFile(), pluginPackage)); } }