private static void annotatePsiClassValue(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;

    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));
    }
  }
private static void annotatePsiClassValue(GenericDomValue<PsiClass> psiClassDomValue, DomElementAnnotationHolder holder)