diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java index 094406581415..4b71a608bd0d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java @@ -125,7 +125,7 @@ public class JavaDocCompletionContributor extends CompletionContributor { final PsiElement parent = comment.getContext(); final boolean isInline = position.getContext() instanceof PsiInlineDocTag; - final JavadocManager manager = JavaPsiFacade.getInstance(position.getProject()).getJavadocManager(); + final JavadocManager manager = JavadocManager.SERVICE.getInstance(position.getProject()); final JavadocTagInfo[] infos = manager.getTagInfos(parent); for (JavadocTagInfo info : infos) { if (info.getName().equals(SuppressionUtil.SUPPRESS_INSPECTIONS_TAG_NAME)) continue; diff --git a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspection.java b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspection.java index f60323040d6f..1a8dd40036ff 100644 --- a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspection.java @@ -426,7 +426,7 @@ public class JavaDocLocalInspection extends BaseLocalInspectionTool { } checkForPeriodInDoc(docComment, problems, manager, isOnTheFly); checkInlineTags(manager, problems, docComment.getDescriptionElements(), - JavaPsiFacade.getInstance(docComment.getProject()).getJavadocManager(), isOnTheFly); + JavadocManager.SERVICE.getInstance(docComment.getProject()), isOnTheFly); checkForBadCharacters(docComment, problems, manager, isOnTheFly); for (PsiDocTag tag : tags) { for (int i = 0; i < tagsToCheck.length; i++) { @@ -487,7 +487,7 @@ public class JavaDocLocalInspection extends BaseLocalInspectionTool { problems.addAll(tagProblems); } checkInlineTags(manager, problems, docComment.getDescriptionElements(), - JavaPsiFacade.getInstance(docComment.getProject()).getJavadocManager(), isOnTheFly); + JavadocManager.SERVICE.getInstance(docComment.getProject()), isOnTheFly); checkForPeriodInDoc(docComment, problems, manager, isOnTheFly); checkDuplicateTags(docComment.getTags(), problems, manager, isOnTheFly); checkForBadCharacters(docComment, problems, manager, isOnTheFly); @@ -536,12 +536,12 @@ public class JavaDocLocalInspection extends BaseLocalInspectionTool { final ArrayList problems = new ArrayList(2); checkInlineTags(manager, problems, descriptionElements, - JavaPsiFacade.getInstance(docComment.getProject()).getJavadocManager(), isOnTheFly); + JavadocManager.SERVICE.getInstance(docComment.getProject()), isOnTheFly); final PsiDocTag tagByName = docComment.findTagByName("inheritDoc"); if (tagByName != null) { final String tagName = tagByName.getName(); - final JavadocTagInfo tagInfo = JavaPsiFacade.getInstance(tagByName.getProject()).getJavadocManager().getTagInfo(tagName); + final JavadocTagInfo tagInfo = JavadocManager.SERVICE.getInstance(tagByName.getProject()).getTagInfo(tagName); if (tagInfo != null && tagInfo.isValidInContext(psiMethod)){ return null; } @@ -877,7 +877,7 @@ public class JavaDocLocalInspection extends BaseLocalInspectionTool { final PsiDocCommentOwner owner = PsiTreeUtil.getParentOfType(docComment, PsiDocCommentOwner.class); for (PsiDocTag tag : tags) { final String tagName = tag.getName(); - final JavadocTagInfo tagInfo = JavaPsiFacade.getInstance(tag.getProject()).getJavadocManager().getTagInfo(tagName); + final JavadocTagInfo tagInfo = JavadocManager.SERVICE.getInstance(tag.getProject()).getTagInfo(tagName); if (tagInfo != null && tagInfo.isValidInContext(owner) && !tagInfo.isInline()) { tagOffset = tag.getTextOffset(); break; @@ -899,7 +899,7 @@ public class JavaDocLocalInspection extends BaseLocalInspectionTool { final ArrayList problems = new ArrayList(2); nextTag: for (PsiDocTag tag : tags) { - final JavadocManager manager = JavaPsiFacade.getInstance(tag.getProject()).getJavadocManager(); + final JavadocManager manager = JavadocManager.SERVICE.getInstance(tag.getProject()); String tagName = tag.getName(); JavadocTagInfo tagInfo = manager.getTagInfo(tagName); diff --git a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java index cc67b4e8826f..d9557d1e9ed3 100644 --- a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java @@ -112,7 +112,7 @@ public class JavaDocReferenceInspection extends BaseLocalInspectionTool { @Override public void visitDocTag(PsiDocTag tag) { super.visitDocTag(tag); - final JavadocManager javadocManager = JavaPsiFacade.getInstance(tag.getProject()).getJavadocManager(); + final JavadocManager javadocManager = JavadocManager.SERVICE.getInstance(tag.getProject()); final JavadocTagInfo info = javadocManager.getTagInfo(tag.getName()); if (info == null || !info.isInline()) { visitRefInDocTag(tag, javadocManager, context, problems, manager, onTheFly); @@ -121,7 +121,7 @@ public class JavaDocReferenceInspection extends BaseLocalInspectionTool { @Override public void visitInlineDocTag(PsiInlineDocTag tag) { super.visitInlineDocTag(tag); - final JavadocManager javadocManager = JavaPsiFacade.getInstance(tag.getProject()).getJavadocManager(); + final JavadocManager javadocManager = JavadocManager.SERVICE.getInstance(tag.getProject()); visitRefInDocTag(tag, javadocManager, context, problems, manager, onTheFly); } diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java b/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java index dcca78f435f8..e14dd2266594 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java @@ -38,13 +38,11 @@ import com.intellij.psi.impl.migration.PsiMigrationImpl; import com.intellij.psi.impl.source.DummyHolderFactory; import com.intellij.psi.impl.source.JavaDummyHolder; import com.intellij.psi.impl.source.JavaDummyHolderFactory; -import com.intellij.psi.impl.source.javadoc.JavadocManagerImpl; import com.intellij.psi.impl.source.jsp.jspXml.JspDirective; import com.intellij.psi.impl.source.resolve.FileContextUtil; import com.intellij.psi.impl.source.resolve.PsiResolveHelperImpl; import com.intellij.psi.impl.source.tree.JavaChangeUtilSupport; import com.intellij.psi.impl.source.tree.JavaElementType; -import com.intellij.psi.javadoc.JavadocManager; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiShortNamesCache; import com.intellij.psi.util.PsiModificationTracker; @@ -72,7 +70,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { private final PsiElementFinder[] myElementFinders; private PsiShortNamesCache myShortNamesCache; private final PsiResolveHelper myResolveHelper; - private final JavadocManager myJavadocManager; private final PsiNameHelper myNameHelper; private final PsiConstantEvaluationHelper myConstantEvaluationHelper; private final ConcurrentMap myPackageCache = new ConcurrentHashMap(); @@ -88,7 +85,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { MessageBus bus) { myProject = project; myResolveHelper = new PsiResolveHelperImpl(PsiManager.getInstance(project)); - myJavadocManager = new JavadocManagerImpl(project); myNameHelper = new PsiNameHelperImpl(this); myConstantEvaluationHelper = new PsiConstantEvaluationHelperImpl(); @@ -299,11 +295,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { return myCurrentMigration; } - @NotNull - public JavadocManager getJavadocManager() { - return myJavadocManager; - } - @NotNull public PsiNameHelper getNameHelper() { return myNameHelper; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagValueImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagValueImpl.java index c5db77d943d4..666e1aedae42 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagValueImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagValueImpl.java @@ -50,7 +50,7 @@ public class PsiDocTagValueImpl extends CompositePsiElement implements PsiDocTag return null; } final String name = docTag.getName(); - final JavadocManager manager = JavaPsiFacade.getInstance(getProject()).getJavadocManager(); + final JavadocManager manager = JavadocManager.SERVICE.getInstance(getProject()); final JavadocTagInfo info = manager.getTagInfo(name); if (info == null) return null; diff --git a/java/openapi/src/com/intellij/psi/JavaPsiFacade.java b/java/openapi/src/com/intellij/psi/JavaPsiFacade.java index 61fdd8bfd26a..217deb154970 100644 --- a/java/openapi/src/com/intellij/psi/JavaPsiFacade.java +++ b/java/openapi/src/com/intellij/psi/JavaPsiFacade.java @@ -22,7 +22,6 @@ package com.intellij.psi; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.NotNullLazyKey; -import com.intellij.psi.javadoc.JavadocManager; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiShortNamesCache; import org.jetbrains.annotations.NonNls; @@ -140,15 +139,6 @@ public abstract class JavaPsiFacade { @NotNull public abstract PsiMigration startMigration(); - /** - * Returns the JavaDoc manager for the project, which can be used to retrieve - * information about JavaDoc tags known to IDEA. - * - * @return the JavaDoc manager instance. - */ - @NotNull - public abstract JavadocManager getJavadocManager(); - /** * Returns the name helper for the project, which can be used to validate * and parse Java identifiers. diff --git a/java/openapi/src/com/intellij/psi/javadoc/JavadocManager.java b/java/openapi/src/com/intellij/psi/javadoc/JavadocManager.java index 888e2693c518..07903061e288 100644 --- a/java/openapi/src/com/intellij/psi/javadoc/JavadocManager.java +++ b/java/openapi/src/com/intellij/psi/javadoc/JavadocManager.java @@ -15,14 +15,25 @@ */ package com.intellij.psi.javadoc; +import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; -import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * @author mike */ public interface JavadocManager { + class SERVICE { + private SERVICE() { + } + + public static JavadocManager getInstance(Project project) { + return ServiceManager.getService(project, JavadocManager.class); + } + } + @NotNull JavadocTagInfo[] getTagInfos(PsiElement context); diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index 49166727bb42..022e10335cbb 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -258,6 +258,8 @@ serviceImplementation="com.intellij.psi.impl.source.resolve.JavaResolveCache"/> +