diff --git a/java/java-impl/src/com/intellij/analysis/AnalysisScopeRule.java b/java/java-impl/src/com/intellij/analysis/AnalysisScopeRule.java index c356b6ddc455..bf6f2da56695 100644 --- a/java/java-impl/src/com/intellij/analysis/AnalysisScopeRule.java +++ b/java/java-impl/src/com/intellij/analysis/AnalysisScopeRule.java @@ -30,6 +30,7 @@ import com.intellij.psi.PsiPackage; import com.intellij.psi.search.GlobalSearchScope; public class AnalysisScopeRule implements GetDataRule { + @Override public Object getData(final DataProvider dataProvider) { final Object psiFile = dataProvider.getData(LangDataKeys.PSI_FILE.getName()); if (psiFile instanceof PsiJavaFile) { diff --git a/java/java-impl/src/com/intellij/analysis/BaseClassesAnalysisAction.java b/java/java-impl/src/com/intellij/analysis/BaseClassesAnalysisAction.java index caae231245ff..7bd5feb01cef 100644 --- a/java/java-impl/src/com/intellij/analysis/BaseClassesAnalysisAction.java +++ b/java/java-impl/src/com/intellij/analysis/BaseClassesAnalysisAction.java @@ -38,10 +38,12 @@ public abstract class BaseClassesAnalysisAction extends BaseAnalysisAction { protected abstract void analyzeClasses(final Project project, final AnalysisScope scope, ProgressIndicator indicator); + @Override protected void analyze(@NotNull final Project project, final AnalysisScope scope) { FileDocumentManager.getInstance().saveAllDocuments(); ProgressManager.getInstance().run(new Task.Backgroundable(project, AnalysisScopeBundle.message("analyzing.project"), true) { + @Override public void run(@NotNull final ProgressIndicator indicator) { indicator.setIndeterminate(true); indicator.setText(AnalysisScopeBundle.message("checking.class.files")); @@ -50,6 +52,7 @@ public abstract class BaseClassesAnalysisAction extends BaseAnalysisAction { final boolean upToDate = compilerManager.isUpToDate(compilerManager.createProjectCompileScope(myProject)); ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { if (!upToDate) { final int i = Messages.showYesNoCancelDialog(getProject(), AnalysisScopeBundle.message("recompile.confirmation.message"), @@ -75,11 +78,13 @@ public abstract class BaseClassesAnalysisAction extends BaseAnalysisAction { private void doAnalyze(final Project project, final AnalysisScope scope) { ProgressManager.getInstance().run(new Task.Backgroundable(project, AnalysisScopeBundle.message("analyzing.project"), true) { + @Override @Nullable public NotificationInfo getNotificationInfo() { return new NotificationInfo("Analysis", "\"" + getTitle() + "\" Analysis Finished", ""); } + @Override public void run(@NotNull final ProgressIndicator indicator) { analyzeClasses(project, scope, indicator); } @@ -89,9 +94,11 @@ public abstract class BaseClassesAnalysisAction extends BaseAnalysisAction { private void compileAndAnalyze(final Project project, final AnalysisScope scope) { final CompilerManager compilerManager = CompilerManager.getInstance(project); compilerManager.make(compilerManager.createProjectCompileScope(project), new CompileStatusNotification() { + @Override public void finished(final boolean aborted, final int errors, final int warnings, final CompileContext compileContext) { if (aborted || errors != 0) return; ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { doAnalyze(project, scope); } diff --git a/java/java-impl/src/com/intellij/analysis/JavaAnalysisScope.java b/java/java-impl/src/com/intellij/analysis/JavaAnalysisScope.java index a3f0b9d8152e..8dfee6080087 100644 --- a/java/java-impl/src/com/intellij/analysis/JavaAnalysisScope.java +++ b/java/java-impl/src/com/intellij/analysis/JavaAnalysisScope.java @@ -51,6 +51,7 @@ public class JavaAnalysisScope extends AnalysisScope { super(psiFile); } + @Override @NotNull public AnalysisScope getNarrowedComplementaryScope(Project defaultProject) { final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(defaultProject).getFileIndex(); @@ -85,12 +86,14 @@ public class JavaAnalysisScope extends AnalysisScope { + @Override public String getShortenName() { if (myType == PACKAGE) return AnalysisScopeBundle.message("scope.package", ((PsiPackage)myElement).getQualifiedName()); return super.getShortenName(); } + @Override public String getDisplayName() { if (myType == PACKAGE) { return AnalysisScopeBundle.message("scope.package", ((PsiPackage)myElement).getQualifiedName()); @@ -98,6 +101,7 @@ public class JavaAnalysisScope extends AnalysisScope { return super.getDisplayName(); } + @Override protected void initFilesSet() { if (myType == PACKAGE) { myFilesSet = new HashSet(); @@ -118,11 +122,13 @@ public class JavaAnalysisScope extends AnalysisScope { return shouldHighlight; } + @Override protected void accept(final PsiElementVisitor visitor, final boolean needReadAction) { if (myElement instanceof PsiPackage) { final PsiPackage pack = (PsiPackage)myElement; final Set dirs = new HashSet(); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { ContainerUtil.addAll(dirs, pack.getDirectories(GlobalSearchScope.projectScope(myElement.getProject()))); } diff --git a/java/java-impl/src/com/intellij/analysis/PackagesScopesProvider.java b/java/java-impl/src/com/intellij/analysis/PackagesScopesProvider.java index c97b687d0fba..5325ef78d750 100644 --- a/java/java-impl/src/com/intellij/analysis/PackagesScopesProvider.java +++ b/java/java-impl/src/com/intellij/analysis/PackagesScopesProvider.java @@ -46,6 +46,7 @@ public class PackagesScopesProvider implements CustomScopesProvider { myScopes = Arrays.asList(myProjectProductionScope); } + @Override @NotNull public List getCustomScopes() { return myScopes; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java index a76a1b283bff..551791a6cd82 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/IconLineMarkerProvider.java @@ -55,6 +55,7 @@ public class IconLineMarkerProvider implements LineMarkerProvider { //TODO: remove old unused icons from the cache private final HashMap> iconsCache = new HashMap>(); + @Override public LineMarkerInfo getLineMarkerInfo(PsiElement element) { if (! DaemonCodeAnalyzerSettings.getInstance().SHOW_SMALL_ICONS_IN_GUTTER) return null; @@ -151,6 +152,7 @@ public class IconLineMarkerProvider implements LineMarkerProvider { if (icon != null) { final Ref f = Ref.create(file); final GutterIconNavigationHandler navHandler = new GutterIconNavigationHandler() { + @Override public void navigate(MouseEvent e, PsiElement elt) { FileEditorManager.getInstance(project).openFile(f.get(), true); } @@ -168,6 +170,7 @@ public class IconLineMarkerProvider implements LineMarkerProvider { return extension != null && ICON_EXTS.contains(extension.toLowerCase()); } + @Override public void collectSlowLineMarkers(List elements, Collection result) { } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaChangeLocalityDetector.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaChangeLocalityDetector.java index 1759c7c144c7..6a8f8244faca 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaChangeLocalityDetector.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaChangeLocalityDetector.java @@ -24,6 +24,7 @@ import com.intellij.psi.*; import org.jetbrains.annotations.Nullable; public class JavaChangeLocalityDetector implements ChangeLocalityDetector { + @Override @Nullable public PsiElement getChangeHighlightingDirtyScopeFor(final PsiElement element) { PsiElement parent = element.getParent(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaLineMarkerProvider.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaLineMarkerProvider.java index dac3036414db..5be530e36e8b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaLineMarkerProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaLineMarkerProvider.java @@ -65,6 +65,7 @@ public class JavaLineMarkerProvider implements LineMarkerProvider, DumbAware { myColorsManager = colorsManager; } + @Override @Nullable public LineMarkerInfo getLineMarkerInfo(final PsiElement element) { if (element instanceof PsiIdentifier && element.getParent() instanceof PsiMethod) { @@ -137,6 +138,7 @@ public class JavaLineMarkerProvider implements LineMarkerProvider, DumbAware { return 0; } + @Override public void collectSlowLineMarkers(final List elements, final Collection result) { ApplicationManager.getApplication().assertReadAccessAllowed(); @@ -195,6 +197,7 @@ public class JavaLineMarkerProvider implements LineMarkerProvider, DumbAware { for (final PsiClass aClass : classes) { AllOverridingMethodsSearch.search(aClass).forEach(new Processor>() { + @Override public boolean process(final Pair pair) { ProgressManager.checkCanceled(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaReferenceImporter.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaReferenceImporter.java index 6e0ed0909319..55763d11d6c2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaReferenceImporter.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/JavaReferenceImporter.java @@ -31,6 +31,7 @@ import java.util.List; * @author yole */ public class JavaReferenceImporter implements ReferenceImporter { + @Override public boolean autoImportReferenceAtCursor(@NotNull final Editor editor, @NotNull final PsiFile file) { return autoImportReferenceAtCursor(editor, file, false); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java index 03cabbd7790b..640fafc0f609 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java @@ -50,6 +50,7 @@ import java.util.Comparator; public class MarkerType { public static final MarkerType OVERRIDING_METHOD = new MarkerType(new NullableFunction() { + @Override public String fun(PsiElement element) { PsiElement parent = element.getParent(); if (!(parent instanceof PsiMethod)) return null; @@ -73,6 +74,7 @@ public class MarkerType { return GutterIconTooltipHelper.composeText(superMethods, "", DaemonBundle.message(key)); } }, new LineMarkerNavigator(){ + @Override public void browse(MouseEvent e, PsiElement element) { PsiElement parent = element.getParent(); if (!(parent instanceof PsiMethod)) return; @@ -88,6 +90,7 @@ public class MarkerType { }); public static final String SEARCHING_FOR_OVERRIDING_METHODS = "Searching for overriding methods"; public static final MarkerType OVERRIDEN_METHOD = new MarkerType(new NullableFunction() { + @Override public String fun(PsiElement element) { PsiElement parent = element.getParent(); if (!(parent instanceof PsiMethod)) return null; @@ -113,6 +116,7 @@ public class MarkerType { return GutterIconTooltipHelper.composeText(overridings, start, pattern); } }, new LineMarkerNavigator(){ + @Override public void browse(MouseEvent e, PsiElement element) { PsiElement parent = element.getParent(); if (!(parent instanceof PsiMethod)) return; @@ -125,6 +129,7 @@ public class MarkerType { final PsiElementProcessor.CollectElementsWithLimit collectProcessor = new PsiElementProcessor.CollectElementsWithLimit(2, new THashSet()); if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { + @Override public void run() { OverridingMethodsSearch.search(method, true).forEach(new PsiElementProcessorAdapter(collectProcessor)); } @@ -144,6 +149,7 @@ public class MarkerType { }); public static final String SEARCHING_FOR_OVERRIDDEN_METHODS = "Searching for overridden methods"; public static final MarkerType SUBCLASSED_CLASS = new MarkerType(new NullableFunction() { + @Override public String fun(PsiElement element) { PsiElement parent = element.getParent(); if (!(parent instanceof PsiClass)) return null; @@ -170,6 +176,7 @@ public class MarkerType { return GutterIconTooltipHelper.composeText(subclasses, start, pattern); } }, new LineMarkerNavigator(){ + @Override public void browse(MouseEvent e, PsiElement element) { final PsiElement parent = element.getParent(); if (!(parent instanceof PsiClass)) return; @@ -182,6 +189,7 @@ public class MarkerType { final PsiClass aClass = (PsiClass)parent; final PsiElementProcessor.CollectElementsWithLimit collectProcessor = new PsiElementProcessor.CollectElementsWithLimit(2, new THashSet()); if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { + @Override public void run() { ClassInheritorsSearch.search(aClass, true).forEach(new PsiElementProcessorAdapter(collectProcessor)); } @@ -204,6 +212,7 @@ public class MarkerType { public MarkerType(Function tooltip, final LineMarkerNavigator navigator) { myTooltip = tooltip; handler = new GutterIconNavigationHandler() { + @Override public void navigate(MouseEvent e, PsiElement elt) { navigator.browse(e, elt); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java index 4ad7b395a013..c63c1ba23893 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java @@ -123,6 +123,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { myImplicitUsageProviders = Extensions.getExtensions(ImplicitUsageProvider.EP_NAME); } + @Override public void doCollectInformation(final ProgressIndicator progress) { DaemonCodeAnalyzer daemonCodeAnalyzer = DaemonCodeAnalyzer.getInstance(myProject); final FileStatusMap fileStatusMap = ((DaemonCodeAnalyzerImpl)daemonCodeAnalyzer).getFileStatusMap(); @@ -143,6 +144,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { myRefCountHolder = RefCountHolder.getInstance(myFile); if (!myRefCountHolder.retrieveUnusedReferencesInfo(new Runnable() { + @Override public void run() { boolean errorFound = collectHighlights(elementSet, highlights, progress); myHighlights = highlights; @@ -157,10 +159,12 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { } } + @Override public List getInfos() { return myHighlights == null ? null : new ArrayList(myHighlights); } + @Override public void doApplyInformationToEditor() { if (myHighlights == null) return; UpdateHighlightersUtil.setHighlightersToEditor(myProject, myDocument, myStartOffset, myEndOffset, myHighlights, getColorsScheme(), Pass.POST_UPDATE_ALL); @@ -177,6 +181,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { final OptimizeImportsFix optimizeImportsFix = new OptimizeImportsFix(); if (optimizeImportsFix.isAvailable(myProject, editor, myFile) && myFile.isWritable()) { invokeOnTheFlyImportOptimizer(new Runnable() { + @Override public void run() { optimizeImportsFix.invoke(myProject, editor, myFile); } @@ -188,11 +193,13 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { public static void invokeOnTheFlyImportOptimizer(@NotNull final Runnable runnable, @NotNull final PsiFile file, @NotNull final Editor editor) { final long stamp = editor.getDocument().getModificationStamp(); ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { if (file.getProject().isDisposed() || editor.isDisposed() || editor.getDocument().getModificationStamp() != stamp) return; PsiDocumentManager.getInstance(file.getProject()).commitAllDocuments(); String beforeText = file.getText(); CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(runnable); } @@ -394,6 +401,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { QuickFixAction.registerQuickFixAction(info, new CreateGetterOrSetterFix(false, true, field), myUnusedSymbolKey); QuickFixAction.registerQuickFixAction(info, HighlightMethodUtil.getFixRange(field), new CreateConstructorParameterFromFieldFix(field), null); SpecialAnnotationsUtil.createAddToSpecialAnnotationFixes(field, new Processor() { + @Override public boolean process(final String annoName) { QuickFixAction.registerQuickFixAction(info, UnusedSymbolLocalInspection.createQuickFix(annoName, "fields", field.getProject())); return true; @@ -520,6 +528,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { final HighlightInfo highlightInfo = createUnusedSymbolInfo(identifier, message, highlightInfoType); QuickFixAction.registerQuickFixAction(highlightInfo, new SafeDeleteFix(method), highlightDisplayKey); SpecialAnnotationsUtil.createAddToSpecialAnnotationFixes(method, new Processor() { + @Override public boolean process(final String annoName) { QuickFixAction.registerQuickFixAction(highlightInfo, UnusedSymbolLocalInspection.createQuickFix(annoName, "methods", method.getProject())); return true; @@ -667,6 +676,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { final HighlightInfo highlightInfo = createUnusedSymbolInfo(identifier, message, highlightInfoType); QuickFixAction.registerQuickFixAction(highlightInfo, new SafeDeleteFix(aClass), highlightDisplayKey); SpecialAnnotationsUtil.createAddToSpecialAnnotationFixes((PsiModifierListOwner)aClass, new Processor() { + @Override public boolean process(final String annoName) { QuickFixAction.registerQuickFixAction(highlightInfo, UnusedSymbolLocalInspection.createQuickFix(annoName, element, aClass.getProject())); return true; @@ -741,6 +751,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass { PsiImportList importList = ((PsiJavaFile)file).getImportList(); final TextRange importsRange = importList == null ? TextRange.EMPTY_RANGE : importList.getTextRange(); boolean hasErrorsExceptUnresolvedImports = !DaemonCodeAnalyzerImpl.processHighlights(myDocument, myProject, HighlightSeverity.ERROR, 0, myDocument.getTextLength(), new Processor() { + @Override public boolean process(HighlightInfo error) { int infoStart = error.getActualStartOffset(); int infoEnd = error.getActualEndOffset(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPassFactory.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPassFactory.java index 5dccca31de91..6bc23814b977 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPassFactory.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPassFactory.java @@ -41,12 +41,14 @@ public class PostHighlightingPassFactory extends AbstractProjectComponent implem highlightingPassRegistrar.registerTextEditorHighlightingPass(this, new int[]{Pass.UPDATE_ALL,}, null, true, Pass.POST_UPDATE_ALL); } + @Override @NonNls @NotNull public String getComponentName() { return "PostHighlightingPassFactory"; } + @Override @Nullable public TextEditorHighlightingPass createHighlightingPass(@NotNull PsiFile file, @NotNull final Editor editor) { TextRange textRange = FileStatusMap.getDirtyTextRange(editor, Pass.UPDATE_ALL); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java index dec89978d01f..2c6c38530cb2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java @@ -61,11 +61,13 @@ public class RemoveSuppressWarningAction implements LocalQuickFix { } } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("remove.suppression.action.family"); } + @Override public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { PsiElement element = descriptor.getPsiElement(); try { @@ -106,6 +108,7 @@ public class RemoveSuppressWarningAction implements LocalQuickFix { } } + @Override @NotNull public String getName() { return QuickFixBundle.message("remove.suppression.action.name", myID); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java index f2828f03063c..2419388d5c0a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java @@ -68,6 +68,7 @@ public class AddImportAction implements QuestionAction { myEditor = editor; } + @Override public boolean execute() { PsiDocumentManager.getInstance(myProject).commitAllDocuments(); @@ -156,12 +157,14 @@ public class AddImportAction implements QuestionAction { public static void excludeFromImport(final Project project, final String prefix) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { if (project.isDisposed()) return; final AutoImportOptionsConfigurable configurable = new AutoImportOptionsConfigurable(); ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() { - public void run() { + @Override + public void run() { final JavaAutoImportOptions options = ContainerUtil.findInstance(configurable.getConfigurables(), JavaAutoImportOptions.class); options.addExcludePackage(prefix); } @@ -184,8 +187,10 @@ public class AddImportAction implements QuestionAction { private void addImport(final PsiReference ref, final PsiClass targetClass) { StatisticsManager.getInstance().incUseCount(JavaStatisticsManager.createInfo(null, targetClass)); CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { _addImport(ref, targetClass); } @@ -233,6 +238,7 @@ public class AddImportAction implements QuestionAction { myEditor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); } ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { if (!myProject.isDisposed() && myProject.isOpen()) { DaemonCodeAnalyzer daemonCodeAnalyzer = DaemonCodeAnalyzer.getInstance(myProject); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressAllForClassFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressAllForClassFix.java index 5be443840641..3f43a51568b0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressAllForClassFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressAllForClassFix.java @@ -42,6 +42,7 @@ public class SuppressAllForClassFix extends SuppressFix { super(SuppressionUtil.ALL); } + @Override @Nullable protected PsiDocCommentOwner getContainer(final PsiElement element) { PsiDocCommentOwner container = super.getContainer(element); @@ -58,11 +59,13 @@ public class SuppressAllForClassFix extends SuppressFix { return container; } + @Override @NotNull public String getText() { return InspectionsBundle.message("suppress.all.for.class"); } + @Override public void invoke(final Project project, final Editor editor, final PsiElement element) throws IncorrectOperationException { final PsiDocCommentOwner container = getContainer(element); LOG.assertTrue(container != null); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressByJavaCommentFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressByJavaCommentFix.java index 456a62d9406c..63e992bc6701 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressByJavaCommentFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressByJavaCommentFix.java @@ -33,6 +33,7 @@ public class SuppressByJavaCommentFix extends SuppressByCommentFix { super(key, PsiStatement.class); } + @Override @Nullable protected PsiElement getContainer(PsiElement context) { if (context == null || PsiTreeUtil.getParentOfType(context, JspMethodCall.class) != null) return null; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressFix.java index d05ae0cde1b3..2c5cd77301aa 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressFix.java @@ -58,6 +58,7 @@ public class SuppressFix extends SuppressIntentionAction { myID = ID; } + @Override @NotNull public String getText() { return myText == null ? "Suppress for member" : myText; @@ -84,11 +85,13 @@ public class SuppressFix extends SuppressIntentionAction { return (PsiDocCommentOwner)container; } + @Override @NotNull public String getFamilyName() { return InspectionsBundle.message("suppress.inspection.family"); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, @NotNull final PsiElement context) { PsiDocCommentOwner container = getContainer(context); boolean isValid = container != null && !(container instanceof JspHolderMethod); @@ -101,6 +104,7 @@ public class SuppressFix extends SuppressIntentionAction { return true; } + @Override public void invoke(final Project project, final Editor editor, final PsiElement element) throws IncorrectOperationException { PsiDocCommentOwner container = getContainer(element); assert container != null; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressForClassFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressForClassFix.java index ed8896ae31c2..d8e5126353af 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressForClassFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressForClassFix.java @@ -38,6 +38,7 @@ public class SuppressForClassFix extends SuppressFix { super(id); } + @Override @Nullable protected PsiDocCommentOwner getContainer(final PsiElement element) { PsiDocCommentOwner container = super.getContainer(element); if (container == null || container instanceof PsiClass){ @@ -53,6 +54,7 @@ public class SuppressForClassFix extends SuppressFix { return container; } + @Override @NotNull public String getText() { return InspectionsBundle.message("suppress.inspection.class"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressParameterFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressParameterFix.java index bab75fd786dd..dbd6e2f38cc0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressParameterFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressParameterFix.java @@ -47,21 +47,25 @@ public class SuppressParameterFix extends SuppressIntentionAction { myID = ID; } + @Override @NotNull public String getText() { return "Suppress for parameter"; } + @Override @NotNull public String getFamilyName() { return InspectionsBundle.message("suppress.inspection.family"); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, @NotNull final PsiElement context) { PsiParameter psiParameter = PsiTreeUtil.getParentOfType(context, PsiParameter.class, false); return psiParameter != null && SuppressManager.getInstance().canHave15Suppressions(psiParameter); } + @Override public void invoke(final Project project, final Editor editor, final PsiElement element) throws IncorrectOperationException { PsiParameter container = PsiTreeUtil.getParentOfType(element, PsiParameter.class, false); assert container != null; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressWarningsFoldingBuilder.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressWarningsFoldingBuilder.java index 0c90b896ece3..f99abde5f685 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressWarningsFoldingBuilder.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/SuppressWarningsFoldingBuilder.java @@ -63,6 +63,7 @@ public class SuppressWarningsFoldingBuilder extends FoldingBuilderEx { final PsiElement element = node.getPsi(); if (element instanceof PsiAnnotation) { return "/" + StringUtil.join(((PsiAnnotation)element).getParameterList().getAttributes(), new Function() { + @Override public String fun(PsiNameValuePair value) { return getMemberValueText(value.getValue()); } @@ -75,6 +76,7 @@ public class SuppressWarningsFoldingBuilder extends FoldingBuilderEx { if (memberValue instanceof PsiArrayInitializerMemberValue) { final PsiAnnotationMemberValue[] initializers = ((PsiArrayInitializerMemberValue)memberValue).getInitializers(); return StringUtil.join(initializers, new Function() { + @Override public String fun(PsiAnnotationMemberValue psiAnnotationMemberValue) { return getMemberValueText(psiAnnotationMemberValue); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java index 10f26b2dd822..8f9282affd6f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java @@ -343,16 +343,19 @@ public class AnnotationsHighlightUtil { return Boolean.FALSE; } + @Override public Boolean visitPrimitiveType(PsiPrimitiveType primitiveType) { return PsiType.VOID.equals(primitiveType) || PsiType.NULL.equals(primitiveType) ? Boolean.FALSE : Boolean.TRUE; } + @Override public Boolean visitArrayType(PsiArrayType arrayType) { if (arrayType.getArrayDimensions() != 1) return Boolean.FALSE; PsiType componentType = arrayType.getComponentType(); return componentType.accept(this); } + @Override public Boolean visitClassType(PsiClassType classType) { if (classType.getParameters().length > 0) { PsiClassType rawType = classType.rawType(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index e3751fe40ecd..9861330d4557 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -908,6 +908,7 @@ public class HighlightClassUtil { if (selectedElements == null || selectedElements.isEmpty()) return; new WriteCommandAction(project, file) { + @Override protected void run(final Result result) throws Throwable { PsiNewExpression newExpression = (PsiNewExpression)JavaPsiFacade.getElementFactory(project).createExpressionFromText(startElement.getText() + "{}", startElement); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java index a9c31e753254..b36c101d74b5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java @@ -203,6 +203,7 @@ public class HighlightControlFlowUtil { private static class ParamWriteProcessor implements Processor { private volatile boolean myIsWriteRefFound = false; + @Override public boolean process(PsiReference reference) { final PsiElement element = reference.getElement(); if (element instanceof PsiReferenceExpression && PsiUtil.isAccessedForWriting((PsiExpression)element)) { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 54421bc47be8..71cc98994f5e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -591,6 +591,7 @@ public class HighlightUtil { variable instanceof PsiParameter && ((PsiParameter)variable).getDeclarationScope() instanceof PsiForeachStatement) { PsiElement scope = PsiTreeUtil.getParentOfType(variable, PsiFile.class, PsiMethod.class, PsiClassInitializer.class, PsiResourceList.class); VariablesNotProcessor proc = new VariablesNotProcessor(variable, false) { + @Override protected boolean check(final PsiVariable var, final ResolveState state) { return (var instanceof PsiLocalVariable || var instanceof PsiParameter) && super.check(var, state); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index a7f1b07f40e1..676eb1b95ad2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -85,31 +85,37 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh myResolveHelper = resolveHelper; } + @Override @NotNull public HighlightVisitorImpl clone() { return new HighlightVisitorImpl(myResolveHelper); } + @Override public int order() { return 0; } + @Override public boolean suitableForFile(@NotNull PsiFile file) { return !InjectedLanguageManager.getInstance(file.getProject()).isInjectedFragment(file); } + @Override public void visit(@NotNull PsiElement element) { element.accept(this); } private void registerReferencesFromInjectedFragments(final PsiElement element) { InjectedLanguageUtil.enumerate(element, myFile, false, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull final PsiFile injectedPsi, @NotNull final List places) { injectedPsi.accept(REGISTER_REFERENCES_VISITOR); } }); } + @Override public boolean analyze(@NotNull final PsiFile file, final boolean updateWholeFile, @NotNull HighlightInfoHolder holder, @@ -148,6 +154,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh return success; } + @Override public void visitElement(final PsiElement element) { if (element instanceof XmlAttributeValue) { try { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java index 7ccc5449e42e..86d298fb0781 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncreaseLanguageLevelFix.java @@ -46,11 +46,13 @@ public class IncreaseLanguageLevelFix implements IntentionAction { myLevel = targetLevel; } + @Override @NotNull public String getText() { return CodeInsightBundle.message("set.language.level.to.0", myLevel.getPresentableText()); } + @Override @NotNull public String getFamilyName() { return CodeInsightBundle.message("set.language.level"); @@ -63,6 +65,7 @@ public class IncreaseLanguageLevelFix implements IntentionAction { return version != null && version.getMaxLanguageLevel().isAtLeast(level); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null) return false; @@ -74,6 +77,7 @@ public class IncreaseLanguageLevelFix implements IntentionAction { return isJdkSupportsLevel(getRelevantJdk(project, module), level); } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { final VirtualFile virtualFile = file.getVirtualFile(); LOG.assertTrue(virtualFile != null); @@ -83,6 +87,7 @@ public class IncreaseLanguageLevelFix implements IntentionAction { final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); rootModel.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(myLevel); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { rootModel.commit(); } @@ -100,6 +105,7 @@ public class IncreaseLanguageLevelFix implements IntentionAction { return moduleJdk == null ? projectJdk : moduleJdk; } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavadocErrorFilter.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavadocErrorFilter.java index d5859999996b..660b241d5b7f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavadocErrorFilter.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavadocErrorFilter.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.NotNull; */ public class JavadocErrorFilter extends HighlightErrorFilter { + @Override public boolean shouldHighlightErrorElement(@NotNull final PsiErrorElement element) { return !value(element); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AccessStaticViaInstanceFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AccessStaticViaInstanceFix.java index d0fd70ce32fd..4d6d6c179293 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AccessStaticViaInstanceFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AccessStaticViaInstanceFix.java @@ -69,6 +69,7 @@ public class AccessStaticViaInstanceFix extends LocalQuickFixAndIntentionActionO HighlightUtil.formatClass(aClass, false)); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("access.static.via.class.reference.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddDefaultConstructorFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddDefaultConstructorFix.java index e24f8fffea7d..6cae6acff0b7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddDefaultConstructorFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddDefaultConstructorFix.java @@ -35,6 +35,7 @@ public class AddDefaultConstructorFix extends AddMethodFix { return constructorModifier + " " + aClass.getName() + "() {}"; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.default.constructor.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToCatchFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToCatchFix.java index abfc114e28bd..a05a775c3122 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToCatchFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToCatchFix.java @@ -44,6 +44,7 @@ import java.util.List; public class AddExceptionToCatchFix extends BaseIntentionAction { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.AddExceptionToCatchFix"); + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; int offset = editor.getCaretModel().getOffset(); @@ -143,6 +144,7 @@ public class AddExceptionToCatchFix extends BaseIntentionAction { return finallyElement; } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!(file instanceof PsiJavaFile)) return false; @@ -183,6 +185,7 @@ public class AddExceptionToCatchFix extends BaseIntentionAction { return null; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.catch.clause.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToThrowsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToThrowsFix.java index 0714e047d508..7ce033a5bdd6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToThrowsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToThrowsFix.java @@ -45,10 +45,12 @@ public class AddExceptionToThrowsFix extends BaseIntentionAction { myWrongElement = wrongElement; } + @Override public boolean startInWriteAction() { return false; } + @Override public void invoke(@NotNull final Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -91,6 +93,7 @@ public class AddExceptionToThrowsFix extends BaseIntentionAction { ApplicationManager.getApplication().runWriteAction( new Runnable() { + @Override public void run() { if (!CodeInsightUtilBase.prepareFileForWrite(targetMethod.getContainingFile())) return; if (processSuperMethods) { @@ -158,6 +161,7 @@ public class AddExceptionToThrowsFix extends BaseIntentionAction { CodeStyleManager.getInstance(project).reformat(targetMethod.getThrowsList()); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!(file instanceof PsiJavaFile)) return false; if (myWrongElement == null || !myWrongElement.isValid()) return false; @@ -171,6 +175,7 @@ public class AddExceptionToThrowsFix extends BaseIntentionAction { return true; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.exception.to.throws.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodBodyFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodBodyFix.java index 7cf67cd6bc99..c80f6d3ff970 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodBodyFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodBodyFix.java @@ -37,16 +37,19 @@ public class AddMethodBodyFix implements IntentionAction { myMethod = method; } + @Override @NotNull public String getText() { return QuickFixBundle.message("add.method.body.text"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myMethod != null && myMethod.isValid() @@ -55,6 +58,7 @@ public class AddMethodBodyFix implements IntentionAction { && myMethod.getManager().isInProject(myMethod); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myMethod.getContainingFile())) return; @@ -67,6 +71,7 @@ public class AddMethodBodyFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodFix.java index 16461d747f2d..cb1ef9f2c3af 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddMethodFix.java @@ -83,6 +83,7 @@ public class AddMethodFix extends LocalQuickFixAndIntentionActionOnPsiElement { return myText; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.method.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddNewArrayExpressionFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddNewArrayExpressionFix.java index f770415837a1..5e046d9a0b99 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddNewArrayExpressionFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddNewArrayExpressionFix.java @@ -36,22 +36,26 @@ public class AddNewArrayExpressionFix implements IntentionAction { myInitializer = initializer; } + @Override @NotNull public String getText() { PsiType type = getType(); return QuickFixBundle.message("add.new.array.text", type.getPresentableText()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.new.array.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myInitializer.isValid() || !myInitializer.getManager().isInProject(myInitializer)) return false; return getType() != null; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementsForWrite(myInitializer, file)) return; PsiManager manager = file.getManager(); @@ -80,6 +84,7 @@ public class AddNewArrayExpressionFix implements IntentionAction { return ((PsiArrayType)type).getComponentType(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddReturnFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddReturnFix.java index 2074ddb3a176..08a3591a8004 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddReturnFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddReturnFix.java @@ -38,16 +38,19 @@ public class AddReturnFix implements IntentionAction { myMethod = method; } + @Override @NotNull public String getText() { return QuickFixBundle.message("add.return.statement.family"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.return.statement.text"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myMethod != null && myMethod.isValid() @@ -57,6 +60,7 @@ public class AddReturnFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myMethod.getContainingFile())) return; @@ -103,6 +107,7 @@ public class AddReturnFix implements IntentionAction { return variables.toArray(new PsiVariable[variables.size()]); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddRuntimeExceptionToThrowsAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddRuntimeExceptionToThrowsAction.java index 02c41bdcaa03..7c7aeb0710cc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddRuntimeExceptionToThrowsAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddRuntimeExceptionToThrowsAction.java @@ -32,15 +32,18 @@ import java.util.Collections; */ public class AddRuntimeExceptionToThrowsAction implements IntentionAction { + @Override public boolean startInWriteAction() { return false; } + @Override @NotNull public String getText() { return QuickFixBundle.message("add.runtime.exception.to.throws.text"); } + @Override public void invoke(@NotNull final Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -63,6 +66,7 @@ public class AddRuntimeExceptionToThrowsAction implements IntentionAction { return false; } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!(file instanceof PsiJavaFile)) return false; PsiClassType exception = getRuntimeExceptionAtCaret(editor, file); @@ -93,6 +97,7 @@ public class AddRuntimeExceptionToThrowsAction implements IntentionAction { } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.runtime.exception.to.throws.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeArgumentsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeArgumentsFix.java index f0940a84f3ed..15901dd28f94 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeArgumentsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeArgumentsFix.java @@ -31,6 +31,7 @@ public class AddTypeArgumentsFix extends MethodArgumentFix { super(list, i, toType, factory); } + @Override @NotNull public String getText() { if (myArgList.getExpressions().length == 1) { @@ -41,10 +42,12 @@ public class AddTypeArgumentsFix extends MethodArgumentFix { } private static class MyFixerActionFactory extends ArgumentFixerActionFactory { + @Override public AddTypeArgumentsFix createFix(final PsiExpressionList list, final int i, final PsiType toType) { return new AddTypeArgumentsFix(list, i, toType, this); } + @Override protected PsiExpression getModifiedArgument(final PsiExpression expression, final PsiType toType) throws IncorrectOperationException { if (!PsiUtil.isLanguageLevel5OrHigher(expression)) return null; @@ -99,6 +102,7 @@ public class AddTypeArgumentsFix extends MethodArgumentFix { return null; } + @Override public boolean areTypesConvertible(final PsiType exprType, final PsiType parameterType, final PsiElement context) { return !(exprType instanceof PsiPrimitiveType) && !(parameterType instanceof PsiPrimitiveType); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java index 102df5c4bb51..0d5b7802b9e8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddTypeCastFix.java @@ -45,20 +45,24 @@ public class AddTypeCastFix implements IntentionAction { myExpression = expression; } + @Override @NotNull public String getText() { return QuickFixBundle.message("add.typecast.text", myType.getCanonicalText()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("add.typecast.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myType.isValid() && myExpression.isValid() && myExpression.getManager().isInProject(myExpression); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; addTypeCast(project, myExpression, myType); @@ -105,6 +109,7 @@ public class AddTypeCastFix implements IntentionAction { return typeCast; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddVariableInitializerFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddVariableInitializerFix.java index 04faee46a29a..df56824441cf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddVariableInitializerFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddVariableInitializerFix.java @@ -36,16 +36,19 @@ public class AddVariableInitializerFix implements IntentionAction { myVariable = variable; } + @Override @NotNull public String getText() { return CodeInsightBundle.message("quickfix.add.variable.text", myVariable.getName()); } + @Override @NotNull public String getFamilyName() { return CodeInsightBundle.message("quickfix.add.variable.family.name"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myVariable != null && myVariable.isValid() @@ -54,6 +57,7 @@ public class AddVariableInitializerFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(myVariable.getContainingFile())) return; @@ -82,6 +86,7 @@ public class AddVariableInitializerFix implements IntentionAction { return PsiTypesUtil.getDefaultValueOfType(type); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/BringVariableIntoScopeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/BringVariableIntoScopeFix.java index 985ef619415c..d4d3e2b5c1a0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/BringVariableIntoScopeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/BringVariableIntoScopeFix.java @@ -46,6 +46,7 @@ public class BringVariableIntoScopeFix implements IntentionAction { myUnresolvedReference = unresolvedReference; } + @Override @NotNull public String getText() { PsiLocalVariable variable = myOutOfScopeVariable; @@ -54,11 +55,13 @@ public class BringVariableIntoScopeFix implements IntentionAction { return QuickFixBundle.message("bring.variable.to.scope.text", varText); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("bring.variable.to.scope.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!(file instanceof PsiJavaFile)) return false; if (myUnresolvedReference.isQualified()) return false; @@ -95,6 +98,7 @@ public class BringVariableIntoScopeFix implements IntentionAction { return myOutOfScopeVariable != null; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { LOG.assertTrue(myOutOfScopeVariable != null); PsiManager manager = file.getManager(); @@ -158,6 +162,7 @@ public class BringVariableIntoScopeFix implements IntentionAction { variable.setInitializer(initializer); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CastMethodArgumentFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CastMethodArgumentFix.java index 6887a10a270d..554c87c64698 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CastMethodArgumentFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CastMethodArgumentFix.java @@ -34,6 +34,7 @@ public class CastMethodArgumentFix extends MethodArgumentFix { super(list, i, toType, factory); } + @Override @NotNull public String getText() { if (myArgList.getExpressions().length == 1) { @@ -44,10 +45,12 @@ public class CastMethodArgumentFix extends MethodArgumentFix { } private static class MyFixerActionFactory extends ArgumentFixerActionFactory { + @Override public CastMethodArgumentFix createFix(final PsiExpressionList list, final int i, final PsiType toType) { return new CastMethodArgumentFix(list, i, toType, this); } + @Override protected PsiExpression getModifiedArgument(final PsiExpression expression, PsiType toType) throws IncorrectOperationException { final PsiType exprType = expression.getType(); if (exprType instanceof PsiClassType && toType instanceof PsiPrimitiveType) { @@ -57,6 +60,7 @@ public class CastMethodArgumentFix extends MethodArgumentFix { return AddTypeCastFix.createCastExpression(expression, expression.getProject(), toType); } + @Override public boolean areTypesConvertible(PsiType exprType, PsiType parameterType, final PsiElement context) { if (exprType instanceof PsiClassType && parameterType instanceof PsiPrimitiveType) { parameterType = ((PsiPrimitiveType)parameterType).getBoxedType(context); //unboxing from type of cast expression will take place at runtime diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeExtendsToImplementsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeExtendsToImplementsFix.java index b70e339bf38a..7edfb619e311 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeExtendsToImplementsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeExtendsToImplementsFix.java @@ -39,6 +39,7 @@ public class ChangeExtendsToImplementsFix extends ExtendsListFix { myClassToExtendFrom.getQualifiedName()); } + @Override @NotNull public String getText() { return myName; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeMethodSignatureFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeMethodSignatureFromUsageFix.java index 37d20edc90c6..8d30aa554027 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeMethodSignatureFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeMethodSignatureFromUsageFix.java @@ -87,6 +87,7 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP myMinUsagesNumberToShowDialog = minUsagesNumberToShowDialog; } + @Override @NotNull public String getText() { final String shortText = getShortText(); @@ -142,11 +143,13 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP return result; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("change.method.signature.from.usage.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myTargetMethod.isValid()) return false; for (PsiExpression expression : myExpressions) { @@ -167,6 +170,7 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP return false; } + @Override public void invoke(@NotNull final Project project, Editor editor, final PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -185,8 +189,10 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP options.isSearchForTextOccurrences = false; final int[] usagesFound = new int[1]; Runnable runnable = new Runnable() { + @Override public void run() { Processor processor = new Processor() { + @Override public boolean process(final UsageInfo t) { return ++usagesFound[0] < myMinUsagesNumberToShowDialog; } @@ -207,6 +213,7 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP method.getName(), method.getReturnType(), myNewParametersInfo){ + @Override @NotNull protected UsageInfo[] findUsages() { return myChangeAllUsages ? super.findUsages() : UsageInfo.EMPTY_ARRAY; @@ -214,6 +221,7 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP }; processor.run(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { UndoUtil.markPsiFileForUndo(file); } @@ -434,6 +442,7 @@ public class ChangeMethodSignatureFromUsageFix implements IntentionAction, HighP } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeNewOperatorTypeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeNewOperatorTypeFix.java index a6469ba7b0fd..f95c595b3fe2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeNewOperatorTypeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeNewOperatorTypeFix.java @@ -43,16 +43,19 @@ public class ChangeNewOperatorTypeFix implements IntentionAction { myExpression = expression; } + @Override @NotNull public String getText() { return QuickFixBundle.message("change.new.operator.type.text", new PsiExpressionTrimRenderer.RenderFunction().fun(myExpression), myType.getPresentableText(), myType instanceof PsiArrayType ? "" : "()"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("change.new.operator.type.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myType.isValid() && myExpression.isValid() @@ -62,6 +65,7 @@ public class ChangeNewOperatorTypeFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; changeNewOperatorType(myExpression, myType, editor); @@ -114,6 +118,7 @@ public class ChangeNewOperatorTypeFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeParameterClassFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeParameterClassFix.java index 0195f64e287f..75f1fad5c7a0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeParameterClassFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeParameterClassFix.java @@ -49,6 +49,7 @@ public class ChangeParameterClassFix extends ExtendsListFix { super(aClassToExtend, parameterClass, true); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("change.parameter.class.family"); @@ -77,6 +78,7 @@ public class ChangeParameterClassFix extends ExtendsListFix { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; ApplicationManager.getApplication().runWriteAction( new Runnable() { + @Override public void run() { invokeImpl(myClass); } @@ -89,9 +91,11 @@ public class ChangeParameterClassFix extends ExtendsListFix { if (ApplicationManager.getApplication().isUnitTestMode()) { ApplicationManager.getApplication().runWriteAction( new Runnable() { + @Override public void run() { Collection members = ContainerUtil.map2List(toImplement, new Function() { + @Override public PsiMethodMember fun(final CandidateInfo s) { return new PsiMethodMember(s); } @@ -141,6 +145,7 @@ public class ChangeParameterClassFix extends ExtendsListFix { } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeStringLiteralToCharInMethodCallFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeStringLiteralToCharInMethodCallFix.java index 919d7880f176..88658e227728 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeStringLiteralToCharInMethodCallFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ChangeStringLiteralToCharInMethodCallFix.java @@ -41,6 +41,7 @@ public class ChangeStringLiteralToCharInMethodCallFix implements IntentionAction myCall = methodCall; } + @Override @NotNull public String getText() { final String convertedValue = convertedValue(); @@ -49,15 +50,18 @@ public class ChangeStringLiteralToCharInMethodCallFix implements IntentionAction quote(convertedValue, ! isString), isString ? PsiType.CHAR.getCanonicalText() : "String"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.single.character.string.to.char.literal.family"); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return myCall.isValid() && myLiteral.isValid() && myCall.getManager().isInProject(myCall); } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -71,6 +75,7 @@ public class ChangeStringLiteralToCharInMethodCallFix implements IntentionAction } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertReturnStatementsVisitor.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertReturnStatementsVisitor.java index 8003afcc7ace..8c2004586cd8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertReturnStatementsVisitor.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertReturnStatementsVisitor.java @@ -37,6 +37,7 @@ public class ConvertReturnStatementsVisitor implements ReturnStatementsVisitor { myDefaultValue = PsiTypesUtil.getDefaultValueOfType(targetType); } + @Override public void visit(final List returnStatements) throws IncorrectOperationException { final PsiReturnStatement statement = replaceReturnStatements(returnStatements); if (statement != null) { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateCastExpressionFromInstanceofAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateCastExpressionFromInstanceofAction.java index 6168f6cb5eb5..fa61a138c7eb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateCastExpressionFromInstanceofAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateCastExpressionFromInstanceofAction.java @@ -44,6 +44,7 @@ public class CreateCastExpressionFromInstanceofAction extends CreateLocalVarFrom return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -71,6 +72,7 @@ public class CreateCastExpressionFromInstanceofAction extends CreateLocalVarFrom return CodeInsightUtilBase.forcePsiPostprocessAndRestoreElement(element); } + @Override @NotNull public String getFamilyName() { return CodeInsightBundle.message("cast.expression"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromNewFix.java index cf12f2517f9e..3165e7e01aad 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromNewFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromNewFix.java @@ -48,6 +48,7 @@ public class CreateClassFromNewFix extends CreateFromUsageBaseFix { return (PsiNewExpression)myNewExpression.getElement(); } + @Override protected void invokeImpl(PsiClass targetClass) { assert ApplicationManager.getApplication().isWriteAccessAllowed(); @@ -55,9 +56,11 @@ public class CreateClassFromNewFix extends CreateFromUsageBaseFix { final PsiJavaCodeReferenceElement referenceElement = getReferenceElement(newExpression); ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { final PsiClass[] psiClass = new PsiClass[1]; CommandProcessor.getInstance().executeCommand(newExpression.getProject(), new Runnable() { + @Override public void run() { psiClass[0] = CreateFromUsageUtils.createClass(referenceElement, CreateClassKind.CLASS, null); } @@ -193,6 +196,7 @@ public class CreateClassFromNewFix extends CreateFromUsageBaseFix { return null; } + @Override protected PsiElement getElement() { final PsiNewExpression expression = getNewExpression(); if (expression == null || !expression.getManager().isInProject(expression)) return null; @@ -203,15 +207,18 @@ public class CreateClassFromNewFix extends CreateFromUsageBaseFix { return null; } + @Override protected boolean isAllowOuterTargetClass() { return false; } + @Override protected boolean isValidElement(PsiElement element) { PsiJavaCodeReferenceElement ref = PsiTreeUtil.getChildOfType(element, PsiJavaCodeReferenceElement.class); return ref != null && ref.resolve() != null; } + @Override protected boolean isAvailableImpl(int offset) { PsiElement nameElement = getNameElement(getNewExpression()); @@ -243,6 +250,7 @@ public class CreateClassFromNewFix extends CreateFromUsageBaseFix { return referenceElement.getReferenceNameElement(); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.class.from.new.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java index 29a2e01f0b5e..953d0c18afce 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageBaseFix.java @@ -100,6 +100,7 @@ public abstract class CreateClassFromUsageBaseFix extends BaseIntentionAction { return Character.isUpperCase(name.charAt(0)); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { final PsiJavaCodeReferenceElement element = getRefElement(); if (element == null || @@ -121,6 +122,7 @@ public abstract class CreateClassFromUsageBaseFix extends BaseIntentionAction { return false; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.class.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java index 8ace8021c913..02e536262cbc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateClassFromUsageFix.java @@ -39,11 +39,13 @@ public class CreateClassFromUsageFix extends CreateClassFromUsageBaseFix { super(kind, refElement); } + @Override public String getText(String varName) { return QuickFixBundle.message("create.class.from.usage.text", StringUtil.capitalize(myKind.getDescription()), varName); } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) { final PsiJavaCodeReferenceElement element = getRefElement(); assert element != null; @@ -54,6 +56,7 @@ public class CreateClassFromUsageFix extends CreateClassFromUsageBaseFix { ApplicationManager.getApplication().runWriteAction( new Runnable() { + @Override public void run() { PsiJavaCodeReferenceElement refElement = element; try { @@ -73,6 +76,7 @@ public class CreateClassFromUsageFix extends CreateClassFromUsageBaseFix { ); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstantFieldFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstantFieldFromUsageFix.java index da583b6cd69d..50435742e799 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstantFieldFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstantFieldFromUsageFix.java @@ -24,10 +24,12 @@ import com.intellij.psi.PsiReferenceExpression; import org.jetbrains.annotations.NotNull; public class CreateConstantFieldFromUsageFix extends CreateFieldFromUsageFix { + @Override protected boolean createConstantField() { return true; } + @Override protected boolean isAvailableImpl(int offset) { if (!super.isAvailableImpl(offset)) return false; String refName = myReferenceExpression.getReferenceName(); @@ -38,10 +40,12 @@ public class CreateConstantFieldFromUsageFix extends CreateFieldFromUsageFix { super(referenceElement); } + @Override protected String getText(String varName) { return QuickFixBundle.message("create.constant.from.usage.text", varName); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constant.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromCallFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromCallFix.java index 1b49e207d570..9668c309a9fc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromCallFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromCallFix.java @@ -43,6 +43,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { myConstructorCall = constructorCall; } + @Override protected void invokeImpl(final PsiClass targetClass) { final Project project = myConstructorCall.getProject(); PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory(); @@ -65,8 +66,10 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { editor.getCaretModel().moveToOffset(textRange.getStartOffset()); startTemplate(editor, template, project, new TemplateEditingAdapter() { + @Override public void templateFinished(Template template, boolean brokenOff) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); @@ -111,6 +114,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { return null; } + @Override protected PsiElement getElement() { if (!myConstructorCall.isValid() || !myConstructorCall.getManager().isInProject(myConstructorCall)) return null; @@ -126,6 +130,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { return null; } + @Override protected boolean isValidElement(PsiElement element) { PsiConstructorCall constructorCall = (PsiConstructorCall)element; PsiMethod method = constructorCall.resolveConstructor(); @@ -135,6 +140,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { return !CreateFromUsageUtils.shouldCreateConstructor(targetClass, argumentList, method); } + @Override protected boolean isAvailableImpl(int offset) { PsiElement element = getElement(myConstructorCall); @@ -171,6 +177,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix { return null; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constructor.from.new.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromSuperFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromSuperFix.java index ab3107b31255..43ed9a754d0e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromSuperFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromSuperFix.java @@ -33,10 +33,12 @@ public class CreateConstructorFromSuperFix extends CreateConstructorFromThisOrSu super(methodCall); } + @Override protected String getSyntheticMethodName() { return "super"; } + @Override @NotNull protected List getTargetClasses(PsiElement element) { do { @@ -55,6 +57,7 @@ public class CreateConstructorFromSuperFix extends CreateConstructorFromThisOrSu return Collections.emptyList(); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constructor.from.super.call.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisFix.java index 83b8bd5cd52e..b03fb7c3eadd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisFix.java @@ -36,10 +36,12 @@ public class CreateConstructorFromThisFix extends CreateConstructorFromThisOrSup super(methodCall); } + @Override protected String getSyntheticMethodName() { return "this"; } + @Override @NotNull protected List getTargetClasses(PsiElement element) { PsiElement e = element; @@ -54,6 +56,7 @@ public class CreateConstructorFromThisFix extends CreateConstructorFromThisOrSup } } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constructor.from.this.call.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisOrSuperFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisOrSuperFix.java index feef7fce0cda..9f4e57125ffd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisOrSuperFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorFromThisOrSuperFix.java @@ -56,6 +56,7 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag @NonNls protected abstract String getSyntheticMethodName (); + @Override protected boolean isAvailableImpl(int offset) { PsiReferenceExpression ref = myMethodCall.getMethodExpression(); if (!ref.getText().equals(getSyntheticMethodName())) return false; @@ -74,6 +75,7 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag return false; } + @Override protected void invokeImpl(PsiClass targetClass) { final PsiFile callSite = myMethodCall.getContainingFile(); final Project project = myMethodCall.getProject(); @@ -109,8 +111,10 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag startTemplate(editor, template, project, new TemplateEditingAdapter() { + @Override public void templateFinished(Template template, boolean brokenOff) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); @@ -134,6 +138,7 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag } } + @Override protected boolean isValidElement(PsiElement element) { PsiMethodCallExpression methodCall = (PsiMethodCallExpression) element; PsiMethod method = (PsiMethod) methodCall.getMethodExpression().resolve(); @@ -143,6 +148,7 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag return !CreateFromUsageUtils.shouldCreateConstructor(targetClass, argumentList, method); } + @Override protected PsiElement getElement() { if (!myMethodCall.isValid() || !myMethodCall.getManager().isInProject(myMethodCall)) return null; return myMethodCall; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorMatchingSuperFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorMatchingSuperFix.java index 0f9b72c4c1b8..0a33347490cd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorMatchingSuperFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorMatchingSuperFix.java @@ -52,17 +52,20 @@ public class CreateConstructorMatchingSuperFix extends BaseIntentionAction { myClass = aClass; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constructor.matching.super"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myClass.isValid() || !myClass.getManager().isInProject(myClass)) return false; setText(QuickFixBundle.message("create.constructor.matching.super")); return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myClass.getContainingFile())) return; PsiClass baseClass = myClass.getSuperClass(); @@ -106,6 +109,7 @@ public class CreateConstructorMatchingSuperFix extends BaseIntentionAction { final boolean isCopyJavadoc1 = isCopyJavadoc; ApplicationManager.getApplication().runWriteAction ( new Runnable() { + @Override public void run() { try { PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory(); @@ -154,6 +158,7 @@ public class CreateConstructorMatchingSuperFix extends BaseIntentionAction { ); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java index 686a52a5dea5..28ee8e1424fe 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java @@ -60,17 +60,20 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { getFieldsToFix().add(myField); } + @Override @NotNull public String getText() { if (getFieldsToFix().size() > 1 && myClass.getConstructors().length <= 1) return "Add constructor parameters"; return QuickFixBundle.message("add.constructor.parameter.name"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { final PsiField field = getField(); PsiClass containingClass = field == null ? null : field.getContainingClass(); @@ -84,6 +87,7 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { ; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -91,6 +95,7 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { if (constructors.length == 0) { final AddDefaultConstructorFix defaultConstructorFix = new AddDefaultConstructorFix(myClass); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { defaultConstructorFix.invoke(project, editor, file); } @@ -224,6 +229,7 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { HintManager.getInstance().showErrorHint(editor, "Constructor with corresponding signature already exist"); } return ApplicationManager.getApplication().runWriteAction(new Computable() { + @Override public Boolean compute() { return doCreate(project, editor, parameters, constructorPointer, addParamFix, fields); } @@ -281,6 +287,7 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { return myField.getElement(); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateEnumConstantFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateEnumConstantFromUsageFix.java index 00b7e1aef820..6385475597de 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateEnumConstantFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateEnumConstantFromUsageFix.java @@ -41,10 +41,12 @@ public class CreateEnumConstantFromUsageFix extends CreateVarFromUsageFix implem super(referenceElement); } + @Override protected String getText(String varName) { return QuickFixBundle.message("create.enum.constant.from.usage.text", myReferenceExpression.getReferenceName()); } + @Override protected void invokeImpl(final PsiClass targetClass) { LOG.assertTrue(targetClass.isEnum()); final String name = myReferenceExpression.getReferenceName(); @@ -86,6 +88,7 @@ public class CreateEnumConstantFromUsageFix extends CreateVarFromUsageFix implem } + @Override protected boolean isAvailableImpl(int offset) { if (!super.isAvailableImpl(offset)) return false; PsiElement element = getElement(); @@ -99,6 +102,7 @@ public class CreateEnumConstantFromUsageFix extends CreateVarFromUsageFix implem return false; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.constant.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java index 85ea2a611336..59b5b6cd290a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFieldFromUsageFix.java @@ -43,6 +43,7 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { super(referenceElement); } + @Override protected String getText(String varName) { return QuickFixBundle.message("create.field.from.usage.text", varName); } @@ -51,6 +52,7 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { return false; } + @Override protected void invokeImpl(final PsiClass targetClass) { final Project project = myReferenceExpression.getProject(); PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory(); @@ -129,6 +131,7 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { final PsiField psiField = PsiTreeUtil.findElementOfClassAtOffset(targetFile, offset, PsiField.class, false); if (psiField != null) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { CodeStyleManager.getInstance(project).reformat(psiField); } @@ -138,6 +141,7 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix { }); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.field.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java index cd388ed2edd3..8d5df91fbfbe 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java @@ -55,6 +55,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { protected CreateFromUsageBaseFix() { } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { int offset = editor.getCaretModel().getOffset(); PsiElement element = getElement(); @@ -72,6 +73,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { protected abstract boolean isValidElement(PsiElement result); + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { PsiDocumentManager.getInstance(project).commitAllDocuments(); @@ -102,6 +104,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { invokeImpl(targetClass); } @@ -122,6 +125,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { renderer.installSpeedSearch(builder); Runnable runnable = new Runnable() { + @Override public void run() { int index = list.getSelectedIndex(); if (index < 0) return; @@ -349,6 +353,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { final TemplateEditingListener listener, final String commandName) { Runnable runnable = new Runnable() { + @Override public void run() { if (project.isDisposed() || editor.isDisposed()) return; CommandProcessor.getInstance().executeCommand(project, new Runnable() { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java index 6d127fb0088f..b06471bdb01a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java @@ -164,6 +164,7 @@ public class CreateFromUsageUtils { } catch (IncorrectOperationException e) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { Messages.showErrorDialog(QuickFixBundle.message("new.method.body.template.error.text"), QuickFixBundle.message("new.method.body.template.error.title")); @@ -277,6 +278,7 @@ public class CreateFromUsageUtils { if (qualifierElement instanceof PsiClass) { return ApplicationManager.getApplication().runWriteAction( new Computable() { + @Override public PsiClass compute() { return createClassInQualifier((PsiClass)qualifierElement, classKind, name, referenceElement); } @@ -370,6 +372,7 @@ public class CreateFromUsageUtils { return ApplicationManager.getApplication().runWriteAction( new Computable() { + @Override public PsiClass compute() { try { PsiClass targetClass; @@ -445,6 +448,7 @@ public class CreateFromUsageUtils { public static void scheduleFileOrPackageCreationFailedMessageBox(final IncorrectOperationException e, final String name, final PsiDirectory directory, final boolean isPackage) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { Messages.showErrorDialog(QuickFixBundle.message( isPackage ? "cannot.create.java.package.error.text" : "cannot.create.java.file.error.text", name, directory.getVirtualFile().getName(), e.getLocalizedMessage()), @@ -498,6 +502,7 @@ public class CreateFromUsageUtils { final List list = new ArrayList(); VariablesProcessor varproc = new VariablesProcessor("", true, list){ + @Override public boolean execute(PsiElement element, ResolveState state) { if(!(element instanceof PsiField) || JavaPsiFacade.getInstance(element.getProject()).getResolveHelper().isAccessible((PsiField)element, expression, null)) { @@ -679,6 +684,7 @@ public class CreateFromUsageUtils { final Set typesSet = new HashSet(); PsiTypeVisitor visitor = new PsiTypeVisitor() { + @Override @Nullable public PsiType visitType(PsiType type) { if (PsiType.NULL.equals(type)) { @@ -710,6 +716,7 @@ public class CreateFromUsageUtils { return null; } + @Override public PsiType visitCapturedWildcardType(PsiCapturedWildcardType capturedWildcardType) { return capturedWildcardType.getUpperBound().accept(this); } @@ -731,6 +738,7 @@ public class CreateFromUsageUtils { List types, PsiElementFactory factory) { Arrays.sort(members, new Comparator() { + @Override public int compare(final PsiMember m1, final PsiMember m2) { int result = JavaStatisticsManager.createInfo(null, m2).getUseCount() - JavaStatisticsManager.createInfo(null, m1).getUseCount(); if (result != 0) return result; @@ -812,6 +820,7 @@ public class CreateFromUsageUtils { if (moduleForFile == null) return; final GlobalSearchScope searchScope = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public GlobalSearchScope compute() { return file.getResolveScope(); } @@ -825,6 +834,7 @@ public class CreateFromUsageUtils { } final PsiMember[] members = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiMember[] compute() { return method ? cache.getMethodsByName(memberName, searchScope) : cache.getFieldsByName(memberName, searchScope); } @@ -840,6 +850,7 @@ public class CreateFromUsageUtils { if (qName == null) continue; ClassInheritorsSearch.search(containingClass, descendantsSearchScope, true, true, false).forEach(new Processor() { + @Override public boolean process(PsiClass psiClass) { ContainerUtil.addIfNotNull(getQualifiedName(psiClass), possibleClassNames); return true; @@ -857,6 +868,7 @@ public class CreateFromUsageUtils { final PsiShortNamesCache cache = PsiShortNamesCache.getInstance(facade.getProject()); final boolean[] allClasses = {false}; ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { final PsiClass objectClass = facade.findClass(CommonClassNames.JAVA_LANG_OBJECT, searchScope); if (objectClass != null) { @@ -880,12 +892,14 @@ public class CreateFromUsageUtils { } final String[] strings = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public String[] compute() { return cache.getAllClassNames(); } }); for (final String className : strings) { final PsiClass[] classes = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiClass[] compute() { return cache.getClassesByName(className, searchScope); } @@ -903,6 +917,7 @@ public class CreateFromUsageUtils { @Nullable private static String getQualifiedName(final PsiClass aClass) { return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public String compute() { return aClass.getQualifiedName(); } @@ -915,6 +930,7 @@ public class CreateFromUsageUtils { } return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { return !member.hasModifierProperty(PsiModifier.PRIVATE) && member.hasModifierProperty(PsiModifier.STATIC) == staticAccess; } @@ -928,6 +944,7 @@ public class CreateFromUsageUtils { myNames = names; } + @Override public Result calculateResult(ExpressionContext context) { LookupElement[] lookupItems = calculateLookupItems(context); if (lookupItems.length == 0) return new TextResult(""); @@ -935,10 +952,12 @@ public class CreateFromUsageUtils { return new TextResult(lookupItems[0].getLookupString()); } + @Override public Result calculateQuickResult(ExpressionContext context) { return null; } + @Override @NotNull public LookupElement[] calculateLookupItems(ExpressionContext context) { Project project = context.getProject(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java index 5c78831bda8a..9f64fcffe1cc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java @@ -47,6 +47,7 @@ public class CreateGetterOrSetterFix implements IntentionAction, LowPriorityActi myPropertyName = PropertyUtil.suggestPropertyName(project, field); } + @Override @NotNull public String getText() { @NonNls final String what; @@ -66,11 +67,13 @@ public class CreateGetterOrSetterFix implements IntentionAction, LowPriorityActi return QuickFixBundle.message(what, myField.getName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.accessor.for.unused.field.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myField.isValid()) return false; PsiClass aClass = myField.getContainingClass(); @@ -86,6 +89,7 @@ public class CreateGetterOrSetterFix implements IntentionAction, LowPriorityActi return true; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementForWrite(myField)) return; PsiClass aClass = myField.getContainingClass(); @@ -97,6 +101,7 @@ public class CreateGetterOrSetterFix implements IntentionAction, LowPriorityActi } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java index 8786e27575d6..2ccaa4b80f19 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java @@ -33,14 +33,17 @@ public class CreateInnerClassFromNewFix extends CreateClassFromNewFix { super(expr); } + @Override public String getText(String varName) { return QuickFixBundle.message("create.inner.class.from.usage.text", StringUtil.capitalize(CreateClassKind.CLASS.getDescription()), varName); } + @Override protected boolean isAllowOuterTargetClass() { return true; } + @Override protected void invokeImpl(final PsiClass targetClass) { PsiNewExpression newExpression = getNewExpression(); PsiJavaCodeReferenceElement ref = newExpression.getClassOrAnonymousClassReference(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java index aa860a5eb1e3..f9a72b4bdebb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java @@ -46,10 +46,12 @@ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix { super(kind, refElement); } + @Override public String getText(String varName) { return QuickFixBundle.message("create.inner.class.from.usage.text", StringUtil.capitalize(myKind.getDescription()), varName); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { final PsiJavaCodeReferenceElement element = getRefElement(); assert element != null; @@ -64,6 +66,7 @@ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix { } } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return super.isAvailable(project, editor, file) && getPossibleTargets(getRefElement()).length > 0; } @@ -99,13 +102,16 @@ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix { renderer.installSpeedSearch(builder); Runnable runnable = new Runnable() { + @Override public void run() { int index = list.getSelectedIndex(); if (index < 0) return; final PsiClass aClass = (PsiClass)list.getSelectedValue(); CommandProcessor.getInstance().executeCommand(project, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { doInvoke(aClass, superClassName); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java index cfaa35d6e406..eeb4b3da92e5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalFromUsageFix.java @@ -44,10 +44,12 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.CreateLocalFromUsageFix"); + @Override public String getText(String varName) { return QuickFixBundle.message("create.local.from.usage.text", varName); } + @Override protected boolean isAvailableImpl(int offset) { if (!super.isAvailableImpl(offset)) return false; if(myReferenceExpression.isQualified()) return false; @@ -56,6 +58,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { scope instanceof PsiLocalVariable || scope instanceof PsiAnonymousClass; } + @Override protected void invokeImpl(final PsiClass targetClass) { if (CreateFromUsageUtils.isValidReference(myReferenceExpression, true)) { return; @@ -126,6 +129,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { final PsiLocalVariable localVariable = PsiTreeUtil.findElementOfClassAtOffset(targetFile, offset, PsiLocalVariable.class, false); if (localVariable != null) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { CodeStyleManager.getInstance(project).reformat(localVariable); } @@ -135,6 +139,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { }); } + @Override protected boolean isAllowOuterTargetClass() { return false; } @@ -157,6 +162,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix { return statements[statements.length - 1]; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.local.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalVarFromInstanceofAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalVarFromInstanceofAction.java index 018ce9ce78f9..14f3612a9b16 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalVarFromInstanceofAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateLocalVarFromInstanceofAction.java @@ -53,6 +53,7 @@ import java.util.Set; public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.CreateLocalVarFromInstanceofAction"); + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { PsiInstanceOfExpression instanceOfExpression = getInstanceOfExpressionAtCaret(editor, file); if (instanceOfExpression == null) return false; @@ -169,6 +170,7 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction { return editor.getDocument().getLineNumber(condition.getTextOffset()) == line; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -189,8 +191,10 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction { newEditor.getDocument().deleteString(range.getStartOffset(), range.getEndOffset()); CreateFromUsageBaseFix.startTemplate(newEditor, template, project, new TemplateEditingAdapter() { + @Override public void templateFinished(Template template, boolean brokenOff) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); @@ -346,14 +350,17 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction { final Result result = uniqueNames.isEmpty() ? null : new TextResult(uniqueNames.get(0)); Expression expr = new Expression() { + @Override public LookupElement[] calculateLookupItems(ExpressionContext context) { return lookupItems.length > 1 ? lookupItems : null; } + @Override public Result calculateResult(ExpressionContext context) { return result; } + @Override public Result calculateQuickResult(ExpressionContext context) { return result; } @@ -363,6 +370,7 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction { return template; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.local.from.instanceof.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodFromUsageFix.java index 26ecf4637209..98c10eb8ad7a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodFromUsageFix.java @@ -59,6 +59,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { myMethodCall = SmartPointerManager.getInstance(methodCall.getProject()).createSmartPsiElementPointer(methodCall); } + @Override protected boolean isAvailableImpl(int offset) { final PsiMethodCallExpression call = getMethodCall(); if (call == null || !call.isValid()) return false; @@ -96,18 +97,21 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { //strictly inside arg list argRange.getStartOffset()+1, argRange.getEndOffset()-1, new Processor() { + @Override public boolean process(HighlightInfo info) { return !(info.getActualStartOffset() > argRange.getStartOffset() && info.getActualEndOffset() < argRange.getEndOffset()); } }); } + @Override protected PsiElement getElement() { final PsiMethodCallExpression call = getMethodCall(); if (call == null || !call.getManager().isInProject(call)) return null; return call; } + @Override @NotNull protected List getTargetClasses(PsiElement element) { List targets = super.getTargetClasses(element); @@ -122,6 +126,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { return result; } + @Override protected void invokeImpl(final PsiClass targetClass) { if (targetClass == null) return; PsiMethodCallExpression expression = getMethodCall(); @@ -233,8 +238,10 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { if (!shouldBeAbstract) { startTemplate(newEditor, template, project, new TemplateEditingAdapter() { + @Override public void templateFinished(Template template, boolean brokenOff) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { PsiDocumentManager.getInstance(project).commitDocument(newEditor.getDocument()); final int offset = newEditor.getCaretModel().getOffset(); @@ -305,6 +312,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { return targetClass.isInterface(); } + @Override protected boolean isValidElement(PsiElement element) { PsiMethodCallExpression callExpression = (PsiMethodCallExpression) element; PsiReferenceExpression referenceExpression = callExpression.getMethodExpression(); @@ -312,6 +320,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix { return CreateFromUsageUtils.isValidMethodReference(referenceExpression, callExpression); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.method.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodQuickFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodQuickFix.java index ca1c6e2cf842..6be06c0a1bcc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodQuickFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateMethodQuickFix.java @@ -45,6 +45,7 @@ public class CreateMethodQuickFix implements LocalQuickFix { myBody = body; } + @Override @NotNull public String getName() { @@ -54,17 +55,20 @@ public class CreateMethodQuickFix implements LocalQuickFix { return QuickFixBundle.message("create.method.from.usage.text", signature); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.method.from.usage.family"); } + @Override public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) { if (!CodeInsightUtilBase.preparePsiElementForWrite(myTargetClass.getContainingFile())) return; PsiMethod method = createMethod(project); List> arguments = ContainerUtil.map2List(method.getParameterList().getParameters(), new Function>() { + @Override public Pair fun(PsiParameter psiParameter) { return Pair.create(null, psiParameter.getType()); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateParameterFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateParameterFromUsageFix.java index 35a3b8ec12ff..fa0c5b5f61b8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateParameterFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateParameterFromUsageFix.java @@ -45,6 +45,7 @@ public class CreateParameterFromUsageFix extends CreateVarFromUsageFix { super(referenceElement); } + @Override protected boolean isAvailableImpl(int offset) { if (!super.isAvailableImpl(offset)) return false; if(myReferenceExpression.isQualified()) return false; @@ -59,10 +60,12 @@ public class CreateParameterFromUsageFix extends CreateVarFromUsageFix { while (true); } + @Override public String getText(String varName) { return QuickFixBundle.message("create.parameter.from.usage.text", varName); } + @Override protected void invokeImpl(PsiClass targetClass) { if (CreateFromUsageUtils.isValidReference(myReferenceExpression, true)) return; @@ -116,10 +119,12 @@ public class CreateParameterFromUsageFix extends CreateVarFromUsageFix { } } + @Override protected boolean isAllowOuterTargetClass() { return false; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.parameter.from.usage.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreatePropertyFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreatePropertyFromUsageFix.java index 81cd22382a8d..4952ac69b480 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreatePropertyFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreatePropertyFromUsageFix.java @@ -61,16 +61,19 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { private final PsiMethodCallExpression myMethodCall; + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("create.property.from.usage.family"); } + @Override protected PsiElement getElement() { if (!myMethodCall.isValid() || !myMethodCall.getManager().isInProject(myMethodCall)) return null; return myMethodCall; } + @Override protected boolean isAvailableImpl(int offset) { if (CreateMethodFromUsageFix.hasErrorsInArgumentList(myMethodCall)) return false; PsiReferenceExpression ref = myMethodCall.getMethodExpression(); @@ -123,14 +126,17 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { myDefaultFieldName = field.getName(); } + @Override public Result calculateResult(ExpressionContext context) { return new TextResult(myDefaultFieldName); } + @Override public Result calculateQuickResult(ExpressionContext context) { return new TextResult(myDefaultFieldName); } + @Override public LookupElement[] calculateLookupItems(ExpressionContext context) { Set set = new LinkedHashSet(); set.add(JavaLookupElementBuilder.forField(myField).setTypeText(myField.getType().getPresentableText())); @@ -151,6 +157,7 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { } } + @Override @NotNull protected List getTargetClasses(PsiElement element) { List all = super.getTargetClasses(element); @@ -163,6 +170,7 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { return nonInterfaces; } + @Override protected void invokeImpl(PsiClass targetClass) { PsiManager manager = myMethodCall.getManager(); final Project project = manager.getProject(); @@ -250,8 +258,10 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { final boolean isStatic1 = isStatic; startTemplate(editor, template, project, new TemplateEditingAdapter() { + @Override public void beforeTemplateFinished(final TemplateState state, Template template) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { String fieldName = state.getVariableValue(FIELD_VARIABLE).getText(); if (!JavaPsiFacade.getInstance(project).getNameHelper().isIdentifier(fieldName)) return; @@ -287,6 +297,7 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { final PsiMethod generatedMethod = PsiTreeUtil.findElementOfClassAtOffset(file, offset, PsiMethod.class, false); if (generatedMethod != null) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { CodeStyleManager.getInstance(project).reformat(generatedMethod); } @@ -308,6 +319,7 @@ public class CreatePropertyFromUsageFix extends CreateFromUsageBaseFix { return null; } + @Override protected boolean isValidElement(PsiElement element) { PsiMethodCallExpression methodCall = (PsiMethodCallExpression) element; return methodCall.getMethodExpression().resolve() != null; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateVarFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateVarFromUsageFix.java index 7833c300205b..1c86d8b35993 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateVarFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateVarFromUsageFix.java @@ -35,11 +35,13 @@ public abstract class CreateVarFromUsageFix extends CreateFromUsageBaseFix { myReferenceExpression = referenceElement; } + @Override protected boolean isValidElement(PsiElement element) { PsiReferenceExpression expression = (PsiReferenceExpression) element; return CreateFromUsageUtils.isValidReference(expression, false); } + @Override protected PsiElement getElement() { if (!myReferenceExpression.isValid() || !myReferenceExpression.getManager().isInProject(myReferenceExpression)) return null; @@ -56,6 +58,7 @@ public abstract class CreateVarFromUsageFix extends CreateFromUsageBaseFix { return null; } + @Override protected boolean isAvailableImpl(int offset) { if (CreateFromUsageUtils.shouldShowTag(offset, myReferenceExpression.getReferenceNameElement(), myReferenceExpression)) { setText(getText(myReferenceExpression.getReferenceName())); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DefaultQuickFixProvider.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DefaultQuickFixProvider.java index df48370de14b..f084d975b7a0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DefaultQuickFixProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DefaultQuickFixProvider.java @@ -25,6 +25,7 @@ import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NotNull; public class DefaultQuickFixProvider extends UnresolvedReferenceQuickFixProvider { + @Override public void registerFixes(PsiJavaCodeReferenceElement ref, QuickFixActionRegistrar registrar) { registrar.register(new ImportClassFix(ref)); registrar.register(SetupJDKFix.getInstance()); @@ -64,6 +65,7 @@ public class DefaultQuickFixProvider extends UnresolvedReferenceQuickFixProvider } } + @Override @NotNull public Class getReferenceClass() { return PsiJavaCodeReferenceElement.class; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeferFinalAssignmentFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeferFinalAssignmentFix.java index 74f3a1ffcffa..e8a93b23879d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeferFinalAssignmentFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeferFinalAssignmentFix.java @@ -52,16 +52,19 @@ public class DeferFinalAssignmentFix implements IntentionAction { this.expression = expression; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("defer.final.assignment.with.temp.family"); } + @Override @NotNull public String getText() { return QuickFixBundle.message("defer.final.assignment.with.temp.text", variable.getName()); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(variable.getContainingFile())) return; @@ -195,6 +198,7 @@ public class DeferFinalAssignmentFix implements IntentionAction { return JavaCodeStyleManager.getInstance(project).suggestUniqueVariableName(name, variable, true); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return variable != null @@ -207,6 +211,7 @@ public class DeferFinalAssignmentFix implements IntentionAction { ; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteCatchFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteCatchFix.java index 6a8ee7e45636..c7c09acbec0a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteCatchFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteCatchFix.java @@ -31,22 +31,26 @@ public class DeleteCatchFix implements IntentionAction { this.myCatchParameter = myCatchParameter; } + @Override @NotNull public String getText() { return QuickFixBundle.message("delete.catch.text", HighlightUtil.formatType(myCatchParameter.getType())); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("delete.catch.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myCatchParameter != null && myCatchParameter.isValid() && PsiManager.getInstance(project).isInProject(myCatchParameter.getContainingFile()); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myCatchParameter.getContainingFile())) return; @@ -97,6 +101,7 @@ public class DeleteCatchFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteMethodBodyFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteMethodBodyFix.java index e4104df05b63..0f88ccab2da3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteMethodBodyFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeleteMethodBodyFix.java @@ -36,20 +36,24 @@ public class DeleteMethodBodyFix implements IntentionAction { myMethod = method; } + @Override @NotNull public String getText() { return QuickFixBundle.message("delete.body.text"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("delete.body.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myMethod.isValid() && myMethod.getManager().isInProject(myMethod) && myMethod.getBody() != null; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementForWrite(myMethod)) return; final PsiCodeBlock body = myMethod.getBody(); @@ -57,6 +61,7 @@ public class DeleteMethodBodyFix implements IntentionAction { body.delete(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java index 9b8ea422fae9..c9d811bc8734 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/EnableOptimizeImportsOnTheFlyFix.java @@ -26,16 +26,19 @@ import com.intellij.psi.PsiJavaFile; import org.jetbrains.annotations.NotNull; public class EnableOptimizeImportsOnTheFlyFix implements IntentionAction{ + @Override @NotNull public String getText() { return QuickFixBundle.message("enable.optimize.imports.on.the.fly"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return file.getManager().isInProject(file) && file instanceof PsiJavaFile @@ -43,11 +46,13 @@ public class EnableOptimizeImportsOnTheFlyFix implements IntentionAction{ ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY = true; DaemonCodeAnalyzer.getInstance(project).restart(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ExtendsListFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ExtendsListFix.java index a7f224ec0e8b..156b0cf1ef90 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ExtendsListFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ExtendsListFix.java @@ -65,11 +65,13 @@ public class ExtendsListFix extends LocalQuickFixAndIntentionActionOnPsiElement } + @Override @NotNull public String getText() { return myName; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("change.extends.list.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GeneralizeCatchFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GeneralizeCatchFix.java index 78300d1bcf5b..a71c3e5bf07a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GeneralizeCatchFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GeneralizeCatchFix.java @@ -37,6 +37,7 @@ public class GeneralizeCatchFix implements IntentionAction { myUnhandledException = unhandledException; } + @Override @NotNull public String getText() { return QuickFixBundle.message("generalize.catch.text", @@ -44,11 +45,13 @@ public class GeneralizeCatchFix implements IntentionAction { HighlightUtil.formatType(myUnhandledException)); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("generalize.catch.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!(myElement != null && myElement.isValid() @@ -78,6 +81,7 @@ public class GeneralizeCatchFix implements IntentionAction { return myCatchParameter != null; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(myElement.getContainingFile())) return; PsiElementFactory factory = JavaPsiFacade.getInstance(myElement.getProject()).getElementFactory(); @@ -85,6 +89,7 @@ public class GeneralizeCatchFix implements IntentionAction { myCatchParameter.getTypeElement().replace(type); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java index 149bcbdc6274..4a56718b61a0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java @@ -34,6 +34,7 @@ import org.jetbrains.annotations.NotNull; public class GenerifyFileFix implements IntentionAction, LocalQuickFix { private String myFileName; + @Override @NotNull public String getText() { return QuickFixBundle.message("generify.text", myFileName); @@ -45,6 +46,7 @@ public class GenerifyFileFix implements IntentionAction, LocalQuickFix { return getText(); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("generify.family"); @@ -58,6 +60,7 @@ public class GenerifyFileFix implements IntentionAction, LocalQuickFix { if (isAvailable(project, null, file)) { myFileName = file.getName(); new WriteCommandAction(project) { + @Override protected void run(Result result) throws Throwable { invoke(project, FileEditorManager.getInstance(project).getSelectedTextEditor(), file); } @@ -65,6 +68,7 @@ public class GenerifyFileFix implements IntentionAction, LocalQuickFix { } } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (file != null && file.isValid()) { myFileName = file.getName(); @@ -75,11 +79,13 @@ public class GenerifyFileFix implements IntentionAction, LocalQuickFix { } } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; new TypeCookAction().getHandler().invoke(project, editor, file, null); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GuessTypeParameters.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GuessTypeParameters.java index fa3f7272e443..edb8a3f8325d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GuessTypeParameters.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/GuessTypeParameters.java @@ -209,11 +209,13 @@ public class GuessTypeParameters { myResolveScope = resolveScope; } + @Override public PsiType visitType(PsiType type) { if (type.equals(PsiType.NULL)) return PsiType.getJavaLangObject(myManager, myResolveScope); return type; } + @Override public PsiType visitCapturedWildcardType(PsiCapturedWildcardType capturedWildcardType) { return capturedWildcardType.getUpperBound().accept(this); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImplementMethodsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImplementMethodsFix.java index 2436c64835d8..b6852f0bd92a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImplementMethodsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImplementMethodsFix.java @@ -49,6 +49,7 @@ public class ImplementMethodsFix extends LocalQuickFixAndIntentionActionOnPsiEle return QuickFixBundle.message("implement.methods.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("implement.methods.fix"); @@ -80,6 +81,7 @@ public class ImplementMethodsFix extends LocalQuickFixAndIntentionActionOnPsiEle if (selectedElements == null || selectedElements.isEmpty()) return; new WriteCommandAction(project, file) { + @Override protected void run(final Result result) throws Throwable { final PsiClass psiClass = ((PsiEnumConstant)myPsiElement).getOrCreateInitializingClass(); OverrideImplementUtil.overrideOrImplementMethodsInRightPlace(editor, psiClass, selectedElements, chooser.isCopyJavadoc(), @@ -93,6 +95,7 @@ public class ImplementMethodsFix extends LocalQuickFixAndIntentionActionOnPsiEle } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFix.java index a922a6544d67..2c9a86cff3c4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ImportClassFix.java @@ -95,6 +95,7 @@ public class ImportClassFix extends ImportClassFixBase im myRef = ref; } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myRef.isValid() && file.getManager().isInProject(file) && !getClassesToImport().isEmpty(); } @@ -148,6 +149,7 @@ public abstract class ImportClassFixBase im && !autoImportWillInsertUnexpectedCharacters(classes[0]) ) { CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { + @Override public void run() { action.execute(); } @@ -179,6 +181,7 @@ public abstract class ImportClassFixBase im protected abstract boolean isQualified(T reference); + @Override public boolean showHint(final Editor editor) { if (isQualified(myRef)) { return false; @@ -187,16 +190,19 @@ public abstract class ImportClassFixBase im return result == Result.POPUP_SHOWN || result == Result.CLASS_AUTO_IMPORTED; } + @Override @NotNull public String getText() { return QuickFixBundle.message("import.class.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("import.class.fix"); } + @Override public boolean startInWriteAction() { return false; } @@ -227,9 +233,11 @@ public abstract class ImportClassFixBase im return offset == range.getEndOffset(); } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { List classesToImport = getClassesToImport(); PsiClass[] classes = classesToImport.toArray(new PsiClass[classesToImport.size()]); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertNewFix.java index 2c14d94260d6..7c67029f4e9b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertNewFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertNewFix.java @@ -37,22 +37,26 @@ public class InsertNewFix implements IntentionAction { myClass = aClass; } + @Override @NotNull public String getText() { return QuickFixBundle.message("insert.new.fix"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myMethodCall != null && myMethodCall.isValid() && myMethodCall.getManager().isInProject(myMethodCall); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(myMethodCall.getContainingFile())) return; PsiElementFactory factory = JavaPsiFacade.getInstance(myMethodCall.getProject()).getElementFactory(); @@ -67,6 +71,7 @@ public class InsertNewFix implements IntentionAction { myMethodCall.replace(newExpression); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertSuperFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertSuperFix.java index 2bd09af9a190..ab2787527c67 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertSuperFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/InsertSuperFix.java @@ -37,16 +37,19 @@ public class InsertSuperFix implements IntentionAction { myConstructor = constructor; } + @Override @NotNull public String getText() { return QuickFixBundle.message("insert.super.constructor.call.text"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("insert.super.constructor.call.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myConstructor.isValid() && myConstructor.getBody() != null @@ -55,6 +58,7 @@ public class InsertSuperFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myConstructor.getContainingFile())) return; try { @@ -79,6 +83,7 @@ public class InsertSuperFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/LocateLibraryDialog.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/LocateLibraryDialog.java index cf9675ae78cc..66af7f1300c9 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/LocateLibraryDialog.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/LocateLibraryDialog.java @@ -79,6 +79,7 @@ public class LocateLibraryDialog extends DialogWrapper { FileChooserDescriptorFactory.createSingleFolderDescriptor()); final ActionListener listener = new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { updateButtons(); } @@ -90,6 +91,7 @@ public class LocateLibraryDialog extends DialogWrapper { myAddThisFileRadioButton.setSelected(true); myCopyToDir.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { + @Override protected void textChanged(DocumentEvent e) { updateButtons(); } @@ -109,16 +111,19 @@ public class LocateLibraryDialog extends DialogWrapper { setOKActionEnabled(! copyEnabled || myCopyToDir.getText().length() != 0 ); } + @Override @NonNls protected String getDimensionServiceKey() { return "#org.jetbrains.codeInsight.daemon.impl.quickfix.LocateLibraryDialog"; } + @Override @Nullable protected JComponent createCenterPanel() { return contentPane; } + @Override protected void doOKAction() { if (getOKAction().isEnabled()) { myResultingLibraryPath = getResultingPath(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java index f8cc942643b2..9521eb6459d7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java @@ -46,6 +46,7 @@ public class MakeClassInterfaceFix extends LocalQuickFixAndIntentionActionOnPsiE return QuickFixBundle.message(myMakeInterface? "make.class.an.interface.text":"make.interface.an.class.text", myName); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("make.class.an.interface.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeMethodConstructorFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeMethodConstructorFix.java index 8fbfbddd776a..85c528d9f6c5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeMethodConstructorFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeMethodConstructorFix.java @@ -35,25 +35,30 @@ public class MakeMethodConstructorFix implements IntentionAction { myMethod = method; } + @Override @NotNull public String getText() { return QuickFixBundle.message("convert.method.to.constructor"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myMethod.isValid() && myMethod.getReturnTypeElement() != null && myMethod.getManager().isInProject(myMethod); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementForWrite(myMethod)) return; myMethod.getReturnTypeElement().delete(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeVarargParameterLastFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeVarargParameterLastFix.java index 6d07f4d50e2e..4e1a7ba1ac74 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeVarargParameterLastFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeVarargParameterLastFix.java @@ -35,26 +35,31 @@ public class MakeVarargParameterLastFix implements IntentionAction { private final PsiParameter myParameter; + @Override @NotNull public String getText() { return QuickFixBundle.message("make.vararg.parameter.last.text", myParameter.getName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("make.vararg.parameter.last.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myParameter.isValid() && myParameter.getManager().isInProject(myParameter); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementForWrite(myParameter)) return; myParameter.getParent().add(myParameter); myParameter.delete(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodArgumentFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodArgumentFix.java index e095acd792a6..b406860982b6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodArgumentFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodArgumentFix.java @@ -43,6 +43,7 @@ public abstract class MethodArgumentFix implements IntentionAction { myToType = toType instanceof PsiEllipsisType ? ((PsiEllipsisType) toType).toArrayType() : toType; } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myToType != null @@ -53,10 +54,12 @@ public abstract class MethodArgumentFix implements IntentionAction { && myArgList.getExpressions()[myIndex].isValid(); } + @Override public boolean startInWriteAction() { return true; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; PsiExpression expression = myArgList.getExpressions()[myIndex]; @@ -72,6 +75,7 @@ public abstract class MethodArgumentFix implements IntentionAction { } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.argument.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodParameterFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodParameterFix.java index 620dab3eb2d5..a7cd5ea3bb13 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodParameterFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodParameterFix.java @@ -62,6 +62,7 @@ public class MethodParameterFix extends LocalQuickFixAndIntentionActionOnPsiElem myParameterType.getCanonicalText() ); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.parameter.type.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodReturnTypeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodReturnTypeFix.java index bca772944c04..6aeadfaf8bfa 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodReturnTypeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodReturnTypeFix.java @@ -75,6 +75,7 @@ public class MethodReturnTypeFix extends LocalQuickFixAndIntentionActionOnPsiEle return QuickFixBundle.message("fix.return.type.text", myName, myCanonicalText); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.return.type.family"); @@ -265,6 +266,7 @@ public class MethodReturnTypeFix extends LocalQuickFixAndIntentionActionOnPsiEle myAffectedMethods.add(baseMethod); } + @Override public void visit(final UsageInfo usage) { if (usage instanceof OverriderUsageInfo) { myAffectedMethods.add(((OverriderUsageInfo) usage).getElement()); @@ -275,6 +277,7 @@ public class MethodReturnTypeFix extends LocalQuickFixAndIntentionActionOnPsiEle return myAffectedMethods; } + @Override public void preprocessCovariantOverriders(final List covariantOverriderInfos) { for (Iterator usageInfoIterator = covariantOverriderInfos.iterator(); usageInfoIterator.hasNext();) { final UsageInfo info = usageInfoIterator.next(); @@ -303,10 +306,12 @@ public class MethodReturnTypeFix extends LocalQuickFixAndIntentionActionOnPsiEle myUsageVisitor = usageVisitor; } + @Override protected void preprocessCovariantOverriders(final List covariantOverriderInfos) { myUsageVisitor.preprocessCovariantOverriders(covariantOverriderInfos); } + @Override protected void performRefactoring(final UsageInfo[] usages) { super.performRefactoring(usages); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodThrowsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodThrowsFix.java index e99668047f33..9a1847ec00bb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodThrowsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MethodThrowsFix.java @@ -56,6 +56,7 @@ public class MethodThrowsFix extends LocalQuickFixAndIntentionActionOnPsiElement myMethodName); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.throws.list.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java index 364eaa3a768c..a4126ac52098 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ModifierFix.java @@ -104,6 +104,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { return QuickFixBundle.message(myShouldHave ? "add.modifier.fix" : "remove.modifier.fix", name, modifierText); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.modifiers.family"); @@ -145,6 +146,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { final PsiModifierList modifierList; if (variable != null && variable.isValid()) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { variable.normalizeDeclaration(); @@ -167,6 +169,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { final int accessLevel = PsiUtil.getAccessLevel(copy); OverridingMethodsSearch.search((PsiMethod)owner, owner.getResolveScope(), true).forEach(new PsiElementProcessorAdapter(new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiMethod inheritor) { PsiModifierList list = inheritor.getModifierList(); if (inheritor.getManager().isInProject(inheritor) && PsiUtil.getAccessLevel(list) < accessLevel) { @@ -185,6 +188,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { QuickFixBundle.message("change.inheritors.visibility.warning.title"), Messages.getQuestionIcon()) == DialogWrapper.OK_EXIT_CODE) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { if (!CodeInsightUtilBase.preparePsiElementsForWrite(modifierLists)) { return; @@ -199,6 +203,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { } ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { changeModifierList(modifierList); UndoUtil.markPsiFileForUndo(containingFile); @@ -206,6 +211,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement { }); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveBoundClassToFrontFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveBoundClassToFrontFix.java index 4df898861a06..3dfcea459bf6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveBoundClassToFrontFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveBoundClassToFrontFix.java @@ -38,11 +38,13 @@ public class MoveBoundClassToFrontFix extends ExtendsListFix { HighlightUtil.formatClass(aClass)); } + @Override @NotNull public String getText() { return myName; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("move.class.in.extend.list.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveCatchUpFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveCatchUpFix.java index ecce61c9b3fe..ec98b6560802 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveCatchUpFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveCatchUpFix.java @@ -38,6 +38,7 @@ public class MoveCatchUpFix implements IntentionAction { myMoveBeforeSection = moveBeforeSection; } + @Override @NotNull public String getText() { return QuickFixBundle.message("move.catch.up.text", @@ -45,11 +46,13 @@ public class MoveCatchUpFix implements IntentionAction { HighlightUtil.formatType(myMoveBeforeSection.getCatchType())); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("move.catch.up.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myCatchSection != null && myCatchSection.isValid() @@ -65,6 +68,7 @@ public class MoveCatchUpFix implements IntentionAction { PsiUtil.resolveClassInType(myMoveBeforeSection.getCatchType())); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myCatchSection.getContainingFile())) return; try { @@ -77,6 +81,7 @@ public class MoveCatchUpFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToModuleFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToModuleFix.java index 68177ed86bdf..11b49b2dc08f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToModuleFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToModuleFix.java @@ -86,21 +86,25 @@ public class MoveClassToModuleFix { final Module classModule = fileIndex.getModuleForFile(virtualFile); if (classModule != null && classModule != currentModule && !ModuleRootManager.getInstance(currentModule).isDependsOn(classModule)) { IntentionAction action = new IntentionAction() { + @Override @NotNull public String getText() { return "Move '"+aClass.getQualifiedName()+"' from module '" + classModule.getName() + "' to '"+currentModule.getName()+"'"; } + @Override @NotNull public String getFamilyName() { return "move it"; } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { RefactoringActionHandler moveHandler = RefactoringActionHandlerFactory.getInstance().createMoveHandler(); DataManager dataManager = DataManager.getInstance(); @@ -120,6 +124,7 @@ public class MoveClassToModuleFix { } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToSeparateFileFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToSeparateFileFix.java index f265112a60f4..d539be8657b5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToSeparateFileFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveClassToSeparateFileFix.java @@ -40,17 +40,20 @@ public class MoveClassToSeparateFileFix implements IntentionAction { myClass = aClass; } + @Override @NotNull public String getText() { return QuickFixBundle.message("move.class.to.separate.file.text", myClass.getName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("move.class.to.separate.file.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myClass.isValid() || !myClass.getManager().isInProject(myClass)) return false; PsiDirectory dir = file.getContainingDirectory(); @@ -65,6 +68,7 @@ public class MoveClassToSeparateFileFix implements IntentionAction { return true; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myClass.getContainingFile())) return; @@ -84,6 +88,7 @@ public class MoveClassToSeparateFileFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/NegationBroadScopeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/NegationBroadScopeFix.java index e19bcb3b9798..7083fd6939fd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/NegationBroadScopeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/NegationBroadScopeFix.java @@ -37,6 +37,7 @@ public class NegationBroadScopeFix implements IntentionAction { myPrefixExpression = prefixExpression; } + @Override @NotNull public String getText() { String text = myPrefixExpression.getOperand().getText(); @@ -61,11 +62,13 @@ public class NegationBroadScopeFix implements IntentionAction { return QuickFixBundle.message("negation.broader.scope.text", text); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("negation.broader.scope.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (myPrefixExpression == null || !myPrefixExpression.isValid()) return false; @@ -78,6 +81,7 @@ public class NegationBroadScopeFix implements IntentionAction { return binaryExpression.getLOperand() == myPrefixExpression && TypeConversionUtil.isBooleanType(binaryExpression.getType()); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.preparePsiElementForWrite(myPrefixExpression)) return; PsiExpression operand = myPrefixExpression.getOperand(); @@ -91,6 +95,7 @@ public class NegationBroadScopeFix implements IntentionAction { parent.replace(negated); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OptimizeImportsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OptimizeImportsFix.java index 49dd6467b280..173206685094 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OptimizeImportsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OptimizeImportsFix.java @@ -30,20 +30,24 @@ import org.jetbrains.annotations.NotNull; public class OptimizeImportsFix implements IntentionAction{ private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.OptimizeImportsFix"); + @Override @NotNull public String getText() { return QuickFixBundle.message("optimize.imports.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("optimize.imports.fix"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return file.getManager().isInProject(file) && file instanceof PsiJavaFile; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!(file instanceof PsiJavaFile)) return; if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -56,6 +60,7 @@ public class OptimizeImportsFix implements IntentionAction{ } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java index 8ff135e152a8..97d7c8a99ac3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/OrderEntryFix.java @@ -62,15 +62,18 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { private OrderEntryFix() { } + @Override public boolean startInWriteAction() { return true; } + @Override @NotNull public String getName() { return getText(); } + @Override public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) { invoke(project, null, descriptor.getPsiElement().getContainingFile()); } @@ -98,20 +101,24 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { JavaPsiFacade.getInstance(project).findClass(className, currentModule.getModuleWithDependenciesAndLibrariesScope(true)); if (found != null) return null; //no need to add junit to classpath final OrderEntryFix fix = new OrderEntryFix() { + @Override @NotNull public String getText() { return QuickFixBundle.message("orderEntry.fix.add.junit.jar.to.classpath"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return !project.isDisposed() && !currentModule.isDisposed(); } + @Override public void invoke(@NotNull Project project, @Nullable Editor editor, PsiFile file) { String jarPath = isJunit4 ? JavaSdkUtil.getJunit4JarPath() : JavaSdkUtil.getJunit3JarPath(); addBundledJarToRoots(project, editor, currentModule, reference, className, jarPath); @@ -127,28 +134,34 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { JavaPsiFacade.getInstance(project).findClass(className, currentModule.getModuleWithDependenciesAndLibrariesScope(true)); if (found != null) return null; //no need to add junit to classpath final OrderEntryFix fix = new OrderEntryFix() { + @Override @NotNull public String getText() { return QuickFixBundle.message("orderEntry.fix.add.annotations.jar.to.classpath"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return !project.isDisposed() && !currentModule.isDisposed(); } + @Override public void invoke(@NotNull final Project project, final Editor editor, PsiFile file) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { final LocateLibraryDialog dialog = new LocateLibraryDialog(currentModule, PathManager.getLibPath(), "annotations.jar", QuickFixBundle.message("add.library.annotations.description")); dialog.show(); if (dialog.isOK()) { new WriteCommandAction(project) { + @Override protected void run(final Result result) throws Throwable { addBundledJarToRoots(project, editor, currentModule, reference, "org.jetbrains.annotations." + referenceName, dialog.getResultingLibraryPath()); @@ -176,22 +189,27 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { final Module classModule = fileIndex.getModuleForFile(virtualFile); if (classModule != null && classModule != currentModule && !ModuleRootManager.getInstance(currentModule).isDependsOn(classModule)) { final OrderEntryFix fix = new OrderEntryFix() { + @Override @NotNull public String getText() { return QuickFixBundle.message("orderEntry.fix.add.dependency.on.module", classModule.getName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("orderEntry.fix.family.add.module.dependency"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return !project.isDisposed() && !classModule.isDisposed() && !currentModule.isDisposed(); } + @Override public void invoke(@NotNull final Project project, @Nullable final Editor editor, PsiFile file) { final Runnable doit = new Runnable() { + @Override public void run() { ModifiableRootModel model = ModuleRootManager.getInstance(currentModule).getModifiableModel(); model.addModuleOrderEntry(classModule); @@ -234,20 +252,24 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { } } final OrderEntryFix fix = new OrderEntryFix() { + @Override @NotNull public String getText() { return QuickFixBundle.message("orderEntry.fix.add.library.to.classpath", libraryEntry.getPresentableName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("orderEntry.fix.family.add.library.to.classpath"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return !project.isDisposed() && !currentModule.isDisposed() && libraryEntry.isValid(); } + @Override public void invoke(@NotNull Project project, @Nullable Editor editor, PsiFile file) { OrderEntryUtil.addLibraryToRoots(libraryEntry, currentModule); if (editor != null) { @@ -332,6 +354,7 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { circularModules.getFirst().getName(), circularModules.getSecond().getName()); if (ApplicationManager.getApplication().isUnitTestMode()) throw new RuntimeException(message); ApplicationManager.getApplication().invokeLater(new Runnable(){ + @Override public void run() { if (!project.isOpen()) return; int ret = Messages.showOkCancelDialog(project, message, @@ -355,6 +378,7 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix { dialog.show(); if (dialog.isOK()) { new WriteCommandAction(module.getProject()) { + @Override protected void run(final Result result) throws Throwable { addJarToRoots(dialog.getResultingLibraryPath(), module, null); } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PermuteArgumentsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PermuteArgumentsFix.java index 65a87d1e6483..2ca479214bcc 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PermuteArgumentsFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PermuteArgumentsFix.java @@ -48,26 +48,31 @@ public class PermuteArgumentsFix implements IntentionAction { myPermutation = permutation; } + @Override public boolean startInWriteAction() { return true; } + @Override @NotNull public String getText() { return QuickFixBundle.message("permute.arguments"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return !project.isDisposed() && myCall.isValid() && myCall.getManager().isInProject(myCall); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; myCall.getArgumentList().replace(myPermutation.getArgumentList()); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java index ac0587fe55f9..92134363acbf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java @@ -45,11 +45,13 @@ public class PullAsAbstractUpFix extends LocalQuickFixAndIntentionActionOnPsiEle myName = name; } + @Override @NotNull public String getText() { return myName; } + @Override @NotNull public String getFamilyName() { return "Pull up"; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveNewQualifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveNewQualifierFix.java index 965a94bd73bc..9f7327702537 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveNewQualifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveNewQualifierFix.java @@ -43,16 +43,19 @@ public class RemoveNewQualifierFix implements IntentionAction { this.aClass = aClass; } + @Override @NotNull public String getText() { return QuickFixBundle.message("remove.qualifier.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("remove.qualifier.fix"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return expression != null @@ -61,6 +64,7 @@ public class RemoveNewQualifierFix implements IntentionAction { && expression.getManager().isInProject(expression); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(expression.getContainingFile())) return; PsiJavaCodeReferenceElement classReference = expression.getClassReference(); @@ -70,6 +74,7 @@ public class RemoveNewQualifierFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveQualifierFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveQualifierFix.java index 7d1d882c532e..c6925d4b0654 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveQualifierFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveQualifierFix.java @@ -41,16 +41,19 @@ public class RemoveQualifierFix implements IntentionAction { myResolved = resolved; } + @Override @NotNull public String getText() { return QuickFixBundle.message("remove.qualifier.action.text"); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myQualifier != null @@ -63,12 +66,14 @@ public class RemoveQualifierFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; myQualifier.delete(); myExpression.bindToElement(myResolved); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java index f979c45f89a3..f16949052faa 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java @@ -34,16 +34,19 @@ import org.jetbrains.annotations.Nullable; public class RemoveRedundantElseAction extends PsiElementBaseIntentionAction { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.RemoveRedundantElseAction"); + @Override @NotNull public String getText() { return QuickFixBundle.message("remove.redundant.else.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("remove.redundant.else.fix"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) { if (element instanceof PsiKeyword && element.getParent() instanceof PsiIfStatement && @@ -86,6 +89,7 @@ public class RemoveRedundantElseAction extends PsiElementBaseIntentionAction { } } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; PsiElement elementAt = file.findElementAt(editor.getCaretModel().getOffset()); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedParameterFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedParameterFix.java index c28c8f1b29bd..4563740b27c0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedParameterFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedParameterFix.java @@ -49,6 +49,7 @@ public class RemoveUnusedParameterFix extends LocalQuickFixAndIntentionActionOnP return QuickFixBundle.message("remove.unused.parameter.text", myName); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("remove.unused.parameter.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableFix.java index 248008af096b..345708757f64 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableFix.java @@ -47,17 +47,20 @@ public class RemoveUnusedVariableFix implements IntentionAction { myVariable = variable; } + @Override @NotNull public String getText() { return QuickFixBundle.message(myVariable instanceof PsiField ? "remove.unused.field" : "remove.unused.variable", myVariable.getName()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("remove.unused.variable.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myVariable != null @@ -66,6 +69,7 @@ public class RemoveUnusedVariableFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(myVariable.getContainingFile())) return; removeVariableAndReferencingStatements(editor); @@ -111,6 +115,7 @@ public class RemoveUnusedVariableFix implements IntentionAction { final int deleteMode = showSideEffectsWarning(sideEffects, myVariable, editor, canCopeWithSideEffects[0]); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { deleteReferences(myVariable, references, deleteMode); @@ -383,6 +388,7 @@ public class RemoveUnusedVariableFix implements IntentionAction { return false; } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RenameWrongRefFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RenameWrongRefFix.java index be60115d7a6c..44153db1059b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RenameWrongRefFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RenameWrongRefFix.java @@ -58,16 +58,19 @@ public class RenameWrongRefFix implements IntentionAction { myUnresolvedOnly = unresolvedOnly; } + @Override @NotNull public String getText() { return QuickFixBundle.message("rename.wrong.reference.text"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("rename.wrong.reference.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { if (!myRefExpr.isValid() || !myRefExpr.getManager().isInProject(myRefExpr)) return false; int offset = editor.getCaretModel().getOffset(); @@ -84,6 +87,7 @@ public class RenameWrongRefFix implements IntentionAction { private class ReferenceNameExpression extends Expression { class HammingComparator implements Comparator { + @Override public int compare(LookupElement lookupItem1, LookupElement lookupItem2) { String s1 = lookupItem1.getLookupString(); String s2 = lookupItem2.getLookupString(); @@ -108,6 +112,7 @@ public class RenameWrongRefFix implements IntentionAction { LookupElement[] myItems; private final String myOldReferenceName; + @Override public Result calculateResult(ExpressionContext context) { if (myItems == null || myItems.length == 0) { return new TextResult(myOldReferenceName); @@ -115,10 +120,12 @@ public class RenameWrongRefFix implements IntentionAction { return new TextResult(myItems[0].getLookupString()); } + @Override public Result calculateQuickResult(ExpressionContext context) { return null; } + @Override public LookupElement[] calculateLookupItems(ExpressionContext context) { if (myItems == null || myItems.length == 1) return null; return myItems; @@ -152,6 +159,7 @@ public class RenameWrongRefFix implements IntentionAction { } } + @Override public boolean execute(PsiElement element, ResolveState state) { if (element instanceof PsiNamedElement && element instanceof PsiModifierListOwner @@ -179,6 +187,7 @@ public class RenameWrongRefFix implements IntentionAction { return items.toArray(new LookupElement[items.size()]); } + @Override public void invoke(@NotNull Project project, final Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; PsiReferenceExpression[] refs = CreateFromUsageUtils.collectExpressions(myRefExpr, PsiMember.class, PsiFile.class); @@ -212,6 +221,7 @@ public class RenameWrongRefFix implements IntentionAction { EditorUtil.setVerticalScrollProportion(editor, proportion); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReplaceAddAllArrayToCollectionFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReplaceAddAllArrayToCollectionFix.java index fc801cd0e480..0e9ecd05087c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReplaceAddAllArrayToCollectionFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReplaceAddAllArrayToCollectionFix.java @@ -46,16 +46,19 @@ public class ReplaceAddAllArrayToCollectionFix implements IntentionAction { myMethodCall = methodCall; } + @Override @NotNull public String getText() { return "Replace " + myMethodCall.getText() + " with " + getCollectionsMethodCall(); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { if (myMethodCall == null || !myMethodCall.isValid()) return false; @@ -90,6 +93,7 @@ public class ReplaceAddAllArrayToCollectionFix implements IntentionAction { return false; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory(); @@ -106,6 +110,7 @@ public class ReplaceAddAllArrayToCollectionFix implements IntentionAction { ", " + (expressions.length == 0 ? "" : expressions[0].getText()) + ")"; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReuseVariableDeclarationFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReuseVariableDeclarationFix.java index bd36c7434f41..d6bf3f326e1b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReuseVariableDeclarationFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ReuseVariableDeclarationFix.java @@ -42,16 +42,19 @@ public class ReuseVariableDeclarationFix implements IntentionAction { this.myIdentifier = identifier; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("reuse.variable.declaration.family"); } + @Override @NotNull public String getText() { return QuickFixBundle.message("reuse.variable.declaration.text", myVariable.getName()); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { final PsiVariable previousVariable = findPreviousVariable(); return myVariable != null && @@ -64,6 +67,7 @@ public class ReuseVariableDeclarationFix implements IntentionAction { myVariable.getManager().isInProject(myVariable); } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { final PsiVariable refVariable = findPreviousVariable(); if (refVariable == null) return; @@ -96,6 +100,7 @@ public class ReuseVariableDeclarationFix implements IntentionAction { return proc.size() > 0 ? proc.getResult(0) : null; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SafeDeleteFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SafeDeleteFix.java index d0a271c65022..f1f50bd160d5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SafeDeleteFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SafeDeleteFix.java @@ -35,26 +35,31 @@ public class SafeDeleteFix implements IntentionAction { myElement = element; } + @Override @NotNull public String getText() { return QuickFixBundle.message("safe.delete.text", HighlightMessageUtil.getSymbolName(myElement, PsiSubstitutor.EMPTY)); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("safe.delete.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myElement.isValid() && myElement.getManager().isInProject(myElement); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(myElement.getContainingFile())) return; SafeDeleteHandler.invoke(project, new PsiElement[]{myElement}, false); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java index 612c80ee61d8..b2d9edb7260c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SetupJDKFix.java @@ -43,24 +43,29 @@ public class SetupJDKFix implements IntentionAction, HighPriorityAction { private SetupJDKFix() { } + @Override @NotNull public String getText() { return QuickFixBundle.message("setup.jdk.location.text"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("setup.jdk.location.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return JavaPsiFacade.getInstance(project).findClass("java.lang.Object", file.getResolveScope()) == null; } + @Override public void invoke(@NotNull Project project, Editor editor, final PsiFile file) { Sdk projectJdk = ProjectSettingsService.getInstance(project).chooseAndSetSdk(); if (projectJdk == null) return; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { Module module = ModuleUtil.findModuleForPsiElement(file); if (module != null) { @@ -72,6 +77,7 @@ public class SetupJDKFix implements IntentionAction, HighPriorityAction { }); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ShowModulePropertiesFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ShowModulePropertiesFix.java index 3e777adde43a..0708ce596046 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ShowModulePropertiesFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ShowModulePropertiesFix.java @@ -41,25 +41,30 @@ public class ShowModulePropertiesFix implements IntentionAction { myModuleName = module != null ? module.getName() : null; } + @Override @NotNull public String getText() { AnAction action = ActionManager.getInstance().getAction(IdeActions.MODULE_SETTINGS); return action.getTemplatePresentation().getText(); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return myModuleName != null; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { ProjectSettingsService.getInstance(project).showModuleConfigurationDialog(myModuleName, null); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SideEffectWarningDialog.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SideEffectWarningDialog.java index 38dc5d8187f5..e9717b6eb412 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SideEffectWarningDialog.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SideEffectWarningDialog.java @@ -54,6 +54,7 @@ public class SideEffectWarningDialog extends DialogWrapper { } + @Override protected Action[] createActions() { List actions = new ArrayList(); myRemoveAllAction = new AbstractAction() { @@ -62,6 +63,7 @@ public class SideEffectWarningDialog extends DialogWrapper { putValue(DEFAULT_ACTION, this); } + @Override public void actionPerformed(ActionEvent e) { close(DELETE_ALL); } @@ -74,6 +76,7 @@ public class SideEffectWarningDialog extends DialogWrapper { UIUtil.setActionNameAndMnemonic(QuickFixBundle.message("side.effect.action.transform"), this); } + @Override public void actionPerformed(ActionEvent e) { close(MAKE_STATEMENT); } @@ -86,6 +89,7 @@ public class SideEffectWarningDialog extends DialogWrapper { UIUtil.setActionNameAndMnemonic(QuickFixBundle.message("side.effect.action.cancel"), this); } + @Override public void actionPerformed(ActionEvent e) { doCancelAction(); } @@ -95,18 +99,22 @@ public class SideEffectWarningDialog extends DialogWrapper { return actions.toArray(new Action[actions.size()]); } + @Override protected Action getCancelAction() { return myCancelAllAction; } + @Override protected Action getOKAction() { return myRemoveAllAction; } + @Override public void doCancelAction() { close(CANCEL); } + @Override protected JComponent createCenterPanel() { final JPanel panel = new JPanel(new BorderLayout()); final String text = sideEffectsDescription(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java index a6de2c4f2a98..9176761cf5c7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java @@ -47,16 +47,19 @@ public class SimplifyBooleanExpressionFix implements IntentionAction { mySubExpressionValue = subExpressionValue; } + @Override @NotNull public String getText() { return QuickFixBundle.message("simplify.boolean.expression.text", mySubExpression.getText(), mySubExpressionValue); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("simplify.boolean.expression.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return mySubExpression.isValid() && mySubExpression.getManager().isInProject(mySubExpression) @@ -64,6 +67,7 @@ public class SimplifyBooleanExpressionFix implements IntentionAction { ; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!isAvailable(project, editor, file)) return; LOG.assertTrue(mySubExpression.isValid()); @@ -354,6 +358,7 @@ public class SimplifyBooleanExpressionFix implements IntentionAction { return PsiKeyword.TRUE.equals(text) ? Boolean.TRUE : PsiKeyword.FALSE.equals(text) ? Boolean.FALSE : null; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticImportMethodFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticImportMethodFix.java index 157d4150ced3..46e73f503ed8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticImportMethodFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticImportMethodFix.java @@ -60,6 +60,7 @@ public class StaticImportMethodFix implements IntentionAction { myMethodCall = SmartPointerManager.getInstance(methodCallExpression.getProject()).createSmartPsiElementPointer(methodCallExpression); } + @Override @NotNull public String getText() { String text = QuickFixBundle.message("static.import.method.text"); @@ -74,11 +75,13 @@ public class StaticImportMethodFix implements IntentionAction { return text; } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return PsiUtil.isLanguageLevel5OrHigher(file) && myMethodCall.getElement() != null @@ -152,6 +155,7 @@ public class StaticImportMethodFix implements IntentionAction { return false; } + @Override public void invoke(@NotNull final Project project, final Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; if (candidates.size() == 1) { @@ -165,8 +169,10 @@ public class StaticImportMethodFix implements IntentionAction { private void doImport(final PsiMethod toImport) { CommandProcessor.getInstance().executeCommand(toImport.getProject(), new Runnable(){ + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { PsiMethodCallExpression element = myMethodCall.getElement(); @@ -282,6 +288,7 @@ public class StaticImportMethodFix implements IntentionAction { return className + "." + member.getName(); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SuperMethodReturnFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SuperMethodReturnFix.java index 229e2895370b..931f3a2b9de0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SuperMethodReturnFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SuperMethodReturnFix.java @@ -41,6 +41,7 @@ public class SuperMethodReturnFix implements IntentionAction { mySuperMethod = superMethod; } + @Override @NotNull public String getText() { String name = PsiFormatUtil.formatMethod( @@ -53,11 +54,13 @@ public class SuperMethodReturnFix implements IntentionAction { HighlightUtil.formatType(mySuperMethodType)); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.super.method.return.type.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return mySuperMethod != null @@ -67,6 +70,7 @@ public class SuperMethodReturnFix implements IntentionAction { && mySuperMethodType.isValid(); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(mySuperMethod.getContainingFile())) return; ChangeSignatureProcessor processor = new ChangeSignatureProcessor( @@ -83,6 +87,7 @@ public class SuperMethodReturnFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithArrayFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithArrayFix.java index 8a4e71fe4521..e6c566f08d2a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithArrayFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithArrayFix.java @@ -45,16 +45,19 @@ public class SurroundWithArrayFix extends PsiElementBaseIntentionAction { myMethodCall = methodCall; } + @Override @NotNull public String getText() { return "Surround with array initialization"; } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, @NotNull final PsiElement element) { return getExpression(element) != null; } @@ -109,6 +112,7 @@ public class SurroundWithArrayFix extends PsiElementBaseIntentionAction { return null; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithTryCatchFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithTryCatchFix.java index 9233df64c05c..a64fd51e8e61 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithTryCatchFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SurroundWithTryCatchFix.java @@ -44,16 +44,19 @@ public class SurroundWithTryCatchFix implements IntentionAction { myStatement = PsiTreeUtil.getNonStrictParentOfType(element, PsiStatement.class); } + @Override @NotNull public String getText() { return QuickFixBundle.message("surround.with.try.catch.fix"); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("surround.with.try.catch.fix"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myStatement != null && myStatement.isValid() && @@ -61,6 +64,7 @@ public class SurroundWithTryCatchFix implements IntentionAction { !HighlightUtil.isSuperOrThisMethodCall(((PsiExpressionStatement)myStatement).getExpression())); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; @@ -93,6 +97,7 @@ public class SurroundWithTryCatchFix implements IntentionAction { } } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassFix.java index ddc5e9fb58db..2c01d6b3493c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassFix.java @@ -57,6 +57,7 @@ public class VariableAccessFromInnerClassFix implements IntentionAction { getVariablesToFix().add(variable); } + @Override @NotNull public String getText() { @NonNls String message; @@ -77,11 +78,13 @@ public class VariableAccessFromInnerClassFix implements IntentionAction { return QuickFixBundle.message(message, varNames); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("make.final.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myClass != null && myClass.isValid() @@ -97,6 +100,7 @@ public class VariableAccessFromInnerClassFix implements IntentionAction { return PsiTreeUtil.isAncestor(variable, aClass, false); } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { if (!CodeInsightUtilBase.preparePsiElementsForWrite(myClass, myVariable)) return; try { @@ -339,6 +343,7 @@ public class VariableAccessFromInnerClassFix implements IntentionAction { return false; } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableArrayTypeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableArrayTypeFix.java index 5762370cfc7b..ea638a65f970 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableArrayTypeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableArrayTypeFix.java @@ -121,6 +121,7 @@ public class VariableArrayTypeFix extends LocalQuickFixAndIntentionActionOnPsiEl return myName; } + @Override @NotNull public String getFamilyName() { return myFamilyName; diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFix.java index f3c6fd9accab..3d52a5766fc8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFix.java @@ -49,6 +49,7 @@ public class VariableTypeFix extends LocalQuickFixAndIntentionActionOnPsiElement getReturnType().getCanonicalText()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.variable.type.family"); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFromCallFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFromCallFix.java index ba7ffcfd61b7..cd6946fbcc48 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFromCallFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeFromCallFix.java @@ -44,6 +44,7 @@ public class VariableTypeFromCallFix implements IntentionAction { myVar = var; } + @Override @NotNull public String getText() { return QuickFixBundle.message("fix.variable.type.text", @@ -51,15 +52,18 @@ public class VariableTypeFromCallFix implements IntentionAction { myExpressionType.getCanonicalText()); } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("fix.variable.type.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, PsiFile file) throws IncorrectOperationException { final TypeMigrationRules rules = new TypeMigrationRules(TypeMigrationLabeler.getElementType(myVar)); rules.setMigrationRootType(myExpressionType); @@ -68,6 +72,7 @@ public class VariableTypeFromCallFix implements IntentionAction { TypeMigrationProcessor.runHighlightingTypeMigration(project, editor, rules, myVar); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeQuickFixProvider.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeQuickFixProvider.java index 6b2771ab8e6f..5b500b86396b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeQuickFixProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableTypeQuickFixProvider.java @@ -26,6 +26,7 @@ import com.intellij.psi.PsiVariable; import com.intellij.psi.PsiType; public class VariableTypeQuickFixProvider implements ChangeVariableTypeQuickFixProvider{ + @Override public IntentionAction[] getFixes(PsiVariable variable, PsiType toReturn) { return new IntentionAction[]{new VariableTypeFix(variable, toReturn)}; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/WrapExpressionFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/WrapExpressionFix.java index ff3112b69525..36fc33f602a0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/WrapExpressionFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/WrapExpressionFix.java @@ -54,6 +54,7 @@ public class WrapExpressionFix implements IntentionAction { return null; } + @Override @NotNull public String getText() { final PsiMethod wrapper = myExpression.isValid() && myExpectedType != null ? findWrapper(myExpression.getType(), myExpectedType, myPrimitiveExpected) : null; @@ -84,11 +85,13 @@ public class WrapExpressionFix implements IntentionAction { return null; } + @Override @NotNull public String getFamilyName() { return QuickFixBundle.message("wrap.expression.using.static.accessor.family"); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return myExpression.isValid() && myExpression.getManager().isInProject(myExpression) @@ -98,6 +101,7 @@ public class WrapExpressionFix implements IntentionAction { && findWrapper(myExpression.getType(), myExpectedType, myPrimitiveExpected) != null; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { if (!CodeInsightUtilBase.prepareFileForWrite(file)) return; PsiMethod wrapper = findWrapper(myExpression.getType(), myExpectedType, myPrimitiveExpected); @@ -112,6 +116,7 @@ public class WrapExpressionFix implements IntentionAction { myExpression.replace(call); } + @Override public boolean startInWriteAction() { return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateClassOrPackageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateClassOrPackageFix.java index 4198411c0251..873631e57e2f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateClassOrPackageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateClassOrPackageFix.java @@ -104,6 +104,7 @@ public class CreateClassOrPackageFix extends LocalQuickFixAndIntentionActionOnPs myPresentation = presentation; } + @Override @NotNull public String getText() { return QuickFixBundle.message( @@ -111,6 +112,7 @@ public class CreateClassOrPackageFix extends LocalQuickFixAndIntentionActionOnPs myPresentation); } + @Override @NotNull public String getFamilyName() { return getText(); @@ -124,10 +126,12 @@ public class CreateClassOrPackageFix extends LocalQuickFixAndIntentionActionOnPs @NotNull PsiElement endElement) { if (isAvailable(project, null, file)) { new WriteCommandAction(project) { + @Override protected void run(Result result) throws Throwable { final PsiDirectory directory = chooseDirectory(project, file); if (directory == null) return; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { doCreate(directory, startElement); } @@ -221,6 +225,7 @@ public class CreateClassOrPackageFix extends LocalQuickFixAndIntentionActionOnPs } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFieldOrPropertyFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFieldOrPropertyFix.java index 53b0a1825efb..b63d8910a14b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFieldOrPropertyFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFieldOrPropertyFix.java @@ -60,29 +60,35 @@ public class CreateFieldOrPropertyFix implements IntentionAction, LocalQuickFix myAnnotations = annotations; } + @Override @NotNull public String getText() { return QuickFixBundle.message(myMemberType == PropertyMemberType.FIELD ? "create.field.text":"create.property.text", myName); } + @Override @NotNull public String getName() { return getText(); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public void applyFix(@NotNull final Project project, @NotNull ProblemDescriptor descriptor) { applyFixInner(project); } + @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { return true; } + @Override public void invoke(@NotNull Project project, Editor editor, PsiFile file) { applyFixInner(project); } @@ -92,6 +98,7 @@ public class CreateFieldOrPropertyFix implements IntentionAction, LocalQuickFix final Editor editor = CodeInsightUtil.positionCursor(project, myClass.getContainingFile(), myClass.getLBrace()); if (editor != null) { new WriteCommandAction(project, file) { + @Override protected void run(Result result) throws Throwable { generateMembers(project, editor, file); } @@ -112,6 +119,7 @@ public class CreateFieldOrPropertyFix implements IntentionAction, LocalQuickFix final PsiElement scope = prototypes.get(0).getPsiMember().getContext(); assert scope != null; final Expression expression = new EmptyExpression() { + @Override public com.intellij.codeInsight.template.Result calculateResult(final ExpressionContext context) { return new TextResult(myType.getCanonicalText()); } @@ -138,6 +146,7 @@ public class CreateFieldOrPropertyFix implements IntentionAction, LocalQuickFix } } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/find/findUsages/FindClassUsagesDialog.java b/java/java-impl/src/com/intellij/find/findUsages/FindClassUsagesDialog.java index 68876706a088..aa5479c8508b 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/FindClassUsagesDialog.java +++ b/java/java-impl/src/com/intellij/find/findUsages/FindClassUsagesDialog.java @@ -39,10 +39,12 @@ public class FindClassUsagesDialog extends JavaFindUsagesDialog strings) { if (this.isUsages || this.isMethodsUsages || this.isFieldsUsages) { strings.add(FindBundle.message("find.usages.panel.title.usages")); diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesDialog.java b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesDialog.java index ba7821fad54f..3094ba6fd86c 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesDialog.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesDialog.java @@ -56,11 +56,13 @@ public abstract class JavaFindUsagesDialog exte } } + @Override public void calcFindUsagesOptions(FindUsagesOptions options) { super.calcFindUsagesOptions(options); calcFindUsagesOptions((T)options); } + @Override protected void doOKAction() { if (shouldDoOkAction()) { if (myIncludeOverloadedMethodsAvailable) { @@ -73,6 +75,7 @@ public abstract class JavaFindUsagesDialog exte super.doOKAction(); } + @Override protected void addUsagesOptions(JPanel optionsPanel) { super.addUsagesOptions(optionsPanel); if (myIncludeOverloadedMethodsAvailable) { @@ -82,11 +85,13 @@ public abstract class JavaFindUsagesDialog exte } } + @Override protected boolean isInFileOnly() { return super.isInFileOnly() || myPsiElement != null && PsiSearchHelper.SERVICE.getInstance(myPsiElement.getProject()).getUseScope(myPsiElement)instanceof LocalSearchScope; } + @Override public void configureLabelComponent(final SimpleColoredComponent coloredComponent) { coloredComponent.append(StringUtil.capitalize(UsageViewUtil.getType(myPsiElement))); coloredComponent.append(" "); @@ -97,6 +102,7 @@ public abstract class JavaFindUsagesDialog exte return myPsiElement; } + @Override protected void doHelpAction() { HelpManager.getInstance().invokeHelp(FindUsagesManager.getHelpID(myPsiElement)); } diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java index e7687d9b7250..113b3c832816 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java @@ -82,6 +82,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ myFactory = factory; } + @Override @NotNull public AbstractFindUsagesDialog getFindUsagesDialog(boolean isSingleFile, boolean toShowInNewTab, boolean mustOpenInNewTab) { PsiElement element = getPsiElement(); @@ -130,6 +131,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } + @Override @NotNull public PsiElement[] getPrimaryElements() { final PsiElement element = getPsiElement(); @@ -152,6 +154,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ return myElementsToSearch.length == 0 ? new PsiElement[]{element} : myElementsToSearch; } + @Override @NotNull public PsiElement[] getSecondaryElements() { PsiElement element = getPsiElement(); @@ -201,6 +204,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ return super.getSecondaryElements(); } + @Override @NotNull public FindUsagesOptions getFindUsagesOptions() { PsiElement element = getPsiElement(); @@ -231,6 +235,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ final Set result = new HashSet(); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (element instanceof PsiPackage) { ContainerUtil.addIfNotNull(result, ((PsiPackage)element).getQualifiedName()); @@ -283,6 +288,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } else{ addElementUsages(element, new Processor() { + @Override public boolean process(UsageInfo info) { final PsiElement element = info.getElement(); boolean isWrite = element instanceof PsiExpression && PsiUtil.isAccessedForWriting((PsiExpression)element); @@ -300,6 +306,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (ThrowSearchUtil.isSearchable (element) && options instanceof JavaThrowFindUsagesOptions && options.isUsages) { ThrowSearchUtil.Root root = options.getUserData(ThrowSearchUtil.THROW_SEARCH_ROOT_KEY); @@ -352,6 +359,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ if (options instanceof JavaMethodFindUsagesOptions){ final PsiMethod psiMethod = (PsiMethod)element; boolean isAbstract = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { return psiMethod.hasModifierProperty(PsiModifier.ABSTRACT); } @@ -381,6 +389,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ for (AliasingPsiTargetMapper aliasingPsiTargetMapper : Extensions.getExtensions(AliasingPsiTargetMapper.EP_NAME)) { for (AliasingPsiTarget psiTarget : aliasingPsiTargetMapper.getTargets(pomTarget)) { ReferencesSearch.search(new ReferencesSearch.SearchParameters(PomService.convertToPsi(psiTarget), options.searchScope, false, options.fastTrack)).forEach(new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference reference) { addResult(processor, reference, options); return true; @@ -393,6 +402,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ private static void processOverridingMethods(PsiMethod psiMethod, final Processor processor, final JavaMethodFindUsagesOptions options) { OverridingMethodsSearch.search(psiMethod, options.searchScope, options.isCheckDeepInheritance).forEach(new PsiElementProcessorAdapter( new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiMethod element) { addResult(processor, element.getNavigationElement(), options); return true; @@ -420,6 +430,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ progress.checkCanceled(); } ReferencesSearch.search(new ReferencesSearch.SearchParameters(aClass, options.searchScope, false, options.fastTrack)).forEach(new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference psiReference) { return addResult(results, psiReference, options); } @@ -440,6 +451,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ private static void addClassesInDirectory(final PsiDirectory dir, final boolean includeSubdirs, final ArrayList array) { ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { PsiClass[] classes = JavaDirectoryService.getInstance().getClasses(dir); ContainerUtil.addAll(array, classes); @@ -471,6 +483,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } else{ MethodReferencesSearch.search(new MethodReferencesSearch.SearchParameters(method, options.searchScope, true, options.fastTrack)).forEach(new PsiReferenceProcessorAdapter(new PsiReferenceProcessor() { + @Override public boolean execute(PsiReference reference) { addResultFromReference(reference, methodClass, manager, aClass, results, options); return true; @@ -503,6 +516,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } else { ReferencesSearch.search(new ReferencesSearch.SearchParameters(field, options.searchScope, false, options.fastTrack)).forEach(new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference reference) { addResultFromReference(reference, fieldClass, manager, aClass, results, options); return true; @@ -513,6 +527,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } else { PsiField[] fields = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiField[] compute() { return aClass.getFields(); } @@ -554,6 +569,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ private static void addInheritors(final PsiClass aClass, final Processor results, final JavaClassFindUsagesOptions options) { ClassInheritorsSearch.search(aClass, options.searchScope, options.isCheckDeepInheritance).forEach(new PsiElementProcessorAdapter( new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiClass element) { addResult(results, element, options); return true; @@ -565,6 +581,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ private static void addDerivedInterfaces(PsiClass anInterface, final Processor results, final JavaClassFindUsagesOptions options) { ClassInheritorsSearch.search(anInterface, options.searchScope, options.isCheckDeepInheritance).forEach(new PsiElementProcessorAdapter( new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiClass inheritor) { if (inheritor.isInterface()) { addResult(results, inheritor, options); @@ -578,6 +595,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ private static void addImplementingClasses(PsiClass anInterface, final Processor results, final JavaClassFindUsagesOptions options) { ClassInheritorsSearch.search(anInterface, options.searchScope, options.isCheckDeepInheritance).forEach(new PsiElementProcessorAdapter( new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiClass inheritor) { if (!inheritor.isInterface()) { addResult(results, inheritor, options); @@ -618,6 +636,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ if (parentClass != null) { MethodReferencesSearch.search(new MethodReferencesSearch.SearchParameters(method, searchScope, options instanceof JavaMethodFindUsagesOptions ? !((JavaMethodFindUsagesOptions)options).isIncludeOverloadUsages : true, options.fastTrack)).forEach(new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference ref) { return addResult(result, ref, options); } @@ -627,6 +646,7 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } final ReadActionProcessor consumer = new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference ref) { return addResult(result, ref, options); } @@ -692,12 +712,14 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ } + @Override protected boolean isSearchForTextOccurencesAvailable(PsiElement psiElement, boolean isSingleFile) { if (isSingleFile) return false; return new JavaNonCodeSearchElementDescriptionProvider().getElementDescription(psiElement, NonCodeSearchDescriptionLocation.NON_JAVA) != null; } + @Override public Collection findReferencesToHighlight(final PsiElement target, final SearchScope searchScope) { if (target instanceof PsiMethod) { final PsiMethod[] superMethods = ((PsiMethod)target).findDeepestSuperMethods(); diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandlerFactory.java b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandlerFactory.java index 195c32909870..82cd4a8c15ce 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandlerFactory.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandlerFactory.java @@ -45,10 +45,12 @@ public class JavaFindUsagesHandlerFactory extends FindUsagesHandlerFactory { myFindVariableOptions = new JavaVariableFindUsagesOptions(project); } + @Override public boolean canFindUsages(@NotNull final PsiElement element) { return new JavaFindUsagesProvider().canFindUsagesFor(element); } + @Override public FindUsagesHandler createFindUsagesHandler(@NotNull final PsiElement element, final boolean forHighlightUsages) { if (element instanceof PsiDirectory) { final PsiPackage psiPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory)element); diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaPackageFindUsagesOptions.java b/java/java-impl/src/com/intellij/find/findUsages/JavaPackageFindUsagesOptions.java index 846bf2c1b0d9..9cd867dd8866 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaPackageFindUsagesOptions.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaPackageFindUsagesOptions.java @@ -18,6 +18,7 @@ public class JavaPackageFindUsagesOptions extends JavaFindUsagesOptions { super(project); } + @Override protected void addUsageTypes(LinkedHashSet to) { if (this.isUsages || this.isClassesUsages) { to.add(FindBundle.message("find.usages.panel.title.usages")); diff --git a/java/java-impl/src/com/intellij/find/findUsages/ThrowsUsageTargetProvider.java b/java/java-impl/src/com/intellij/find/findUsages/ThrowsUsageTargetProvider.java index 02838cda18e5..10be584bc713 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/ThrowsUsageTargetProvider.java +++ b/java/java-impl/src/com/intellij/find/findUsages/ThrowsUsageTargetProvider.java @@ -30,6 +30,7 @@ import com.intellij.usages.UsageTargetProvider; import org.jetbrains.annotations.Nullable; public class ThrowsUsageTargetProvider implements UsageTargetProvider { + @Override @Nullable public UsageTarget[] getTargets(Editor editor, final PsiFile file) { if (editor == null || file == null) return null; @@ -49,6 +50,7 @@ public class ThrowsUsageTargetProvider implements UsageTargetProvider { return null; } + @Override public UsageTarget[] getTargets(PsiElement psiElement) { return null; } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaClassMembersRefactoringSupport.java b/java/java-impl/src/com/intellij/lang/java/JavaClassMembersRefactoringSupport.java index 0ff3cb6553ed..b4d8518d72a3 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaClassMembersRefactoringSupport.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaClassMembersRefactoringSupport.java @@ -26,10 +26,12 @@ import com.intellij.refactoring.util.classMembers.DependentMembersCollector; * @author Dennis.Ushakov */ public class JavaClassMembersRefactoringSupport implements ClassMembersRefactoringSupport { + @Override public DependentMembersCollectorBase createDependentMembersCollector(Object clazz, Object superClass) { return new DependentMembersCollector((PsiClass)clazz, (PsiClass)superClass); } + @Override public boolean isProperMember(MemberInfoBase member) { return ClassMembersUtil.isProperMember(member); } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaCommenter.java b/java/java-impl/src/com/intellij/lang/java/JavaCommenter.java index 4d20c1a9b393..949d96d663f1 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaCommenter.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaCommenter.java @@ -31,57 +31,70 @@ import org.jetbrains.annotations.Nullable; */ public class JavaCommenter implements CodeDocumentationAwareCommenterEx { + @Override public String getLineCommentPrefix() { return "//"; } + @Override public String getBlockCommentPrefix() { return "/*"; } + @Override public String getBlockCommentSuffix() { return "*/"; } + @Override public String getCommentedBlockCommentPrefix() { return null; } + @Override public String getCommentedBlockCommentSuffix() { return null; } + @Override @Nullable public IElementType getLineCommentTokenType() { return JavaTokenType.END_OF_LINE_COMMENT; } + @Override @Nullable public IElementType getBlockCommentTokenType() { return JavaTokenType.C_STYLE_COMMENT; } + @Override @Nullable public IElementType getDocumentationCommentTokenType() { return JavaDocElementType.DOC_COMMENT; } + @Override public String getDocumentationCommentPrefix() { return "/**"; } + @Override public String getDocumentationCommentLinePrefix() { return "*"; } + @Override public String getDocumentationCommentSuffix() { return "*/"; } + @Override public boolean isDocumentationComment(final PsiComment element) { return element instanceof PsiDocComment; } + @Override public boolean isDocumentationCommentText(final PsiElement element) { if (element == null) return false; final ASTNode node = element.getNode(); diff --git a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java index 1df1bf6eeb5b..e90e9fa0a717 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java @@ -69,6 +69,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext @NonNls public static final String HTML_EXTENSION = ".html"; @NonNls public static final String PACKAGE_SUMMARY_FILE = "package-summary.html"; + @Override public String getQuickNavigateInfo(PsiElement element, PsiElement originalElement) { if (element instanceof PsiClass) { return generateClassInfo((PsiClass)element); @@ -99,6 +100,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext return substitutor; } + @Override public List getUrlFor(final PsiElement element, final PsiElement originalElement) { return getExternalJavaDocUrl(element); } @@ -376,6 +378,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext return buffer.toString(); } + @Override public PsiComment findExistingDocComment(final PsiComment comment) { if (comment instanceof PsiDocComment) { final PsiDocCommentOwner owner = ((PsiDocComment)comment).getOwner(); @@ -386,6 +389,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext return null; } + @Override public String generateDocumentationContentStub(PsiComment _comment) { final PsiDocCommentOwner commentOwner = ((PsiDocComment)_comment).getOwner(); final Project project = commentOwner.getProject(); @@ -474,6 +478,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext } } + @Override public String generateDoc(final PsiElement element, final PsiElement originalElement) { if (element instanceof PsiMethodCallExpression) { return getMethodCandidateInfo((PsiMethodCallExpression)element); @@ -484,6 +489,7 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext return generateExternalJavadoc(element); } + @Override public PsiElement getDocumentationElementForLookupItem(final PsiManager psiManager, final Object object, final PsiElement element) { return null; } @@ -676,10 +682,12 @@ public class JavaDocumentationProvider implements CodeDocumentationProvider, Ext return null; } + @Override public PsiElement getDocumentationElementForLink(final PsiManager psiManager, final String link, final PsiElement context) { return JavaDocUtil.findReferenceTarget(psiManager, link, context); } + @Override public String fetchExternalDocumentation(final Project project, PsiElement element, final List docUrls) { return fetchExternalJavadoc(element, project, docUrls); } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaFindUsagesProvider.java b/java/java-impl/src/com/intellij/lang/java/JavaFindUsagesProvider.java index 3b93bd57547b..3d8558e8d128 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaFindUsagesProvider.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaFindUsagesProvider.java @@ -40,6 +40,7 @@ import org.jetbrains.annotations.NotNull; public class JavaFindUsagesProvider implements FindUsagesProvider { public static final String DEFAULT_PACKAGE_NAME = UsageViewBundle.message("default.package.presentable.name"); + @Override public boolean canFindUsagesFor(@NotNull PsiElement element) { if (element instanceof PsiDirectory) { PsiPackage psiPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory)element); @@ -55,6 +56,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider { element instanceof PsiMetaOwner && ((PsiMetaOwner)element).getMetaData() != null; } + @Override public String getHelpId(@NotNull PsiElement element) { if (element instanceof PsiPackage) { return HelpID.FIND_PACKAGE_USAGES; @@ -71,6 +73,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider { return HelpID.FIND_OTHER_USAGES; } + @Override @NotNull public String getType(@NotNull PsiElement element) { if (element instanceof PsiDirectory) { @@ -131,6 +134,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider { return ""; } + @Override @NotNull public String getDescriptiveName(@NotNull final PsiElement element) { if (ThrowSearchUtil.isSearchable(element)) { @@ -209,6 +213,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider { } } + @Override @NotNull public String getNodeText(@NotNull PsiElement element, boolean useFullName) { if (element instanceof PsiDirectory) { @@ -358,6 +363,7 @@ public class JavaFindUsagesProvider implements FindUsagesProvider { return DEFAULT_PACKAGE_NAME; } + @Override public WordsScanner getWordsScanner() { return null; } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaFormattingModelBuilder.java b/java/java-impl/src/com/intellij/lang/java/JavaFormattingModelBuilder.java index ac983678183e..0dab38a71e32 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaFormattingModelBuilder.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaFormattingModelBuilder.java @@ -46,6 +46,7 @@ public class JavaFormattingModelBuilder implements FormattingModelBuilder { private static final Logger LOG = Logger.getInstance("#com.intellij.lang.java.JavaFormattingModelBuilder"); + @Override @NotNull public FormattingModel createModel(final PsiElement element, final CodeStyleSettings settings) { final FileElement fileElement = TreeUtil.getFileElement((TreeElement)SourceTreeToPsiMap.psiElementToTree(element)); diff --git a/java/java-impl/src/com/intellij/lang/java/JavaImportOptimizer.java b/java/java-impl/src/com/intellij/lang/java/JavaImportOptimizer.java index 258967df6d84..bd2d1a9a29fc 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaImportOptimizer.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaImportOptimizer.java @@ -35,6 +35,7 @@ import org.jetbrains.annotations.NotNull; public class JavaImportOptimizer implements ImportOptimizer { private static final Logger LOG = Logger.getInstance("#com.intellij.lang.java.JavaImportOptimizer"); + @Override @NotNull public Runnable processFile(final PsiFile file) { if (!(file instanceof PsiJavaFile)) { @@ -44,6 +45,7 @@ public class JavaImportOptimizer implements ImportOptimizer { final PsiImportList newImportList = JavaCodeStyleManager.getInstance(project).prepareOptimizeImportsResult((PsiJavaFile)file); if (newImportList == null) return EmptyRunnable.getInstance(); return new Runnable() { + @Override public void run() { try { final PsiDocumentManager manager = PsiDocumentManager.getInstance(file.getProject()); @@ -62,6 +64,7 @@ public class JavaImportOptimizer implements ImportOptimizer { }; } + @Override public boolean supports(PsiFile file) { return file instanceof PsiJavaFile; } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaLiteralEscaper.java b/java/java-impl/src/com/intellij/lang/java/JavaLiteralEscaper.java index 2ada4772a8e0..4d3712d6ae08 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaLiteralEscaper.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaLiteralEscaper.java @@ -25,6 +25,7 @@ import com.intellij.openapi.util.text.StringUtil; * @author yole */ public class JavaLiteralEscaper implements LiteralEscaper { + @Override public String getEscapedText(final PsiElement context, final String originalText) { if (context instanceof PsiJavaToken && ((PsiJavaToken)context).getTokenType() == JavaTokenType.STRING_LITERAL) { return StringUtil.escapeStringCharacters(originalText); @@ -32,10 +33,12 @@ public class JavaLiteralEscaper implements LiteralEscaper { return originalText; } + @Override public String escapeText(String originalText) { return StringUtil.escapeStringCharacters(originalText); } + @Override public String unescapeText(String originalText) { return StringUtil.unescapeStringCharacters(originalText); } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java b/java/java-impl/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java index e4a665901380..cd438412e1fc 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java @@ -41,49 +41,60 @@ import org.jetbrains.annotations.Nullable; * @author ven */ public class JavaRefactoringSupportProvider extends RefactoringSupportProvider { + @Override public boolean isSafeDeleteAvailable(PsiElement element) { return element instanceof PsiClass || element instanceof PsiMethod || element instanceof PsiField || (element instanceof PsiParameter && ((PsiParameter)element).getDeclarationScope() instanceof PsiMethod) || element instanceof PsiPackage || element instanceof PsiLocalVariable; } + @Override public RefactoringActionHandler getIntroduceConstantHandler() { return new IntroduceConstantHandler(); } + @Override public RefactoringActionHandler getIntroduceFieldHandler() { return new IntroduceFieldHandler(); } + @Override public boolean isInplaceRenameAvailable(final PsiElement element, final PsiElement context) { return mayRenameInplace(element, context); } + @Override public RefactoringActionHandler getIntroduceVariableHandler() { return new IntroduceVariableHandler(); } + @Override @Nullable public RefactoringActionHandler getExtractMethodHandler() { return new ExtractMethodHandler(); } + @Override public RefactoringActionHandler getIntroduceParameterHandler() { return new IntroduceParameterHandler(); } + @Override public RefactoringActionHandler getPullUpHandler() { return new JavaPullUpHandler(); } + @Override public RefactoringActionHandler getPushDownHandler() { return new JavaPushDownHandler(); } + @Override public RefactoringActionHandler getExtractInterfaceHandler() { return new ExtractInterfaceHandler(); } + @Override public RefactoringActionHandler getExtractSuperClassHandler() { return new ExtractSuperclassHandler(); } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java b/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java index adaedc751f7c..a353cff157f5 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java @@ -30,15 +30,18 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class JavaStructureViewBuilderFactory implements PsiStructureViewFactory { + @Override @Nullable public StructureViewBuilder getStructureViewBuilder(final PsiFile psiFile) { if (!(psiFile instanceof PsiJavaFile)) return null; return new TreeBasedStructureViewBuilder() { + @Override @NotNull public StructureViewModel createStructureViewModel() { return new JavaFileTreeModel((PsiJavaFile)psiFile); } + @Override public boolean isRootNodeShown() { return false; } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java b/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java index e2c4d1eb9b22..87d9e7836e60 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java @@ -25,6 +25,7 @@ import com.intellij.pom.java.LanguageLevel; import org.jetbrains.annotations.NotNull; public class JavaSyntaxHighlighterFactory extends SyntaxHighlighterFactory { + @Override @NotNull public SyntaxHighlighter getSyntaxHighlighter(final Project project, final VirtualFile virtualFile) { return new JavaFileHighlighter( diff --git a/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java b/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java index ef0e3cb44b04..1f4101bacddd 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java @@ -31,6 +31,7 @@ public class JavaWordCompletionFilter implements WordCompletionElementFilter { private static final TokenSet ENABLED_TOKENS = TokenSet.create(JavaTokenType.C_STYLE_COMMENT, JavaTokenType.END_OF_LINE_COMMENT, JavaDocTokenType.DOC_COMMENT_DATA, JavaTokenType.STRING_LITERAL); + @Override public boolean isWordCompletionEnabledIn(final IElementType element) { return ENABLED_TOKENS.contains(element); } diff --git a/java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java b/java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java index 3e9308b78783..b182264d34d0 100644 --- a/java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java +++ b/java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java @@ -21,6 +21,7 @@ import com.intellij.openapi.fileTypes.FileTypeFactory; import org.jetbrains.annotations.NotNull; public class JavaFileTypeFactory extends FileTypeFactory { + @Override public void createFileTypes(@NotNull final FileTypeConsumer consumer) { consumer.consume(JavaClassFileType.INSTANCE, "class"); consumer.consume(JavaFileType.INSTANCE, "java"); diff --git a/java/java-impl/src/com/intellij/openapi/keymap/JBuilderKeymapProvider.java b/java/java-impl/src/com/intellij/openapi/keymap/JBuilderKeymapProvider.java index d1015a248a7d..4acbadcba8e2 100644 --- a/java/java-impl/src/com/intellij/openapi/keymap/JBuilderKeymapProvider.java +++ b/java/java-impl/src/com/intellij/openapi/keymap/JBuilderKeymapProvider.java @@ -24,6 +24,7 @@ import java.util.List; * @author yole */ public class JBuilderKeymapProvider implements BundledKeymapProvider { + @Override public List getKeymapFileNames() { return Arrays.asList("JBuilderKeymap.xml"); } diff --git a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java index e8f68b15b606..6bb5d1aad01e 100644 --- a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java +++ b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java @@ -44,32 +44,39 @@ public class JavaModuleType extends ModuleType { super(id); } + @Override public JavaModuleBuilder createModuleBuilder() { return new JavaModuleBuilder(); } + @Override public String getName() { return ProjectBundle.message("module.type.java.name"); } + @Override public String getDescription() { return ProjectBundle.message("module.type.java.description"); } + @Override public Icon getBigIcon() { return getJavaModuleIcon(); } + @Override public Icon getNodeIcon(boolean isOpened) { return isOpened ? getJavaModuleNodeIconOpen() : getJavaModuleNodeIconClosed(); } + @Override public ModuleWizardStep[] createWizardSteps(final WizardContext wizardContext, final JavaModuleBuilder moduleBuilder, final ModulesProvider modulesProvider) { final ProjectWizardStepFactory wizardFactory = ProjectWizardStepFactory.getInstance(); ArrayList steps = new ArrayList(); steps.add(wizardFactory.createSourcePathsStep(wizardContext, moduleBuilder, getWizardIcon(), "reference.dialogs.new.project.fromScratch.source")); steps.add(wizardFactory.createProjectJdkStep(wizardContext, JavaSdk.getInstance(), moduleBuilder, new Computable() { + @Override public Boolean compute() { final Sdk projectJdk = wizardFactory.getNewProjectSdk(wizardContext); return projectJdk == null || projectJdk.getSdkType() != JavaSdk.getInstance() ? Boolean.TRUE : Boolean.FALSE; diff --git a/java/java-impl/src/com/intellij/openapi/module/impl/JavaAwareModuleTypeManagerImpl.java b/java/java-impl/src/com/intellij/openapi/module/impl/JavaAwareModuleTypeManagerImpl.java index 46a2a5f68f9a..70e326601fa0 100644 --- a/java/java-impl/src/com/intellij/openapi/module/impl/JavaAwareModuleTypeManagerImpl.java +++ b/java/java-impl/src/com/intellij/openapi/module/impl/JavaAwareModuleTypeManagerImpl.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.NonNls; public class JavaAwareModuleTypeManagerImpl extends ModuleTypeManagerImpl{ @NonNls private static final String JAVA_MODULE_ID_OLD = "JAVA"; + @Override public ModuleType getDefaultModuleType() { return StdModuleTypes.JAVA; } diff --git a/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java b/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java index 946b75c4b381..8f014c571684 100644 --- a/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java +++ b/java/java-impl/src/com/intellij/openapi/options/colors/pages/JavaColorSettingsPage.java @@ -111,30 +111,36 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor ourTags.put("annotationAttributeName", CodeInsightColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES); } + @Override @NotNull public String getDisplayName() { return OptionsBundle.message("options.java.display.name"); } + @Override public Icon getIcon() { return StdFileTypes.JAVA.getIcon(); } + @Override @NotNull public AttributesDescriptor[] getAttributeDescriptors() { return ourDescriptors; } + @Override @NotNull public ColorDescriptor[] getColorDescriptors() { return ColorDescriptor.EMPTY_ARRAY; } + @Override @NotNull public SyntaxHighlighter getHighlighter() { return new JavaFileHighlighter(LanguageLevel.HIGHEST); } + @Override @NotNull public String getDemoText() { return @@ -174,6 +180,7 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor "}"; } + @Override public Map getAdditionalHighlightingTagToDescriptorMap() { return ourTags; } diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java index f496c6aa2308..769328e10dc0 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java @@ -66,10 +66,12 @@ public class JavaSdkImpl extends JavaSdk { super("JavaSDK"); } + @Override public String getPresentableName() { return ProjectBundle.message("sdk.java.name"); } + @Override public Icon getIcon() { return ICON; } @@ -80,26 +82,32 @@ public class JavaSdkImpl extends JavaSdk { return "reference.project.structure.sdk.java"; } + @Override public Icon getIconForExpandedTreeNode() { return JDK_ICON_EXPANDED; } + @Override public Icon getIconForAddAction() { return ADD_ICON; } + @Override public AdditionalDataConfigurable createAdditionalDataConfigurable(SdkModel sdkModel, SdkModificator sdkModificator) { return null; } + @Override public void saveAdditionalData(SdkAdditionalData additionalData, Element additional) { } + @Override @SuppressWarnings({"HardCodedStringLiteral"}) public String getBinPath(Sdk sdk) { return getConvertedHomePath(sdk) + "bin"; } + @Override @NonNls public String getToolsPath(Sdk sdk) { final String versionString = sdk.getVersionString(); @@ -107,6 +115,7 @@ public class JavaSdkImpl extends JavaSdk { return getConvertedHomePath(sdk) + "lib" + File.separator + (isJdk1_x? "classes.zip" : "tools.jar"); } + @Override public String getVMExecutablePath(Sdk sdk) { /* if ("64".equals(System.getProperty("sun.arch.data.model"))) { @@ -124,6 +133,7 @@ public class JavaSdkImpl extends JavaSdk { return path; } + @Override @SuppressWarnings({"HardCodedStringLiteral"}) public String suggestHomePath() { if (SystemInfo.isMac) { @@ -170,10 +180,12 @@ public class JavaSdkImpl extends JavaSdk { return homePath; } + @Override public boolean isValidSdkHome(String path) { return checkForJdk(new File(path)); } + @Override public String suggestSdkName(String currentSdkName, String sdkHome) { final String suggestedName; if (currentSdkName != null && currentSdkName.length() > 0) { @@ -224,6 +236,7 @@ public class JavaSdkImpl extends JavaSdk { return versionString; } + @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void setupSdkPaths(Sdk sdk) { final File jdkHome = new File(sdk.getHomePath()); @@ -272,6 +285,7 @@ public class JavaSdkImpl extends JavaSdk { private final Map myCachedVersionStrings = new HashMap(); + @Override public final String getVersionString(final String sdkHome) { if (myCachedVersionStrings.containsKey(sdkHome)) { return myCachedVersionStrings.get(sdkHome); @@ -288,20 +302,25 @@ public class JavaSdkImpl extends JavaSdk { return versionString; } + @Override @NotNull public String getComponentName() { return getName(); } + @Override public void initComponent() { } + @Override public void disposeComponent() { } + @Override public int compareTo(@NotNull String versionString, @NotNull String versionNumber) { return getVersionNumber(versionString).compareTo(versionNumber); } + @Override public Sdk createJdk(final String jdkName, final String home, final boolean isJre) { ProjectJdkImpl jdk = new ProjectJdkImpl(jdkName, this); SdkModificator sdkModificator = jdk.getSdkModificator(); @@ -412,6 +431,7 @@ public class JavaSdkImpl extends JavaSdk { private static VirtualFile[] findClasses(File file, boolean isJre) { FileFilter jarFileFilter = new FileFilter(){ + @Override @SuppressWarnings({"HardCodedStringLiteral"}) public boolean accept(File f){ return !f.isDirectory() && f.getName().endsWith(".jar"); diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerModuleExtensionImpl.java b/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerModuleExtensionImpl.java index 5e0353db6b2d..b682fbe62e64 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerModuleExtensionImpl.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerModuleExtensionImpl.java @@ -85,6 +85,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { } + @Override public void readExternal(final Element element) throws InvalidDataException { assert !myDisposed; final String value = element.getAttributeValue(INHERIT_COMPILER_OUTPUT); @@ -100,6 +101,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { myCompilerOutputForTests = getOutputPathValue(element, TEST_OUTPUT_TAG); } + @Override public void writeExternal(final Element element) throws WriteExternalException { assert !myDisposed; if (myCompilerOutput != null) { @@ -138,6 +140,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return null; } + @Override @Nullable public VirtualFile getCompilerOutputPath() { if (myInheritedCompilerOutput) { @@ -148,6 +151,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return myCompilerOutputPointer == null ? null : myCompilerOutputPointer.getFile(); } + @Override @Nullable public VirtualFile getCompilerOutputPathForTests() { if (myInheritedCompilerOutput) { @@ -158,6 +162,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return myCompilerOutputPathForTestsPointer == null ? null : myCompilerOutputPathForTestsPointer.getFile(); } + @Override @Nullable public String getCompilerOutputUrl() { if (myInheritedCompilerOutput) { @@ -168,6 +173,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return myCompilerOutputPointer == null ? null : myCompilerOutputPointer.getUrl(); } + @Override @Nullable public String getCompilerOutputUrlForTests() { if (myInheritedCompilerOutput) { @@ -178,6 +184,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return myCompilerOutputPathForTestsPointer == null ? null : myCompilerOutputPathForTestsPointer.getUrl(); } + @Override public void setCompilerOutputPath(final VirtualFile file) { setCompilerOutputPath(file == null ? null : file.getUrl()); } @@ -186,16 +193,19 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return VirtualFilePointerManager.getInstance().create(url, this, null); } + @Override public void setCompilerOutputPath(final String url) { assertWritable(); myCompilerOutput = url; myCompilerOutputPointer = url == null ? null : createPointer(url); } + @Override public void setCompilerOutputPathForTests(final VirtualFile file) { setCompilerOutputPathForTests(file == null ? null : file.getUrl()); } + @Override public void setCompilerOutputPathForTests(final String url) { assertWritable(); myCompilerOutputForTests = url; @@ -210,6 +220,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return myModule.getProject(); } + @Override public void inheritCompilerOutputPath(final boolean inherit) { assertWritable(); myInheritedCompilerOutput = inherit; @@ -219,32 +230,39 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { assert myWritable: "Writable model can be retrieved from writable ModifiableRootModel"; } + @Override public boolean isCompilerOutputPathInherited() { return myInheritedCompilerOutput; } + @Override public VirtualFilePointer getCompilerOutputPointer() { return myCompilerOutputPointer; } + @Override public VirtualFilePointer getCompilerOutputForTestsPointer() { return myCompilerOutputPathForTestsPointer; } + @Override public void setExcludeOutput(final boolean exclude) { assertWritable(); myExcludeOutput = exclude; } + @Override public boolean isExcludeOutput() { return myExcludeOutput; } + @Override public CompilerModuleExtension getModifiableModel(final boolean writable) { assert !myDisposed; return new CompilerModuleExtensionImpl(this, writable); } + @Override public void commit() { if (mySource != null) { mySource.myCompilerOutput = myCompilerOutput; @@ -259,6 +277,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { } } + @Override public boolean isChanged() { if (myInheritedCompilerOutput != mySource.myInheritedCompilerOutput) { return true; @@ -280,6 +299,7 @@ public class CompilerModuleExtensionImpl extends CompilerModuleExtension { return Comparing.equal(p1 == null ? null : p1.getUrl(), p2 == null ? null : p2.getUrl()); } + @Override public void dispose() { myDisposed = true; mySource = null; diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerProjectExtensionImpl.java b/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerProjectExtensionImpl.java index f8da12fc5c12..b491285c9cef 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerProjectExtensionImpl.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/CompilerProjectExtensionImpl.java @@ -70,26 +70,31 @@ public class CompilerProjectExtensionImpl extends CompilerProjectExtension { } } + @Override @Nullable public VirtualFile getCompilerOutput() { if (myCompilerOutput == null) return null; return myCompilerOutput.getFile(); } + @Override @Nullable public String getCompilerOutputUrl() { if (myCompilerOutput == null) return null; return myCompilerOutput.getUrl(); } + @Override public VirtualFilePointer getCompilerOutputPointer() { return myCompilerOutput; } + @Override public void setCompilerOutputPointer(VirtualFilePointer pointer) { myCompilerOutput = pointer; } + @Override public void setCompilerOutputUrl(String compilerOutputUrl) { VirtualFilePointer pointer = VirtualFilePointerManager.getInstance().create(compilerOutputUrl, myProject, null); setCompilerOutputPointer(pointer); @@ -136,10 +141,12 @@ public class CompilerProjectExtensionImpl extends CompilerProjectExtension { myProject = project; } + @Override public void readExternal(final Element element) throws InvalidDataException { getImpl(myProject).readExternal(element); } + @Override public void writeExternal(final Element element) throws WriteExternalException { getImpl(myProject).writeExternal(element); } @@ -152,6 +159,7 @@ public class CompilerProjectExtensionImpl extends CompilerProjectExtension { myProject = project; } + @Override @NotNull public Set getRootsToWatch() { return getImpl(myProject).getRootsToWatch(); diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/ExcludeCompilerOutputPolicy.java b/java/java-impl/src/com/intellij/openapi/roots/impl/ExcludeCompilerOutputPolicy.java index dc289a648b50..dca26c3a8b7c 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/ExcludeCompilerOutputPolicy.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/ExcludeCompilerOutputPolicy.java @@ -37,6 +37,7 @@ public class ExcludeCompilerOutputPolicy implements DirectoryIndexExcludePolicy myProject = project; } + @Override public boolean isExcludeRoot(final VirtualFile f) { CompilerProjectExtension compilerProjectExtension = CompilerProjectExtension.getInstance(myProject); if (isEqualWithFileOrUrl(f, compilerProjectExtension.getCompilerOutput(), compilerProjectExtension.getCompilerOutputUrl())) return true; @@ -49,11 +50,13 @@ public class ExcludeCompilerOutputPolicy implements DirectoryIndexExcludePolicy return false; } + @Override public boolean isExcludeRootForModule(final Module module, final VirtualFile excludeRoot) { final CompilerModuleExtension compilerModuleExtension = CompilerModuleExtension.getInstance(module); return compilerModuleExtension.getCompilerOutputPath() == excludeRoot || compilerModuleExtension.getCompilerOutputPathForTests() == excludeRoot; } + @Override public VirtualFile[] getExcludeRootsForProject() { VirtualFile outputPath = CompilerProjectExtension.getInstance(myProject).getCompilerOutput(); if (outputPath != null) { @@ -62,6 +65,7 @@ public class ExcludeCompilerOutputPolicy implements DirectoryIndexExcludePolicy return VirtualFile.EMPTY_ARRAY; } + @Override public VirtualFilePointer[] getExcludeRootsForModule(final ModuleRootModel rootModel) { ArrayList result = new ArrayList(); final CompilerModuleExtension extension = rootModel.getModuleExtension(CompilerModuleExtension.class); diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/JavaLanguageLevelPusher.java b/java/java-impl/src/com/intellij/openapi/roots/impl/JavaLanguageLevelPusher.java index 94625d1e2ed8..1dbbda84834a 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/JavaLanguageLevelPusher.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/JavaLanguageLevelPusher.java @@ -40,38 +40,46 @@ public class JavaLanguageLevelPusher implements FilePropertyPusher getFileDataKey() { return LanguageLevel.KEY; } + @Override public boolean pushDirectoriesOnly() { return true; } + @Override @NotNull public LanguageLevel getDefaultValue() { return LanguageLevel.HIGHEST; } + @Override public LanguageLevel getImmediateValue(Project project, VirtualFile file) { return null; } + @Override public LanguageLevel getImmediateValue(Module module) { return LanguageLevelUtil.getEffectiveLanguageLevel(module); } + @Override public boolean acceptsFile(VirtualFile file) { return false; } private static final FileAttribute PERSISTENCE = new FileAttribute("language_level_persistence", 1, true); + @Override public void persistAttribute(VirtualFile fileOrDir, @NotNull LanguageLevel level) throws IOException { final DataInputStream iStream = PERSISTENCE.readAttribute(fileOrDir); if (iStream != null) { @@ -95,6 +103,7 @@ public class JavaLanguageLevelPusher implements FilePropertyPusher myDirCondition = new Condition() { + @Override public boolean value(final VirtualFile dir) { return dir.isValid() && myModuleFileIndex.getOrderEntryForFile(dir) != null; } }; + @Override public Query getDirsByPackageName(@NotNull String packageName, boolean includeLibrarySources) { return new FilteredQuery(myDirectoryIndex.getDirectoriesByPackageName(packageName, includeLibrarySources), myDirCondition); } + @Override public VirtualFile[] getDirectoriesByPackageName(@NotNull String packageName, boolean includeLibrarySources) { return getDirsByPackageName(packageName, includeLibrarySources).toArray(VirtualFile.EMPTY_ARRAY); } diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/ProjectPackageIndexImpl.java b/java/java-impl/src/com/intellij/openapi/roots/impl/ProjectPackageIndexImpl.java index 6342b633f0b3..601ff499ae60 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/ProjectPackageIndexImpl.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/ProjectPackageIndexImpl.java @@ -27,10 +27,12 @@ public class ProjectPackageIndexImpl extends PackageIndex { myDirectoryIndex = directoryIndex; } + @Override public VirtualFile[] getDirectoriesByPackageName(@NotNull String packageName, boolean includeLibrarySources) { return getDirsByPackageName(packageName, includeLibrarySources).toArray(VirtualFile.EMPTY_ARRAY); } + @Override public Query getDirsByPackageName(@NotNull String packageName, boolean includeLibrarySources) { return myDirectoryIndex.getDirectoriesByPackageName(packageName, includeLibrarySources); } diff --git a/java/java-impl/src/com/intellij/openapi/roots/libraries/LibrariesHelperImpl.java b/java/java-impl/src/com/intellij/openapi/roots/libraries/LibrariesHelperImpl.java index 3574a30a42f9..ca84c57baf82 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/libraries/LibrariesHelperImpl.java +++ b/java/java-impl/src/com/intellij/openapi/roots/libraries/LibrariesHelperImpl.java @@ -45,11 +45,13 @@ public class LibrariesHelperImpl extends LibrariesHelper { return null; } + @Override public boolean isClassAvailableInLibrary(Library library, String fqn) { final String[] urls = library.getUrls(OrderRootType.CLASSES); return isClassAvailable(urls, fqn); } + @Override public boolean isClassAvailable(final String[] urls, String fqn) { for (String url : urls) { VirtualFile file = VirtualFileManager.getInstance().findFileByUrl(url); diff --git a/java/java-impl/src/com/intellij/psi/AbstractQualifiedReference.java b/java/java-impl/src/com/intellij/psi/AbstractQualifiedReference.java index 8a29bcfbeaf0..97fb37ef8993 100644 --- a/java/java-impl/src/com/intellij/psi/AbstractQualifiedReference.java +++ b/java/java-impl/src/com/intellij/psi/AbstractQualifiedReference.java @@ -42,6 +42,7 @@ import java.util.Set; */ public abstract class AbstractQualifiedReference> extends ASTWrapperPsiElement implements PsiPolyVariantReference, PsiQualifiedReference { private static final ResolveCache.PolyVariantResolver MY_RESOLVER = new ResolveCache.PolyVariantResolver() { + @Override public ResolveResult[] resolve(final AbstractQualifiedReference expression, final boolean incompleteCode) { return expression.resolveInner(); } @@ -51,21 +52,25 @@ public abstract class AbstractQualifiedReference myResults = new LinkedHashSet(); + @Override public boolean execute(final PsiElement element, final ResolveState state) { if (isFound()) return false; process(element); @@ -245,6 +260,7 @@ public abstract class AbstractQualifiedReference() { + @Override @Nullable public PsiDirectory compute() { return dir.isValid() ? psiManager.findDirectory(dir) : null; diff --git a/java/java-impl/src/com/intellij/psi/controlFlow/AllVariablesControlFlowPolicy.java b/java/java-impl/src/com/intellij/psi/controlFlow/AllVariablesControlFlowPolicy.java index f160ecd1813d..9c68d1de9aa3 100644 --- a/java/java-impl/src/com/intellij/psi/controlFlow/AllVariablesControlFlowPolicy.java +++ b/java/java-impl/src/com/intellij/psi/controlFlow/AllVariablesControlFlowPolicy.java @@ -29,15 +29,18 @@ import com.intellij.psi.*; public class AllVariablesControlFlowPolicy implements ControlFlowPolicy { private static final AllVariablesControlFlowPolicy INSTANCE = new AllVariablesControlFlowPolicy(); + @Override public PsiVariable getUsedVariable(PsiReferenceExpression refExpr) { PsiElement resolved = refExpr.resolve(); return resolved instanceof PsiVariable ? (PsiVariable)resolved : null; } + @Override public boolean isParameterAccepted(PsiParameter psiParameter) { return true; } + @Override public boolean isLocalVariableAccepted(PsiLocalVariable psiVariable) { return true; } diff --git a/java/java-impl/src/com/intellij/psi/controlFlow/DefUseUtil.java b/java/java-impl/src/com/intellij/psi/controlFlow/DefUseUtil.java index 742863afe51a..8aa627ac4073 100644 --- a/java/java-impl/src/com/intellij/psi/controlFlow/DefUseUtil.java +++ b/java/java-impl/src/com/intellij/psi/controlFlow/DefUseUtil.java @@ -255,18 +255,22 @@ public class DefUseUtil { RefsDefs refsDefs = new RefsDefs(body) { private final InstructionState[] states = getStates(instructions); + @Override protected int nNext(int index) { return states[index].getBackwardTraces().size(); } + @Override protected int getNext(int index, int no) { return states[index].getBackwardTraces().get(no); } + @Override protected boolean defs() { return true; } + @Override protected void processInstruction(final Set res, final Instruction instruction, int index) { if (instruction instanceof WriteVariableInstruction) { WriteVariableInstruction instructionW = (WriteVariableInstruction)instruction; @@ -305,18 +309,22 @@ public class DefUseUtil { public static PsiElement[] getRefs(PsiCodeBlock body, final PsiVariable def, PsiElement ref) { try { RefsDefs refsDefs = new RefsDefs(body) { + @Override protected int nNext(int index) { return instructions.get(index).nNext(); } + @Override protected int getNext(int index, int no) { return instructions.get(index).getNext(index, no); } + @Override protected boolean defs() { return false; } + @Override protected void processInstruction(final Set res, final Instruction instruction, int index) { if (instruction instanceof ReadVariableInstruction) { ReadVariableInstruction instructionR = (ReadVariableInstruction)instruction; @@ -452,6 +460,7 @@ public class DefUseUtil { } private static final ControlFlowPolicy ourPolicy = new ControlFlowPolicy() { + @Override public PsiVariable getUsedVariable(PsiReferenceExpression refExpr) { if (refExpr.isQualified()) return null; @@ -463,10 +472,12 @@ public class DefUseUtil { return null; } + @Override public boolean isParameterAccepted(PsiParameter psiParameter) { return true; } + @Override public boolean isLocalVariableAccepted(PsiLocalVariable psiVariable) { return true; } diff --git a/java/java-impl/src/com/intellij/psi/controlFlow/LocalsControlFlowPolicy.java b/java/java-impl/src/com/intellij/psi/controlFlow/LocalsControlFlowPolicy.java index 6b036bc933d1..dc106dbcc9de 100644 --- a/java/java-impl/src/com/intellij/psi/controlFlow/LocalsControlFlowPolicy.java +++ b/java/java-impl/src/com/intellij/psi/controlFlow/LocalsControlFlowPolicy.java @@ -25,6 +25,7 @@ public class LocalsControlFlowPolicy implements ControlFlowPolicy { myCodeFragment = codeFragment; } + @Override public PsiVariable getUsedVariable(PsiReferenceExpression refExpr) { if (refExpr.isQualified()) return null; @@ -53,10 +54,12 @@ public class LocalsControlFlowPolicy implements ControlFlowPolicy { return (PsiVariable)refElement; } + @Override public boolean isParameterAccepted(PsiParameter psiParameter) { return checkCodeFragment(psiParameter) != null; } + @Override public boolean isLocalVariableAccepted(PsiLocalVariable psiVariable) { return checkCodeFragment(psiVariable) != null; } diff --git a/java/java-impl/src/com/intellij/psi/filters/AnnotationParameterFilter.java b/java/java-impl/src/com/intellij/psi/filters/AnnotationParameterFilter.java index 67da80cfc52b..b7a6eab9f908 100644 --- a/java/java-impl/src/com/intellij/psi/filters/AnnotationParameterFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/AnnotationParameterFilter.java @@ -39,6 +39,7 @@ public class AnnotationParameterFilter implements ElementFilter{ myParameterName = parameterName; } + @Override public boolean isAcceptable(Object element, PsiElement context) { final PsiElement parent = ((PsiElement)element).getParent(); if (parent instanceof PsiNameValuePair) { @@ -59,6 +60,7 @@ public class AnnotationParameterFilter implements ElementFilter{ return false; } + @Override public boolean isClassAcceptable(Class hintClass) { return ReflectionCache.isAssignable(myClass, hintClass); } diff --git a/java/java-impl/src/com/intellij/psi/filters/ElementExtractorFilter.java b/java/java-impl/src/com/intellij/psi/filters/ElementExtractorFilter.java index 125553c2d2f3..3e29bccb5394 100644 --- a/java/java-impl/src/com/intellij/psi/filters/ElementExtractorFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/ElementExtractorFilter.java @@ -42,10 +42,12 @@ public class ElementExtractorFilter implements ElementFilter{ return myFilter; } + @Override public boolean isClassAcceptable(Class hintClass){ return myFilter.isClassAcceptable(hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof CandidateInfo) { final CandidateInfo candidateInfo = (CandidateInfo)element; diff --git a/java/java-impl/src/com/intellij/psi/filters/GeneratorFilter.java b/java/java-impl/src/com/intellij/psi/filters/GeneratorFilter.java index 75b3c37d7529..996c0bcecf2c 100644 --- a/java/java-impl/src/com/intellij/psi/filters/GeneratorFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/GeneratorFilter.java @@ -37,6 +37,7 @@ public class GeneratorFilter implements ElementFilter{ myGetter = getter; } + @Override public boolean isClassAcceptable(Class hintClass){ final ElementFilter filter = getFilter(); return filter == null || filter.isClassAcceptable(hintClass); @@ -60,6 +61,7 @@ public class GeneratorFilter implements ElementFilter{ return filter; } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element == null) return false; final ElementFilter filter = getFilter(context); diff --git a/java/java-impl/src/com/intellij/psi/filters/PsiMethodCallFilter.java b/java/java-impl/src/com/intellij/psi/filters/PsiMethodCallFilter.java index 55255014751b..366c98c59d0a 100644 --- a/java/java-impl/src/com/intellij/psi/filters/PsiMethodCallFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/PsiMethodCallFilter.java @@ -33,6 +33,7 @@ public class PsiMethodCallFilter implements ElementFilter { myMethodNames = new HashSet(Arrays.asList(methodNames)); } + @Override public boolean isAcceptable(Object element, PsiElement context) { if (element instanceof PsiMethodCallExpression) { final PsiMethodCallExpression callExpression = (PsiMethodCallExpression)element; @@ -49,6 +50,7 @@ public class PsiMethodCallFilter implements ElementFilter { return false; } + @Override public boolean isClassAcceptable(Class hintClass) { return PsiMethodCallExpression.class.isAssignableFrom(hintClass); } diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/AnyInnerFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/AnyInnerFilter.java index 6320de66feed..9d6b6f3bd9e8 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/AnyInnerFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/AnyInnerFilter.java @@ -38,6 +38,7 @@ public class AnyInnerFilter implements ElementFilter{ return myFilter; } + @Override public boolean isAcceptable(Object classElement, PsiElement place){ if(classElement instanceof PsiClass){ final PsiClass[] inners = ((PsiClass)classElement).getInnerClasses(); @@ -52,6 +53,7 @@ public class AnyInnerFilter implements ElementFilter{ return false; } + @Override public boolean isClassAcceptable(Class hintClass) { return true; } diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/AssignableFromContextFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/AssignableFromContextFilter.java index 4428818db32f..35b51747ed33 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/AssignableFromContextFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/AssignableFromContextFilter.java @@ -30,12 +30,14 @@ import com.intellij.util.ReflectionCache; */ public class AssignableFromContextFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass); } private SoftReference myCurrentContext = new SoftReference(null); private SoftReference myCachedClass = new SoftReference(null); + @Override public boolean isAcceptable(Object element, PsiElement context){ if(myCurrentContext.get() != context){ myCurrentContext = new SoftReference(context); diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableFilter.java index 6c2c2eb49326..0028e9aec0d0 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableFilter.java @@ -36,9 +36,11 @@ public abstract class ClassAssignableFilter implements ElementFilter{ protected PsiClass myClass = null; private SoftReference myCachedClass = new SoftReference(null); + @Override public abstract boolean isAcceptable(Object aClass, PsiElement context); public abstract String toString(); + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass); } diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableToFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableToFilter.java index 7b6398077687..6b857706e2e3 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableToFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/ClassAssignableToFilter.java @@ -37,6 +37,7 @@ public class ClassAssignableToFilter extends ClassAssignableFilter{ public ClassAssignableToFilter(){} + @Override public boolean isAcceptable(Object aClass, PsiElement context){ if(aClass instanceof PsiClass){ PsiManager manager = ((PsiElement) aClass).getManager(); diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/EnumOrAnnotationTypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/EnumOrAnnotationTypeFilter.java index 30116a3cfce0..c7dcff25bb99 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/EnumOrAnnotationTypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/EnumOrAnnotationTypeFilter.java @@ -23,10 +23,12 @@ import org.jetbrains.annotations.NonNls; public class EnumOrAnnotationTypeFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof PsiClass){ return ((PsiClass)element).isEnum() || ((PsiClass)element).isAnnotationType(); diff --git a/java/java-impl/src/com/intellij/psi/filters/classes/InterfaceFilter.java b/java/java-impl/src/com/intellij/psi/filters/classes/InterfaceFilter.java index cabb9260d0e6..97c3552d57be 100644 --- a/java/java-impl/src/com/intellij/psi/filters/classes/InterfaceFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/classes/InterfaceFilter.java @@ -28,10 +28,12 @@ import com.intellij.util.ReflectionCache; * To change this template use Options | File Templates. */ public class InterfaceFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ return element instanceof PsiClass && ((PsiClass)element).isInterface(); } diff --git a/java/java-impl/src/com/intellij/psi/filters/element/ExcludeDeclaredFilter.java b/java/java-impl/src/com/intellij/psi/filters/element/ExcludeDeclaredFilter.java index 55dac412f503..016a8c73629b 100644 --- a/java/java-impl/src/com/intellij/psi/filters/element/ExcludeDeclaredFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/element/ExcludeDeclaredFilter.java @@ -39,6 +39,7 @@ public class ExcludeDeclaredFilter extends PositionElementFilter{ SoftReference myCachedVar = new SoftReference(null); SoftReference myCurrentContext = new SoftReference(null); + @Override public boolean isAcceptable(Object element, PsiElement context){ PsiElement cachedVar = context; diff --git a/java/java-impl/src/com/intellij/psi/filters/element/ExcludeSillyAssignment.java b/java/java-impl/src/com/intellij/psi/filters/element/ExcludeSillyAssignment.java index 0028fa2e3847..d807e741d446 100644 --- a/java/java-impl/src/com/intellij/psi/filters/element/ExcludeSillyAssignment.java +++ b/java/java-impl/src/com/intellij/psi/filters/element/ExcludeSillyAssignment.java @@ -26,6 +26,7 @@ import com.intellij.psi.filters.ElementFilter; * To change this template use Options | File Templates. */ public class ExcludeSillyAssignment implements ElementFilter { + @Override public boolean isAcceptable(Object element, PsiElement context) { if(!(element instanceof PsiElement)) return true; @@ -57,6 +58,7 @@ public class ExcludeSillyAssignment implements ElementFilter { return true; } + @Override public boolean isClassAcceptable(Class hintClass) { return true; } diff --git a/java/java-impl/src/com/intellij/psi/filters/element/PackageEqualsFilter.java b/java/java-impl/src/com/intellij/psi/filters/element/PackageEqualsFilter.java index 553bcbd61273..aaa15ae85652 100644 --- a/java/java-impl/src/com/intellij/psi/filters/element/PackageEqualsFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/element/PackageEqualsFilter.java @@ -32,10 +32,12 @@ import com.intellij.util.ReflectionCache; public class PackageEqualsFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass) || ReflectionCache.isAssignable(PsiPackage.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; final String elementPackName = getPackageName((PsiElement) element); diff --git a/java/java-impl/src/com/intellij/psi/filters/element/ReferenceOnFilter.java b/java/java-impl/src/com/intellij/psi/filters/element/ReferenceOnFilter.java index bae3472e64bd..7ba8c08e1603 100644 --- a/java/java-impl/src/com/intellij/psi/filters/element/ReferenceOnFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/element/ReferenceOnFilter.java @@ -34,10 +34,12 @@ public class ReferenceOnFilter extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiJavaCodeReferenceElement.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; PsiElement parent = ((PsiElement) element).getParent(); diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/CastTypeGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/CastTypeGetter.java index 684a0e808229..c017b97858d9 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/CastTypeGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/CastTypeGetter.java @@ -29,6 +29,7 @@ import com.intellij.codeInsight.completion.CompletionContext; * To change this template use Options | File Templates. */ public class CastTypeGetter implements ContextGetter{ + @Override public Object[] get(PsiElement context, CompletionContext completionContext){ final PsiTypeCastExpression cast = PsiTreeUtil.getContextOfType(context, PsiTypeCastExpression.class, true); return new Object[]{cast.getCastType().getType()}; diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java index a5d6c5feab0b..9190340d4c14 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java @@ -37,6 +37,7 @@ public class ClassLiteralGetter { @NotNull Consumer result, final PrefixMatcher matcher) { final Condition shortNameCondition = new Condition() { + @Override public boolean value(String s) { return matcher.prefixMatches(s); } diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralLookupElement.java b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralLookupElement.java index 40db8cb6d96b..8a002a147673 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralLookupElement.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralLookupElement.java @@ -64,6 +64,7 @@ public class ClassLiteralLookupElement extends LookupElement implements TypedLoo return myExpr; } + @Override public PsiType getType() { return myExpr.getType(); } diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ExpectedTypesGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/ExpectedTypesGetter.java index d60a2d33fd69..e7f7042b7350 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ExpectedTypesGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ExpectedTypesGetter.java @@ -37,6 +37,7 @@ import java.util.Set; */ public class ExpectedTypesGetter implements ContextGetter{ + @Override @NotNull public PsiType[] get(PsiElement context, CompletionContext completionContext){ return getExpectedTypes(context, false); diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/FilterGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/FilterGetter.java index cd647e1e0918..adde94debdae 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/FilterGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/FilterGetter.java @@ -39,6 +39,7 @@ public class FilterGetter implements ContextGetter{ myFilter = filter; } + @Override public Object[] get(PsiElement context, CompletionContext completionContext){ final List results = new ArrayList(); final Object[] elements = myBaseGetter.get(context, completionContext); diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/JavaMembersGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/JavaMembersGetter.java index 743dece9bc94..59d69b81dddd 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/JavaMembersGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/JavaMembersGetter.java @@ -99,6 +99,7 @@ public class JavaMembersGetter extends MembersGetter { return null; } + @Override @Nullable protected LookupElement createFieldElement(PsiField field) { if (!myExpectedType.isAssignableFrom(field.getType())) { @@ -108,6 +109,7 @@ public class JavaMembersGetter extends MembersGetter { return new VariableLookupItem(field, false); } + @Override @Nullable protected LookupElement createMethodElement(PsiMethod method) { PsiSubstitutor substitutor = SmartCompletionDecorator.calculateMethodReturnTypeSubstitutor(method, myExpectedType); diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ThisGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/ThisGetter.java index 4fdb74af7584..bf8c1766d1ec 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ThisGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ThisGetter.java @@ -31,6 +31,7 @@ import java.util.List; * To change this template use Options | File Templates. */ public class ThisGetter implements ContextGetter{ + @Override public Object[] get(PsiElement context, CompletionContext completionContext) { return getThisExpressionVariants(context).toArray(); } diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ThrowsListGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/ThrowsListGetter.java index 76a17129947c..16d637ce8e63 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ThrowsListGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ThrowsListGetter.java @@ -30,6 +30,7 @@ import com.intellij.psi.util.PsiTreeUtil; * To change this template use Options | File Templates. */ public class ThrowsListGetter implements ContextGetter{ + @Override public PsiType[] get(PsiElement context, CompletionContext completionContext){ final PsiMethod method = PsiTreeUtil.getContextOfType(context, PsiMethod.class, true); if(method != null){ diff --git a/java/java-impl/src/com/intellij/psi/filters/position/AfterElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/AfterElementFilter.java index 34e38ce3163d..bc951467be3b 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/AfterElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/AfterElementFilter.java @@ -30,6 +30,7 @@ public class AfterElementFilter extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; PsiElement currentChild = getOwnerChild(scope, (PsiElement) element); diff --git a/java/java-impl/src/com/intellij/psi/filters/position/BeforeElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/BeforeElementFilter.java index b07344302180..5c10e2249808 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/BeforeElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/BeforeElementFilter.java @@ -31,6 +31,7 @@ public class BeforeElementFilter extends PositionElementFilter{ } public BeforeElementFilter(){} + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; final PsiElement ownerChild = getOwnerChild(scope, (PsiElement) element); diff --git a/java/java-impl/src/com/intellij/psi/filters/position/FileTypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/FileTypeFilter.java index ba80c45ea93a..0cda3eaa1f91 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/FileTypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/FileTypeFilter.java @@ -33,6 +33,7 @@ public class FileTypeFilter implements ElementFilter { } + @Override public boolean isAcceptable(Object element, PsiElement context) { if (!(element instanceof PsiElement)) return false; PsiElement psiElement = (PsiElement)element; @@ -40,6 +41,7 @@ public class FileTypeFilter implements ElementFilter { return containingFile.getFileType().equals(myFileType); } + @Override public boolean isClassAcceptable(Class hintClass) { return true; } diff --git a/java/java-impl/src/com/intellij/psi/filters/position/InsideElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/InsideElementFilter.java index 2baa9f4b2a19..74dde269e34c 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/InsideElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/InsideElementFilter.java @@ -32,6 +32,7 @@ public class InsideElementFilter extends PositionElementFilter{ public InsideElementFilter(){} + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; PsiElement currentChild = getOwnerChild(scope, (PsiElement) element); diff --git a/java/java-impl/src/com/intellij/psi/filters/position/ParentSkipReferenceElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/ParentSkipReferenceElementFilter.java index f24f9a0977f6..27e1b5b2bba5 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/ParentSkipReferenceElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/ParentSkipReferenceElementFilter.java @@ -33,6 +33,7 @@ public class ParentSkipReferenceElementFilter extends PositionElementFilter{ public ParentSkipReferenceElementFilter(){} + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; final PsiElement context = ((PsiElement)element).getContext(); diff --git a/java/java-impl/src/com/intellij/psi/filters/position/PreviousElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/PreviousElementFilter.java index 87d585901561..1edd056b0db8 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/PreviousElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/PreviousElementFilter.java @@ -33,6 +33,7 @@ public class PreviousElementFilter extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; if((element = FilterUtil.getPreviousElement((PsiElement) element, true)) != null){ diff --git a/java/java-impl/src/com/intellij/psi/filters/position/StartElementFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/StartElementFilter.java index a5607e4b55e6..028e5ac0e227 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/StartElementFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/StartElementFilter.java @@ -28,6 +28,7 @@ import org.jdom.Element; * To change this template use Options | File Templates. */ public class StartElementFilter extends PositionElementFilter{ + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; return FilterUtil.getPreviousElement((PsiElement) element, false) == null; diff --git a/java/java-impl/src/com/intellij/psi/filters/position/TokenTypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/position/TokenTypeFilter.java index 39908db5de41..485cff04e7c1 100644 --- a/java/java-impl/src/com/intellij/psi/filters/position/TokenTypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/position/TokenTypeFilter.java @@ -39,10 +39,12 @@ public class TokenTypeFilter implements ElementFilter{ myType = type; } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiDocToken.class, hintClass) || ReflectionCache.isAssignable(XmlToken.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof PsiElement) { final ASTNode node = ((PsiElement)element).getNode(); diff --git a/java/java-impl/src/com/intellij/psi/filters/types/ArrayTypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/ArrayTypeFilter.java index d743cc88ed49..c38a33c23431 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/ArrayTypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/ArrayTypeFilter.java @@ -28,10 +28,12 @@ import com.intellij.util.ReflectionCache; * To change this template use Options | File Templates. */ public class ArrayTypeFilter implements ElementFilter{ + @Override public boolean isAcceptable(Object element, PsiElement context){ return element instanceof PsiArrayType; } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiArrayType.class, hintClass); } diff --git a/java/java-impl/src/com/intellij/psi/filters/types/AssignableFromFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/AssignableFromFilter.java index 1b588598be8e..72cd4d29d0ef 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/AssignableFromFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/AssignableFromFilter.java @@ -44,10 +44,12 @@ public class AssignableFromFilter implements ElementFilter{ public AssignableFromFilter(){} + @Override public boolean isClassAcceptable(Class hintClass){ return true; } + @Override public boolean isAcceptable(Object element, PsiElement context){ PsiType type = myType; if(type == null) { diff --git a/java/java-impl/src/com/intellij/psi/filters/types/AssignableGroupFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/AssignableGroupFilter.java index b5f571ca53f4..56fa73fb599c 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/AssignableGroupFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/AssignableGroupFilter.java @@ -37,6 +37,7 @@ public class AssignableGroupFilter extends OrFilter implements InitializableFilt init(classes); } + @Override public void init(Object[] classes){ for (Object aClass : classes) { if (aClass instanceof PsiClass) { diff --git a/java/java-impl/src/com/intellij/psi/filters/types/AssignableToFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/AssignableToFilter.java index 41017d559bb1..c93a8c1152cd 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/AssignableToFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/AssignableToFilter.java @@ -42,6 +42,7 @@ public class AssignableToFilter implements InitializableFilter{ public AssignableToFilter(){} + @Override public void init(Object[] type){ myFilter = new OrFilter(); final List filters = new ArrayList(); @@ -61,10 +62,12 @@ public class AssignableToFilter implements InitializableFilter{ myFilter = new OrFilter(filters.toArray(new ElementFilter[filters.size()])); } + @Override public boolean isClassAcceptable(Class hintClass){ return true; } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(myType != null){ if(element == null) return false; diff --git a/java/java-impl/src/com/intellij/psi/filters/types/ReturnTypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/ReturnTypeFilter.java index 12e270352b96..3ebc59f7865f 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/ReturnTypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/ReturnTypeFilter.java @@ -36,6 +36,7 @@ public class ReturnTypeFilter implements ElementFilter{ public ReturnTypeFilter(ElementFilter filter){ myFilter = filter; } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiVariable.class, hintClass) || ReflectionCache.isAssignable(PsiMethod.class, hintClass) || ReflectionCache.isAssignable(PsiExpression.class, hintClass) || ReflectionCache.isAssignable(Template.class, hintClass) || @@ -43,6 +44,7 @@ public class ReturnTypeFilter implements ElementFilter{ } + @Override public boolean isAcceptable(Object element, PsiElement context){ return myFilter.isAcceptable(element, context); } diff --git a/java/java-impl/src/com/intellij/psi/filters/types/TypeClassFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/TypeClassFilter.java index 0b06f27fb4a8..f7b9f2786072 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/TypeClassFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/TypeClassFilter.java @@ -37,10 +37,12 @@ public class TypeClassFilter implements ElementFilter{ myFilter = _filter; } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiType.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof PsiType){ final PsiType type = (PsiType) element; diff --git a/java/java-impl/src/com/intellij/psi/filters/types/TypeCodeFragmentIsVoidEnabledFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/TypeCodeFragmentIsVoidEnabledFilter.java index 629dc31dcd55..f6378f652fe3 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/TypeCodeFragmentIsVoidEnabledFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/TypeCodeFragmentIsVoidEnabledFilter.java @@ -24,12 +24,14 @@ import com.intellij.util.ReflectionCache; * @author dsl */ public class TypeCodeFragmentIsVoidEnabledFilter implements ElementFilter { + @Override public boolean isAcceptable(Object element, PsiElement context) { return context instanceof PsiTypeCodeFragment && ((PsiTypeCodeFragment)context).isVoidValid(); } + @Override public boolean isClassAcceptable(Class hintClass) { return ReflectionCache.isAssignable(hintClass, PsiTypeCodeFragment.class); } diff --git a/java/java-impl/src/com/intellij/psi/filters/types/TypeFilter.java b/java/java-impl/src/com/intellij/psi/filters/types/TypeFilter.java index 7ceec98af12d..9e96ba2edd2c 100644 --- a/java/java-impl/src/com/intellij/psi/filters/types/TypeFilter.java +++ b/java/java-impl/src/com/intellij/psi/filters/types/TypeFilter.java @@ -34,10 +34,12 @@ public class TypeFilter implements ElementFilter{ myType = type; } + @Override public boolean isAcceptable(Object element, PsiElement context){ return element.equals(myType); } + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiType.class, hintClass); } diff --git a/java/java-impl/src/com/intellij/psi/formatter/JavadocFormatterUtilHelper.java b/java/java-impl/src/com/intellij/psi/formatter/JavadocFormatterUtilHelper.java index 578aa56fe2a5..a7ee0d5733ff 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/JavadocFormatterUtilHelper.java +++ b/java/java-impl/src/com/intellij/psi/formatter/JavadocFormatterUtilHelper.java @@ -23,10 +23,12 @@ import com.intellij.psi.impl.source.tree.LeafElement; * @author max */ public class JavadocFormatterUtilHelper implements FormatterUtilHelper { + @Override public boolean addWhitespace(final ASTNode treePrev, final LeafElement whiteSpaceElement) { return false; } + @Override public boolean containsWhitespacesOnly(final ASTNode node) { return node.getElementType() == ElementType.DOC_COMMENT_DATA && node.textContains('\n') && node.getText().trim().length() == 0; } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java index 6b4fceed9191..381a8b41f3dd 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java @@ -290,14 +290,17 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo return child.getElementType() == JavaTokenType.RBRACE; } + @Override public Spacing getSpacing(Block child1, Block child2) { return JavaSpacePropertyProcessor.getSpacing(getTreeNode(child2), mySettings); } + @Override public ASTNode getFirstTreeNode() { return myNode; } + @Override public Indent getIndent() { return myIndent; } @@ -1295,6 +1298,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo * @param elementType target element type * @return null all the time */ + @Override public Wrap getReservedWrap(IElementType elementType) { return null; } @@ -1341,6 +1345,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo } } + @Override @Nullable protected Indent getChildIndent() { return getChildIndent(myNode, myIndentSettings); @@ -1373,6 +1378,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo return null; } + @Override public boolean isLeaf() { return ShiftIndentInsideHelper.mayShiftIndentInside(myNode); } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java index 005d22a59200..5bbd481b6e40 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/BlockContainingJavaBlock.java @@ -47,6 +47,7 @@ public class BlockContainingJavaBlock extends AbstractJavaBlock{ public BlockContainingJavaBlock(final ASTNode node, final Wrap wrap, final Alignment alignment, final Indent indent, CommonCodeStyleSettings settings) { super(node, wrap, alignment, indent, settings); } + @Override protected List buildChildren() { final ArrayList result = new ArrayList(); Alignment childAlignment = createChildAlignment(); @@ -192,6 +193,7 @@ public class BlockContainingJavaBlock extends AbstractJavaBlock{ + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { if (isAfter(newChildIndex, new IElementType[]{JavaDocElementType.DOC_COMMENT})) { diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java index 4be63bca6702..7744b6bef7f8 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/CodeBlockBlock.java @@ -90,6 +90,7 @@ public class CodeBlockBlock extends AbstractJavaBlock { return myNode.getTreeParent().getElementType() == JavaElementType.SWITCH_STATEMENT; } + @Override protected List buildChildren() { final ArrayList result = new ArrayList(); Alignment childAlignment = createChildAlignment(); @@ -179,6 +180,7 @@ public class CodeBlockBlock extends AbstractJavaBlock { private SyntheticCodeBlock createCaseSectionBlock(final ArrayList localResult, final Alignment childAlignment, final Indent indent, final Wrap childWrap) { final SyntheticCodeBlock result = new SyntheticCodeBlock(localResult, childAlignment, getSettings(), indent, childWrap) { + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { IElementType prevElementType = null; diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/DocCommentBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/DocCommentBlock.java index da5eb0eed933..d5b7e90b2fe6 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/DocCommentBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/DocCommentBlock.java @@ -31,6 +31,7 @@ public class DocCommentBlock extends AbstractJavaBlock{ super(node, wrap, alignment, indent, settings); } + @Override protected List buildChildren() { final ArrayList result = new ArrayList(); @@ -47,6 +48,7 @@ public class DocCommentBlock extends AbstractJavaBlock{ } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { return new ChildAttributes(Indent.getSpaceIndent(1), null); diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/ExtendsListBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/ExtendsListBlock.java index 644871b30de9..2a5098803d01 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/ExtendsListBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/ExtendsListBlock.java @@ -37,6 +37,7 @@ public class ExtendsListBlock extends AbstractJavaBlock{ super(node, wrap, alignmentStrategy, Indent.getNoneIndent(), settings); } + @Override protected List buildChildren() { final ArrayList result = new ArrayList(); ArrayList elementsExceptKeyword = new ArrayList(); diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/LabeledJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/LabeledJavaBlock.java index ef065c5fa1a2..c354bcc3de86 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/LabeledJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/LabeledJavaBlock.java @@ -36,6 +36,7 @@ public class LabeledJavaBlock extends AbstractJavaBlock{ super(node, wrap, alignment, indent, settings); } + @Override protected List buildChildren() { final ArrayList result = new ArrayList(); ASTNode child = myNode.getFirstChildNode(); diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/LeafBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/LeafBlock.java index da88301f4d93..660f3f7d1777 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/LeafBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/LeafBlock.java @@ -43,10 +43,12 @@ public class LeafBlock implements ASTBlock{ myIndent = indent; } + @Override public ASTNode getNode() { return myNode; } + @Override @NotNull public TextRange getTextRange() { if (myStartOffset != -1) { @@ -55,23 +57,28 @@ public class LeafBlock implements ASTBlock{ return myNode.getTextRange(); } + @Override @NotNull public List getSubBlocks() { return EMPTY_SUB_BLOCKS; } + @Override public Wrap getWrap() { return myWrap; } + @Override public Indent getIndent() { return myIndent; } + @Override public Alignment getAlignment() { return myAlignment; } + @Override public Spacing getSpacing(Block child1, Block child2) { return null; } @@ -80,15 +87,18 @@ public class LeafBlock implements ASTBlock{ return myNode; } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { return new ChildAttributes(getIndent(), null); } + @Override public boolean isIncomplete() { return false; } + @Override public boolean isLeaf() { return ShiftIndentInsideHelper.mayShiftIndentInside(myNode); } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/MethodCallExpressionBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/MethodCallExpressionBlock.java index 78bfa914d523..bf5ca6740d72 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/MethodCallExpressionBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/MethodCallExpressionBlock.java @@ -29,6 +29,7 @@ public class MethodCallExpressionBlock extends AbstractJavaBlock{ super(node, wrap, alignment, indent, settings); } + @Override protected List buildChildren() { return null; } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/ReadonlyWhitespaceBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/ReadonlyWhitespaceBlock.java index 4df59292ded3..e1eed336a355 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/ReadonlyWhitespaceBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/ReadonlyWhitespaceBlock.java @@ -40,45 +40,54 @@ public class ReadonlyWhitespaceBlock implements Block { myIndent = indent; } + @Override @NotNull public TextRange getTextRange() { return myRange; } + @Override @NotNull public List getSubBlocks() { return Collections.emptyList(); } + @Override @Nullable public Wrap getWrap() { return myWrap; } + @Override @Nullable public Indent getIndent() { return myIndent; } + @Override @Nullable public Alignment getAlignment() { return myAlignment; } + @Override @Nullable public Spacing getSpacing(Block child1, Block child2) { return null; } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { return ChildAttributes.DELEGATE_TO_NEXT_CHILD; } + @Override public boolean isIncomplete() { return false; } + @Override public boolean isLeaf() { return true; } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java index ea7b4a416248..c90b8fceb50a 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/SimpleJavaBlock.java @@ -43,6 +43,7 @@ public class SimpleJavaBlock extends AbstractJavaBlock { super(node, wrap, alignment, indent,settings); } + @Override protected List buildChildren() { ASTNode child = myNode.getFirstChildNode(); int offset = myStartOffset != -1 ? myStartOffset : child != null ? child.getTextRange().getStartOffset():0; @@ -88,6 +89,7 @@ public class SimpleJavaBlock extends AbstractJavaBlock { return result; } + @Override @NotNull public TextRange getTextRange() { if (myStartOffset != -1) { diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java index 57d8be2ab134..a4f414d36ef8 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java @@ -60,28 +60,34 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ mySubBlocks.get(mySubBlocks.size() - 1).getTextRange().getEndOffset()); } + @Override @NotNull public TextRange getTextRange() { return myTextRange; } + @Override @NotNull public List getSubBlocks() { return mySubBlocks; } + @Override public Wrap getWrap() { return myWrap; } + @Override public Indent getIndent() { return myIndentContent; } + @Override public Alignment getAlignment() { return myAlignment; } + @Override public Spacing getSpacing(Block child1, Block child2) { return JavaSpacePropertyProcessor.getSpacing(AbstractJavaBlock.getTreeNode(child2), mySettings); } @@ -113,6 +119,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ return getClass().getName() + ": " + textRange; } + @Override public ASTNode getFirstTreeNode() { ASTNode result = AbstractJavaBlock.getTreeNode(mySubBlocks.get(0)); assert result != null; @@ -123,6 +130,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ myChildAttributes = childAttributes; } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { if (myChildAttributes != null) { @@ -132,11 +140,13 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ } } + @Override public boolean isIncomplete() { if (myIsIncomplete) return true; return getSubBlocks().get(getSubBlocks().size() - 1).isIncomplete(); } + @Override public boolean isLeaf() { return false; } diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/WrappingStrategy.java b/java/java-impl/src/com/intellij/psi/formatter/java/WrappingStrategy.java index 71bdfac231f2..2429bc0212cc 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/WrappingStrategy.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/WrappingStrategy.java @@ -22,6 +22,7 @@ import com.intellij.psi.impl.source.tree.ElementType; public abstract class WrappingStrategy { public static final WrappingStrategy DO_NOT_WRAP = new WrappingStrategy(null) { + @Override protected boolean shouldWrap(final IElementType type) { return false; } @@ -29,6 +30,7 @@ public abstract class WrappingStrategy { public static WrappingStrategy createDoNotWrapCommaStrategy(Wrap wrap) { return new WrappingStrategy(wrap) { + @Override protected boolean shouldWrap(final IElementType type) { return type != ElementType.COMMA && type != ElementType.SEMICOLON; } diff --git a/java/java-impl/src/com/intellij/psi/impl/CommonReferenceProviderTypesImpl.java b/java/java-impl/src/com/intellij/psi/impl/CommonReferenceProviderTypesImpl.java index f69ae9a66a69..f80573ef1654 100644 --- a/java/java-impl/src/com/intellij/psi/impl/CommonReferenceProviderTypesImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/CommonReferenceProviderTypesImpl.java @@ -30,6 +30,7 @@ public class CommonReferenceProviderTypesImpl extends CommonReferenceProviderTyp myProvider = new JavaClassReferenceProvider(); } + @Override public PsiReferenceProvider getClassReferenceProvider() { return myProvider; } diff --git a/java/java-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java b/java/java-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java index d98e3a868e0b..c7c86845f1c3 100644 --- a/java/java-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java +++ b/java/java-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java @@ -51,6 +51,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { myCacheArray = myCaches.toArray(new PsiShortNamesCache[myCaches.size()]); } + @Override @NotNull public PsiFile[] getFilesByName(@NotNull String name) { Merger merger = null; @@ -65,6 +66,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : PsiFile.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllFileNames() { Merger merger = new Merger(); @@ -75,6 +77,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : ArrayUtil.EMPTY_STRING_ARRAY; } + @Override @NotNull public PsiClass[] getClassesByName(@NotNull String name, @NotNull GlobalSearchScope scope) { Merger merger = null; @@ -89,6 +92,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : PsiClass.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllClassNames() { Merger merger = new Merger(); @@ -99,12 +103,14 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllClassNames(@NotNull HashSet dest) { for (PsiShortNamesCache cache : myCacheArray) { cache.getAllClassNames(dest); } } + @Override @NotNull public PsiMethod[] getMethodsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { Merger merger = null; @@ -119,6 +125,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getMethodsByNameIfNotMoreThan(@NonNls @NotNull final String name, @NotNull final GlobalSearchScope scope, final int maxCount) { Merger merger = null; @@ -133,6 +140,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllMethodNames() { Merger merger = new Merger(); @@ -143,12 +151,14 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllMethodNames(@NotNull HashSet set) { for (PsiShortNamesCache cache : myCacheArray) { cache.getAllMethodNames(set); } } + @Override @NotNull public PsiField[] getFieldsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { Merger merger = null; @@ -163,6 +173,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : PsiField.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllFieldNames() { Merger merger = new Merger(); @@ -173,6 +184,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { return result != null ? result : ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllFieldNames(@NotNull HashSet set) { for (PsiShortNamesCache cache : myCacheArray) { cache.getAllFieldNames(set); diff --git a/java/java-impl/src/com/intellij/psi/impl/EmptyShortNamesCacheImpl.java b/java/java-impl/src/com/intellij/psi/impl/EmptyShortNamesCacheImpl.java index 8d8316152b72..b8c226594400 100644 --- a/java/java-impl/src/com/intellij/psi/impl/EmptyShortNamesCacheImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/EmptyShortNamesCacheImpl.java @@ -31,49 +31,59 @@ import org.jetbrains.annotations.NotNull; class EmptyShortNamesCacheImpl extends PsiShortNamesCache { + @Override @NotNull public PsiClass[] getClassesByName(@NotNull String name, @NotNull GlobalSearchScope scope) { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllClassNames() { return ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllClassNames(@NotNull HashSet dest) { // do nothing } + @Override @NotNull public PsiMethod[] getMethodsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getMethodsByNameIfNotMoreThan(@NonNls @NotNull final String name, @NotNull final GlobalSearchScope scope, final int maxCount) { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllMethodNames() { return ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllMethodNames(@NotNull HashSet set) { // do nothing } + @Override @NotNull public PsiField[] getFieldsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { return PsiField.EMPTY_ARRAY; } + @Override @NotNull public String[] getAllFieldNames() { return ArrayUtil.EMPTY_STRING_ARRAY; } + @Override public void getAllFieldNames(@NotNull HashSet set) { // do nothing } diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaCodeBlockModificationListener.java b/java/java-impl/src/com/intellij/psi/impl/JavaCodeBlockModificationListener.java index 941032b535e7..d3aed9767503 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaCodeBlockModificationListener.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaCodeBlockModificationListener.java @@ -30,6 +30,7 @@ public class JavaCodeBlockModificationListener implements PsiTreeChangePreproces myModificationTracker = (PsiModificationTrackerImpl) modificationTracker; } + @Override public void treeChanged(final PsiTreeChangeEventImpl event) { switch (event.getCode()) { case BEFORE_CHILDREN_CHANGE: diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaDirectoryIconProvider.java b/java/java-impl/src/com/intellij/psi/impl/JavaDirectoryIconProvider.java index c0c346582f39..3e8a608dc63b 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaDirectoryIconProvider.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaDirectoryIconProvider.java @@ -39,6 +39,7 @@ import javax.swing.*; * @author yole */ public class JavaDirectoryIconProvider extends IconProvider implements DumbAware { + @Override @Nullable public Icon getIcon(@NotNull final PsiElement element, final int flags) { if (element instanceof PsiDirectory) { diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java b/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java index 750321a2a4d2..3a887e667551 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java @@ -68,10 +68,12 @@ public class JavaPsiImplementationHelperImpl extends JavaPsiImplementationHelper if (fqn == null) return psiClass; PsiClass original = JavaPsiFacade.getInstance(project).findClass(fqn, new GlobalSearchScope(project) { + @Override public int compare(VirtualFile file1, VirtualFile file2) { return 0; } + @Override public boolean contains(VirtualFile file) { // order for file and vFile has non empty intersection. List entries = idx.getOrderEntriesForFile(file); @@ -83,10 +85,12 @@ public class JavaPsiImplementationHelperImpl extends JavaPsiImplementationHelper return false; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return false; } + @Override public boolean isSearchInLibraries() { return true; } diff --git a/java/java-impl/src/com/intellij/psi/impl/PackagePrefixIndex.java b/java/java-impl/src/com/intellij/psi/impl/PackagePrefixIndex.java index d109e8163aa6..4fa5fc4d332a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PackagePrefixIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/PackagePrefixIndex.java @@ -40,9 +40,11 @@ public class PackagePrefixIndex { public PackagePrefixIndex(Project project) { myProject = project; project.getMessageBus().connect(project).subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootListener() { + @Override public void beforeRootsChange(final ModuleRootEvent event) { } + @Override public void rootsChanged(final ModuleRootEvent event) { synchronized (LOCK) { myMap = null; diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiExpressionEvaluator.java b/java/java-impl/src/com/intellij/psi/impl/PsiExpressionEvaluator.java index 0b7be3246dc4..fdfbaeb84954 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiExpressionEvaluator.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiExpressionEvaluator.java @@ -22,10 +22,12 @@ import org.jetbrains.annotations.Nullable; public class PsiExpressionEvaluator implements ConstantExpressionEvaluator { + @Override public Object computeConstantExpression(PsiElement expression, boolean throwExceptionOnOverflow) { return expression instanceof PsiExpression ? JavaConstantExpressionEvaluator.computeConstantExpression((PsiExpression)expression, throwExceptionOnOverflow) : null; } + @Override public Object computeExpression(PsiElement expression, boolean throwExceptionOnOverflow, @Nullable PsiConstantEvaluationHelper.AuxEvaluator auxEvaluator) { return expression instanceof PsiExpression ? JavaConstantExpressionEvaluator.computeConstantExpression((PsiExpression)expression, null, throwExceptionOnOverflow, auxEvaluator) : null; } diff --git a/java/java-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java b/java/java-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java index 86dc9a5d4fc9..c9d5d9f177b1 100644 --- a/java/java-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java @@ -45,16 +45,19 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { myManager = manager; } + @Override @NotNull public PsiFile[] getFilesByName(@NotNull String name) { return FilenameIndex.getFilesByName(myManager.getProject(), name, GlobalSearchScope.projectScope(myManager.getProject())); } + @Override @NotNull public String[] getAllFileNames() { return FilenameIndex.getAllFilenames(myManager.getProject()); } + @Override @NotNull public PsiClass[] getClassesByName(@NotNull String name, @NotNull final GlobalSearchScope scope) { final Collection classes = JavaShortClassNameIndex.getInstance().get(name, myManager.getProject(), scope); @@ -91,16 +94,19 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { return list.toArray(new PsiClass[list.size()]); } + @Override @NotNull public String[] getAllClassNames() { final Collection names = JavaShortClassNameIndex.getInstance().getAllKeys(myManager.getProject()); return ArrayUtil.toStringArray(names); } + @Override public void getAllClassNames(@NotNull HashSet set) { set.addAll(JavaShortClassNameIndex.getInstance().getAllKeys(myManager.getProject())); } + @Override @NotNull public PsiMethod[] getMethodsByName(@NotNull String name, @NotNull final GlobalSearchScope scope) { final Collection methods = @@ -112,21 +118,25 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { } + @Override @NotNull public PsiMethod[] getMethodsByNameIfNotMoreThan(@NonNls @NotNull final String name, @NotNull final GlobalSearchScope scope, final int maxCount) { return getMethodsByName(name, scope); // TODO!!! } + @Override @NotNull public String[] getAllMethodNames() { final Collection names = JavaMethodNameIndex.getInstance().getAllKeys(myManager.getProject()); return ArrayUtil.toStringArray(names); } + @Override public void getAllMethodNames(@NotNull HashSet set) { set.addAll(JavaMethodNameIndex.getInstance().getAllKeys(myManager.getProject())); } + @Override @NotNull public PsiField[] getFieldsByName(@NotNull String name, @NotNull final GlobalSearchScope scope) { final Collection fields = JavaFieldNameIndex.getInstance().get(name, myManager.getProject(), scope); @@ -137,12 +147,14 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { return list.toArray(new PsiField[list.size()]); } + @Override @NotNull public String[] getAllFieldNames() { final Collection names = JavaFieldNameIndex.getInstance().getAllKeys(myManager.getProject()); return ArrayUtil.toStringArray(names); } + @Override public void getAllFieldNames(@NotNull HashSet set) { set.addAll(JavaFieldNameIndex.getInstance().getAllKeys(myManager.getProject())); } @@ -150,6 +162,7 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { private List filterMembers(Collection members, final GlobalSearchScope scope) { List result = new ArrayList(); Set set = new THashSet(members.size(), new TObjectHashingStrategy() { + @Override public int computeHashCode(PsiMember member) { int code = 0; final PsiClass clazz = member.getContainingClass(); @@ -168,6 +181,7 @@ class PsiShortNamesCacheImpl extends PsiShortNamesCache { return code; } + @Override public boolean equals(PsiMember object, PsiMember object1) { return myManager.areElementsEquivalent(object, object1); } diff --git a/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyElement.java b/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyElement.java index f80963d93f4a..58ea54cab3b7 100644 --- a/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyElement.java +++ b/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyElement.java @@ -55,59 +55,72 @@ public class BeanPropertyElement extends FakePsiElement implements PsiMetaOwner, return myMethod; } + @Override public PsiElement getNavigationElement() { return myMethod; } + @Override public PsiManager getManager() { return myMethod.getManager(); } + @Override public PsiElement getDeclaration() { return this; } + @Override @NonNls public String getName(PsiElement context) { return getName(); } + @Override @NotNull public String getName() { return myName; } + @Override public void init(PsiElement element) { } + @Override public Object[] getDependences() { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override @Nullable public Icon getIcon(boolean flags) { return BeanProperty.ICON; } + @Override public PsiElement getParent() { return myMethod; } + @Override @Nullable public PsiMetaData getMetaData() { return this; } + @Override public String getTypeName() { return IdeBundle.message("bean.property"); } + @Override @Nullable public Icon getIcon() { return getIcon(0); } + @Override public TextRange getTextRange() { return TextRange.from(0, 0); } diff --git a/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyFindUsagesHandler.java b/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyFindUsagesHandler.java index 5f214ae79cc9..748cdadb99c9 100644 --- a/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyFindUsagesHandler.java +++ b/java/java-impl/src/com/intellij/psi/impl/beanProperties/BeanPropertyFindUsagesHandler.java @@ -36,6 +36,7 @@ public class BeanPropertyFindUsagesHandler extends FindUsagesHandler { } + @Override @NotNull public PsiElement[] getPrimaryElements() { final ArrayList elements = new ArrayList(3); diff --git a/java/java-impl/src/com/intellij/psi/impl/beanProperties/CreateBeanPropertyFix.java b/java/java-impl/src/com/intellij/psi/impl/beanProperties/CreateBeanPropertyFix.java index 51be4b7e7ffb..c1bbeeaaad53 100644 --- a/java/java-impl/src/com/intellij/psi/impl/beanProperties/CreateBeanPropertyFix.java +++ b/java/java-impl/src/com/intellij/psi/impl/beanProperties/CreateBeanPropertyFix.java @@ -73,6 +73,7 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA createSetter(false); } + @Override @NotNull public String getName() { return QuickFixBundle.message("create.writable.property", myPropertyName); @@ -83,11 +84,13 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA return new CreateBeanPropertyFix[] { new CreateBeanPropertyFix(propertyName, psiClass, type) { + @Override @NotNull public String getName() { return QuickFixBundle.message("create.readable.writable.property.with.field", myPropertyName); } + @Override protected void doFix() throws IncorrectOperationException { createField(); createSetter(true); @@ -95,6 +98,7 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA } }, new CreateBeanPropertyFix(propertyName, psiClass, type) { + @Override protected void doFix() throws IncorrectOperationException { if (createSetter) { createSetter(false); @@ -104,12 +108,14 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA } } + @Override @NotNull public String getName() { return QuickFixBundle.message(createSetter ? "create.writable.property" : "create.readable.property", myPropertyName); } }, new CreateBeanPropertyFix(propertyName, psiClass, type) { + @Override protected void doFix() throws IncorrectOperationException { createField(); if (createSetter) { @@ -120,6 +126,7 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA } } + @Override @NotNull public String getName() { return QuickFixBundle.message(createSetter ? "create.writable.property.with.field" : "create.readable.property.with.field", myPropertyName); @@ -135,17 +142,20 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA myType = type; } + @Override @NotNull public String getFamilyName() { return getName(); } + @Override public void applyFix(@NotNull final Project project, @NotNull final ProblemDescriptor descriptor) { applyFix(project); } private void applyFix(final Project project) { new WriteCommandAction.Simple(project, getName(), myPsiClass.getContainingFile()) { + @Override protected void run() throws Throwable { try { doFix(); @@ -157,19 +167,23 @@ public abstract class CreateBeanPropertyFix implements LocalQuickFix, IntentionA }.execute(); } + @Override @NotNull public String getText() { return getName(); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { applyFix(project); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaFilterLexer.java b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaFilterLexer.java index b544069e8901..3d0672547598 100644 --- a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaFilterLexer.java +++ b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaFilterLexer.java @@ -30,6 +30,7 @@ public class JavaFilterLexer extends BaseFilterLexer { super(originalLexer, table); } + @Override public void advance() { final IElementType tokenType = getDelegate().getTokenType(); diff --git a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaIdIndexer.java b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaIdIndexer.java index 09ea43d27fa3..84d7589d6374 100644 --- a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaIdIndexer.java +++ b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaIdIndexer.java @@ -24,6 +24,7 @@ import com.intellij.psi.impl.cache.impl.id.LexerBasedIdIndexer; import com.intellij.psi.impl.source.tree.StdTokenSets; public class JavaIdIndexer extends LexerBasedIdIndexer { + @Override protected Lexer createLexer(final BaseFilterLexer.OccurrenceConsumer consumer) { final JavaLexer javaLexer = new JavaLexer(LanguageLevel.JDK_1_3); final JavaFilterLexer filterLexer = new JavaFilterLexer(javaLexer, consumer); diff --git a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaTodoIndexer.java b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaTodoIndexer.java index dbbb56da1d65..8bfa3efcf921 100644 --- a/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaTodoIndexer.java +++ b/java/java-impl/src/com/intellij/psi/impl/cache/impl/idCache/JavaTodoIndexer.java @@ -24,6 +24,7 @@ import com.intellij.psi.impl.cache.impl.todo.TodoOccurrenceConsumer; import com.intellij.psi.impl.source.tree.StdTokenSets; public class JavaTodoIndexer extends LexerBasedTodoIndexer { + @Override protected Lexer createLexer(final TodoOccurrenceConsumer consumer) { final JavaLexer javaLexer = new JavaLexer(LanguageLevel.JDK_1_3); final JavaFilterLexer filterLexer = new JavaFilterLexer(javaLexer, consumer); diff --git a/java/java-impl/src/com/intellij/psi/impl/compiled/ClassFileDecompiler.java b/java/java-impl/src/com/intellij/psi/impl/compiled/ClassFileDecompiler.java index b40916addcfb..7c9fcb36e93b 100644 --- a/java/java-impl/src/com/intellij/psi/impl/compiled/ClassFileDecompiler.java +++ b/java/java-impl/src/com/intellij/psi/impl/compiled/ClassFileDecompiler.java @@ -30,6 +30,7 @@ import com.intellij.psi.PsiManager; import org.jetbrains.annotations.NotNull; public class ClassFileDecompiler implements BinaryFileDecompiler { + @Override @NotNull public CharSequence decompile(final VirtualFile file) { assert file.getFileType() == StdFileTypes.CLASS; diff --git a/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java b/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java index 227f2cd746bf..9444f9fce512 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java @@ -49,6 +49,7 @@ import java.util.Properties; public class JavaDirectoryServiceImpl extends JavaDirectoryService { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.file.JavaDirectoryServiceImpl"); + @Override public PsiPackage getPackage(@NotNull PsiDirectory dir) { ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(dir.getProject()).getFileIndex(); String packageName = projectFileIndex.getPackageNameByDirectory(dir.getVirtualFile()); @@ -56,6 +57,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { return JavaPsiFacade.getInstance(dir.getProject()).findPackage(packageName); } + @Override @NotNull public PsiClass[] getClasses(@NotNull PsiDirectory dir) { LOG.assertTrue(dir.isValid()); @@ -72,11 +74,13 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { return classes == null ? PsiClass.EMPTY_ARRAY : classes.toArray(new PsiClass[classes.size()]); } + @Override @NotNull public PsiClass createClass(@NotNull PsiDirectory dir, @NotNull String name) throws IncorrectOperationException { return createClassFromTemplate(dir, name, JavaTemplateUtil.INTERNAL_CLASS_TEMPLATE_NAME); } + @Override @NotNull public PsiClass createClass(@NotNull PsiDirectory dir, @NotNull String name, @NotNull String templateName) throws IncorrectOperationException { return createClassFromTemplate(dir, name, templateName); @@ -90,6 +94,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { return createClassFromTemplate(dir, name, templateName, askForUndefinedVariables); } + @Override @NotNull public PsiClass createInterface(@NotNull PsiDirectory dir, @NotNull String name) throws IncorrectOperationException { String templateName = JavaTemplateUtil.INTERNAL_INTERFACE_TEMPLATE_NAME; @@ -100,6 +105,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { return someClass; } + @Override @NotNull public PsiClass createEnum(@NotNull PsiDirectory dir, @NotNull String name) throws IncorrectOperationException { String templateName = JavaTemplateUtil.INTERNAL_ENUM_TEMPLATE_NAME; @@ -110,6 +116,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { return someClass; } + @Override @NotNull public PsiClass createAnnotationType(@NotNull PsiDirectory dir, @NotNull String name) throws IncorrectOperationException { String templateName = JavaTemplateUtil.INTERNAL_ANNOTATION_TYPE_TEMPLATE_NAME; @@ -165,6 +172,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { FileTemplateManager.getInstance().internalTemplateToSubject(templateName), templateName); } + @Override public void checkCreateClass(@NotNull PsiDirectory dir, @NotNull String name) throws IncorrectOperationException { checkCreateClassOrInterface(dir, name); } @@ -183,6 +191,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { } } + @Override public boolean isSourceRoot(@NotNull PsiDirectory dir) { final VirtualFile file = dir.getVirtualFile(); final VirtualFile sourceRoot = ProjectRootManager.getInstance(dir.getProject()).getFileIndex().getSourceRootForFile(file); @@ -190,6 +199,7 @@ public class JavaDirectoryServiceImpl extends JavaDirectoryService { } private static final Key LANG_LEVEL_IN_DIRECTORY = new Key("LANG_LEVEL_IN_DIRECTORY"); + @Override public LanguageLevel getLanguageLevel(@NotNull PsiDirectory dir) { synchronized (PsiLock.LOCK) { LanguageLevel level = dir.getUserData(LANG_LEVEL_IN_DIRECTORY); diff --git a/java/java-impl/src/com/intellij/psi/impl/file/JavaUpdateAddedFileProcessor.java b/java/java-impl/src/com/intellij/psi/impl/file/JavaUpdateAddedFileProcessor.java index fab56bf41405..82dbc6df8db8 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/JavaUpdateAddedFileProcessor.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/JavaUpdateAddedFileProcessor.java @@ -25,10 +25,12 @@ import com.intellij.util.IncorrectOperationException; * Time: 3:33:07 PM */ public class JavaUpdateAddedFileProcessor extends UpdateAddedFileProcessor { + @Override public boolean canProcessElement(final PsiFile file) { return file instanceof PsiClassOwner; } + @Override public void update(final PsiFile element, PsiFile originalElement) throws IncorrectOperationException { if (element.getViewProvider() instanceof TemplateLanguageFileViewProvider) return; diff --git a/java/java-impl/src/com/intellij/psi/impl/file/PsiJavaDirectoryFactory.java b/java/java-impl/src/com/intellij/psi/impl/file/PsiJavaDirectoryFactory.java index 0349435f65de..2ffc094b2f63 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/PsiJavaDirectoryFactory.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/PsiJavaDirectoryFactory.java @@ -33,10 +33,12 @@ public class PsiJavaDirectoryFactory extends PsiDirectoryFactory { myManager = manager; } + @Override public PsiDirectory createDirectory(@NotNull final VirtualFile file) { return new PsiJavaDirectoryImpl(myManager, file); } + @Override @NotNull public String getQualifiedName(@NotNull final PsiDirectory directory, final boolean presentable) { final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(directory); diff --git a/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java b/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java index 4ee05316e1aa..91f0f6be7c79 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/PsiPackageImplementationHelperImpl.java @@ -81,10 +81,12 @@ public class PsiPackageImplementationHelperImpl extends PsiPackageImplementation final boolean anyChanged = changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName); if (anyChanged) { UndoManager.getInstance(psiPackage.getProject()).undoableActionPerformed(new GlobalUndoableAction() { + @Override public void undo() { changePackagePrefixes(psiPackage, newQualifiedName, oldQualifedName); } + @Override public void redo() { changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName); } @@ -132,6 +134,7 @@ public class PsiPackageImplementationHelperImpl extends PsiPackageImplementation ToolWindow window = ToolWindowManager.getInstance(project).getToolWindow(ToolWindowId.PROJECT_VIEW); window.activate(null); window.getActivation().doWhenDone(new Runnable() { + @Override public void run() { final ProjectView projectView = ProjectView.getInstance(project); projectView.changeView(PackageViewPane.ID); diff --git a/java/java-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java index 685abff11e09..d60541125d2e 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java @@ -77,6 +77,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { myUseRepository = true; myManager.registerRunnableToRunOnChange(new Runnable() { + @Override public void run() { myCachedObjectClassMap.clear(); } @@ -84,9 +85,11 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { final MessageBusConnection connection = bus.connect(); connection.subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootListener() { + @Override public void beforeRootsChange(final ModuleRootEvent event) { } + @Override public void rootsChanged(final ModuleRootEvent event) { myNontrivialPackagePrefixes = null; clearNonRepositoryMaps(); @@ -94,16 +97,19 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { }); connection.subscribe(VirtualFileManager.VFS_CHANGES, new BulkFileListener() { + @Override public void before(final List events) { clearNonRepositoryMaps(); } + @Override public void after(final List events) { clearNonRepositoryMaps(); } }); connection.subscribe(AppTopics.FILE_DOCUMENT_SYNC, new FileDocumentManagerAdapter() { + @Override public void fileWithNoDocumentChanged(final VirtualFile file) { clearNonRepositoryMaps(); } @@ -113,6 +119,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { startupManager.registerStartupActivity( new Runnable() { + @Override public void run() { initialize(); } @@ -121,10 +128,12 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { Disposer.register(myManager.getProject(), this); } + @Override public void initialize() { myInitialized = true; } + @Override public void dispose() { myDisposed = true; myCachedObjectClassMap.clear(); @@ -136,6 +145,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { } } + @Override @Nullable public PsiPackage findPackage(@NotNull String packageName) { Query dirs = myPackageIndex.getDirsByPackageName(packageName, false); @@ -143,6 +153,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { return new PsiPackageImpl(myManager, packageName); } + @Override public PsiClass[] findClasses(@NotNull String qName, @NotNull final GlobalSearchScope scope) { final Collection classes = JavaFullClassNameIndex.getInstance().get(qName.hashCode(), myManager.getProject(), scope); if (classes.isEmpty()) return PsiClass.EMPTY_ARRAY; @@ -167,6 +178,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { if (count == 1) return new PsiClass[] {aClass}; ContainerUtil.quickSort(result, new Comparator() { + @Override public int compare(PsiClass o1, PsiClass o2) { return scope.compare(o2.getContainingFile().getVirtualFile(), o1.getContainingFile().getVirtualFile()); } @@ -187,6 +199,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { return true; } + @Override @Nullable public PsiClass findClass(@NotNull String qName, @NotNull GlobalSearchScope scope) { if (!myUseRepository) { @@ -372,6 +385,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { return true; } + @Override public Collection getNonTrivialPackagePrefixes() { if (myNontrivialPackagePrefixes == null) { Set names = new HashSet(); diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java index 2ceb596cf604..f3055fc59b42 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnnotationIndex.java @@ -36,10 +36,12 @@ public class JavaAnnotationIndex extends StringStubIndexExtension return ourInstance; } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.ANNOTATIONS; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java index bb9f97bfca26..c84dc8716520 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaAnonymousClassBaseRefOccurenceIndex.java @@ -37,10 +37,12 @@ public class JavaAnonymousClassBaseRefOccurenceIndex extends StringStubIndexExte } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.ANONYMOUS_BASEREF; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java index fd84fa9cfcc8..6d45c799f195 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFieldNameIndex.java @@ -36,10 +36,12 @@ public class JavaFieldNameIndex extends StringStubIndexExtension { return ourInstance; } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.FIELDS; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java index 9aa0e469512b..78e09169166a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaFullClassNameIndex.java @@ -37,10 +37,12 @@ public class JavaFullClassNameIndex extends IntStubIndexExtension { return ourInstance; } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.CLASS_FQN; } + @Override public Collection get(final Integer integer, final Project project, @NotNull final GlobalSearchScope scope) { Collection result = super.get(integer, project, new JavaSourceFilterScope(scope)); if (DEBUG) { diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java index 6ace6fc748b5..04e9732ebb41 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaMethodNameIndex.java @@ -36,10 +36,12 @@ public class JavaMethodNameIndex extends StringStubIndexExtension { return ourInstance; } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.METHODS; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java index ed5f0bef10ce..6d3613b8e29e 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaShortClassNameIndex.java @@ -36,10 +36,12 @@ public class JavaShortClassNameIndex extends StringStubIndexExtension return ourInstance; } + @Override public StubIndexKey getKey() { return JavaStubIndexKeys.CLASS_SHORT_NAMES; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java index 01deb9a63de0..65591b359c6c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java +++ b/java/java-impl/src/com/intellij/psi/impl/java/stubs/index/JavaSuperClassNameOccurenceIndex.java @@ -37,10 +37,12 @@ public class JavaSuperClassNameOccurenceIndex extends StringStubIndexExtension

getKey() { return JavaStubIndexKeys.SUPER_CLASSES; } + @Override public Collection get(final String s, final Project project, @NotNull final GlobalSearchScope scope) { return super.get(s, project, new JavaSourceFilterScope(scope)); } diff --git a/java/java-impl/src/com/intellij/psi/impl/light/ImplicitVariableImpl.java b/java/java-impl/src/com/intellij/psi/impl/light/ImplicitVariableImpl.java index 37d333c28bc0..3d95cc9db1af 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/ImplicitVariableImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/ImplicitVariableImpl.java @@ -30,6 +30,7 @@ public abstract class ImplicitVariableImpl extends LightVariableBase implements super(manager, nameIdentifier, type, writable, scope); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitImplicitVariable(this); @@ -43,10 +44,12 @@ public abstract class ImplicitVariableImpl extends LightVariableBase implements return "Implicit variable:" + getName(); } + @Override public void setInitializer(PsiExpression initializer) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override @NotNull public SearchScope getUseScope() { return new LocalSearchScope(getDeclarationScope()); diff --git a/java/java-impl/src/com/intellij/psi/impl/light/LightMemberReference.java b/java/java-impl/src/com/intellij/psi/impl/light/LightMemberReference.java index f77437726f8f..f1f5d484135f 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/LightMemberReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/LightMemberReference.java @@ -36,10 +36,12 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef mySubstitutor = substitutor; } + @Override public PsiElement resolve() { return myRefMember; } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode){ final PsiElement resolved = resolve(); @@ -50,6 +52,7 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return new CandidateInfo(resolved, substitutor); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode){ final JavaResolveResult result = advancedResolve(incompleteCode); @@ -57,14 +60,17 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return JavaResolveResult.EMPTY_ARRAY; } + @Override public void processVariants(PsiScopeProcessor processor){ throw new RuntimeException("Variants are not available for light references"); } + @Override public PsiElement getReferenceNameElement() { return null; } + @Override public PsiReferenceParameterList getParameterList() { if (myParameterList == null) { myParameterList = new LightReferenceParameterList(myManager, PsiTypeElement.EMPTY_ARRAY); @@ -72,6 +78,7 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return myParameterList; } + @Override public String getQualifiedName() { final PsiClass containingClass = myRefMember.getContainingClass(); if (containingClass != null) { @@ -83,18 +90,22 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return myRefMember.getName(); } + @Override public String getReferenceName() { return getQualifiedName(); } + @Override public String getText() { return myRefMember.getName() + getParameterList().getText(); } + @Override public PsiReference getReference() { return this; } + @Override @NotNull public String getCanonicalText() { String name = getQualifiedName(); @@ -114,20 +125,24 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return buf.toString(); } + @Override public PsiElement copy() { return new LightMemberReference(myManager, myRefMember, mySubstitutor); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { //TODO? throw new IncorrectOperationException(); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { //TODO? throw new IncorrectOperationException(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceElement(this); @@ -141,43 +156,52 @@ public class LightMemberReference extends LightElement implements PsiJavaCodeRef return "LightClassReference:" + myRefMember.getName(); } + @Override public boolean isReferenceTo(PsiElement element) { return element instanceof PsiClass && element.getManager().areElementsEquivalent(resolve(), element); } + @Override @NotNull public Object[] getVariants() { throw new RuntimeException("Variants are not available for light references"); } + @Override public boolean isSoft(){ return false; } + @Override public TextRange getRangeInElement() { return new TextRange(0, getTextLength()); } + @Override public PsiElement getElement() { return this; } + @Override public boolean isValid() { PsiReferenceParameterList parameterList = getParameterList(); if (parameterList != null && !parameterList.isValid()) return false; return myRefMember == null || myRefMember.isValid(); } + @Override @NotNull public PsiType[] getTypeParameters() { PsiReferenceParameterList parameterList = getParameterList(); return parameterList == null ? PsiType.EMPTY_ARRAY : parameterList.getTypeArguments(); } + @Override public PsiElement getQualifier() { return null; } + @Override public boolean isQualified() { return false; } diff --git a/java/java-impl/src/com/intellij/psi/impl/light/LightMethodBuilder.java b/java/java-impl/src/com/intellij/psi/impl/light/LightMethodBuilder.java index a213cfbb0981..7ae2ccb00bda 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/LightMethodBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/LightMethodBuilder.java @@ -91,47 +91,57 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return ItemPresentationProviders.getItemPresentation(this); } + @Override public boolean hasTypeParameters() { return false; } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiTypeParameter.EMPTY_ARRAY; } + @Override public PsiTypeParameterList getTypeParameterList() { //todo return null; } + @Override public PsiDocComment getDocComment() { //todo return null; } + @Override public boolean isDeprecated() { //todo return false; } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { throw new UnsupportedOperationException("Please don't rename light methods"); } + @Override @NotNull public String getName() { return myName; } + @Override @NotNull public HierarchicalMethodSignature getHierarchicalMethodSignature() { return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override @NotNull public PsiModifierList getModifierList() { return myModifierList; @@ -155,6 +165,7 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return this; } + @Override public PsiType getReturnType() { return myReturnType == null ? null : myReturnType.compute(); } @@ -178,10 +189,12 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { }); } + @Override public PsiTypeElement getReturnTypeElement() { return null; } + @Override @NotNull public PsiParameterList getParameterList() { return myParameterList; @@ -218,11 +231,13 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { } + @Override @NotNull public PsiReferenceList getThrowsList() { return myThrowsList; } + @Override public PsiCodeBlock getBody() { return null; } @@ -232,59 +247,71 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return this; } + @Override public boolean isConstructor() { return myConstructor; } + @Override public boolean isVarArgs() { //todo return false; } + @Override @NotNull public MethodSignature getSignature(@NotNull PsiSubstitutor substitutor) { return MethodSignatureBackedByPsiMethod.create(this, substitutor); } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override @NotNull public PsiMethod[] findSuperMethods() { return PsiSuperMethodImplUtil.findSuperMethods(this); } + @Override @NotNull public PsiMethod[] findSuperMethods(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess); } + @Override @NotNull public PsiMethod[] findSuperMethods(PsiClass parentClass) { return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass); } + @Override @NotNull public List findSuperMethodSignaturesIncludingStatic(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess); } + @Override public PsiMethod findDeepestSuperMethod() { return PsiSuperMethodImplUtil.findDeepestSuperMethod(this); } + @Override @NotNull public PsiMethod[] findDeepestSuperMethods() { return PsiSuperMethodImplUtil.findDeepestSuperMethods(this); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitMethod(this); } } + @Override public PsiClass getContainingClass() { return myContainingClass; } @@ -303,6 +330,7 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return myMethodKind + ":" + getName(); } + @Override public Icon getElementIcon(final int flags) { Icon methodIcon = myBaseIcon != null ? myBaseIcon : hasModifierProperty(PsiModifier.ABSTRACT) ? PlatformIcons.ABSTRACT_METHOD_ICON : PlatformIcons.METHOD_ICON; @@ -325,6 +353,7 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return PsiClassImplUtil.isMethodEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiImplUtil.getMemberUseScope(this); @@ -352,9 +381,11 @@ public class LightMethodBuilder extends LightElement implements PsiMethod { return getContainingFile(); } + @Override public PsiMethodReceiver getMethodReceiver() { return null; } + @Override @Nullable public PsiType getReturnTypeNoResolve() { return getReturnType(); diff --git a/java/java-impl/src/com/intellij/psi/impl/light/LightParameter.java b/java/java-impl/src/com/intellij/psi/impl/light/LightParameter.java index 377fcde6407c..b78e9cd0e11e 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/LightParameter.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/LightParameter.java @@ -30,6 +30,7 @@ public class LightParameter extends LightVariableBuilder i return myDeclarationScope; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitParameter(this); @@ -40,15 +41,18 @@ public class LightParameter extends LightVariableBuilder i return "Light Parameter"; } + @Override public boolean isVarArgs() { return myVarArgs; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return PsiAnnotation.EMPTY_ARRAY; } + @Override @NotNull public String getName() { return myName; diff --git a/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBase.java b/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBase.java index 9c6805b66eca..f6ac7ac500fa 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBase.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBase.java @@ -60,24 +60,29 @@ public abstract class LightVariableBase extends LightElement implements PsiVaria return myScope; } + @Override public PsiIdentifier getNameIdentifier() { return myNameIdentifier; } + @Override public boolean isValid() { return myNameIdentifier == null || myNameIdentifier.isValid(); } + @Override @NotNull public String getName() { return StringUtil.notNullize(getNameIdentifier().getText()); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException{ PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public PsiType getType() { if (myType == null) { @@ -91,38 +96,47 @@ public abstract class LightVariableBase extends LightElement implements PsiVaria return PsiType.VOID; } + @Override @NotNull public PsiTypeElement getTypeElement() { return JavaPsiFacade.getInstance(getProject()).getElementFactory().createTypeElement(myType); } + @Override public PsiModifierList getModifierList() { return myModifierList; } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return false; } + @Override public String getText() { return myNameIdentifier.getText(); } + @Override public Object computeConstantValue() { return null; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { } + @Override public boolean isWritable() { return myWritable; } @@ -131,10 +145,12 @@ public abstract class LightVariableBase extends LightElement implements PsiVaria return true; } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(PlatformIcons.VARIABLE_ICON, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); } + @Override public PsiType getTypeNoResolve() { return getType(); } diff --git a/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBuilder.java b/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBuilder.java index b46eb1c4014c..cb843ad00337 100644 --- a/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/light/LightVariableBuilder.java @@ -114,6 +114,7 @@ public class LightVariableBuilder extends LightE return true; } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(myBaseIcon, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); diff --git a/java/java-impl/src/com/intellij/psi/impl/migration/MigrationClassImpl.java b/java/java-impl/src/com/intellij/psi/impl/migration/MigrationClassImpl.java index 45b642df80bd..f17b086dfd94 100644 --- a/java/java-impl/src/com/intellij/psi/impl/migration/MigrationClassImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/migration/MigrationClassImpl.java @@ -53,10 +53,12 @@ public class MigrationClassImpl extends LightElement implements PsiClass{ return "MigrationClass:" + myQualifiedName; } + @Override public String getText() { return "class " + myName + " {}"; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClass(this); @@ -66,207 +68,253 @@ public class MigrationClassImpl extends LightElement implements PsiClass{ } } + @Override public PsiElement copy() { return new MigrationClassImpl(myMigration, myQualifiedName); } + @Override public boolean isValid() { return myMigration.isValid(); } + @Override public String getQualifiedName() { return myQualifiedName; } + @Override public boolean isInterface() { return false; } + @Override public boolean isAnnotationType() { return false; } + @Override public boolean isEnum() { return false; } + @Override public PsiReferenceList getExtendsList() { return null; } + @Override public PsiReferenceList getImplementsList() { return null; } + @Override @NotNull public PsiClassType[] getExtendsListTypes() { return PsiClassType.EMPTY_ARRAY; } + @Override @NotNull public PsiClassType[] getImplementsListTypes() { return PsiClassType.EMPTY_ARRAY; } + @Override public PsiClass getSuperClass() { return JavaPsiFacade.getInstance(myManager.getProject()) .findClass("java.lang.Object", GlobalSearchScope.allScope(myManager.getProject())); } + @Override public PsiClass[] getInterfaces() { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getSupers() { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public PsiClassType[] getSuperTypes() { return PsiClassType.EMPTY_ARRAY; } + @Override public PsiClass getContainingClass() { return null; } + @Override @NotNull public Collection getVisibleSignatures() { return Collections.emptySet(); } + @Override @NotNull public PsiField[] getFields() { return PsiField.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getMethods() { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getConstructors() { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getInnerClasses() { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public PsiClassInitializer[] getInitializers() { return PsiClassInitializer.EMPTY_ARRAY; } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiTypeParameter.EMPTY_ARRAY; } + @Override @NotNull public PsiField[] getAllFields() { return PsiField.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getAllMethods() { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getAllInnerClasses() { return PsiClass.EMPTY_ARRAY; } + @Override public PsiField findFieldByName(String name, boolean checkBases) { return null; } + @Override public PsiMethod findMethodBySignature(PsiMethod patternMethod, boolean checkBases) { return null; } + @Override @NotNull public PsiMethod[] findMethodsBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] findMethodsByName(String name, boolean checkBases) { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public List> findMethodsAndTheirSubstitutorsByName(String name, boolean checkBases) { return new ArrayList>(); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return new ArrayList>(); } + @Override public PsiClass findInnerClassByName(String name, boolean checkBases) { return null; } + @Override public PsiTypeParameterList getTypeParameterList() { return null; } + @Override public boolean hasTypeParameters() { return false; } + @Override public PsiJavaToken getLBrace() { return null; } + @Override public PsiJavaToken getRBrace() { return null; } + @Override public PsiIdentifier getNameIdentifier() { return null; } // very special method! + @Override public PsiElement getScope() { return null; } + @Override public boolean isInheritorDeep(PsiClass baseClass, PsiClass classToByPass) { return InheritanceImplUtil.isInheritorDeep(this, baseClass, classToByPass); } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return InheritanceImplUtil.isInheritor(this, baseClass, checkDeep); } + @Override public String getName() { return myName; } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@NotNull String name) { return PsiModifier.PUBLIC.equals(name); } + @Override public PsiDocComment getDocComment() { return null; } + @Override public boolean isDeprecated() { return false; } @@ -275,6 +323,7 @@ public class MigrationClassImpl extends LightElement implements PsiClass{ return null; } + @Override public Icon getElementIcon(final int flags) { return PsiClassImplUtil.getClassIcon(flags, this); } @@ -284,6 +333,7 @@ public class MigrationClassImpl extends LightElement implements PsiClass{ return PsiClassImplUtil.isClassEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiClassImplUtil.getClassUseScope(this); diff --git a/java/java-impl/src/com/intellij/psi/impl/migration/MigrationPackageImpl.java b/java/java-impl/src/com/intellij/psi/impl/migration/MigrationPackageImpl.java index 5761dffcaac5..90d5ffe20df8 100644 --- a/java/java-impl/src/com/intellij/psi/impl/migration/MigrationPackageImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/migration/MigrationPackageImpl.java @@ -35,18 +35,22 @@ public class MigrationPackageImpl extends PsiPackageImpl implements PsiPackage { return "MigrationPackage: " + getQualifiedName(); } + @Override public boolean isWritable() { return false; } + @Override public boolean isValid() { return myMigration.isValid(); } + @Override public void handleQualifiedNameChange(@NotNull String newQualifiedName) { throw new UnsupportedOperationException(); } + @Override public VirtualFile[] occursInPackagePrefixes() { return VirtualFile.EMPTY_ARRAY; } diff --git a/java/java-impl/src/com/intellij/psi/impl/migration/PsiMigrationImpl.java b/java/java-impl/src/com/intellij/psi/impl/migration/PsiMigrationImpl.java index 7a09bb3f7f61..1ff90468f0de 100644 --- a/java/java-impl/src/com/intellij/psi/impl/migration/PsiMigrationImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/migration/PsiMigrationImpl.java @@ -48,6 +48,7 @@ public class PsiMigrationImpl implements PsiMigration { myManager = manager; } + @Override public PsiClass createClass(String qualifiedName) { assertValid(); ApplicationManager.getApplication().assertWriteAccessAllowed(); @@ -76,6 +77,7 @@ public class PsiMigrationImpl implements PsiMigration { return psiClasses; } + @Override public PsiPackage createPackage(String qualifiedName) { assertValid(); ApplicationManager.getApplication().assertWriteAccessAllowed(); @@ -93,6 +95,7 @@ public class PsiMigrationImpl implements PsiMigration { return migrationPackage; } + @Override public void finish() { assertValid(); myQNameToClassMap.clear(); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java b/java/java-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java index d53e70a7de36..4ab982f4791c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/AllClassesSearchExecutor.java @@ -39,6 +39,7 @@ import java.util.Comparator; import java.util.List; public class AllClassesSearchExecutor implements QueryExecutor { + @Override public boolean execute(@NotNull final AllClassesSearch.SearchParameters queryParameters, @NotNull final Processor consumer) { SearchScope scope = queryParameters.getScope(); @@ -57,6 +58,7 @@ public class AllClassesSearchExecutor implements QueryExecutor() { + @Override public String[] compute() { return cache.getAllClassNames(); } @@ -83,6 +85,7 @@ public class AllClassesSearchExecutor implements QueryExecutor() { + @Override public int compare(final String o1, final String o2) { return o1.compareToIgnoreCase(o2); } @@ -91,6 +94,7 @@ public class AllClassesSearchExecutor implements QueryExecutor() { + @Override public PsiClass[] compute() { return cache.getClassesByName(name, scope); } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedElementsSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedElementsSearcher.java index 589923fec896..4da8609cb45c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedElementsSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedElementsSearcher.java @@ -28,6 +28,7 @@ import java.util.Collection; public class AnnotatedElementsSearcher implements QueryExecutor { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.search.AnnotatedMembersSearcher"); + @Override public boolean execute(@NotNull final AnnotatedElementsSearch.Parameters p, @NotNull final Processor consumer) { final PsiClass annClass = p.getAnnotationClass(); assert annClass.isAnnotationType() : "Annotation type should be passed to annotated members search"; diff --git a/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java index 0ae95821760a..bf1eac47d521 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java @@ -39,6 +39,7 @@ import java.util.Collection; public class AnnotatedPackagesSearcher implements QueryExecutor { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.search.AnnotatedPackagesSearcher"); + @Override public boolean execute(@NotNull final AnnotatedPackagesSearch.Parameters p, @NotNull final Processor consumer) { final PsiClass annClass = p.getAnnotationClass(); assert annClass.isAnnotationType() : "Annotation type should be passed to annotated packages search"; @@ -87,6 +88,7 @@ public class AnnotatedPackagesSearcher implements QueryExecutor() { + @Override public boolean process(final PsiFile psiFile) { PsiPackageStatement stmt = PsiTreeUtil.getChildOfType(psiFile, PsiPackageStatement.class); if (stmt == null) return true; @@ -110,18 +112,22 @@ public class AnnotatedPackagesSearcher implements QueryExecutor processor2 = new Processor() { + @Override public boolean process(PsiClass inheritor) { return processSuperOrThis(processor, (PsiClass)inheritor.getNavigationElement(), constructor, constructorCanBeCalledImplicitly, searchScope, isStrictSignatureSearch, PsiKeyword.SUPER); @@ -145,10 +146,12 @@ public class ConstructorReferencesSearchHelper { PsiClass superClass = containingClass.getSuperClass(); if (myManager.areElementsEquivalent(constructor.getContainingClass(), superClass)) { processor.process(new LightMemberReference(myManager, usage, PsiSubstitutor.EMPTY) { + @Override public PsiElement getElement() { return usage; } + @Override public TextRange getRangeInElement() { if (usage instanceof PsiClass) { PsiIdentifier identifier = ((PsiClass)usage).getNameIdentifier(); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaAllOverridingMethodsSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaAllOverridingMethodsSearcher.java index 0a5e9d2365e7..d855ab6f14db 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaAllOverridingMethodsSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaAllOverridingMethodsSearcher.java @@ -35,6 +35,7 @@ import java.util.List; * @author ven */ public class JavaAllOverridingMethodsSearcher implements QueryExecutor, AllOverridingMethodsSearch.SearchParameters> { + @Override public boolean execute(@NotNull final AllOverridingMethodsSearch.SearchParameters p, @NotNull final Processor> consumer) { final PsiClass psiClass = p.getPsiClass(); @@ -47,6 +48,7 @@ public class JavaAllOverridingMethodsSearcher implements QueryExecutor inheritorsProcessor = new Processor() { + @Override public boolean process(PsiClass inheritor) { //could be null if not java inheritor, TODO only JavaClassInheritors are needed PsiSubstitutor substitutor = TypeConversionUtil.getClassSubstitutor(psiClass, inheritor, PsiSubstitutor.EMPTY); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java index 27c37f39e982..99ebcea6e7cd 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaDirectInheritorsSearcher.java @@ -33,17 +33,20 @@ import java.util.Map; * @author max */ public class JavaDirectInheritorsSearcher implements QueryExecutor { + @Override public boolean execute(@NotNull final DirectClassInheritorsSearch.SearchParameters p, @NotNull final Processor consumer) { final PsiClass aClass = p.getClassToProcess(); final PsiManagerImpl psiManager = (PsiManagerImpl)PsiManager.getInstance(aClass.getProject()); final SearchScope useScope = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public SearchScope compute() { return aClass.getUseScope(); } }); final String qualifiedName = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public String compute() { return aClass.getQualifiedName(); } @@ -54,6 +57,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { + @Override public boolean process(final PsiClass psiClass) { if (psiClass.isInterface()) { return consumer.process(psiClass); @@ -79,6 +83,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor candidates = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public Collection compute() { return JavaSuperClassNameOccurenceIndex.getInstance().get(searchKey, psiManager.getProject(), scope); } @@ -92,6 +97,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { + @Override public String compute() { return candidate.getQualifiedName(); } @@ -110,6 +116,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor anonymousCandidates = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public Collection compute() { return JavaAnonymousClassBaseRefOccurenceIndex.getInstance().get(searchKey, psiManager.getProject(), scope); } @@ -125,6 +132,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { + @Override public PsiField[] compute() { return aClass.getFields(); } @@ -133,6 +141,7 @@ public class JavaDirectInheritorsSearcher implements QueryExecutor() { + @Override public PsiEnumConstantInitializer compute() { return ((PsiEnumConstant)field).getInitializingClass(); } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java index 3b1780d23b77..dda8720f2cec 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java @@ -36,6 +36,7 @@ public class JavaIndexPatternBuilder implements IndexPatternBuilder { public static final TokenSet XML_DATA_CHARS = TokenSet.create(XmlTokenType.XML_DATA_CHARACTERS); public static final TokenSet XML_COMMENT_BIT_SET = TokenSet.create(XmlElementType.XML_COMMENT_CHARACTERS); + @Override @Nullable public Lexer getIndexingLexer(final PsiFile file) { if (file instanceof PsiJavaFile && !(file instanceof JspFile)) { @@ -44,6 +45,7 @@ public class JavaIndexPatternBuilder implements IndexPatternBuilder { return null; } + @Override @Nullable public TokenSet getCommentTokenSet(final PsiFile file) { if (file instanceof PsiJavaFile && !(file instanceof JspFile)) { @@ -52,10 +54,12 @@ public class JavaIndexPatternBuilder implements IndexPatternBuilder { return null; } + @Override public int getCommentStartDelta(final IElementType tokenType) { return 0; } + @Override public int getCommentEndDelta(final IElementType tokenType) { return tokenType == JavaTokenType.C_STYLE_COMMENT ? "*/".length() : 0; } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaOverridingMethodsSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaOverridingMethodsSearcher.java index 61d7e423e269..b9c5dab62232 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaOverridingMethodsSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaOverridingMethodsSearcher.java @@ -18,6 +18,7 @@ import org.jetbrains.annotations.Nullable; * @author max */ public class JavaOverridingMethodsSearcher implements QueryExecutor { + @Override public boolean execute(@NotNull final OverridingMethodsSearch.SearchParameters p, @NotNull final Processor consumer) { final PsiMethod method = p.getMethod(); final SearchScope scope = p.getScope(); @@ -31,8 +32,10 @@ public class JavaOverridingMethodsSearcher implements QueryExecutor inheritorsProcessor = new Processor() { + @Override public boolean process(final PsiClass inheritor) { PsiMethod found = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override @Nullable public PsiMethod compute() { return findOverridingMethod(inheritor, parentClass, method); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java index d369b4d08b1d..a0178fb407de 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaSourceFilterScope.java @@ -35,6 +35,7 @@ public class JavaSourceFilterScope extends DelegatingGlobalSearchScope { myIndex = ProjectRootManager.getInstance(getProject()).getFileIndex(); } + @Override public boolean contains(final VirtualFile file) { if (!super.contains(file)) { return false; diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java b/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java index 705174d6c2c6..c5124896d19b 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java @@ -37,6 +37,7 @@ import com.intellij.psi.tree.TokenSet; * @author yole */ public class JspIndexPatternBuilder implements IndexPatternBuilder { + @Override public Lexer getIndexingLexer(final PsiFile file) { if (JspPsiUtil.isInJspFile(file)) { EditorHighlighter highlighter = null; @@ -65,6 +66,7 @@ public class JspIndexPatternBuilder implements IndexPatternBuilder { return null; } + @Override public TokenSet getCommentTokenSet(final PsiFile file) { final JspFile jspFile = JspPsiUtil.getJspFile(file); TokenSet commentTokens = TokenSet.orSet(JavaIndexPatternBuilder.XML_COMMENT_BIT_SET, StdTokenSets.COMMENT_BIT_SET); @@ -76,10 +78,12 @@ public class JspIndexPatternBuilder implements IndexPatternBuilder { return commentTokens; } + @Override public int getCommentStartDelta(final IElementType tokenType) { return tokenType == JspTokenType.JSP_COMMENT ? "<%--".length() : 0; } + @Override public int getCommentEndDelta(final IElementType tokenType) { return tokenType == JspTokenType.JSP_COMMENT ? "--%>".length() : 0; } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java b/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java index fba07a45ba32..92068c2c0d9a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java @@ -37,6 +37,7 @@ public class LexerEditorHighlighterLexer extends LexerBase { myAlreadyInitializedHighlighter = alreadyInitializedHighlighter; } + @Override public void start(CharSequence buffer, int startOffset, int endOffset, int state) { if (myAlreadyInitializedHighlighter) { this.buffer = buffer; @@ -48,31 +49,38 @@ public class LexerEditorHighlighterLexer extends LexerBase { iterator = myHighlighter.createIterator(0); } + @Override public int getState() { return 0; } + @Override public IElementType getTokenType() { if (iterator.atEnd()) return null; return iterator.getTokenType(); } + @Override public int getTokenStart() { return iterator.getStart(); } + @Override public int getTokenEnd() { return iterator.getEnd(); } + @Override public void advance() { iterator.advance(); } + @Override public CharSequence getBufferSequence() { return buffer; } + @Override public int getBufferEnd() { return end; } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/MethodDeepestSuperSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/MethodDeepestSuperSearcher.java index 1ca6f3b59abe..2c9117ba1e82 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/MethodDeepestSuperSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/MethodDeepestSuperSearcher.java @@ -12,6 +12,7 @@ import java.util.Set; * @author peter */ public class MethodDeepestSuperSearcher implements QueryExecutor { + @Override public boolean execute(@NotNull PsiMethod method, @NotNull Processor consumer) { final Set methods = new THashSet(); methods.add(method); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/MethodSuperSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/MethodSuperSearcher.java index d4dc3712f89f..d65e80e7f997 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/MethodSuperSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/MethodSuperSearcher.java @@ -18,6 +18,7 @@ import java.util.List; public class MethodSuperSearcher implements QueryExecutor { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.search.MethodSuperSearcher"); + @Override public boolean execute(@NotNull final SuperMethodsSearch.SearchParameters queryParameters, @NotNull final Processor consumer) { final PsiClass parentClass = queryParameters.getPsiClass(); final PsiMethod method = queryParameters.getMethod(); diff --git a/java/java-impl/src/com/intellij/psi/impl/search/MethodTextOccurrenceProcessor.java b/java/java-impl/src/com/intellij/psi/impl/search/MethodTextOccurrenceProcessor.java index 5429f37824b1..e4608e1523cb 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/MethodTextOccurrenceProcessor.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/MethodTextOccurrenceProcessor.java @@ -41,6 +41,7 @@ public final class MethodTextOccurrenceProcessor extends RequestResultProcessor myStrictSignatureSearch = strictSignatureSearch; } + @Override public boolean processTextOccurrence(PsiElement element, int offsetInElement, final Processor consumer) { for (PsiReference ref : ourReferenceService.getReferences(element, new PsiReferenceService.Hints(myMethods[0], offsetInElement))) { if (ReferenceRange.containsOffsetInElement(ref, offsetInElement) && !processReference(consumer, ref)) { diff --git a/java/java-impl/src/com/intellij/psi/impl/search/PsiAnnotationMethodReferencesSearcher.java b/java/java-impl/src/com/intellij/psi/impl/search/PsiAnnotationMethodReferencesSearcher.java index f52c14f203df..e49aa3abca06 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/PsiAnnotationMethodReferencesSearcher.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/PsiAnnotationMethodReferencesSearcher.java @@ -12,6 +12,7 @@ import org.jetbrains.annotations.NotNull; * @author max */ public class PsiAnnotationMethodReferencesSearcher implements QueryExecutor { + @Override public boolean execute(@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor consumer) { final PsiElement refElement = p.getElementToSearch(); if (refElement instanceof PsiAnnotationMethod) { @@ -27,6 +28,7 @@ public class PsiAnnotationMethodReferencesSearcher implements QueryExecutor createImplicitDefaultAnnotationMethodConsumer(final Processor consumer) { return new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference reference) { if (reference instanceof PsiJavaCodeReferenceElement) { PsiJavaCodeReferenceElement javaReference = (PsiJavaCodeReferenceElement)reference; diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfo.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfo.java index 850f909ed98b..5a42279609a8 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfo.java @@ -53,6 +53,7 @@ class AnchorElementInfo extends SelfElementInfo { assert contentElementType instanceof IStubFileElementType : contentElementType; } + @Override @Nullable public PsiElement restoreElement() { if (stubId != -1) { diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfoFactory.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfoFactory.java index f0c451b52595..a80ffad06db3 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfoFactory.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfoFactory.java @@ -28,6 +28,7 @@ import org.jetbrains.annotations.Nullable; public class AnchorElementInfoFactory implements SmartPointerElementInfoFactory { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.smartPointers.AnchorElementInfoFactory"); + @Override @Nullable public SmartPointerElementInfo createElementInfo(@NotNull PsiElement element) { PsiFile containingFile = element.getContainingFile(); diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImplicitVariableElementInfoFactory.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImplicitVariableElementInfoFactory.java index b2911b90ab07..912604bdeb52 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImplicitVariableElementInfoFactory.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImplicitVariableElementInfoFactory.java @@ -29,6 +29,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class ImplicitVariableElementInfoFactory implements SmartPointerElementInfoFactory { + @Override @Nullable public SmartPointerElementInfo createElementInfo(@NotNull final PsiElement element) { if (element instanceof ImplicitVariable && element.isValid()) { @@ -46,17 +47,20 @@ public class ImplicitVariableElementInfoFactory implements SmartPointerElementIn myProject = project; } + @Override public PsiElement restoreElement() { PsiIdentifier psiIdentifier = myVar.getNameIdentifier(); if (psiIdentifier == null || psiIdentifier.isValid()) return myVar; return null; } + @Override @Nullable public Document getDocumentToSynchronize() { return null; } + @Override public void documentAndPsiInSync() { } diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImportListElementInfoFactory.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImportListElementInfoFactory.java index be18abde62b2..d621de473d93 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImportListElementInfoFactory.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/ImportListElementInfoFactory.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class ImportListElementInfoFactory implements SmartPointerElementInfoFactory { + @Override @Nullable public SmartPointerElementInfo createElementInfo(@NotNull final PsiElement element) { if (element instanceof PsiImportList) { @@ -35,6 +36,7 @@ public class ImportListElementInfoFactory implements SmartPointerElementInfoFact super(file); } + @Override public PsiElement restoreElement() { PsiElement element = super.restoreElement(); if (!(element instanceof PsiJavaFile)) return null; diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java index 7fb49b958333..175b3a143b4a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java @@ -50,6 +50,7 @@ public class SmartTypePointerManagerImpl extends SmartTypePointerManager { myProject = project; } + @Override @NotNull public SmartTypePointer createSmartTypePointer(@NotNull PsiType type) { return type.accept(new SmartTypeCreatingVisitor()); @@ -62,6 +63,7 @@ public class SmartTypePointerManagerImpl extends SmartTypePointerManager { myType = type; } + @Override public PsiType getType() { return myType; } @@ -151,6 +153,7 @@ public class SmartTypePointerManagerImpl extends SmartTypePointerManager { myTypeRef = new SoftReference(type); } + @Override public T getType() { Reference typeRef = myTypeRef; T myType = typeRef == null ? null : typeRef.get(); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/PsiCodeFragmentImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/PsiCodeFragmentImpl.java index 8fc8c7525780..eb19f0e8c445 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/PsiCodeFragmentImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/PsiCodeFragmentImpl.java @@ -68,11 +68,13 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment myPhysical = isPhysical; } + @Override @NotNull public Language getLanguage() { return getContentElementType().getLanguage(); } + @Override protected PsiCodeFragmentImpl clone() { final PsiCodeFragmentImpl clone = (PsiCodeFragmentImpl)cloneImpl((FileElement)calcTreeElement().clone()); clone.myPhysical = false; @@ -90,23 +92,27 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment private FileViewProvider myViewProvider = null; + @Override @NotNull public FileViewProvider getViewProvider() { if (myViewProvider != null) return myViewProvider; return super.getViewProvider(); } + @Override public boolean isValid() { if (!super.isValid()) return false; if (myContext != null && !myContext.isValid()) return false; return true; } + @Override @NotNull public FileType getFileType() { return StdFileTypes.JAVA; } + @Override public PsiElement getContext() { return myContext; } @@ -115,26 +121,32 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment myContext = context; } + @Override public PsiType getThisType() { return myThisType; } + @Override public void setThisType(PsiType psiType) { myThisType = psiType; } + @Override public PsiType getSuperType() { return mySuperType; } + @Override public void setSuperType(final PsiType superType) { mySuperType = superType; } + @Override public String importsToString() { return StringUtil.join(myPseudoImports.values(), ","); } + @Override public void addImportsFromString(String imports) { StringTokenizer tokenizer = new StringTokenizer(imports, ","); while (tokenizer.hasMoreTokens()) { @@ -144,18 +156,22 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment } } + @Override public void setVisibilityChecker(VisibilityChecker checker) { myVisibilityChecker = checker; } + @Override public VisibilityChecker getVisibilityChecker() { return myVisibilityChecker; } + @Override public boolean isPhysical() { return myPhysical; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitCodeFragment(this); @@ -165,6 +181,7 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment } } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -216,6 +233,7 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment return "PsiCodeFragment:" + getName(); } + @Override public boolean importClass(PsiClass aClass) { final String className = aClass.getName(); final String qName = aClass.getQualifiedName(); @@ -250,41 +268,50 @@ public class PsiCodeFragmentImpl extends PsiFileImpl implements JavaCodeFragment myPseudoImports = pseudoImportsMap; } + @Override public void undo() { myPseudoImports.remove(myClassName); } + @Override public void redo() { myPseudoImports.put(myClassName, myQName); } } + @Override public ExceptionHandler getExceptionHandler() { return myExceptionHandler; } + @Override public void setIntentionActionsFilter(final IntentionActionsFilter filter) { myIntentionActionsFilter = filter; } + @Override public IntentionActionsFilter getIntentionActionsFilter() { return myIntentionActionsFilter; } + @Override public void forceResolveScope(GlobalSearchScope scope) { myResolveScope = scope; } + @Override public GlobalSearchScope getForcedResolveScope() { return myResolveScope; } + @Override @NotNull public GlobalSearchScope getResolveScope() { if (myResolveScope != null) return myResolveScope; return super.getResolveScope(); } + @Override public void setExceptionHandler(final ExceptionHandler exceptionHandler) { myExceptionHandler = exceptionHandler; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/PsiExpressionCodeFragmentImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/PsiExpressionCodeFragmentImpl.java index e1d366d9fa2d..33b4a826731d 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/PsiExpressionCodeFragmentImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/PsiExpressionCodeFragmentImpl.java @@ -35,16 +35,19 @@ public class PsiExpressionCodeFragmentImpl extends PsiCodeFragmentImpl implement myExpectedType = expectedType; } + @Override public PsiExpression getExpression() { ASTNode exprChild = calcTreeElement().findChildByType(Constants.EXPRESSION_BIT_SET); if (exprChild == null) return null; return (PsiExpression)SourceTreeToPsiMap.treeElementToPsi(exprChild); } + @Override public PsiType getExpectedType() { return myExpectedType; } + @Override public void setExpectedType(PsiType type) { myExpectedType = type; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceCodeFragmentImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceCodeFragmentImpl.java index 797827abea50..5b8cac2a00dc 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceCodeFragmentImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceCodeFragmentImpl.java @@ -39,12 +39,14 @@ public class PsiJavaCodeReferenceCodeFragmentImpl extends PsiCodeFragmentImpl im myIsClassesAccepted = isClassesAccepted; } + @Override public PsiJavaCodeReferenceElement getReferenceElement() { final CompositeElement treeElement = calcTreeElement(); LOG.assertTrue (treeElement.getFirstChildNode().getElementType() == ElementType.JAVA_CODE_REFERENCE); return (PsiJavaCodeReferenceElement)SourceTreeToPsiMap.treeElementToPsi(treeElement.getFirstChildNode()); } + @Override public boolean isClassesAccepted() { return myIsClassesAccepted; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/PsiTypeCodeFragmentImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/PsiTypeCodeFragmentImpl.java index 30472278803c..de1db8b51592 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/PsiTypeCodeFragmentImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/PsiTypeCodeFragmentImpl.java @@ -48,6 +48,7 @@ public class PsiTypeCodeFragmentImpl extends PsiCodeFragmentImpl implements PsiT } } + @Override @NotNull public PsiType getType() throws TypeSyntaxException, NoTypeException { class MyTypeSyntaxException extends RuntimeException { @@ -81,6 +82,7 @@ public class PsiTypeCodeFragmentImpl extends PsiCodeFragmentImpl implements PsiT return type; } + @Override public boolean isVoidValid() { return getOriginalFile().getUserData(PsiUtil.VALID_VOID_TYPE_IN_CODE_FRAGMENT) != null; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/BracePostFormatProcessor.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/BracePostFormatProcessor.java index f13ee4d972cb..2db288d3e59c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/BracePostFormatProcessor.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/BracePostFormatProcessor.java @@ -21,10 +21,12 @@ import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.openapi.util.TextRange; public class BracePostFormatProcessor implements PostFormatProcessor { + @Override public PsiElement processElement(PsiElement source, CodeStyleSettings settings) { return new BraceEnforcer(settings).process(source); } + @Override public TextRange processText(PsiFile source, TextRange rangeToReformat, CodeStyleSettings settings) { return new BraceEnforcer(settings).processText(source, rangeToReformat); } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/FormatCommentsProcessor.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/FormatCommentsProcessor.java index 56229247d3c6..4efb46a4b4bd 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/FormatCommentsProcessor.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/FormatCommentsProcessor.java @@ -27,6 +27,7 @@ import com.intellij.psi.impl.source.codeStyle.javadoc.CommentFormatter; import com.intellij.psi.javadoc.PsiDocComment; public class FormatCommentsProcessor implements PreFormatProcessor { + @Override public TextRange process(final ASTNode element, final TextRange range) { final Project project = SourceTreeToPsiMap.treeElementToPsi(element).getProject(); if (!CodeStyleSettingsManager.getSettings(project).ENABLE_JAVADOC_FORMATTING || diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java index e242051bde55..22fed27b0178 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java @@ -72,6 +72,7 @@ public class ImportHelper{ // Note: this array may contain ".*" for unresolved imports! List> names = new ArrayList>(collectNamesToImport(file, nonImports)); Collections.sort(names, new Comparator>() { + @Override public int compare(Pair o1, Pair o2) { return o1.getFirst().compareTo(o2.getFirst()); } @@ -124,6 +125,7 @@ public class ImportHelper{ myIsVisitingPackages = isVisitingPackages; } + @Override public boolean execute(final String packageOrClassName, final int count) { if (isToUseImportOnDemand(packageOrClassName, count, !myIsVisitingPackages)){ classesOrPackagesToImportOnDemand.add(packageOrClassName); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportPostFormatProcessor.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportPostFormatProcessor.java index eea59ca147ab..bcb06d0f0898 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportPostFormatProcessor.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportPostFormatProcessor.java @@ -21,10 +21,12 @@ import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.openapi.util.TextRange; public class ImportPostFormatProcessor implements PostFormatProcessor { + @Override public PsiElement processElement(PsiElement source, CodeStyleSettings settings) { return new ImportsFormatter(settings, source.getContainingFile()).process(source); } + @Override public TextRange processText(PsiFile source, TextRange rangeToReformat, CodeStyleSettings settings) { return new ImportsFormatter(settings, source.getContainingFile()).processText(source, rangeToReformat); } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java index 803b2e34f61b..1da1f5915186 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java @@ -61,10 +61,12 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { myProject = project; } + @Override public PsiElement shortenClassReferences(@NotNull PsiElement element) throws IncorrectOperationException { return shortenClassReferences(element, 0); } + @Override public PsiElement shortenClassReferences(@NotNull PsiElement element, int flags) throws IncorrectOperationException { CheckUtil.checkWritable(element); if (!SourceTreeToPsiMap.hasTreeElement(element)) return element; @@ -74,6 +76,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { (flags & UNCOMPLETE_CODE) != 0)); } + @Override public void shortenClassReferences(@NotNull PsiElement element, int startOffset, int endOffset) throws IncorrectOperationException { CheckUtil.checkWritable(element); @@ -82,10 +85,12 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } + @Override public PsiElement qualifyClassReferences(@NotNull PsiElement element) { return SourceTreeToPsiMap.treeElementToPsi(new ReferenceAdjuster(true, true).process((TreeElement)element.getNode(), false, false)); } + @Override public void optimizeImports(@NotNull PsiFile file) throws IncorrectOperationException { CheckUtil.checkWritable(file); if (file instanceof PsiJavaFile) { @@ -99,14 +104,17 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } + @Override public PsiImportList prepareOptimizeImportsResult(@NotNull PsiJavaFile file) { return new ImportHelper(getSettings()).prepareOptimizeImportsResult(file); } + @Override public boolean addImport(@NotNull PsiJavaFile file, @NotNull PsiClass refClass) { return new ImportHelper(getSettings()).addImport(file, refClass); } + @Override public void removeRedundantImports(@NotNull final PsiJavaFile file) throws IncorrectOperationException { final Collection redundants = findRedundantImports(file); if (redundants == null) return; @@ -122,6 +130,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } + @Override @Nullable public Collection findRedundantImports(final PsiJavaFile file) { final PsiImportList importList = file.getImportList(); @@ -176,10 +185,12 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { return redundants; } + @Override public int findEntryIndex(@NotNull PsiImportStatementBase statement) { return new ImportHelper(getSettings()).findEntryIndex(statement); } + @Override public VariableKind getVariableKind(@NotNull PsiVariable variable) { if (variable instanceof PsiField) { if (variable.hasModifierProperty(PsiModifier.STATIC)) { @@ -252,6 +263,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { final PsiType _type = type; return new SuggestedNameInfo(namesArray) { + @Override public void nameChoosen(String name) { if (_propertyName != null || _type != null && _type.isValid()) { JavaStatisticsManager.incVariableNameUseCount(name, kind, _propertyName, _type); @@ -754,6 +766,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { return new NamesByExprInfo(null, ArrayUtil.EMPTY_STRING_ARRAY); } + @Override public String variableNameToPropertyName(String name, VariableKind variableKind) { if (variableKind == VariableKind.STATIC_FINAL_FIELD) { StringBuilder buffer = new StringBuilder(); @@ -807,6 +820,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { return name; } + @Override public String propertyNameToVariableName(String propertyName, VariableKind variableKind) { if (variableKind == VariableKind.STATIC_FINAL_FIELD) { String[] words = NameUtil.nameToWords(propertyName); @@ -845,6 +859,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { return ArrayUtil.toStringArray(answer); } + @Override public String suggestUniqueVariableName(String baseName, PsiElement place, boolean lookForward) { int index = 0; PsiElement scope = PsiTreeUtil.getNonStrictParentOfType(place, PsiStatement.class, PsiCodeBlock.class, PsiMethod.class); @@ -890,6 +905,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } } + @Override @NotNull public SuggestedNameInfo suggestUniqueVariableName(@NotNull final SuggestedNameInfo baseNameInfo, PsiElement place, @@ -909,6 +925,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } return new SuggestedNameInfo(ArrayUtil.toStringArray(uniqueNames)) { + @Override public void nameChoosen(String name) { baseNameInfo.nameChoosen(name); } @@ -938,6 +955,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { } Comparator comparator = new Comparator() { + @Override public int compare(String s1, String s2) { int count1 = JavaStatisticsManager.getVariableNameUseCount(s1, variableKind, propertyName, type); int count2 = JavaStatisticsManager.getVariableNameUseCount(s2, variableKind, propertyName, type); @@ -947,6 +965,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { Arrays.sort(names, comparator); } + @Override @NotNull public String getPrefixByVariableKind(VariableKind variableKind) { String prefix = ""; @@ -976,6 +995,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { return prefix; } + @Override @NotNull public String getSuffixByVariableKind(VariableKind variableKind) { String suffix = ""; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaIndentHelper.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaIndentHelper.java index f54d17f6ab36..1d4ad4a3ab0a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaIndentHelper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaIndentHelper.java @@ -28,6 +28,7 @@ import com.intellij.psi.impl.source.tree.JavaElementType; import com.intellij.psi.impl.source.tree.TreeUtil; public class JavaIndentHelper extends IndentHelperImpl { + @Override protected int getIndentInner(Project project, FileType fileType, final ASTNode element, diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/PsiBasedFormatterModelWithShiftIndentInside.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/PsiBasedFormatterModelWithShiftIndentInside.java index db3e7a0a9a48..2eb7c78ca525 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/PsiBasedFormatterModelWithShiftIndentInside.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/PsiBasedFormatterModelWithShiftIndentInside.java @@ -51,6 +51,7 @@ public class PsiBasedFormatterModelWithShiftIndentInside extends PsiBasedFormatt myProject = file.getProject(); } + @Override public TextRange shiftIndentInsideRange(TextRange textRange, int shift) { return shiftIndentInsideWithPsi(textRange, shift); } @@ -72,6 +73,7 @@ public class PsiBasedFormatterModelWithShiftIndentInside extends PsiBasedFormatt } + @Override protected String replaceWithPsiInLeaf(final TextRange textRange, String whiteSpace, ASTNode leafElement) { if (!myCanModifyAllWhiteSpaces) { if (leafElement.getElementType() == TokenType.WHITE_SPACE) return null; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDClassComment.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDClassComment.java index f5828c874c98..ad0e0d5b353c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDClassComment.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDClassComment.java @@ -32,6 +32,7 @@ public class JDClassComment extends JDParamListOwnerComment { private ArrayList authorsList; private String version; + @Override protected void generateSpecial(String prefix, @NonNls StringBuffer sb) { super.generateSpecial(prefix, sb); if (!isNull(authorsList)) { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDMethodComment.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDMethodComment.java index bc799d258d17..6fd664b1add7 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDMethodComment.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDMethodComment.java @@ -35,6 +35,7 @@ public class JDMethodComment extends JDParamListOwnerComment { private static final @NonNls String THROWS_TAG = "@throws "; private static final @NonNls String EXCEPTION_TAG = "@exception "; + @Override protected void generateSpecial(String prefix, @NonNls StringBuffer sb) { super.generateSpecial(prefix, sb); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDParser.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDParser.java index 5cf4bb1dcaa3..1f7d047acc7a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDParser.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/javadoc/JDParser.java @@ -371,6 +371,7 @@ public class JDParser { private static final TagParser[] tagParsers = { new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = SEE_TAG.equals(tag); if (isMyTag) { @@ -380,6 +381,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = SINCE_TAG.equals(tag); if (isMyTag) { @@ -389,6 +391,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = c instanceof JDClassComment && VERSION_TAG.equals(tag); if (isMyTag) { @@ -398,6 +401,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = DEPRECATED_TAG.equals(tag); if (isMyTag) { @@ -407,6 +411,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = c instanceof JDMethodComment && RETURN_TAG.equals(tag); if (isMyTag) { @@ -417,6 +422,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = c instanceof JDParamListOwnerComment && PARAM_TAG.equals(tag); if (isMyTag) { @@ -439,6 +445,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = c instanceof JDMethodComment && (THROWS_TAG.equals(tag) || EXCEPTION_TAG.equals(tag)); if (isMyTag) { @@ -461,6 +468,7 @@ public class JDParser { } }, new TagParser() { + @Override boolean parse(String tag, String line, JDComment c) { boolean isMyTag = c instanceof JDClassComment && AUTHOR_TAG.equals(tag); if (isMyTag) { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ExceptionTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ExceptionTagInfo.java index 0732635b0ad4..4986258f0697 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ExceptionTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ExceptionTagInfo.java @@ -33,6 +33,7 @@ class ExceptionTagInfo implements JavadocTagInfo { myName = name; } + @Override public String checkTagValue(PsiDocTagValue value) { if (value == null) return JavaErrorMessages.message("javadoc.exception.tag.exception.class.expected"); final PsiElement firstChild = value.getFirstChild(); @@ -88,23 +89,28 @@ class ExceptionTagInfo implements JavadocTagInfo { return JavaErrorMessages.message("javadoc.exception.tag.exception.is.not.thrown", exceptionClass.getName(), method.getName()); } + @Override public String getName() { return myName; } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } + @Override public boolean isValidInContext(PsiElement element) { if (!(element instanceof PsiMethod)) return false; return true; } + @Override public boolean isInline() { return false; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java index 481cded9c330..4c8adf977de9 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java @@ -78,6 +78,7 @@ public class JavadocManagerImpl implements JavadocManager { myInfos.add(info); } + @Override @NotNull public JavadocTagInfo[] getTagInfos(PsiElement context) { List result = new ArrayList(); @@ -91,6 +92,7 @@ public class JavadocManagerImpl implements JavadocManager { return result.toArray(new JavadocTagInfo[result.size()]); } + @Override @Nullable public JavadocTagInfo getTagInfo(String name) { for (JavadocTagInfo info : myInfos) { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ParamDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ParamDocTagInfo.java index a6e5ef4bc54f..bb2ef52a767a 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ParamDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ParamDocTagInfo.java @@ -32,15 +32,18 @@ import java.util.List; * @author mike */ class ParamDocTagInfo implements JavadocTagInfo { + @Override public String getName() { return "param"; } + @Override public boolean isValidInContext(PsiElement element) { return element instanceof PsiMethod || (element instanceof PsiClass && PsiUtil.isLanguageLevel5OrHigher(element)); } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { if (context instanceof PsiTypeParameterListOwner) { List result = new ArrayList(Arrays.asList(((PsiTypeParameterListOwner)context).getTypeParameters())); @@ -56,6 +59,7 @@ class ParamDocTagInfo implements JavadocTagInfo { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public String checkTagValue(PsiDocTagValue value) { if (value == null) return JavaErrorMessages.message("javadoc.param.tag.paramter.name.expected"); final ASTNode firstChildNode = value.getNode().getFirstChildNode(); @@ -72,12 +76,14 @@ class ParamDocTagInfo implements JavadocTagInfo { return null; } + @Override public PsiReference getReference(PsiDocTagValue value) { if (value instanceof PsiDocParamRef) return value.getReference(); return null; } + @Override public boolean isInline() { return false; } 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 666e1aedae42..70cbc1864b78 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 @@ -35,6 +35,7 @@ public class PsiDocTagValueImpl extends CompositePsiElement implements PsiDocTag super(Constants.DOC_TAG_VALUE_TOKEN); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocTagValue(this); @@ -44,6 +45,7 @@ public class PsiDocTagValueImpl extends CompositePsiElement implements PsiDocTag } } + @Override public PsiReference getReference() { PsiDocTag docTag = PsiTreeUtil.getParentOfType(this, PsiDocTag.class); if (docTag == null) { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTokenImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTokenImpl.java index c8cb438f16fe..5fcf7791b850 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTokenImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTokenImpl.java @@ -27,10 +27,12 @@ public class PsiDocTokenImpl extends LeafPsiElement implements PsiDocToken{ super(type, text); } + @Override public IElementType getTokenType() { return getElementType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocToken(this); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ReturnDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ReturnDocTagInfo.java index 75041aa11aa1..edffa28d3e3d 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ReturnDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ReturnDocTagInfo.java @@ -27,22 +27,27 @@ import com.intellij.util.ArrayUtil; * @author mike */ class ReturnDocTagInfo implements JavadocTagInfo { + @Override public String checkTagValue(PsiDocTagValue value) { return null; } + @Override public String getName() { return "return"; } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } + @Override public boolean isValidInContext(PsiElement element) { if (!(element instanceof PsiMethod)) return false; PsiMethod method = (PsiMethod)element; @@ -51,6 +56,7 @@ class ReturnDocTagInfo implements JavadocTagInfo { return type != PsiType.VOID; } + @Override public boolean isInline() { return false; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SeeDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SeeDocTagInfo.java index f7b2151f4195..e7eb4dfb4836 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SeeDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SeeDocTagInfo.java @@ -43,14 +43,17 @@ class SeeDocTagInfo implements JavadocTagInfo { myInline = isInline; } + @Override public String checkTagValue(PsiDocTagValue value) { return null; } + @Override public String getName() { return myName; } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { if (place instanceof PsiDocToken) { PsiDocToken token = (PsiDocToken) place; @@ -114,6 +117,7 @@ class SeeDocTagInfo implements JavadocTagInfo { return targetContext; } + @Override public boolean isValidInContext(PsiElement element) { if (myInline && myName.equals(LINKPLAIN_TAG)) return PsiUtil.getLanguageLevel(element).compareTo(LanguageLevel.JDK_1_4) >= 0; @@ -121,10 +125,12 @@ class SeeDocTagInfo implements JavadocTagInfo { return true; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } + @Override public boolean isInline() { return myInline; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SerialDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SerialDocTagInfo.java index 6cc7f80d8c24..2b7fa7981f46 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SerialDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SerialDocTagInfo.java @@ -24,26 +24,32 @@ import com.intellij.psi.javadoc.PsiDocTagValue; import com.intellij.util.ArrayUtil; public class SerialDocTagInfo implements JavadocTagInfo { + @Override public String getName() { return "serial"; } + @Override public boolean isInline() { return false; } + @Override public boolean isValidInContext(PsiElement element) { return element instanceof PsiClass || element instanceof PsiField; } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public String checkTagValue(PsiDocTagValue value) { return null; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java index e440dd6ccdaf..70b699dda2fc 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java @@ -40,10 +40,12 @@ class SimpleDocTagInfo implements JavadocTagInfo { myLanguageLevel = level; } + @Override public String getName() { return myName; } + @Override public boolean isValidInContext(PsiElement element) { if (PsiUtil.getLanguageLevel(element).compareTo(myLanguageLevel) < 0) { return false; @@ -52,18 +54,22 @@ class SimpleDocTagInfo implements JavadocTagInfo { return myContext.isInstance(element); } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public String checkTagValue(PsiDocTagValue value) { return null; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } + @Override public boolean isInline() { return myInline; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ValueDocTagInfo.java b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ValueDocTagInfo.java index d8932ff1783c..4b48b1802543 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ValueDocTagInfo.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/javadoc/ValueDocTagInfo.java @@ -29,22 +29,27 @@ import com.intellij.psi.util.PsiUtil; * @author yole */ public class ValueDocTagInfo implements JavadocTagInfo { + @Override public String getName() { return "value"; } + @Override public boolean isInline() { return true; } + @Override public boolean isValidInContext(PsiElement element) { return true; } + @Override public Object[] getPossibleValues(PsiElement context, PsiElement place, String prefix) { return null; } + @Override public String checkTagValue(PsiDocTagValue value) { boolean hasReference = (value != null && value.getFirstChild() != null); if (hasReference) { @@ -76,6 +81,7 @@ public class ValueDocTagInfo implements JavadocTagInfo { return null; } + @Override public PsiReference getReference(PsiDocTagValue value) { return null; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/GenericReference.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/GenericReference.java index 00eae0fb1707..83e623b64cfe 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/GenericReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/GenericReference.java @@ -49,6 +49,7 @@ public abstract class GenericReference extends CachingReference { } } + @Override @Nullable public PsiElement handleElementRename(String string) throws IncorrectOperationException { final PsiElement element = getElement(); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiDocTagValueManipulator.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiDocTagValueManipulator.java index 4388efd53c9c..9a2a479105f0 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiDocTagValueManipulator.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiDocTagValueManipulator.java @@ -28,6 +28,7 @@ import com.intellij.util.IncorrectOperationException; */ public class PsiDocTagValueManipulator extends AbstractElementManipulator { + @Override public PsiDocTag handleContentChange(PsiDocTag tag, TextRange range, String newContent) throws IncorrectOperationException { final StringBuilder replacement = new StringBuilder( tag.getText() ); @@ -39,6 +40,7 @@ public class PsiDocTagValueManipulator extends AbstractElementManipulator { + @Override public PsiLiteralExpression handleContentChange(PsiLiteralExpression expr, TextRange range, String newContent) throws IncorrectOperationException { final Object value = expr.getValue(); if (!(value instanceof String)) throw new IncorrectOperationException("cannot handle content change for: "+ value+", expr: "+expr); @@ -37,6 +38,7 @@ public class StringLiteralManipulator extends AbstractElementManipulator 0 && s.charAt(0) == '/'; } + @Override @NotNull public Collection computeDefaultContexts() { final Module module = ModuleUtil.findModuleForPsiElement(getElement()); return getRoots(module, true); } + @Override public FileReference createFileReference(final TextRange range, final int index, final String text) { return FilePathReferenceProvider.this.createFileReference(this, range, index, text); } @@ -80,6 +84,7 @@ public class FilePathReferenceProvider extends PsiReferenceProvider { @Override protected Condition getReferenceCompletionFilter() { return new Condition() { + @Override public boolean value(final PsiFileSystemItem element) { return isPsiElementAccepted(element); } @@ -102,6 +107,7 @@ public class FilePathReferenceProvider extends PsiReferenceProvider { return new FileReference(referenceSet, range, index, text); } + @Override @NotNull public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull final ProcessingContext context) { String text = null; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassListReferenceProvider.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassListReferenceProvider.java index 6d6c7ee9057f..0e2e4688219d 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassListReferenceProvider.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassListReferenceProvider.java @@ -45,6 +45,7 @@ public class JavaClassListReferenceProvider extends JavaClassReferenceProvider { setOption(ADVANCED_RESOLVE, Boolean.TRUE); } + @Override @NotNull public PsiReference[] getReferencesByString(String str, @NotNull final PsiElement position, int offsetInPosition){ if (position instanceof XmlTag && ((XmlTag)position).getValue().getTextElements().length == 0) { @@ -96,6 +97,7 @@ public class JavaClassListReferenceProvider extends JavaClassReferenceProvider { } String s = str.substring(start, end + 1); ContainerUtil.addAll(results, new JavaClassReferenceSet(s, position, offsetInPosition + start, false, this) { + @Override public boolean isSoft() { return true; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReference.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReference.java index 798da00b4963..3d2e68299439 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReference.java @@ -78,12 +78,14 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer myJavaClassReferenceSet = referenceSet; } + @Override @Nullable public PsiElement getContext() { final PsiReference contextRef = getContextReference(); return contextRef != null ? contextRef.resolve() : null; } + @Override public void processVariants(final PsiScopeProcessor processor) { if (processor instanceof JavaCompletionProcessor) { final Map options = getOptions(); @@ -107,14 +109,17 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer processor.handleEvent(JavaScopeProcessorEvent.START_STATIC, null); } processorToUse = new PsiScopeProcessor() { + @Override public boolean execute(PsiElement element, ResolveState state) { return !(element instanceof PsiClass || element instanceof PsiPackage) || processor.execute(element, state); } + @Override public V getHint(Key hintKey) { return processor.getHint(hintKey); } + @Override public void handleEvent(Event event, Object associated) { processor.handleEvent(event, associated); } @@ -136,6 +141,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return myJavaClassReferenceSet.isStaticSeparator(c, strict); } + @Override @Nullable public PsiReference getContextReference() { return myIndex > 0 ? myJavaClassReferenceSet.getReference(myIndex - 1) : null; @@ -145,27 +151,33 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return myJavaClassReferenceSet.canReferencePackage(myIndex); } + @Override public PsiElement getElement() { return myJavaClassReferenceSet.getElement(); } + @Override public boolean isReferenceTo(PsiElement element) { return (element instanceof PsiClass || element instanceof PsiPackage) && super.isReferenceTo(element); } + @Override public TextRange getRangeInElement() { return myRange; } + @Override @NotNull public String getCanonicalText() { return myText; } + @Override public boolean isSoft() { return myJavaClassReferenceSet.isSoft(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { final ElementManipulator manipulator = getManipulator(getElement()); if (manipulator != null) { @@ -176,6 +188,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer throw new IncorrectOperationException("Manipulator for this element is not defined: " + getElement()); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (isReferenceTo(element)) return getElement(); @@ -210,10 +223,12 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return element; } + @Override public PsiElement resolveInner() { return advancedResolve(true).getElement(); } + @Override @NotNull public Object[] getVariants() { PsiElement context = getContext(); @@ -324,6 +339,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return false; } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { final ResolveCache resolveCache = ResolveCache.getInstance(getElement().getProject()); @@ -440,6 +456,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return myJavaClassReferenceSet.getOptions(); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final JavaResolveResult javaResolveResult = advancedResolve(incompleteCode); @@ -447,6 +464,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return new JavaResolveResult[]{javaResolveResult}; } + @Override public void registerQuickfix(HighlightInfo info, PsiReference reference) { registerFixes(info); } @@ -548,6 +566,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return JavaLookupElementBuilder.forClass(clazz, name, true).addLookupString(qname).addLookupString(clazz.getName()); } + @Override public LocalQuickFix[] getQuickFixes() { final List list = registerFixes(null); return list == null ? LocalQuickFix.EMPTY_ARRAY : list.toArray(new LocalQuickFix[list.size()]); @@ -579,6 +598,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer return myJavaClassReferenceSet; } + @Override public String getUnresolvedMessagePattern() { return myJavaClassReferenceSet.getUnresolvedMessagePattern(myIndex); } @@ -586,6 +606,7 @@ public class JavaClassReference extends GenericReference implements PsiJavaRefer private static class MyResolver implements ResolveCache.PolyVariantResolver { private static final MyResolver INSTANCE = new MyResolver(); + @Override public JavaResolveResult[] resolve(JavaClassReference javaClassReference, boolean incompleteCode) { return new JavaResolveResult[]{javaClassReference.doAdvancedResolve()}; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceProvider.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceProvider.java index a3d9b626b0a7..ebc7ec1de80c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceProvider.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReferenceProvider.java @@ -62,6 +62,7 @@ public class JavaClassReferenceProvider extends GenericReferenceProvider impleme private boolean myAllowEmpty; private ParameterizedCachedValueProvider, Project> myProvider = new ParameterizedCachedValueProvider, Project>() { + @Override public CachedValueProvider.Result> compute(Project project) { final List psiPackages = new ArrayList(); final String defPackageName = DEFAULT_PACKAGE.getValue(myOptions); @@ -98,6 +99,7 @@ public class JavaClassReferenceProvider extends GenericReferenceProvider impleme return null; } + @Override @NotNull public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull final ProcessingContext context) { return getReferencesByElement(element); @@ -118,6 +120,7 @@ public class JavaClassReferenceProvider extends GenericReferenceProvider impleme return new JavaClassReferenceSet(str, position, offsetInPosition, allowDollars, this).getAllReferences(); } + @Override public void handleEmptyContext(PsiScopeProcessor processor, PsiElement position) { final ElementClassHint hint = processor.getHint(ElementClassHint.KEY); if (position == null) return; @@ -135,6 +138,7 @@ public class JavaClassReferenceProvider extends GenericReferenceProvider impleme private static Collection getSubPackages(final PsiPackage defaultPackage) { return ContainerUtil.mapNotNull(defaultPackage.getSubPackages(), new NullableFunction() { + @Override public PsiPackage fun(final PsiPackage psiPackage) { final String packageName = psiPackage.getName(); return JavaPsiFacade.getInstance(psiPackage.getProject()).getNameHelper() @@ -143,10 +147,12 @@ public class JavaClassReferenceProvider extends GenericReferenceProvider impleme }); } + @Override public void setOptions(@Nullable Map options) { myOptions = options; } + @Override @Nullable public Map getOptions() { return myOptions; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/MethodPropertyReference.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/MethodPropertyReference.java index a582a4d69936..f7dc89ce5b80 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/MethodPropertyReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/MethodPropertyReference.java @@ -81,12 +81,14 @@ public class MethodPropertyReference extends BasicAttributeValueReference { return null; } + @Override @Nullable public PsiElement resolve() { return JspSpiUtil.resolveMethodPropertyReference(this, resolveClass(), myReadable); } + @Override public PsiElement handleElementRename(String _newElementName) throws IncorrectOperationException { String newElementName = PropertyUtil.getPropertyName(_newElementName); if (newElementName == null) newElementName = _newElementName; @@ -94,11 +96,13 @@ public class MethodPropertyReference extends BasicAttributeValueReference { return super.handleElementRename(newElementName); } + @Override @NotNull public Object[] getVariants() { return JspSpiUtil.getMethodPropertyReferenceVariants(this, resolveClass(), myReadable); } + @Override public boolean isSoft() { return true; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackagePrefixFileSystemItem.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackagePrefixFileSystemItem.java index 587dfc2ec749..9c70587cc12b 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackagePrefixFileSystemItem.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackagePrefixFileSystemItem.java @@ -54,124 +54,153 @@ class PackagePrefixFileSystemItem extends PsiElementBase implements PsiFileSyste myPackages = packages; } + @Override @NotNull public String getName() { return myPackages[myIndex].getName(); } + @Override public PsiElement setName(@NonNls @NotNull final String name) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkSetName(final String name) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public boolean isDirectory() { return true; } + @Override public PsiFileSystemItem getParent() { return myIndex > 0 ? new PackagePrefixFileSystemItem(myDirectory, myIndex - 1, myPackages) : myDirectory.getParent(); } + @Override public PsiFile getContainingFile() throws PsiInvalidElementAccessException { return null; } + @Override public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return 0; } + @Override public int getTextLength() { return 0; } + @Override @Nullable public PsiElement findElementAt(final int offset) { return null; } + @Override public int getTextOffset() { return 0; } + @Override @NonNls public String getText() { return ""; } + @Override @NotNull public char[] textToCharArray() { return ArrayUtil.EMPTY_CHAR_ARRAY; } + @Override public boolean textMatches(@NotNull @NonNls final CharSequence text) { return false; } + @Override public boolean textMatches(@NotNull final PsiElement element) { return false; } + @Override public void accept(@NotNull final PsiElementVisitor visitor) { } + @Override public PsiElement copy() { return null; } + @Override public PsiElement add(@NotNull final PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull final PsiElement element, final PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull final PsiElement element, final PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkAdd(@NotNull final PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkDelete() throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement replace(@NotNull final PsiElement newElement) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public boolean isValid() { return myDirectory.isValid(); } + @Override public boolean isWritable() { final VirtualFile file = getVirtualFile(); return file != null && file.isWritable(); } + @Override public boolean isPhysical() { final VirtualFile file = getVirtualFile(); return file != null && !(file.getFileSystem() instanceof DummyFileSystem); } + @Override @Nullable public ASTNode getNode() { return null; } + @Override public boolean processChildren(final PsiElementProcessor processor) { if (myIndex == myPackages.length - 1) { return myDirectory.processChildren(processor); @@ -181,24 +210,29 @@ class PackagePrefixFileSystemItem extends PsiElementBase implements PsiFileSyste } } + @Override @NotNull public Language getLanguage() { return Language.ANY; } + @Override public PsiManager getManager() { return myDirectory.getManager(); } + @Override @NotNull public PsiElement[] getChildren() { return myIndex == myPackages.length -1? myDirectory.getChildren() : new PsiElement[] {new PackagePrefixFileSystemItem(myDirectory, myIndex + 1, myPackages)}; } + @Override public boolean canNavigate() { return getVirtualFile() != null; } + @Override public VirtualFile getVirtualFile() { if (myIndex == myPackages.length - 1) { return myDirectory.getVirtualFile(); @@ -208,6 +242,7 @@ class PackagePrefixFileSystemItem extends PsiElementBase implements PsiFileSyste } } + @Override @Nullable public Icon getIcon(final int flags) { return myDirectory.getIcon(flags); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java index 1462d23a9c45..878f7ed4c2f2 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PackageReferenceSet.java @@ -39,6 +39,7 @@ public class PackageReferenceSet extends ReferenceSetBase { super(str, element, startInElement, DOT_SEPARATOR); } + @Override @NotNull protected PsiPackageReference createReference(final TextRange range, final int index) { return new PsiPackageReference(this, range, index); @@ -61,6 +62,7 @@ public class PackageReferenceSet extends ReferenceSetBase { return Collections.emptyList(); } return ContainerUtil.map2List(packageReference.multiResolve(false), new NullableFunction() { + @Override public PsiPackage fun(final ResolveResult resolveResult) { return (PsiPackage)resolveResult.getElement(); } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PathListReferenceProvider.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PathListReferenceProvider.java index 6a2adb548ada..b21c39506dd2 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PathListReferenceProvider.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PathListReferenceProvider.java @@ -33,6 +33,7 @@ import org.jetbrains.annotations.NotNull; */ public class PathListReferenceProvider extends PsiReferenceProviderBase { + @Override @NotNull public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull final ProcessingContext context) { return getReferencesByElement(element); @@ -85,6 +86,7 @@ public class PathListReferenceProvider extends PsiReferenceProviderBase { } return new FileReferenceSet(s.trim(), element, offset, this, true) { + @Override protected boolean isSoft() { return soft; } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java index 890d18735628..ff5ef3e04bb7 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiPackageReference.java @@ -49,6 +49,7 @@ public class PsiPackageReference extends PsiPolyVariantReferenceBase return psiPackages; } + @Override @NotNull public Object[] getVariants() { Set subPackages = new HashSet(); @@ -59,10 +60,12 @@ public class PsiPackageReference extends PsiPolyVariantReferenceBase return subPackages.toArray(); } + @Override public String getUnresolvedMessagePattern() { return JavaErrorMessages.message("cannot.resolve.package"); } + @Override @NotNull public ResolveResult[] multiResolve(final boolean incompleteCode) { final Collection packages = new HashSet(); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeCopyHandler.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeCopyHandler.java index c92abb31c2f2..283e8578e146 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeCopyHandler.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeCopyHandler.java @@ -34,6 +34,7 @@ import java.util.Map; public class JavaTreeCopyHandler implements TreeCopyHandler { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.tree.JavaTreeCopyHandler"); + @Override public TreeElement decodeInformation(TreeElement element, final Map decodingState) { boolean shallDecodeEscapedTexts = shallEncodeEscapedTexts(element, decodingState); if (element instanceof CompositeElement) { @@ -131,6 +132,7 @@ public class JavaTreeCopyHandler implements TreeCopyHandler { } + @Override public void encodeInformation(final TreeElement element, final ASTNode original, final Map encodingState) { boolean shallEncodeEscapedTexts = shallEncodeEscapedTexts(original, encodingState); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeGenerator.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeGenerator.java index e0c7f9300df0..f2fc1dd2379e 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeGenerator.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/JavaTreeGenerator.java @@ -53,6 +53,7 @@ public class JavaTreeGenerator implements TreeGenerator { } }; + @Override @Nullable public TreeElement generateTreeFor(PsiElement original, final CharTable table, final PsiManager manager) { if (original instanceof PsiKeyword || original instanceof PsiIdentifier) { diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavaConcatenationInjectorManager.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavaConcatenationInjectorManager.java index 23ba44304364..c948d2b3effc 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavaConcatenationInjectorManager.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/JavaConcatenationInjectorManager.java @@ -46,15 +46,18 @@ public class JavaConcatenationInjectorManager implements ModificationTracker { public JavaConcatenationInjectorManager(Project project, PsiManagerEx psiManagerEx) { final ExtensionPoint concatPoint = Extensions.getArea(project).getExtensionPoint(CONCATENATION_INJECTOR_EP_NAME); concatPoint.addExtensionPointListener(new ExtensionPointListener() { + @Override public void extensionAdded(@NotNull ConcatenationAwareInjector injector, @Nullable PluginDescriptor pluginDescriptor) { registerConcatenationInjector(injector); } + @Override public void extensionRemoved(@NotNull ConcatenationAwareInjector injector, @Nullable PluginDescriptor pluginDescriptor) { unregisterConcatenationInjector(injector); } }); psiManagerEx.registerRunnableToRunOnAnyChange(new Runnable() { + @Override public void run() { myModificationCounter++; // clear caches even on non-physical changes } @@ -65,11 +68,13 @@ public class JavaConcatenationInjectorManager implements ModificationTracker { return ServiceManager.getService(project, JavaConcatenationInjectorManager.class); } + @Override public long getModificationCount() { return myModificationCounter; } private static class ConcatenationPsiCachedValueProvider implements ParameterizedCachedValueProvider { + @Override public CachedValueProvider.Result compute(PsiElement context) { Project project = context.getProject(); Pair pair = computeAnchorAndOperands(context); @@ -132,6 +137,7 @@ public class JavaConcatenationInjectorManager implements ModificationTracker { myManager = getInstance(project); } + @Override public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) { if (myManager.myConcatenationInjectors.isEmpty()) return; @@ -188,6 +194,7 @@ public class JavaConcatenationInjectorManager implements ModificationTracker { } } + @Override @NotNull public List> elementsToInjectIn() { return Arrays.asList(PsiLiteralExpression.class); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/MyTestInjector.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/MyTestInjector.java index fa5f8fd95740..1d8f18efe5e6 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/MyTestInjector.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/MyTestInjector.java @@ -73,6 +73,7 @@ public class MyTestInjector { private static void registerForParameterValue(Disposable parent, final Project project, final Language language, final String paramName) { if (language == null) return; final ConcatenationAwareInjector injector = new ConcatenationAwareInjector() { + @Override public void getLanguagesToInject(@NotNull MultiHostRegistrar injectionPlacesRegistrar, @NotNull PsiElement... operands) { PsiElement operand = operands[0]; if (!(operand instanceof PsiLiteralExpression)) return; @@ -95,6 +96,7 @@ public class MyTestInjector { }; JavaConcatenationInjectorManager.getInstance(project).registerConcatenationInjector(injector); Disposer.register(parent, new Disposable() { + @Override public void dispose() { boolean b = JavaConcatenationInjectorManager.getInstance(project).unregisterConcatenationInjector(injector); assert b; @@ -110,6 +112,7 @@ public class MyTestInjector { @NonNls final String suffix) { if (language == null) return; final ConcatenationAwareInjector injector = new ConcatenationAwareInjector() { + @Override public void getLanguagesToInject(@NotNull MultiHostRegistrar injectionPlacesRegistrar, @NotNull PsiElement... operands) { PsiVariable variable = PsiTreeUtil.getParentOfType(operands[0], PsiVariable.class); if (variable == null) return; @@ -142,6 +145,7 @@ public class MyTestInjector { }; JavaConcatenationInjectorManager.getInstance(project).registerConcatenationInjector(injector); Disposer.register(parent, new Disposable() { + @Override public void dispose() { boolean b = JavaConcatenationInjectorManager.getInstance(project).unregisterConcatenationInjector(injector); assert b; @@ -156,6 +160,7 @@ public class MyTestInjector { final Language ecma4 = Language.findLanguageByID("ECMA Script Level 4"); final MultiHostInjector myMultiHostInjector = new MultiHostInjector() { + @Override public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) { XmlAttributeValue value = (XmlAttributeValue)context; PsiElement parent = value.getParent(); @@ -176,6 +181,7 @@ public class MyTestInjector { } } + @Override @NotNull public List> elementsToInjectIn() { return Arrays.asList(XmlAttributeValue.class); @@ -183,12 +189,14 @@ public class MyTestInjector { }; InjectedLanguageManager.getInstance(psiManager.getProject()).registerMultiHostInjector(myMultiHostInjector); Disposer.register(parent, new Disposable() { + @Override public void dispose() { InjectedLanguageManager.getInstance(psiManager.getProject()).unregisterMultiHostInjector(myMultiHostInjector); } }); final LanguageInjector myInjector = new LanguageInjector() { + @Override public void getLanguagesToInject(@NotNull PsiLanguageInjectionHost host, @NotNull InjectedLanguagePlaces placesToInject) { if (host instanceof XmlAttributeValue) { XmlAttributeValue value = (XmlAttributeValue)host; diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/JavaAnnotationSupport.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/JavaAnnotationSupport.java index 1f42ae61e00e..9ed6543d65bc 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/JavaAnnotationSupport.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/JavaAnnotationSupport.java @@ -23,6 +23,7 @@ import com.intellij.psi.PsiAnnotationSupport; import org.jetbrains.annotations.NotNull; public class JavaAnnotationSupport implements PsiAnnotationSupport { + @Override @NotNull public PsiLiteral createLiteralValue(@NotNull String value, @NotNull PsiElement context) { return (PsiLiteral)JavaPsiFacade.getInstance(context.getProject()).getElementFactory().createExpressionFromText("\"" + StringUtil.escapeStringCharacters(value) + "\"", null); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java index 5030444bb92c..e6d5d03fba5f 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiIdentifierImpl.java @@ -28,10 +28,12 @@ public class PsiIdentifierImpl extends LeafPsiElement implements PsiIdentifier, super(Constants.IDENTIFIER, text); } + @Override public IElementType getTokenType() { return JavaTokenType.IDENTIFIER; } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitIdentifier(this); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiJavaTokenImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiJavaTokenImpl.java index e0e45b7195d2..b5759a188084 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiJavaTokenImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiJavaTokenImpl.java @@ -27,10 +27,12 @@ public class PsiJavaTokenImpl extends LeafPsiElement implements PsiJavaToken{ super(type, text); } + @Override public IElementType getTokenType() { return getElementType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitJavaToken(this); diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java index d8c1b8fe23d5..fa69e5c28083 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java @@ -31,10 +31,12 @@ public class PsiKeywordImpl extends LeafPsiElement implements PsiKeyword, PsiJav super(type, text); } + @Override public IElementType getTokenType(){ return getElementType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitKeyword(this); diff --git a/java/java-impl/src/com/intellij/psi/presentation/java/ClassPresentationProvider.java b/java/java-impl/src/com/intellij/psi/presentation/java/ClassPresentationProvider.java index 491242585490..5eb8a5d667c6 100644 --- a/java/java-impl/src/com/intellij/psi/presentation/java/ClassPresentationProvider.java +++ b/java/java-impl/src/com/intellij/psi/presentation/java/ClassPresentationProvider.java @@ -34,10 +34,12 @@ public class ClassPresentationProvider implements ItemPresentationProvider getMethods() { return ContainerUtil.mapNotNull(myProcessor.getResult(), new Function() { + @Override public JavaMethodCandidateInfo fun(final JavaResolveResult javaResolveResult) { return new JavaMethodCandidateInfo((PsiMethod)javaResolveResult.getElement(), javaResolveResult.getSubstitutor()); } diff --git a/java/java-impl/src/com/intellij/psi/scope/processor/VariablesNotProcessor.java b/java/java-impl/src/com/intellij/psi/scope/processor/VariablesNotProcessor.java index 45f2d2f3fff3..d36a0c0f1792 100644 --- a/java/java-impl/src/com/intellij/psi/scope/processor/VariablesNotProcessor.java +++ b/java/java-impl/src/com/intellij/psi/scope/processor/VariablesNotProcessor.java @@ -33,6 +33,7 @@ public class VariablesNotProcessor extends VariablesProcessor{ this(var, staticSensitive, new SmartList()); } + @Override protected boolean check(PsiVariable var, ResolveState state) { String name = var.getName(); return name != null && name.equals(myVariable.getName()) && !var.equals(myVariable); diff --git a/java/java-impl/src/com/intellij/psi/scope/processor/VariablesProcessor.java b/java/java-impl/src/com/intellij/psi/scope/processor/VariablesProcessor.java index ec310ce3c779..b82f8ae02123 100644 --- a/java/java-impl/src/com/intellij/psi/scope/processor/VariablesProcessor.java +++ b/java/java-impl/src/com/intellij/psi/scope/processor/VariablesProcessor.java @@ -45,11 +45,13 @@ public abstract class VariablesProcessor extends BaseScopeProcessor implements E protected abstract boolean check(PsiVariable var, ResolveState state); + @Override public boolean shouldProcess(DeclarationKind kind) { return kind == DeclarationKind.VARIABLE || kind == DeclarationKind.FIELD || kind == DeclarationKind.ENUM_CONST; } /** Always return true since we wanna get all vars in scope */ + @Override public boolean execute(PsiElement pe, ResolveState state){ if(pe instanceof PsiVariable){ final PsiVariable pvar = (PsiVariable)pe; @@ -62,6 +64,7 @@ public abstract class VariablesProcessor extends BaseScopeProcessor implements E return true; } + @Override public final void handleEvent(Event event, Object associated){ if(event == JavaScopeProcessorEvent.START_STATIC) myStaticScopeFlag = true; diff --git a/java/java-impl/src/com/intellij/psi/search/scope/packageSet/PatternPackageSetParserExtension.java b/java/java-impl/src/com/intellij/psi/search/scope/packageSet/PatternPackageSetParserExtension.java index ad4e96779750..d009798075b2 100644 --- a/java/java-impl/src/com/intellij/psi/search/scope/packageSet/PatternPackageSetParserExtension.java +++ b/java/java-impl/src/com/intellij/psi/search/scope/packageSet/PatternPackageSetParserExtension.java @@ -26,6 +26,7 @@ import com.intellij.psi.search.scope.packageSet.lexer.ScopeTokenTypes; public class PatternPackageSetParserExtension implements PackageSetParserExtension { + @Override public PackageSet parsePackageSet(final Lexer lexer, final String scope, final String modulePattern) throws ParsingException { /*if (scope == PatternPackageSet.SCOPE_ANY && modulePattern == null) { error(AnalysisScopeBundle.message("error.packageset.common.expectations"), lexer); @@ -40,6 +41,7 @@ public class PatternPackageSetParserExtension implements PackageSetParserExtensi return new PatternPackageSet(parseAspectJPattern(lexer), scope, modulePattern); } + @Override public String parseScope(final Lexer lexer) { if (lexer.getTokenType() != ScopeTokenTypes.IDENTIFIER) return PatternPackageSet.SCOPE_ANY; String id = getTokenText(lexer); diff --git a/java/java-impl/src/com/intellij/psi/util/proximity/ExplicitlyImportedWeigher.java b/java/java-impl/src/com/intellij/psi/util/proximity/ExplicitlyImportedWeigher.java index fda856916b8c..6e418fe42040 100644 --- a/java/java-impl/src/com/intellij/psi/util/proximity/ExplicitlyImportedWeigher.java +++ b/java/java-impl/src/com/intellij/psi/util/proximity/ExplicitlyImportedWeigher.java @@ -63,6 +63,7 @@ public class ExplicitlyImportedWeigher extends ProximityWeigher { } } + @Override public Integer weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { final PsiElement position = location.getPosition(); if (position == null){ diff --git a/java/java-impl/src/com/intellij/psi/util/proximity/JavaInheritanceWeigher.java b/java/java-impl/src/com/intellij/psi/util/proximity/JavaInheritanceWeigher.java index 480494888d08..c14493293525 100644 --- a/java/java-impl/src/com/intellij/psi/util/proximity/JavaInheritanceWeigher.java +++ b/java/java-impl/src/com/intellij/psi/util/proximity/JavaInheritanceWeigher.java @@ -35,6 +35,7 @@ public class JavaInheritanceWeigher extends ProximityWeigher { } }); + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { if (location.getPosition() == null){ return null; diff --git a/java/java-impl/src/com/intellij/psi/util/proximity/KnownElementWeigher.java b/java/java-impl/src/com/intellij/psi/util/proximity/KnownElementWeigher.java index c078d3937784..806a0ed4398a 100644 --- a/java/java-impl/src/com/intellij/psi/util/proximity/KnownElementWeigher.java +++ b/java/java-impl/src/com/intellij/psi/util/proximity/KnownElementWeigher.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull; */ public class KnownElementWeigher extends ProximityWeigher { + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { for (ForcedElementWeigher weigher : Extensions.getExtensions(ForcedElementWeigher.EP_NAME)) { final Comparable weigh = weigher.getForcedWeigh(element); diff --git a/java/java-impl/src/com/intellij/psi/util/proximity/SamePsiMemberWeigher.java b/java/java-impl/src/com/intellij/psi/util/proximity/SamePsiMemberWeigher.java index 4ce5b959612c..8c9aeef5cd6f 100644 --- a/java/java-impl/src/com/intellij/psi/util/proximity/SamePsiMemberWeigher.java +++ b/java/java-impl/src/com/intellij/psi/util/proximity/SamePsiMemberWeigher.java @@ -37,6 +37,7 @@ public class SamePsiMemberWeigher extends ProximityWeigher { } }); + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { if (location.getPosition() == null){ return null; diff --git a/java/java-impl/src/com/intellij/slicer/DuplicateMap.java b/java/java-impl/src/com/intellij/slicer/DuplicateMap.java index c2c32465651e..a57dc5f31cb7 100644 --- a/java/java-impl/src/com/intellij/slicer/DuplicateMap.java +++ b/java/java-impl/src/com/intellij/slicer/DuplicateMap.java @@ -29,12 +29,14 @@ import java.util.Map; */ // rehash map on each PSI modification since SmartPsiPointer's hashCode() and equals() are changed public class DuplicateMap { private static final TObjectHashingStrategy USAGE_INFO_EQUALITY = new TObjectHashingStrategy() { + @Override public int computeHashCode(SliceUsage object) { UsageInfo info = object.getUsageInfo(); TextRange range = info.getRangeInElement(); return range == null ? 0 : range.hashCode(); } + @Override public boolean equals(SliceUsage o1, SliceUsage o2) { return o1.getUsageInfo().equals(o2.getUsageInfo()); } @@ -43,6 +45,7 @@ public class DuplicateMap { public SliceNode putNodeCheckDupe(final SliceNode node) { return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public SliceNode compute() { SliceUsage usage = node.getValue(); SliceNode eq = myDuplicates.get(usage); diff --git a/java/java-impl/src/com/intellij/slicer/SliceBackwardAction.java b/java/java-impl/src/com/intellij/slicer/SliceBackwardAction.java index b94d7b067130..30ff46b81ef0 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceBackwardAction.java +++ b/java/java-impl/src/com/intellij/slicer/SliceBackwardAction.java @@ -24,6 +24,7 @@ import com.intellij.codeInsight.actions.CodeInsightAction; public class SliceBackwardAction extends CodeInsightAction{ private final SliceHandler myHandler = new SliceHandler(true); + @Override protected CodeInsightActionHandler getHandler() { return myHandler; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceDereferenceUsage.java b/java/java-impl/src/com/intellij/slicer/SliceDereferenceUsage.java index 2fac0dd884f5..106671f22652 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceDereferenceUsage.java +++ b/java/java-impl/src/com/intellij/slicer/SliceDereferenceUsage.java @@ -43,20 +43,24 @@ public class SliceDereferenceUsage extends SliceUsage { final UsagePresentation presentation = super.getPresentation(); return new UsagePresentation() { + @Override @NotNull public TextChunk[] getText() { return presentation.getText(); } + @Override @NotNull public String getPlainText() { return presentation.getPlainText(); } + @Override public Icon getIcon() { return presentation.getIcon(); } + @Override public String getTooltipText() { return "Variable dereferenced"; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceForwardAction.java b/java/java-impl/src/com/intellij/slicer/SliceForwardAction.java index 0136e13cc200..f561ea84e970 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceForwardAction.java +++ b/java/java-impl/src/com/intellij/slicer/SliceForwardAction.java @@ -24,6 +24,7 @@ import com.intellij.codeInsight.actions.CodeInsightAction; public class SliceForwardAction extends CodeInsightAction{ private final SliceHandler myHandler = new SliceForwardHandler(); + @Override protected CodeInsightActionHandler getHandler() { return myHandler; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceForwardHandler.java b/java/java-impl/src/com/intellij/slicer/SliceForwardHandler.java index 4209ca70e341..5eea8070bc31 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceForwardHandler.java +++ b/java/java-impl/src/com/intellij/slicer/SliceForwardHandler.java @@ -33,6 +33,7 @@ public class SliceForwardHandler extends SliceHandler { super(false); } + @Override public SliceAnalysisParams askForParams(PsiElement element, boolean dataFlowToThis, SliceManager.StoredSettingsBean storedSettingsBean, String dialogTitle) { AnalysisScope analysisScope = new AnalysisScope(element.getContainingFile()); Module module = ModuleUtil.findModuleForPsiElement(element); diff --git a/java/java-impl/src/com/intellij/slicer/SliceHandler.java b/java/java-impl/src/com/intellij/slicer/SliceHandler.java index 09008cf97df5..75504f6c2d38 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceHandler.java +++ b/java/java-impl/src/com/intellij/slicer/SliceHandler.java @@ -40,6 +40,7 @@ public class SliceHandler implements CodeInsightActionHandler { myDataFlowToThis = dataFlowToThis; } + @Override public void invoke(@NotNull final Project project, @NotNull final Editor editor, @NotNull final PsiFile file) { PsiDocumentManager.getInstance(project).commitAllDocuments(); // prevents problems with smart pointers creation PsiElement expression = getExpressionAtCaret(editor, file); @@ -52,6 +53,7 @@ public class SliceHandler implements CodeInsightActionHandler { sliceManager.slice(expression,myDataFlowToThis, this); } + @Override public boolean startInWriteAction() { return false; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java b/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java index dc36ddf99c8a..780b748633f2 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java +++ b/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java @@ -47,9 +47,11 @@ import java.util.*; */ public class SliceLeafAnalyzer { public static final TObjectHashingStrategy LEAF_ELEMENT_EQUALITY = new TObjectHashingStrategy() { + @Override public int computeHashCode(final PsiElement element) { if (element == null) return 0; String text = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public String compute() { PsiElement elementToCompare = element; if (element instanceof PsiJavaReference) { @@ -65,8 +67,10 @@ public class SliceLeafAnalyzer { return Comparing.hashcode(text); } + @Override public boolean equals(final PsiElement o1, final PsiElement o2) { return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { return o1 != null && o2 != null && PsiEquivalenceUtil.areElementsEquivalent(o1, o2); } @@ -111,6 +115,7 @@ public class SliceLeafAnalyzer { for (final PsiElement leafExpression : leaves) { SliceNode newNode = filterTree(oldRootStart, new NullableFunction() { + @Override public SliceNode fun(SliceNode oldNode) { if (oldNode.getDuplicate() != null) return null; if (!node(oldNode, map).contains(leafExpression)) return null; @@ -118,6 +123,7 @@ public class SliceLeafAnalyzer { return oldNode.copy(); } }, new PairProcessor>() { + @Override public boolean process(SliceNode node, List children) { if (!children.isEmpty()) return true; PsiElement element = node.getValue().getElement(); @@ -140,6 +146,7 @@ public class SliceLeafAnalyzer { final Map> map = createMap(); ProgressManager.getInstance().run(new Task.Backgroundable(root.getProject(), "Expanding all nodes... (may very well take the whole day)", true) { + @Override public void run(@NotNull final ProgressIndicator indicator) { Collection l = calcLeafExpressions(root, treeStructure, map); leafExpressions.set(l); @@ -193,6 +200,7 @@ public class SliceLeafAnalyzer { myTreeStructure = treeStructure; } + @Override public SliceNode getNextSibling(@NotNull SliceNode element) { AbstractTreeNode parent = element.getParent(); if (parent == null) return null; @@ -200,17 +208,20 @@ public class SliceLeafAnalyzer { return element.getNext((List)parent.getChildren()); } + @Override public SliceNode getPrevSibling(@NotNull SliceNode element) { AbstractTreeNode parent = element.getParent(); if (parent == null) return null; return element.getPrev((List)parent.getChildren()); } + @Override public SliceNode getFirstChild(@NotNull SliceNode element) { Object[] children = myTreeStructure.getChildElements(element); return children.length == 0 ? null : (SliceNode)children[0]; } + @Override public SliceNode getParent(@NotNull SliceNode element) { AbstractTreeNode parent = element.getParent(); return parent instanceof SliceNode ? (SliceNode)parent : null; @@ -240,6 +251,7 @@ public class SliceLeafAnalyzer { Collection children = element.getChildren(); if (children.isEmpty()) { PsiElement value = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiElement compute() { return sliceUsage.getElement(); } diff --git a/java/java-impl/src/com/intellij/slicer/SliceLeafValueRootNode.java b/java/java-impl/src/com/intellij/slicer/SliceLeafValueRootNode.java index 3dde8dcfbe03..89d7ce8c202d 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceLeafValueRootNode.java +++ b/java/java-impl/src/com/intellij/slicer/SliceLeafValueRootNode.java @@ -40,6 +40,7 @@ public class SliceLeafValueRootNode extends SliceNode implements MyColoredTreeCe myCachedChildren = children; } + @Override @NotNull public Collection getChildren() { return myCachedChildren; @@ -63,6 +64,7 @@ public class SliceLeafValueRootNode extends SliceNode implements MyColoredTreeCe return "Value: "+ text; } + @Override public void customizeCellRenderer(SliceUsageCellRenderer renderer, JTree tree, Object value, diff --git a/java/java-impl/src/com/intellij/slicer/SliceManager.java b/java/java-impl/src/com/intellij/slicer/SliceManager.java index b6243f347e3a..629851233aad 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceManager.java +++ b/java/java-impl/src/com/intellij/slicer/SliceManager.java @@ -125,23 +125,28 @@ public class SliceManager implements PersistentStateComponent implements Duplicate return newNode; } + @Override @NotNull public Collection getChildren() { ProgressIndicator current = ProgressManager.getInstance().getProgressIndicator(); @@ -69,6 +70,7 @@ public class SliceNode extends AbstractTreeNode implements Duplicate } final Collection[] nodes = new Collection[1]; ((ProgressManagerImpl)ProgressManager.getInstance()).executeProcessUnderProgress(new Runnable(){ + @Override public void run() { nodes[0] = getChildrenUnderProgress(ProgressManager.getInstance().getProgressIndicator()); } @@ -92,8 +94,10 @@ public class SliceNode extends AbstractTreeNode implements Duplicate final List children = new ArrayList(); final SliceManager manager = SliceManager.getInstance(getProject()); manager.runInterruptibly(new Runnable() { + @Override public void run() { Processor processor = new Processor() { + @Override public boolean process(SliceUsage sliceUsage) { manager.checkCanceled(); SliceNode node = new SliceNode(myProject, sliceUsage, targetEqualUsages); @@ -108,6 +112,7 @@ public class SliceNode extends AbstractTreeNode implements Duplicate getValue().processChildren(processor); } }, new Runnable(){ + @Override public void run() { changed = true; //SwingUtilities.invokeLater(new Runnable() { @@ -146,6 +151,7 @@ public class SliceNode extends AbstractTreeNode implements Duplicate }; } + @Override protected void update(PresentationData presentation) { if (presentation != null) { if (duplicate != null) { @@ -165,35 +171,42 @@ public class SliceNode extends AbstractTreeNode implements Duplicate } } + @Override public SliceNode getDuplicate() { return duplicate; } + @Override public void navigate(boolean requestFocus) { SliceUsage sliceUsage = getValue(); sliceUsage.navigate(requestFocus); } + @Override public boolean canNavigate() { return getValue().canNavigate(); } + @Override public boolean canNavigateToSource() { return getValue().canNavigateToSource(); } public boolean isValid() { return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { return getValue().isValid(); } }); } + @Override public boolean expandOnDoubleClick() { return false; } + @Override public void customizeCellRenderer(SliceUsageCellRenderer renderer, JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { renderer.setIcon(getPresentation().getIcon(expanded)); if (isValid()) { diff --git a/java/java-impl/src/com/intellij/slicer/SliceNullnessAnalyzer.java b/java/java-impl/src/com/intellij/slicer/SliceNullnessAnalyzer.java index a90e25f28959..d23a5d0a0def 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceNullnessAnalyzer.java +++ b/java/java-impl/src/com/intellij/slicer/SliceNullnessAnalyzer.java @@ -79,6 +79,7 @@ public class SliceNullnessAnalyzer { Set uniqueValues = new THashSet(groupedByValue, SliceLeafAnalyzer.LEAF_ELEMENT_EQUALITY); for (final PsiElement expression : uniqueValues) { SliceNode newRoot = SliceLeafAnalyzer.filterTree(oldRootStart, new NullableFunction() { + @Override public SliceNode fun(SliceNode oldNode) { if (oldNode.getDuplicate() != null) { return null; @@ -92,6 +93,7 @@ public class SliceNullnessAnalyzer { return null; } },new PairProcessor>() { + @Override public boolean process(SliceNode node, List children) { if (!children.isEmpty()) return true; PsiElement element = node.getValue().getElement(); @@ -110,6 +112,7 @@ public class SliceNullnessAnalyzer { final Map map = createMap(); ProgressManager.getInstance().run(new Task.Backgroundable(root.getProject(), "Expanding all nodes... (may very well take the whole day)", true) { + @Override public void run(@NotNull final ProgressIndicator indicator) { NullAnalysisResult l = calcNullableLeaves(root, treeStructure, map); leafExpressions.set(l); @@ -173,6 +176,7 @@ public class SliceNullnessAnalyzer { SliceUsage sliceUsage = element.getValue(); final PsiElement value = sliceUsage.getElement(); DfaUtil.Nullness nullness = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public DfaUtil.Nullness compute() { return checkNullness(value); } diff --git a/java/java-impl/src/com/intellij/slicer/SlicePanel.java b/java/java-impl/src/com/intellij/slicer/SlicePanel.java index 96e4aec53ab7..d7b822f1c024 100644 --- a/java/java-impl/src/com/intellij/slicer/SlicePanel.java +++ b/java/java-impl/src/com/intellij/slicer/SlicePanel.java @@ -69,10 +69,12 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, private final JTree myTree; private final AutoScrollToSourceHandler myAutoScrollToSourceHandler = new AutoScrollToSourceHandler() { + @Override protected boolean isAutoScrollMode() { return isAutoScroll(); } + @Override protected void setAutoScrollMode(final boolean state) { setAutoScroll(state); } @@ -87,9 +89,11 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, myToolWindow = toolWindow; final ToolWindowManagerListener listener = new ToolWindowManagerListener() { ToolWindowAnchor myAnchor = toolWindow.getAnchor(); + @Override public void toolWindowRegistered(@NotNull String id) { } + @Override public void stateChanged() { if (!project.isOpen()) return; if (toolWindow.getAnchor() != myAnchor) { @@ -100,6 +104,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, }; ToolWindowManagerEx.getInstanceEx(project).addToolWindowManagerListener(listener); Disposer.register(this, new Disposable() { + @Override public void dispose() { ToolWindowManagerEx.getInstanceEx(project).removeToolWindowManagerListener(listener); } @@ -115,10 +120,12 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, Disposer.register(this, myBuilder); myBuilder.addSubtreeToUpdate((DefaultMutableTreeNode)myTree.getModel().getRoot(), new Runnable() { + @Override public void run() { if (isDisposed || myBuilder.isDisposed() || myProject.isDisposed()) return; final SliceNode rootNode = myBuilder.getRootSliceNode(); myBuilder.expand(rootNode, new Runnable() { + @Override public void run() { if (isDisposed || myBuilder.isDisposed() || myProject.isDisposed()) return; myBuilder.select(rootNode.myCachedChildren.get(0)); //first there is ony one child @@ -163,6 +170,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, revalidate(); } + @Override public void dispose() { if (myUsagePreviewPanel != null) { UsageViewSettings.getInstance().PREVIEW_USAGES_SPLITTER_PROPORTIONS = ((Splitter)myUsagePreviewPanel.getParent()).getProportion(); @@ -176,6 +184,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, private JTree createTree() { DefaultMutableTreeNode root = new DefaultMutableTreeNode(); final Tree tree = new Tree(new DefaultTreeModel(root)){ + @Override protected void paintComponent(Graphics g) { DuplicateNodeRenderer.paintDuplicateNodesBackground(g, this); super.paintComponent(g); @@ -204,12 +213,14 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, myAutoScrollToSourceHandler.install(tree); tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() { + @Override public void valueChanged(final TreeSelectionEvent e) { treeSelectionChanged(); } }); tree.addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { if (KeyEvent.VK_ENTER == e.getKeyCode()) { List navigatables = getNavigatables(); @@ -231,9 +242,11 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, }); tree.addTreeWillExpandListener(new TreeWillExpandListener() { + @Override public void treeWillCollapse(TreeExpansionEvent event) { } + @Override public void treeWillExpand(TreeExpansionEvent event) { TreePath path = event.getPath(); SliceNode node = fromPath(path); @@ -246,6 +259,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, private void treeSelectionChanged() { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (isDisposed) return; List infos = getSelectedUsageInfos(); @@ -282,6 +296,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, return result; } + @Override public void calcData(DataKey key, DataSink sink) { if (key == PlatformDataKeys.NAVIGATABLE_ARRAY) { List navigatables = getNavigatables(); @@ -318,10 +333,12 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, actionGroup.add(myAutoScrollToSourceHandler.createToggleAction()); actionGroup.add(new CloseAction()); actionGroup.add(new ToggleAction(UsageViewBundle.message("preview.usages.action.text"), "preview", IconLoader.getIcon("/actions/preview.png")) { + @Override public boolean isSelected(AnActionEvent e) { return isPreview(); } + @Override public void setSelected(AnActionEvent e, boolean state) { setPreview(state); layoutPanel(); @@ -347,6 +364,7 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, public abstract void setPreview(boolean preview); private class CloseAction extends CloseTabToolbarAction { + @Override public final void actionPerformed(final AnActionEvent e) { close(); } @@ -365,12 +383,14 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider, registerShortcutOn(tree); } + @Override public final void actionPerformed(final AnActionEvent e) { SliceNode rootNode = (SliceNode)myBuilder.getRootNode().getUserObject(); rootNode.setChanged(); myBuilder.addSubtreeToUpdate(myBuilder.getRootNode()); } + @Override public final void update(final AnActionEvent event) { final Presentation presentation = event.getPresentation(); presentation.setEnabled(true); diff --git a/java/java-impl/src/com/intellij/slicer/SliceRootNode.java b/java/java-impl/src/com/intellij/slicer/SliceRootNode.java index 1335129243bb..5f1a915f6d93 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceRootNode.java +++ b/java/java-impl/src/com/intellij/slicer/SliceRootNode.java @@ -51,6 +51,7 @@ public class SliceRootNode extends SliceNode { return newNode; } + @Override @NotNull public Collection getChildren() { if (myCachedChildren == null) { diff --git a/java/java-impl/src/com/intellij/slicer/SliceTooComplexDFAUsage.java b/java/java-impl/src/com/intellij/slicer/SliceTooComplexDFAUsage.java index 93e3600006a9..e32c9cf16730 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceTooComplexDFAUsage.java +++ b/java/java-impl/src/com/intellij/slicer/SliceTooComplexDFAUsage.java @@ -45,6 +45,7 @@ public class SliceTooComplexDFAUsage extends SliceUsage { public UsagePresentation getPresentation() { final UsagePresentation presentation = super.getPresentation(); return new UsagePresentation() { + @Override @NotNull public TextChunk[] getText() { return new TextChunk[]{ @@ -52,15 +53,18 @@ public class SliceTooComplexDFAUsage extends SliceUsage { }; } + @Override @NotNull public String getPlainText() { return presentation.getPlainText(); } + @Override public Icon getIcon() { return presentation.getIcon(); } + @Override public String getTooltipText() { return "Too complex to analyze, analysis stopped here"; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceToolwindowSettings.java b/java/java-impl/src/com/intellij/slicer/SliceToolwindowSettings.java index 96adfe60876b..ef65abdfb759 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceToolwindowSettings.java +++ b/java/java-impl/src/com/intellij/slicer/SliceToolwindowSettings.java @@ -49,10 +49,12 @@ public class SliceToolwindowSettings implements PersistentStateComponent SLICE_NODE_COMPARATOR = new Comparator() { + @Override public int compare(NodeDescriptor o1, NodeDescriptor o2) { if (!(o1 instanceof SliceNode) || !(o2 instanceof SliceNode)) { return AlphaComparator.INSTANCE.compare(o1, o2); @@ -74,6 +75,7 @@ public class SliceTreeBuilder extends AbstractTreeBuilder { return (SliceNode)getTreeStructure().getRootElement(); } + @Override protected boolean isAutoExpandNode(NodeDescriptor nodeDescriptor) { return false; } @@ -81,6 +83,7 @@ public class SliceTreeBuilder extends AbstractTreeBuilder { public void switchToSplittedNodes(final AbstractTreeStructure treeStructure) { analysisInProgress = true; SliceLeafAnalyzer.startAnalyzeValues(getTreeStructure(), new Runnable(){ + @Override public void run() { analysisInProgress = false; } @@ -91,6 +94,7 @@ public class SliceTreeBuilder extends AbstractTreeBuilder { public void switchToLeafNulls() { analysisInProgress = true; SliceNullnessAnalyzer.startAnalyzeNullness(getTreeStructure(), new Runnable(){ + @Override public void run() { analysisInProgress = false; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceTreeStructure.java b/java/java-impl/src/com/intellij/slicer/SliceTreeStructure.java index 7abbd75c04e9..13c02235cc6d 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceTreeStructure.java +++ b/java/java-impl/src/com/intellij/slicer/SliceTreeStructure.java @@ -33,18 +33,22 @@ public class SliceTreeStructure extends AbstractTreeStructureBase { myRoot = rootNode; } + @Override public List getProviders() { return Collections.emptyList(); } + @Override public Object getRootElement() { return myRoot; } + @Override public void commit() { } + @Override public boolean hasSomethingToCommit() { return false; } diff --git a/java/java-impl/src/com/intellij/slicer/SliceUsage.java b/java/java-impl/src/com/intellij/slicer/SliceUsage.java index b7965c25e323..21a849068ba9 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceUsage.java +++ b/java/java-impl/src/com/intellij/slicer/SliceUsage.java @@ -58,16 +58,19 @@ public class SliceUsage extends UsageInfo2UsageAdapter { final Processor uniqueProcessor = new CommonProcessors.UniqueProcessor(processor, new TObjectHashingStrategy() { + @Override public int computeHashCode(final SliceUsage object) { return object.getUsageInfo().hashCode(); } + @Override public boolean equals(final SliceUsage o1, final SliceUsage o2) { return o1.getUsageInfo().equals(o2.getUsageInfo()); } }); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (params.dataFlowToThis) { SliceUtil.processUsagesFlownDownTo(element, uniqueProcessor, SliceUsage.this, mySubstitutor); diff --git a/java/java-impl/src/com/intellij/slicer/SliceUsageCellRenderer.java b/java/java-impl/src/com/intellij/slicer/SliceUsageCellRenderer.java index f755a06d3023..eae4ae31d2bf 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceUsageCellRenderer.java +++ b/java/java-impl/src/com/intellij/slicer/SliceUsageCellRenderer.java @@ -40,6 +40,7 @@ public class SliceUsageCellRenderer extends ColoredTreeCellRenderer { setOpaque(false); } + @Override public void customizeCellRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { assert value instanceof DefaultMutableTreeNode; DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)value; diff --git a/java/java-impl/src/com/intellij/slicer/SliceUtil.java b/java/java-impl/src/com/intellij/slicer/SliceUtil.java index 281d54e289f5..47a54e354f1e 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceUtil.java +++ b/java/java-impl/src/com/intellij/slicer/SliceUtil.java @@ -179,6 +179,7 @@ public class SliceUtil { // do not look for returns there } + @Override public void visitReturnStatement(final PsiReturnStatement statement) { PsiExpression returnValue = statement.getReturnValue(); if (returnValue == null) return; @@ -204,6 +205,7 @@ public class SliceUtil { } SearchScope searchScope = parent.getScope().toSearchScope(); return ReferencesSearch.search(field, searchScope).forEach(new Processor() { + @Override public boolean process(final PsiReference reference) { SliceManager.getInstance(field.getProject()).checkCanceled(); PsiElement element = reference.getElement(); @@ -259,6 +261,7 @@ public class SliceUtil { final Set processed = new THashSet(); //usages of super method and overridden method can overlap for (final PsiMethod superMethod : superMethods) { if (!MethodReferencesSearch.search(superMethod, parent.getScope().toSearchScope(), true).forEach(new Processor() { + @Override public boolean process(final PsiReference reference) { SliceManager.getInstance(parameter.getProject()).checkCanceled(); synchronized (processed) { diff --git a/java/java-impl/src/com/intellij/slicer/forward/SliceFUtil.java b/java/java-impl/src/com/intellij/slicer/forward/SliceFUtil.java index 903cf3e4c24d..ef701971c0d3 100644 --- a/java/java-impl/src/com/intellij/slicer/forward/SliceFUtil.java +++ b/java/java-impl/src/com/intellij/slicer/forward/SliceFUtil.java @@ -54,6 +54,7 @@ public class SliceFUtil { final int parameterIndex = method.getParameterList().getParameterIndex(parameter); Processor myProcessor = new Processor() { + @Override public boolean process(PsiMethod override) { if (!parent.getScope().contains(override)) return true; final PsiSubstitutor superSubstitutor = method == override @@ -121,6 +122,7 @@ public class SliceFUtil { for (PsiMethod superMethod : superMethods) { SliceManager.getInstance(method.getProject()).checkCanceled(); if (!OverridingMethodsSearch.search(superMethod, parent.getScope().toSearchScope(), true).forEach(new Processor() { + @Override public boolean process(PsiMethod sub) { SliceManager.getInstance(method.getProject()).checkCanceled(); implementors.add(sub); @@ -161,6 +163,7 @@ public class SliceFUtil { final Set processed = new THashSet(); //usages of super method and overridden method can overlap for (final PsiMethod containingMethod : superMethods) { if (!MethodReferencesSearch.search(containingMethod, parent.getScope().toSearchScope(), true).forEach(new Processor() { + @Override public boolean process(final PsiReference reference) { SliceManager.getInstance(from.getProject()).checkCanceled(); synchronized (processed) { @@ -181,6 +184,7 @@ public class SliceFUtil { private static boolean searchReferencesAndProcessAssignmentTarget(@NotNull PsiElement element, @Nullable final PsiElement context, final SliceUsage parent, final Processor processor) { return ReferencesSearch.search(element).forEach(new Processor() { + @Override public boolean process(PsiReference reference) { PsiElement element = reference.getElement(); if (context != null && element.getTextOffset() < context.getTextOffset()) return true; diff --git a/java/java-psi-api/src/com/intellij/lang/java/JavaLanguage.java b/java/java-psi-api/src/com/intellij/lang/java/JavaLanguage.java index 60bbec66a684..be08d6986bb0 100644 --- a/java/java-psi-api/src/com/intellij/lang/java/JavaLanguage.java +++ b/java/java-psi-api/src/com/intellij/lang/java/JavaLanguage.java @@ -28,10 +28,12 @@ public class JavaLanguage extends Language { super("JAVA", "text/java", "application/x-java", "text/x-java"); } + @Override public String getDisplayName() { return "Java"; } + @Override public boolean isCaseSensitive() { return true; } diff --git a/java/java-psi-api/src/com/intellij/lexer/JavaDocTokenTypes.java b/java/java-psi-api/src/com/intellij/lexer/JavaDocTokenTypes.java index b99d7da89bd6..109c7d6fbe93 100644 --- a/java/java-psi-api/src/com/intellij/lexer/JavaDocTokenTypes.java +++ b/java/java-psi-api/src/com/intellij/lexer/JavaDocTokenTypes.java @@ -26,66 +26,82 @@ public class JavaDocTokenTypes implements DocCommentTokenTypes { private JavaDocTokenTypes() { } + @Override public IElementType commentStart() { return JavaDocTokenType.DOC_COMMENT_START; } + @Override public IElementType commentEnd() { return JavaDocTokenType.DOC_COMMENT_END; } + @Override public IElementType commentData() { return JavaDocTokenType.DOC_COMMENT_DATA; } + @Override public IElementType space() { return JavaDocTokenType.DOC_SPACE; } + @Override public IElementType tagValueToken() { return JavaDocTokenType.DOC_TAG_VALUE_TOKEN; } + @Override public IElementType tagValueLParen() { return JavaDocTokenType.DOC_TAG_VALUE_LPAREN; } + @Override public IElementType tagValueRParen() { return JavaDocTokenType.DOC_TAG_VALUE_RPAREN; } + @Override public IElementType tagValueSharp() { return JavaDocTokenType.DOC_TAG_VALUE_SHARP_TOKEN; } + @Override public IElementType tagValueComma() { return JavaDocTokenType.DOC_TAG_VALUE_COMMA; } + @Override public IElementType tagName() { return JavaDocTokenType.DOC_TAG_NAME; } + @Override public IElementType tagValueLT() { return JavaDocTokenType.DOC_TAG_VALUE_LT; } + @Override public IElementType tagValueGT() { return JavaDocTokenType.DOC_TAG_VALUE_GT; } + @Override public IElementType inlineTagStart() { return JavaDocTokenType.DOC_INLINE_TAG_START; } + @Override public IElementType inlineTagEnd() { return JavaDocTokenType.DOC_INLINE_TAG_END; } + @Override public IElementType badCharacter() { return JavaDocTokenType.DOC_COMMENT_BAD_CHARACTER; } + @Override public IElementType commentLeadingAsterisks() { return JavaDocTokenType.DOC_COMMENT_LEADING_ASTERISKS; } diff --git a/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java b/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java index 1b9c18faebc1..be554463ffec 100644 --- a/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/GenericsUtil.java @@ -232,6 +232,7 @@ public class GenericsUtil { public static PsiType getVariableTypeByExpressionType(final PsiType type) { PsiType transformed = type.accept(new PsiTypeVisitor() { + @Override public PsiType visitArrayType(PsiArrayType arrayType) { PsiType componentType = arrayType.getComponentType(); PsiType type = componentType.accept(this); @@ -239,10 +240,12 @@ public class GenericsUtil { return type.createArrayType(); } + @Override public PsiType visitType(PsiType type) { return type; } + @Override public PsiType visitWildcardType(final PsiWildcardType wildcardType) { final PsiType bound = wildcardType.getBound(); PsiManager manager = wildcardType.getManager(); @@ -260,10 +263,12 @@ public class GenericsUtil { return wildcardType; } + @Override public PsiType visitCapturedWildcardType(PsiCapturedWildcardType capturedWildcardType) { return capturedWildcardType.getWildcard().accept(this); } + @Override public PsiType visitClassType(PsiClassType classType) { PsiClassType.ClassResolveResult resolveResult = classType.resolveGenerics(); PsiClass aClass = resolveResult.getElement(); @@ -319,6 +324,7 @@ public class GenericsUtil { for (PsiTypeParameter typeParameter : psiClass.getTypeParameters()) { final String name = typeParameter.getName(); final PsiTypeParameter key = ContainerUtil.find(substitutionMap.keySet(), new Condition() { + @Override public boolean value(final PsiTypeParameter psiTypeParameter) { return name.equals(psiTypeParameter.getName()); } diff --git a/java/java-psi-api/src/com/intellij/psi/JavaCodeFragment.java b/java/java-psi-api/src/com/intellij/psi/JavaCodeFragment.java index 0b4164c4a8e8..8c99369179bf 100644 --- a/java/java-psi-api/src/com/intellij/psi/JavaCodeFragment.java +++ b/java/java-psi-api/src/com/intellij/psi/JavaCodeFragment.java @@ -134,6 +134,7 @@ public interface JavaCodeFragment extends PsiImportHolder, PsiCodeFragment { * @since 5.0.2 */ VisibilityChecker EVERYTHING_VISIBLE = new VisibilityChecker() { + @Override public Visibility isDeclarationVisible(PsiElement declaration, PsiElement place) { return Visibility.VISIBLE; } diff --git a/java/java-psi-api/src/com/intellij/psi/JavaRecursiveElementWalkingVisitor.java b/java/java-psi-api/src/com/intellij/psi/JavaRecursiveElementWalkingVisitor.java index 4debc262c884..a9086633c075 100644 --- a/java/java-psi-api/src/com/intellij/psi/JavaRecursiveElementWalkingVisitor.java +++ b/java/java-psi-api/src/com/intellij/psi/JavaRecursiveElementWalkingVisitor.java @@ -23,6 +23,7 @@ import org.jetbrains.annotations.NotNull; public abstract class JavaRecursiveElementWalkingVisitor extends JavaElementVisitor { private final PsiWalkingState myWalkingState = new PsiWalkingState(this){ + @Override public void elementFinished(@NotNull PsiElement element) { JavaRecursiveElementWalkingVisitor.this.elementFinished(element); } diff --git a/java/java-psi-api/src/com/intellij/psi/JavaResolveResult.java b/java/java-psi-api/src/com/intellij/psi/JavaResolveResult.java index 6a17a7d2dfe3..397fdf5f958e 100644 --- a/java/java-psi-api/src/com/intellij/psi/JavaResolveResult.java +++ b/java/java-psi-api/src/com/intellij/psi/JavaResolveResult.java @@ -49,13 +49,20 @@ public interface JavaResolveResult extends ResolveResult { JavaResolveResult EMPTY = new JavaResolveResult(){ + @Override public PsiElement getElement(){return null;} + @Override public PsiSubstitutor getSubstitutor(){return PsiSubstitutor.EMPTY;} + @Override public boolean isValidResult(){return false;} + @Override public boolean isAccessible(){return false;} + @Override public boolean isStaticsScopeCorrect(){return false;} + @Override public PsiElement getCurrentFileResolveScope() { return null; } + @Override public boolean isPackagePrefixPackageReference() { return false; } }; } \ No newline at end of file diff --git a/java/java-psi-api/src/com/intellij/psi/PsiAnnotation.java b/java/java-psi-api/src/com/intellij/psi/PsiAnnotation.java index 3ef8b31ece92..6b448421c6f2 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiAnnotation.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiAnnotation.java @@ -33,6 +33,7 @@ public interface PsiAnnotation extends PsiAnnotationMemberValue, PsiMetaOwner { PsiAnnotation[] EMPTY_ARRAY = new PsiAnnotation[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiAnnotation[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiAnnotation[count]; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiArrayType.java b/java/java-psi-api/src/com/intellij/psi/PsiArrayType.java index 3ba6f6d4ba0a..db9852343475 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiArrayType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiArrayType.java @@ -41,34 +41,42 @@ public class PsiArrayType extends PsiType { myComponentType = componentType; } + @Override public String getPresentableText() { return StringUtil.joinOrNull(myComponentType.getPresentableText(), "[]"); } + @Override public String getCanonicalText() { return StringUtil.joinOrNull(myComponentType.getCanonicalText(), "[]"); } + @Override public String getInternalCanonicalText() { return StringUtil.joinOrNull(myComponentType.getInternalCanonicalText(), "[]"); } + @Override public boolean isValid() { return myComponentType.isValid(); } + @Override public boolean equalsToText(String text) { return text.endsWith("[]") && myComponentType.equalsToText(text.substring(0, text.length() - 2)); } + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitArrayType(this); } + @Override public GlobalSearchScope getResolveScope() { return myComponentType.getResolveScope(); } + @Override @NotNull public PsiType[] getSuperTypes() { final PsiType[] superTypes = myComponentType.getSuperTypes(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiBinaryExpression.java b/java/java-psi-api/src/com/intellij/psi/PsiBinaryExpression.java index af37b8958389..438863ae681b 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiBinaryExpression.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiBinaryExpression.java @@ -54,6 +54,7 @@ public interface PsiBinaryExpression extends PsiExpression, PsiPolyadicExpressio * * @return the token type. */ + @Override @NotNull IElementType getOperationTokenType(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java b/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java index eb990c82e2cf..9b7366431758 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiCapturedWildcardType.java @@ -46,35 +46,43 @@ public class PsiCapturedWildcardType extends PsiType { return new PsiCapturedWildcardType(existential, context); } + @Override public String getPresentableText() { return myExistential.getPresentableText(); } + @Override public String getCanonicalText() { return myExistential.getCanonicalText(); } + @Override public String getInternalCanonicalText() { //noinspection HardCodedStringLiteral return "capture<" + myExistential.getInternalCanonicalText() + '>'; } + @Override public boolean isValid() { return myExistential.isValid(); } + @Override public boolean equalsToText(String text) { return false; } + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitCapturedWildcardType(this); } + @Override public GlobalSearchScope getResolveScope() { return myExistential.getResolveScope(); } + @Override @NotNull public PsiType[] getSuperTypes() { return myExistential.getSuperTypes(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiClass.java b/java/java-psi-api/src/com/intellij/psi/PsiClass.java index 18f1eb37c0f0..e6dd7b9073d2 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiClass.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiClass.java @@ -39,6 +39,7 @@ public interface PsiClass @NotNull PsiClass[] EMPTY_ARRAY = new PsiClass[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiClass[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiClass[count]; } @@ -294,6 +295,7 @@ public interface PsiClass * * @return the name identifier, or null if the class is anonymous or synthetic jsp class */ + @Override @Nullable PsiIdentifier getNameIdentifier(); @@ -338,6 +340,7 @@ public interface PsiClass * * @return the containing class, or null if the class is not an inner class. */ + @Override @Nullable PsiClass getContainingClass(); @@ -351,5 +354,6 @@ public interface PsiClass @NotNull Collection getVisibleSignatures(); + @Override PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiClassInitializer.java b/java/java-psi-api/src/com/intellij/psi/PsiClassInitializer.java index 031d64c6ce99..bb280bec6dff 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiClassInitializer.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiClassInitializer.java @@ -28,6 +28,7 @@ public interface PsiClassInitializer extends PsiMember { PsiClassInitializer[] EMPTY_ARRAY = new PsiClassInitializer[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiClassInitializer[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiClassInitializer[count]; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiClassType.java b/java/java-psi-api/src/com/intellij/psi/PsiClassType.java index 31157d64abae..f97060a4ad6e 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiClassType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiClassType.java @@ -155,6 +155,7 @@ public abstract class PsiClassType extends PsiType { return className.hashCode(); } + @Override @NotNull public PsiType[] getSuperTypes() { final ClassResolveResult resolveResult = resolveGenerics(); @@ -207,10 +208,12 @@ public abstract class PsiClassType extends PsiType { /** * Overrides {@link com.intellij.psi.PsiType#getResolveScope()} to narrow specify @NotNull. */ + @Override @NotNull public abstract GlobalSearchScope getResolveScope(); + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitClassType(this); } @@ -229,33 +232,41 @@ public abstract class PsiClassType extends PsiType { * Represents the result of resolving a reference to a Java class. */ public interface ClassResolveResult extends JavaResolveResult { + @Override PsiClass getElement(); ClassResolveResult EMPTY = new ClassResolveResult() { + @Override public PsiClass getElement() { return null; } + @Override public PsiSubstitutor getSubstitutor() { return PsiSubstitutor.EMPTY; } + @Override public boolean isValidResult(){ return false; } + @Override public boolean isAccessible(){ return false; } + @Override public boolean isStaticsScopeCorrect(){ return false; } + @Override public PsiElement getCurrentFileResolveScope() { return null; } + @Override public boolean isPackagePrefixPackageReference() { return false; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiDisjunctionType.java b/java/java-psi-api/src/com/intellij/psi/PsiDisjunctionType.java index d41683ac7ecf..83bbf5195d18 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiDisjunctionType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiDisjunctionType.java @@ -46,6 +46,7 @@ public class PsiDisjunctionType extends PsiType { final CachedValuesManager cacheManager = CachedValuesManager.getManager(psiManager.getProject()); myLubCache = cacheManager.createCachedValue(new CachedValueProvider() { + @Override public Result compute() { PsiType lub = myTypes.get(0); for (int i = 1; i < myTypes.size(); i++) { diff --git a/java/java-psi-api/src/com/intellij/psi/PsiElementFactory.java b/java/java-psi-api/src/com/intellij/psi/PsiElementFactory.java index d833c1dd893d..6a64e8cc04a7 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiElementFactory.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiElementFactory.java @@ -51,6 +51,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @return the created class instance. * @throws IncorrectOperationException if name is not a valid Java identifier. */ + @Override @NotNull PsiClass createClass(@NonNls @NotNull String name) throws IncorrectOperationException; /** @@ -60,6 +61,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @return the created interface instance. * @throws IncorrectOperationException if name is not a valid Java identifier. */ + @Override @NotNull PsiClass createInterface(@NonNls @NotNull String name) throws IncorrectOperationException; /** @@ -69,6 +71,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @return the created enum instance. * @throws IncorrectOperationException if name is not a valid Java identifier. */ + @Override @NotNull PsiClass createEnum(@NotNull @NonNls String name) throws IncorrectOperationException; /** @@ -90,6 +93,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @throws IncorrectOperationException name is not a valid Java identifier * or type represents an invalid type. */ + @Override @NotNull PsiField createField(@NotNull @NonNls String name, @NotNull PsiType type) throws IncorrectOperationException; /** @@ -101,6 +105,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @throws IncorrectOperationException name is not a valid Java identifier * or type represents an invalid type. */ + @Override @NotNull PsiMethod createMethod(@NotNull @NonNls String name, PsiType returnType) throws IncorrectOperationException; /** @@ -108,6 +113,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * * @return the created constructor instance. */ + @Override @NotNull PsiMethod createConstructor(); @@ -126,6 +132,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @return the created initializer block instance. * @throws IncorrectOperationException in case of an internal error. */ + @Override @NotNull PsiClassInitializer createClassInitializer() throws IncorrectOperationException; /** @@ -137,6 +144,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @throws IncorrectOperationException name is not a valid Java identifier * or type represents an invalid type. */ + @Override @NotNull PsiParameter createParameter(@NotNull @NonNls String name, @NotNull PsiType type) throws IncorrectOperationException; /** @@ -415,6 +423,7 @@ public interface PsiElementFactory extends PsiJavaParserFacade, JVMElementFactor * @return the created parameter list. * @throws IncorrectOperationException if some of the parameter names or types are invalid. */ + @Override @NotNull PsiParameterList createParameterList(@NotNull @NonNls String[] names, @NotNull PsiType[] types) throws IncorrectOperationException; /** diff --git a/java/java-psi-api/src/com/intellij/psi/PsiEllipsisType.java b/java/java-psi-api/src/com/intellij/psi/PsiEllipsisType.java index cf6feb828335..2f5f55c46036 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiEllipsisType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiEllipsisType.java @@ -33,18 +33,22 @@ public class PsiEllipsisType extends PsiArrayType { super(componentType); } + @Override public String getPresentableText() { return StringUtil.joinOrNull(getComponentType().getPresentableText(), "..."); } + @Override public String getCanonicalText() { return StringUtil.joinOrNull(getComponentType().getCanonicalText(), "..."); } + @Override public String getInternalCanonicalText() { return StringUtil.joinOrNull(getComponentType().getInternalCanonicalText(), "..."); } + @Override public boolean equalsToText(String text) { return text.endsWith("...") && getComponentType().equalsToText(text.substring(0, text.length() - 3)) || super.equalsToText(text); @@ -59,6 +63,7 @@ public class PsiEllipsisType extends PsiArrayType { return getComponentType().createArrayType(); } + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitEllipsisType(this); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiEnumConstant.java b/java/java-psi-api/src/com/intellij/psi/PsiEnumConstant.java index db353e794597..09e349ae0d68 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiEnumConstant.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiEnumConstant.java @@ -30,6 +30,7 @@ public interface PsiEnumConstant extends PsiField, PsiConstructorCall { * * @return the list of arguments, or null */ + @Override @Nullable PsiExpressionList getArgumentList(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiExpression.java b/java/java-psi-api/src/com/intellij/psi/PsiExpression.java index 958604512d75..41b4928f0e09 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiExpression.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiExpression.java @@ -29,6 +29,7 @@ public interface PsiExpression extends PsiAnnotationMemberValue { PsiExpression[] EMPTY_ARRAY = new PsiExpression[0]; Function EXPRESSION_TO_TYPE = new NullableFunction() { + @Override public PsiType fun(final PsiExpression expression) { return expression.getType(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiField.java b/java/java-psi-api/src/com/intellij/psi/PsiField.java index e2655c0605b3..d3e87cad7109 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiField.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiField.java @@ -30,6 +30,7 @@ public interface PsiField extends PsiMember, PsiVariable, PsiDocCommentOwner { PsiField[] EMPTY_ARRAY = new PsiField[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiField[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiField[count]; } @@ -45,5 +46,6 @@ public interface PsiField extends PsiMember, PsiVariable, PsiDocCommentOwner { */ void setInitializer(@Nullable PsiExpression initializer) throws IncorrectOperationException; + @Override @NotNull PsiIdentifier getNameIdentifier(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiImportList.java b/java/java-psi-api/src/com/intellij/psi/PsiImportList.java index ca869ade5541..e9f70c83ba51 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiImportList.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiImportList.java @@ -28,6 +28,7 @@ import org.jetbrains.annotations.Nullable; public interface PsiImportList extends PsiElement { PsiImportList[] EMPTY_ARRAY = new PsiImportList[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiImportList[] create(int count) { return count == 0 ? EMPTY_ARRAY : new PsiImportList[count]; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiIntersectionType.java b/java/java-psi-api/src/com/intellij/psi/PsiIntersectionType.java index d088f0bc85f5..caf779e7221f 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiIntersectionType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiIntersectionType.java @@ -78,14 +78,17 @@ public class PsiIntersectionType extends PsiType { return myConjuncts; } + @Override public String getPresentableText() { return myConjuncts[0].getPresentableText(); } + @Override public String getCanonicalText() { return myConjuncts[0].getCanonicalText(); } + @Override public String getInternalCanonicalText() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < myConjuncts.length; i++) { @@ -95,6 +98,7 @@ public class PsiIntersectionType extends PsiType { return buffer.toString(); } + @Override public boolean isValid() { for (PsiType conjunct : myConjuncts) { if (!conjunct.isValid()) return false; @@ -102,18 +106,22 @@ public class PsiIntersectionType extends PsiType { return true; } + @Override public boolean equalsToText(String text) { return false; } + @Override public A accept(PsiTypeVisitor visitor) { return myConjuncts[0].accept(visitor); } + @Override public GlobalSearchScope getResolveScope() { return myConjuncts[0].getResolveScope(); } + @Override @NotNull public PsiType[] getSuperTypes() { return myConjuncts; diff --git a/java/java-psi-api/src/com/intellij/psi/PsiJavaCodeReferenceElement.java b/java/java-psi-api/src/com/intellij/psi/PsiJavaCodeReferenceElement.java index 695d56b9dec7..b30a7cc7a09f 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiJavaCodeReferenceElement.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiJavaCodeReferenceElement.java @@ -30,6 +30,7 @@ public interface PsiJavaCodeReferenceElement extends PsiJavaReference, PsiQualif PsiJavaCodeReferenceElement[] EMPTY_ARRAY = new PsiJavaCodeReferenceElement[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiJavaCodeReferenceElement[] create(int count) { return count == 0 ? EMPTY_ARRAY : new PsiJavaCodeReferenceElement[count]; } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiJavaFile.java b/java/java-psi-api/src/com/intellij/psi/PsiJavaFile.java index 83e825b04f69..c1389781d372 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiJavaFile.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiJavaFile.java @@ -36,6 +36,7 @@ public interface PsiJavaFile extends PsiImportHolder, PsiClassOwner { * @return the name specified in the package statement, or an empty string for a JSP page or * file which has no package statement. */ + @Override @NotNull String getPackageName(); /** diff --git a/java/java-psi-api/src/com/intellij/psi/PsiJavaReference.java b/java/java-psi-api/src/com/intellij/psi/PsiJavaReference.java index ce7d47fa540c..c2c69e9f25b8 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiJavaReference.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiJavaReference.java @@ -42,6 +42,7 @@ public interface PsiJavaReference extends PsiPolyVariantReference { @NotNull JavaResolveResult advancedResolve(boolean incompleteCode); + @Override @NotNull JavaResolveResult[] multiResolve(boolean incompleteCode); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiLocalVariable.java b/java/java-psi-api/src/com/intellij/psi/PsiLocalVariable.java index 4f9bf34a1582..f86a987c3e15 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiLocalVariable.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiLocalVariable.java @@ -36,6 +36,7 @@ public interface PsiLocalVariable extends PsiVariable { /** * {@inheritDoc} */ + @Override @NotNull PsiTypeElement getTypeElement(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiMethod.java b/java/java-psi-api/src/com/intellij/psi/PsiMethod.java index 0d009e081538..83e57127f3f2 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiMethod.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiMethod.java @@ -39,6 +39,7 @@ public interface PsiMethod extends PsiMember, PsiNameIdentifierOwner, PsiModifie PsiMethod[] EMPTY_ARRAY = new PsiMethod[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiMethod[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiMethod[count]; } @@ -107,6 +108,7 @@ public interface PsiMethod extends PsiMember, PsiNameIdentifierOwner, PsiModifie * * @return the name identifier instance. */ + @Override @Nullable PsiIdentifier getNameIdentifier(); /** @@ -170,11 +172,14 @@ public interface PsiMethod extends PsiMember, PsiNameIdentifierOwner, PsiModifie @NotNull PsiMethod[] findDeepestSuperMethods(); + @Override @NotNull PsiModifierList getModifierList(); + @Override @NotNull @NonNls String getName(); + @Override PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException; @NotNull HierarchicalMethodSignature getHierarchicalMethodSignature(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiMethodCallExpression.java b/java/java-psi-api/src/com/intellij/psi/PsiMethodCallExpression.java index b68c5073666d..7a84df9011b0 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiMethodCallExpression.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiMethodCallExpression.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; * Represents a call of a Java method. */ public interface PsiMethodCallExpression extends PsiCallExpression { + @Override @NotNull PsiExpressionList getArgumentList(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiPackage.java b/java/java-psi-api/src/com/intellij/psi/PsiPackage.java index a612d9acf366..97e9e653a828 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiPackage.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiPackage.java @@ -35,6 +35,7 @@ public interface PsiPackage extends PsiCheckedRenameElement, NavigationItem, Psi * * @return the full-qualified name, or an empty string for the default package. */ + @Override @NotNull String getQualifiedName(); @@ -104,6 +105,7 @@ public interface PsiPackage extends PsiCheckedRenameElement, NavigationItem, Psi */ VirtualFile[] occursInPackagePrefixes(); + @Override @Nullable("default package") @NonNls String getName(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiParameter.java b/java/java-psi-api/src/com/intellij/psi/PsiParameter.java index 8c5ec61ec43c..5ea7e84e2fca 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiParameter.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiParameter.java @@ -29,6 +29,7 @@ public interface PsiParameter extends PsiVariable { PsiParameter[] EMPTY_ARRAY = new PsiParameter[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiParameter[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiParameter[count]; } @@ -60,6 +61,7 @@ public interface PsiParameter extends PsiVariable { /** * {@inheritDoc} */ + @Override @Nullable PsiTypeElement getTypeElement(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiPrimitiveType.java b/java/java-psi-api/src/com/intellij/psi/PsiPrimitiveType.java index 84fa371ce2fc..35edc2fa066c 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiPrimitiveType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiPrimitiveType.java @@ -51,14 +51,17 @@ public class PsiPrimitiveType extends PsiType { } } + @Override public String getPresentableText() { return myName; } + @Override public String getCanonicalText() { return myName; } + @Override public String getInternalCanonicalText() { return getAnnotationsTextPrefix() + getCanonicalText(); } @@ -66,22 +69,27 @@ public class PsiPrimitiveType extends PsiType { /** * Always returns true. */ + @Override public boolean isValid() { return true; } + @Override public boolean equalsToText(String text) { return myName.equals(text); } + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitPrimitiveType(this); } + @Override public GlobalSearchScope getResolveScope() { return null; } + @Override @NotNull public PsiType[] getSuperTypes() { return new PsiType[0]; diff --git a/java/java-psi-api/src/com/intellij/psi/PsiSuperExpression.java b/java/java-psi-api/src/com/intellij/psi/PsiSuperExpression.java index 95215d17ea35..0e6512779cdb 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiSuperExpression.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiSuperExpression.java @@ -28,6 +28,7 @@ public interface PsiSuperExpression extends PsiQualifiedExpression { * * @return the qualifier, or null if the expression has no qualifier. */ + @Override @Nullable PsiJavaCodeReferenceElement getQualifier(); } \ No newline at end of file diff --git a/java/java-psi-api/src/com/intellij/psi/PsiThisExpression.java b/java/java-psi-api/src/com/intellij/psi/PsiThisExpression.java index 673e75188f4f..a32b29e8f3fc 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiThisExpression.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiThisExpression.java @@ -27,6 +27,7 @@ public interface PsiThisExpression extends PsiQualifiedExpression { * * @return the qualifier, or null if the expression has no qualifier. */ + @Override @Nullable PsiJavaCodeReferenceElement getQualifier(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiType.java b/java/java-psi-api/src/com/intellij/psi/PsiType.java index 5ddcb48788fd..9c873e3f72ea 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiType.java @@ -234,20 +234,24 @@ public abstract class PsiType implements PsiAnnotationOwner { @NotNull public abstract PsiType[] getSuperTypes(); + @Override @NotNull public PsiAnnotation[] getAnnotations() { return myAnnotations; } + @Override public PsiAnnotation findAnnotation(@NotNull @NonNls String qualifiedName) { return null; //todo } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new UnsupportedOperationException(); } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { return getAnnotations(); @@ -256,6 +260,7 @@ public abstract class PsiType implements PsiAnnotationOwner { protected String getAnnotationsTextPrefix() { PsiAnnotation[] annotations = getAnnotations(); return StringUtil.join(annotations, new Function() { + @Override public String fun(PsiAnnotation annotation) { return "@"+annotation.getQualifiedName(); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiTypeParameter.java b/java/java-psi-api/src/com/intellij/psi/PsiTypeParameter.java index 3647736bca40..de168c1cad28 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiTypeParameter.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiTypeParameter.java @@ -31,6 +31,7 @@ public interface PsiTypeParameter extends PsiClass, PsiAnnotationOwner { PsiTypeParameter[] EMPTY_ARRAY = new PsiTypeParameter[0]; ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiTypeParameter[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiTypeParameter[count]; } @@ -41,6 +42,7 @@ public interface PsiTypeParameter extends PsiClass, PsiAnnotationOwner { * * @return the extends list. For this particular kind of classes it never returns null. */ + @Override @NotNull PsiReferenceList getExtendsList(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiVariable.java b/java/java-psi-api/src/com/intellij/psi/PsiVariable.java index f53f8327e9a9..4d6a71ab6d62 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiVariable.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiVariable.java @@ -81,8 +81,10 @@ public interface PsiVariable extends PsiModifierListOwner, PsiNameIdentifierOwne * * @return the variable name identifier. */ + @Override @Nullable PsiIdentifier getNameIdentifier(); + @Override PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException; PsiType getTypeNoResolve(); diff --git a/java/java-psi-api/src/com/intellij/psi/PsiWildcardType.java b/java/java-psi-api/src/com/intellij/psi/PsiWildcardType.java index 62b0003f1d88..a9ce31076105 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiWildcardType.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiWildcardType.java @@ -69,6 +69,7 @@ public class PsiWildcardType extends PsiType { return new PsiWildcardType(type.myManager, type.myIsExtending, newBound); } + @Override public String getPresentableText() { if (myBound == null) return "?"; if (myIsExtending) { @@ -80,6 +81,7 @@ public class PsiWildcardType extends PsiType { } } + @Override public String getCanonicalText() { if (myBound == null) return "?"; if (myIsExtending) { @@ -91,6 +93,7 @@ public class PsiWildcardType extends PsiType { } } + @Override public String getInternalCanonicalText() { if (myBound == null) return "?"; if (myIsExtending) { @@ -102,6 +105,7 @@ public class PsiWildcardType extends PsiType { } } + @Override @NotNull public GlobalSearchScope getResolveScope() { if (myBound != null) { @@ -113,11 +117,13 @@ public class PsiWildcardType extends PsiType { return GlobalSearchScope.allScope(myManager.getProject()); } + @Override @NotNull public PsiType[] getSuperTypes() { return new PsiType[]{getExtendsBound()}; } + @Override public boolean equalsToText(String text) { if (myBound == null) return "?".equals(text); if (myIsExtending) { @@ -159,10 +165,12 @@ public class PsiWildcardType extends PsiType { return myBound; } + @Override public A accept(PsiTypeVisitor visitor) { return visitor.visitWildcardType(this); } + @Override public boolean isValid() { return myBound == null || myBound.isValid(); } diff --git a/java/java-psi-api/src/com/intellij/psi/infos/CandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/CandidateInfo.java index d9af5381b62b..c76541dd91f5 100644 --- a/java/java-psi-api/src/com/intellij/psi/infos/CandidateInfo.java +++ b/java/java-psi-api/src/com/intellij/psi/infos/CandidateInfo.java @@ -71,22 +71,27 @@ public class CandidateInfo implements JavaResolveResult { myAccessProblem = candidate.myAccessProblem; } + @Override public boolean isValidResult(){ return isAccessible() && isStaticsScopeCorrect(); } + @Override public boolean isPackagePrefixPackageReference() { return myPackagePrefixPackageReference; } + @Override public PsiElement getElement(){ return myCandidate; } + @Override public PsiSubstitutor getSubstitutor(){ return mySubstitutor; } + @Override public boolean isAccessible(){ if(myAccessProblem == null){ boolean accessProblem = false; @@ -100,10 +105,12 @@ public class CandidateInfo implements JavaResolveResult { return !myAccessProblem.booleanValue(); } + @Override public boolean isStaticsScopeCorrect(){ return !myStaticsProblem; } + @Override public PsiElement getCurrentFileResolveScope() { return myCurrentFileResolveContext; } diff --git a/java/java-psi-api/src/com/intellij/psi/infos/ClassCandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/ClassCandidateInfo.java index bc42c1d2f36c..97876b21d170 100644 --- a/java/java-psi-api/src/com/intellij/psi/infos/ClassCandidateInfo.java +++ b/java/java-psi-api/src/com/intellij/psi/infos/ClassCandidateInfo.java @@ -35,6 +35,7 @@ public class ClassCandidateInfo extends CandidateInfo{ super(candidate, substitutor, false, false); } + @Override public PsiClass getElement(){ return (PsiClass)super.getElement(); } diff --git a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java index aacbc93a047b..38d55b3c82fd 100644 --- a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java +++ b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java @@ -81,6 +81,7 @@ public class MethodCandidateInfo extends CandidateInfo{ return myApplicabilityLevel; } + @Override public PsiSubstitutor getSubstitutor() { if (myCalcedSubstitutor == null) { PsiSubstitutor incompleteSubstitutor = super.getSubstitutor(); @@ -108,10 +109,12 @@ public class MethodCandidateInfo extends CandidateInfo{ return GenericsUtil.isTypeArgumentsApplicable(typeParams, substitutor, myArgumentList.getParent()); } + @Override public boolean isValidResult(){ return super.isValidResult() && isApplicable(); } + @Override public PsiMethod getElement(){ return (PsiMethod)super.getElement(); } diff --git a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocComment.java b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocComment.java index cd0b9b7c0bad..081d0ce90206 100644 --- a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocComment.java +++ b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocComment.java @@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface PsiDocComment extends PsiComment, PsiDocCommentBase { + @Override @Nullable PsiDocCommentOwner getOwner(); diff --git a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocTag.java b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocTag.java index 35ae342384e9..f2dfe9165036 100644 --- a/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocTag.java +++ b/java/java-psi-api/src/com/intellij/psi/javadoc/PsiDocTag.java @@ -27,6 +27,7 @@ public interface PsiDocTag extends PsiElement, PsiNamedElement{ PsiDocComment getContainingComment(); PsiElement getNameElement(); + @Override @NonNls @NotNull String getName(); PsiElement[] getDataElements(); @Nullable PsiDocTagValue getValueElement(); diff --git a/java/java-psi-api/src/com/intellij/psi/search/PackageScope.java b/java/java-psi-api/src/com/intellij/psi/search/PackageScope.java index dcfe5eea194c..e0571b284682 100644 --- a/java/java-psi-api/src/com/intellij/psi/search/PackageScope.java +++ b/java/java-psi-api/src/com/intellij/psi/search/PackageScope.java @@ -46,6 +46,7 @@ public class PackageScope extends GlobalSearchScope { myIncludeLibraries = includeLibraries; } + @Override public boolean contains(VirtualFile file) { for (VirtualFile scopeDir : myDirs) { boolean inDir = myIncludeSubpackages @@ -56,14 +57,17 @@ public class PackageScope extends GlobalSearchScope { return false; } + @Override public int compare(VirtualFile file1, VirtualFile file2) { return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return true; } + @Override public boolean isSearchInLibraries() { return myIncludeLibraries; } diff --git a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java index 67abbb2dd995..25c8b6570c6b 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java +++ b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureBase.java @@ -56,11 +56,13 @@ public abstract class MethodSignatureBase implements MethodSignature { myTypeParameters = typeParameterList == null ? PsiTypeParameter.EMPTY_ARRAY : typeParameterList.getTypeParameters(); } + @Override @NotNull public PsiType[] getParameterTypes() { return myParameterTypes; } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return myTypeParameters; @@ -98,6 +100,7 @@ public abstract class MethodSignatureBase implements MethodSignature { return s; } + @Override @NotNull public PsiSubstitutor getSubstitutor() { return mySubstitutor; diff --git a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java index 5a97be03028e..08e228cfa94e 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/MethodSignatureUtil.java @@ -33,10 +33,12 @@ public class MethodSignatureUtil { public static final TObjectHashingStrategy METHOD_BASED_HASHING_STRATEGY = new TObjectHashingStrategy() { + @Override public int computeHashCode(final MethodSignatureBackedByPsiMethod signature) { return signature.getMethod().hashCode(); } + @Override public boolean equals(final MethodSignatureBackedByPsiMethod s1, final MethodSignatureBackedByPsiMethod s2) { return s1.getMethod().equals(s2.getMethod()); } @@ -44,6 +46,7 @@ public class MethodSignatureUtil { public static final TObjectHashingStrategy METHOD_PARAMETERS_ERASURE_EQUALITY = new TObjectHashingStrategy() { + @Override public int computeHashCode(final MethodSignature signature) { int result = signature.isConstructor() ? 0 : signature.getName().hashCode(); @@ -57,6 +60,7 @@ public class MethodSignatureUtil { return result; } + @Override public boolean equals(MethodSignature method1, MethodSignature method2) { if (method1.isConstructor() != method2.isConstructor()) return false; if (!method1.isConstructor() && !method1.getName().equals(method2.getName())) return false; diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiMethodUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiMethodUtil.java index faf16efbbe7a..8d720b662b99 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiMethodUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiMethodUtil.java @@ -30,6 +30,7 @@ public class PsiMethodUtil { private static final JavaMainMethodProvider[] myProviders = Extensions.getExtensions(JavaMainMethodProvider.EP_NAME); public static final Condition MAIN_CLASS = new Condition() { + @Override public boolean value(final PsiClass psiClass) { if (psiClass instanceof PsiAnonymousClass) return false; if (psiClass.isInterface()) return false; diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index 742b140f1e93..ab6c0c954594 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -687,11 +687,13 @@ public final class PsiUtil extends PsiUtilCore { myIndex = myCurrentParams.length - 1; } + @Override public boolean hasNext() { nextElement(); return myNext != null; } + @Override public PsiTypeParameter next() { nextElement(); if (myNext == null) throw new NoSuchElementException(); @@ -699,6 +701,7 @@ public final class PsiUtil extends PsiUtilCore { return myNext; } + @Override public void remove() { throw new UnsupportedOperationException("TypeParameterIterator.remove"); } @@ -731,6 +734,7 @@ public final class PsiUtil extends PsiUtilCore { } public static Iterable typeParametersIterable(@NotNull final PsiTypeParameterListOwner owner) { return new Iterable() { + @Override public Iterator iterator() { return typeParametersIterator(owner); } @@ -879,6 +883,7 @@ public final class PsiUtil extends PsiUtilCore { } public static final Comparator BY_POSITION = new Comparator() { + @Override public int compare(PsiElement o1, PsiElement o2) { return compareElementsByPosition(o1, o2); } diff --git a/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java b/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java index 9897de38240e..ff5b3d2e4616 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java @@ -64,10 +64,12 @@ public class TypeConversionUtil { private static final int STRING_RANK = 100; private static final int MAX_NUMERIC_RANK = DOUBLE_RANK; public static final PsiType NULL_TYPE = new PsiEllipsisType(PsiType.NULL){ + @Override public boolean isValid() { return true; } + @Override @NonNls public String getPresentableText() { return "FAKE TYPE"; @@ -790,12 +792,14 @@ public class TypeConversionUtil { CachedValue> boxedHolderTypes = project.getUserData(POSSIBLE_BOXED_HOLDER_TYPES); if (boxedHolderTypes == null) { project.putUserData(POSSIBLE_BOXED_HOLDER_TYPES, boxedHolderTypes = CachedValuesManager.getManager(manager.getProject()).createCachedValue(new CachedValueProvider>() { + @Override public Result> compute() { final JavaPsiFacade facade = JavaPsiFacade.getInstance(project); final Set set = new THashSet(); for (final String qname : PsiPrimitiveType.getAllBoxedTypeNames()) { final PsiClass boxedClass = facade.findClass(qname, GlobalSearchScope.allScope(project)); InheritanceUtil.processSupers(boxedClass, true, new Processor() { + @Override public boolean process(PsiClass psiClass) { ContainerUtil.addIfNotNull(psiClass.getQualifiedName(), set); return true; @@ -1343,36 +1347,43 @@ public class TypeConversionUtil { private static final Caster[][] caster = { { new Caster() { + @Override public Object cast(Object operand) { return operand; } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Number)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Number) operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf(((Number)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf(((Number)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Number) operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Number) operand).intValue()); } @@ -1381,36 +1392,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Short)operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf(((Short)operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Short) operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf(((Short)operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf(((Short)operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Short) operand).shortValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Short) operand).shortValue()); } @@ -1419,36 +1437,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Character)operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Character)operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character(((Character) operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf(((Character)operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf(((Character)operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Character) operand).charValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Character) operand).charValue()); } @@ -1457,36 +1482,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Integer)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Integer)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Integer) operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf(((Integer)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf(((Integer)operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Integer) operand).intValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Integer) operand).intValue()); } @@ -1495,36 +1527,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Long)operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Long)operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Long) operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf((int)((Long)operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf(((Long)operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Long) operand).longValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Long) operand).longValue()); } @@ -1533,36 +1572,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Float)operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Float)operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Float) operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf((int)((Float)operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf((long)((Float)operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Float) operand).floatValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Float) operand).floatValue()); } @@ -1571,36 +1617,43 @@ public class TypeConversionUtil { , { new Caster() { + @Override public Object cast(Object operand) { return Byte.valueOf((byte)((Double)operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Short.valueOf((short)((Double)operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Character((char) ((Double) operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Integer.valueOf((int)((Double)operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return Long.valueOf((long)((Double)operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Float(((Double) operand).doubleValue()); } } , new Caster() { + @Override public Object cast(Object operand) { return new Double(((Double) operand).doubleValue()); } diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/ExceptionUtil.java b/java/java-psi-impl/src/com/intellij/codeInsight/ExceptionUtil.java index e41108184437..22e98032eb8a 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/ExceptionUtil.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/ExceptionUtil.java @@ -337,6 +337,7 @@ public class ExceptionUtil { final JavaResolveResult result = methodCall.resolveMethodGenerics(); final PsiMethod method = (PsiMethod)result.getElement(); final PsiSubstitutor substitutor = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiSubstitutor compute() { return result.getSubstitutor(); } @@ -447,6 +448,7 @@ public class ExceptionUtil { if (aClass == null) return false; final PsiClass runtimeExceptionClass = ApplicationManager.getApplication().runReadAction( new NullableComputable() { + @Override public PsiClass compute() { return JavaPsiFacade.getInstance(aClass.getProject()).findClass("java.lang.RuntimeException", searchScope); } @@ -459,6 +461,7 @@ public class ExceptionUtil { final PsiClass errorClass = ApplicationManager.getApplication().runReadAction( new NullableComputable() { + @Override public PsiClass compute() { return JavaPsiFacade.getInstance(aClass.getProject()).findClass("java.lang.Error", searchScope); } diff --git a/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaClassFileType.java b/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaClassFileType.java index 7efb0ee267b3..b2770da3ea50 100644 --- a/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaClassFileType.java +++ b/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaClassFileType.java @@ -39,33 +39,40 @@ public class JavaClassFileType implements FileType { private JavaClassFileType() { } + @Override @NotNull public String getName() { return "CLASS"; } + @Override @NotNull public String getDescription() { return IdeBundle.message("filetype.description.class"); } + @Override @NotNull public String getDefaultExtension() { return "class"; } + @Override public Icon getIcon() { return ICON.getValue(); } + @Override public boolean isBinary() { return true; } + @Override public boolean isReadOnly() { return false; } + @Override public String getCharset(@NotNull VirtualFile file, final byte[] content) { return null; } diff --git a/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaFileType.java b/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaFileType.java index 68e7c31f8fbe..b4433553f6c7 100644 --- a/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaFileType.java +++ b/java/java-psi-impl/src/com/intellij/ide/highlighter/JavaFileType.java @@ -34,25 +34,30 @@ public class JavaFileType extends LanguageFileType { super(JavaLanguage.INSTANCE); } + @Override @NotNull public String getName() { return "JAVA"; } + @Override @NotNull public String getDescription() { return IdeBundle.message("filetype.description.java"); } + @Override @NotNull public String getDefaultExtension() { return DEFAULT_EXTENSION; } + @Override public Icon getIcon() { return ICON; } + @Override public boolean isJVMDebuggingSupported() { return true; } diff --git a/java/java-psi-impl/src/com/intellij/lang/java/JavaParserDefinition.java b/java/java-psi-impl/src/com/intellij/lang/java/JavaParserDefinition.java index 8460ff7e96ac..fa2957692e26 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/JavaParserDefinition.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/JavaParserDefinition.java @@ -39,6 +39,7 @@ import org.jetbrains.annotations.NotNull; * @author max */ public class JavaParserDefinition implements ParserDefinition { + @Override @NotNull public Lexer createLexer(final Project project) { final LanguageLevel languageLevel = LanguageLevelProjectExtension.getInstance(project).getLanguageLevel(); @@ -50,30 +51,36 @@ public class JavaParserDefinition implements ParserDefinition { return new JavaLexer(languageLevel); } + @Override public IFileElementType getFileNodeType() { return JavaStubElementTypes.JAVA_FILE; } + @Override @NotNull public TokenSet getWhitespaceTokens() { return ElementType.JAVA_WHITESPACE_BIT_SET; } + @Override @NotNull public TokenSet getCommentTokens() { return ElementType.JAVA_COMMENT_BIT_SET; } + @Override @NotNull public TokenSet getStringLiteralElements() { return TokenSet.create(JavaElementType.LITERAL_EXPRESSION); } + @Override @NotNull public PsiParser createParser(final Project project) { throw new UnsupportedOperationException("Should not be called directly"); } + @Override @NotNull public PsiElement createElement(final ASTNode node) { final IElementType type = node.getElementType(); @@ -84,10 +91,12 @@ public class JavaParserDefinition implements ParserDefinition { throw new IllegalStateException("Incorrect node for JavaParserDefinition: " + node + " (" + type + ")"); } + @Override public PsiFile createFile(final FileViewProvider viewProvider) { return new PsiJavaFileImpl(viewProvider); } + @Override public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) { final PsiFile containingFile = left.getTreeParent().getPsi().getContainingFile(); final Lexer lexer; diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java index d41de50bc581..cd3df8f7d0ee 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java @@ -38,6 +38,7 @@ public class FileParser { TokenSet.create(JavaTokenType.CLASS_KEYWORD, JavaTokenType.INTERFACE_KEYWORD, JavaTokenType.ENUM_KEYWORD, JavaTokenType.AT)); private static final JavaParserUtil.MarkingParserWrapper TOP_LEVEL_DECLARATION_PARSER = new JavaParserUtil.MarkingParserWrapper() { + @Override public PsiBuilder.Marker parse(final PsiBuilder builder) { return DeclarationParser.parse(builder, DeclarationParser.Context.FILE); } diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java index 12e5fcd99bf4..eec54e9f0b4f 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java @@ -56,6 +56,7 @@ public class JavaParserUtil { } public static final WhitespacesAndCommentsBinder GREEDY_RIGHT_EDGE_PROCESSOR = new WhitespacesAndCommentsBinder() { + @Override public int getEdgePosition(final List tokens, final boolean atStreamEdge, final TokenTextGetter getter) { return tokens.size(); } @@ -68,6 +69,7 @@ public class JavaParserUtil { this.myAfterEmptyImport = afterImport; } + @Override public int getEdgePosition(final List tokens, final boolean atStreamEdge, final TokenTextGetter getter) { if (tokens.size() == 0) return 0; @@ -99,6 +101,7 @@ public class JavaParserUtil { } private static class TrailingWhitespacesAndCommentsBinder implements WhitespacesAndCommentsBinder { + @Override public int getEdgePosition(final List tokens, final boolean atStreamEdge, final TokenTextGetter getter) { if (tokens.size() == 0) return 0; diff --git a/java/java-psi-impl/src/com/intellij/lexer/JavaLexer.java b/java/java-psi-impl/src/com/intellij/lexer/JavaLexer.java index 83e8222d956f..8ee824c6a785 100644 --- a/java/java-psi-impl/src/com/intellij/lexer/JavaLexer.java +++ b/java/java-psi-impl/src/com/intellij/lexer/JavaLexer.java @@ -170,6 +170,7 @@ public class JavaLexer extends LexerBase { private static final HashTable ourTableWithAssertAndJDK15 = new HashTable(true, true); private static final HashTable ourTableWithJDK15 = new HashTable(false, true); + @Override public final void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferIndex = startOffset; @@ -179,26 +180,31 @@ public class JavaLexer extends LexerBase { myFlexLexer.reset(myBuffer, startOffset, endOffset, 0); } + @Override public int getState() { return 0; } + @Override public final IElementType getTokenType() { locateToken(); return myTokenType; } + @Override public final int getTokenStart() { return myBufferIndex; } + @Override public final int getTokenEnd() { locateToken(); return myTokenEndOffset; } + @Override public final void advance() { locateToken(); myTokenType = null; @@ -404,10 +410,12 @@ public class JavaLexer extends LexerBase { return pos; } + @Override public CharSequence getBufferSequence() { return myBuffer; } + @Override public final int getBufferEnd() { return myBufferEndOffset; } diff --git a/java/java-psi-impl/src/com/intellij/psi/Bottom.java b/java/java-psi-impl/src/com/intellij/psi/Bottom.java index 0781bcbec13b..358ee5d3260a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/Bottom.java +++ b/java/java-psi-impl/src/com/intellij/psi/Bottom.java @@ -28,22 +28,27 @@ public class Bottom extends PsiType { super(PsiAnnotation.EMPTY_ARRAY); } + @Override public String getPresentableText() { return "_"; } + @Override public String getCanonicalText() { return "_"; } + @Override public String getInternalCanonicalText() { return getCanonicalText(); } + @Override public boolean isValid() { return true; } + @Override public boolean equalsToText(String text) { return text.equals("_"); } @@ -56,6 +61,7 @@ public class Bottom extends PsiType { return false; } + @Override public A accept(PsiTypeVisitor visitor) { if (visitor instanceof PsiTypeVisitorEx) { return ((PsiTypeVisitorEx)visitor).visitBottom(this); @@ -63,11 +69,13 @@ public class Bottom extends PsiType { return visitor.visitType(this); } + @Override @NotNull public PsiType[] getSuperTypes() { throw new UnsupportedOperationException(); } + @Override public GlobalSearchScope getResolveScope() { return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProviderFactory.java b/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProviderFactory.java index 6463ae5c495d..bb7fd8e6d9de 100644 --- a/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProviderFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/ClassFileViewProviderFactory.java @@ -25,6 +25,7 @@ import com.intellij.openapi.fileTypes.ContentBasedFileSubstitutor; import com.intellij.openapi.vfs.VirtualFile; public class ClassFileViewProviderFactory implements FileViewProviderFactory{ + @Override public FileViewProvider createFileViewProvider(final VirtualFile file, final Language language, final PsiManager manager, final boolean physical) { // Define language for compiled file final ContentBasedFileSubstitutor[] processors = Extensions.getExtensions(ContentBasedFileSubstitutor.EP_NAME); diff --git a/java/java-psi-impl/src/com/intellij/psi/PsiTypeVariable.java b/java/java-psi-impl/src/com/intellij/psi/PsiTypeVariable.java index b37304d187f9..1f543c8beaaa 100644 --- a/java/java-psi-impl/src/com/intellij/psi/PsiTypeVariable.java +++ b/java/java-psi-impl/src/com/intellij/psi/PsiTypeVariable.java @@ -26,6 +26,7 @@ public abstract class PsiTypeVariable extends PsiType { public abstract int getIndex(); public abstract boolean isValidInContext (PsiType type); + @Override public A accept(PsiTypeVisitor visitor) { if (visitor instanceof PsiTypeVisitorEx) { return ((PsiTypeVisitorEx)visitor).visitTypeVariable(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/BranchingInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/BranchingInstruction.java index f49d15821a75..1aada6d75c85 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/BranchingInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/BranchingInstruction.java @@ -34,6 +34,7 @@ public abstract class BranchingInstruction extends InstructionBase { this.role = role; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitBranchingInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CallInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CallInstruction.java index 02add586fe5e..c21114e12b65 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CallInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CallInstruction.java @@ -40,6 +40,7 @@ public class CallInstruction extends GoToInstruction { } } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitCallInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CommentInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CommentInstruction.java index 0a0e46269cbc..9808c23be2a2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CommentInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CommentInstruction.java @@ -26,6 +26,7 @@ public class CommentInstruction extends SimpleInstruction { return "; " + myText; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitCommentInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CompositeInstructionClientVisitor.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CompositeInstructionClientVisitor.java index 5a3f8df82ff2..1273ef20ef04 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/CompositeInstructionClientVisitor.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/CompositeInstructionClientVisitor.java @@ -26,6 +26,7 @@ class CompositeInstructionClientVisitor extends InstructionClientVisitor getInstructions() { return myInstructions; } + @Override public int getSize() { return myInstructions.size(); } + @Override public int getStartOffset(@NotNull PsiElement element) { int value = myElementToStartOffsetMap.get(element); if (value == 0){ @@ -80,6 +83,7 @@ class ControlFlowImpl implements ControlFlow { return value; } + @Override public int getEndOffset(@NotNull PsiElement element) { int value = myElementToEndOffsetMap.get(element); if (value == 0){ @@ -88,10 +92,12 @@ class ControlFlowImpl implements ControlFlow { return value; } + @Override public PsiElement getElement(int offset) { return myElementsForInstructions.get(offset); } + @Override public boolean isConstantConditionOccurred() { return myConstantConditionOccurred; } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowSubRange.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowSubRange.java index 320d1f537cdd..3dd6ae0b658e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowSubRange.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowSubRange.java @@ -38,6 +38,7 @@ public class ControlFlowSubRange implements ControlFlow { myEnd = end; } + @Override @NotNull public List getInstructions() { if (myInstructions == null) { @@ -73,24 +74,29 @@ public class ControlFlowSubRange implements ControlFlow { return offset; } + @Override public int getSize() { return myEnd - myStart; } + @Override public int getStartOffset(@NotNull PsiElement element) { return patchOffset(myControlFlow.getStartOffset(element)); //return (myControlFlow.getStartOffset(element)); } + @Override public int getEndOffset(@NotNull PsiElement element) { return patchOffset(myControlFlow.getEndOffset(element)); //return myControlFlow.getEndOffset(element); } + @Override public PsiElement getElement(int offset) { return myControlFlow.getElement(myStart + offset); } + @Override public boolean isConstantConditionOccurred() { return myControlFlow.isConstantConditionOccurred(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java index a7c37e5c0381..b9938c174104 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java @@ -178,6 +178,7 @@ public class ControlFlowUtil { neededBelow[offset] |= needed; } + @Override public Boolean getResult() { return neededBelow[offset]; } @@ -295,6 +296,7 @@ public class ControlFlowUtil { } } + @Override public Object getResult() { return null; } @@ -501,6 +503,7 @@ public class ControlFlowUtil { myVisitor = visitor; } + @Override public void visitGoToInstruction(final GoToInstruction instruction, final int offset, final int nextOffset) { super.visitGoToInstruction(instruction, offset, nextOffset); @@ -555,6 +558,7 @@ public class ControlFlowUtil { isNormalCompletion[offset] |= isNormal; } + @Override public Boolean getResult() { return !isNormalCompletion[0]; } @@ -629,6 +633,7 @@ public class ControlFlowUtil { isNormalCompletion[offset] |= isNormal; } + @Override public Boolean getResult() { return !isNormalCompletion[startOffset]; } @@ -716,6 +721,7 @@ public class ControlFlowUtil { checkInstruction(offset, nextOffset, false); } + @Override public Boolean getResult() { return canCompleteNormally[startOffset]; } @@ -740,6 +746,7 @@ public class ControlFlowUtil { myFlow = flow; } + @Override public PsiElement getResult() { for (int i = 0; i < processedInstructions.length; i++) { if (!processedInstructions[i]) { @@ -844,6 +851,7 @@ public class ControlFlowUtil { maybeUnassigned[offset] |= unassigned; } + @Override public Boolean getResult() { return !maybeUnassigned[0]; } @@ -887,6 +895,7 @@ public class ControlFlowUtil { maybeAssigned[offset] |= assigned; } + @Override public Boolean getResult() { return !maybeAssigned[0]; } @@ -919,6 +928,7 @@ public class ControlFlowUtil { } } + @Override public Integer getResult() { int minOffset = flow.getSize(); int maxExitPoints = 0; @@ -1209,6 +1219,7 @@ public class ControlFlowUtil { } } + @Override public List getResult() { List problemsFound = new ArrayList(); CopyOnWriteList topReadVariables = readVariables[0]; @@ -1254,6 +1265,7 @@ public class ControlFlowUtil { normalCompletion[offset] |= normal; } + @Override public Integer getResult() { return (returnCalled[offset] ? RETURN_COMPLETION_REASON : 0) | (normalCompletion[offset] ? NORMAL_COMPLETION_REASON : 0); } @@ -1342,6 +1354,7 @@ public class ControlFlowUtil { merge(offset, writeTwiceVars, writtenTwiceVariables); } + @Override @NotNull public Collection getResult() { CopyOnWriteList writtenTwiceVariable = writtenTwiceVariables[myStartOffset]; @@ -1361,6 +1374,7 @@ public class ControlFlowUtil { if (nextOffset == instructionOffset) reachable = true; } + @Override public Boolean getResult() { return reachable; } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/EmptyInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/EmptyInstruction.java index 16bed781bbf5..139223982a17 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/EmptyInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/EmptyInstruction.java @@ -25,6 +25,7 @@ public class EmptyInstruction extends SimpleInstruction { return "EMPTY"; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitEmptyInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/GoToInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/GoToInstruction.java index 7f89b88a7990..a353c43ab991 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/GoToInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/GoToInstruction.java @@ -39,13 +39,16 @@ public class GoToInstruction extends BranchingInstruction { return "GOTO " + sRole + " " + offset + (isReturn ? " RETURN" : ""); } + @Override public int nNext() { return 1; } + @Override public int getNext(int index, int no) { LOG.assertTrue(no == 0); return offset; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitGoToInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/InstructionBase.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/InstructionBase.java index 320e1820516d..5cea388e6782 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/InstructionBase.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/InstructionBase.java @@ -22,6 +22,7 @@ package com.intellij.psi.controlFlow; import org.jetbrains.annotations.NonNls; public abstract class InstructionBase implements Instruction, Cloneable{ + @Override public Instruction clone() { try { return (Instruction)super.clone(); diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java index 121cd08945a0..e544aaee4908 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java @@ -32,6 +32,7 @@ public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPol private LocalsOrMyInstanceFieldsControlFlowPolicy() { } + @Override public PsiVariable getUsedVariable(PsiReferenceExpression refExpr) { PsiExpression qualifier = refExpr.getQualifierExpression(); if (qualifier == null || qualifier instanceof PsiThisExpression) { @@ -43,10 +44,12 @@ public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPol return null; } + @Override public boolean isParameterAccepted(PsiParameter psiParameter) { return true; } + @Override public boolean isLocalVariableAccepted(PsiLocalVariable psiVariable) { return true; } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReadVariableInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReadVariableInstruction.java index cee8ec020e17..8224a034d48a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReadVariableInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReadVariableInstruction.java @@ -28,6 +28,7 @@ public class ReadVariableInstruction extends SimpleInstruction { return "READ " + variable.getName(); } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitReadVariableInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReturnInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReturnInstruction.java index dec1f4e7741a..96f2ed9350f9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReturnInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ReturnInstruction.java @@ -76,8 +76,10 @@ public class ReturnInstruction extends GoToInstruction { } + @Override public int nNext() { return offset == 0 ? 3 : 1; } + @Override public int getNext(int index, int no) { if (offset == 0) switch (no) { @@ -97,6 +99,7 @@ public class ReturnInstruction extends GoToInstruction { } } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitReturnInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/SimpleInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/SimpleInstruction.java index a84a2cdc3743..7f280fef71ac 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/SimpleInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/SimpleInstruction.java @@ -24,13 +24,16 @@ import com.intellij.openapi.diagnostic.Logger; public abstract class SimpleInstruction extends InstructionBase { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.controlFlow.SimpleInstruction"); + @Override public int nNext() { return 1; } + @Override public int getNext(int index, int no) { LOG.assertTrue(no == 0); return index + 1; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitSimpleInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ThrowToInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ThrowToInstruction.java index 8cc07caba2d6..991168877ce0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ThrowToInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ThrowToInstruction.java @@ -30,13 +30,16 @@ public class ThrowToInstruction extends BranchingInstruction { return "THROW_TO " + offset; } + @Override public int nNext() { return 1; } + @Override public int getNext(int index, int no) { LOG.assertTrue(no == 0); return offset; } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitThrowToInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/WriteVariableInstruction.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/WriteVariableInstruction.java index 6e5dd3152729..c72e2aeab3a5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/WriteVariableInstruction.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/WriteVariableInstruction.java @@ -28,6 +28,7 @@ public class WriteVariableInstruction extends SimpleInstruction { return "WRITE " + variable.getName(); } + @Override public void accept(ControlFlowInstructionVisitor visitor, int offset, int nextOffset) { visitor.visitWriteVariableInstruction(this, offset, nextOffset); } diff --git a/java/java-psi-impl/src/com/intellij/psi/filters/ConstructorFilter.java b/java/java-psi-impl/src/com/intellij/psi/filters/ConstructorFilter.java index 3048793f09ba..2e79891bbfac 100644 --- a/java/java-psi-impl/src/com/intellij/psi/filters/ConstructorFilter.java +++ b/java/java-psi-impl/src/com/intellij/psi/filters/ConstructorFilter.java @@ -30,6 +30,7 @@ public class ConstructorFilter extends ClassFilter { super(PsiMethod.class); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof PsiMethod){ return ((PsiMethod)element).isConstructor(); diff --git a/java/java-psi-impl/src/com/intellij/psi/filters/classes/AnnotationTypeFilter.java b/java/java-psi-impl/src/com/intellij/psi/filters/classes/AnnotationTypeFilter.java index 722dd1f8c547..156773f4ee68 100644 --- a/java/java-psi-impl/src/com/intellij/psi/filters/classes/AnnotationTypeFilter.java +++ b/java/java-psi-impl/src/com/intellij/psi/filters/classes/AnnotationTypeFilter.java @@ -30,10 +30,12 @@ import com.intellij.util.ReflectionCache; public class AnnotationTypeFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return ReflectionCache.isAssignable(PsiClass.class, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ return element instanceof PsiClass && ((PsiClass)element).isAnnotationType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/filters/element/ModifierFilter.java b/java/java-psi-impl/src/com/intellij/psi/filters/element/ModifierFilter.java index 30d85ff89035..1600284574fd 100644 --- a/java/java-psi-impl/src/com/intellij/psi/filters/element/ModifierFilter.java +++ b/java/java-psi-impl/src/com/intellij/psi/filters/element/ModifierFilter.java @@ -56,6 +56,7 @@ public class ModifierFilter extends ClassFilter{ myModifierRestrictions.add(new ModifierRestriction(mod, hasToBe)); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element instanceof PsiModifierListOwner){ final PsiModifierList list = ((PsiModifierListOwner)element).getModifierList(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/ConstantExpressionVisitor.java b/java/java-psi-impl/src/com/intellij/psi/impl/ConstantExpressionVisitor.java index 60fadca3a733..5fd29c7805e8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/ConstantExpressionVisitor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/ConstantExpressionVisitor.java @@ -584,10 +584,12 @@ class ConstantExpressionVisitor extends JavaElementVisitor implements PsiConstan if (result instanceof Double && ((Double) result).isInfinite()) throw new ConstantEvaluationOverflowException(expression); } + @Override public Object computeExpression(final PsiExpression expression, final PsiConstantEvaluationHelper.AuxEvaluator auxEvaluator) { return JavaConstantExpressionEvaluator.computeConstantExpression(expression, myVisitedVars, myThrowExceptionOnOverflow, auxEvaluator); } + @Override public ConcurrentMap getCacheMap(final boolean overflow) { throw new AssertionError("should not be called"); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/ElementPresentationUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/ElementPresentationUtil.java index 056b2e044de9..305349986c5c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/ElementPresentationUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/ElementPresentationUtil.java @@ -110,6 +110,7 @@ public class ElementPresentationUtil implements PlatformIcons { CachedValue value = aClass.getUserData(CLASS_KIND_KEY); if (value == null) { value = CachedValuesManager.getManager(aClass.getProject()).createCachedValue(new CachedValueProvider() { + @Override public Result compute() { return Result.createSingleDependency(Integer.valueOf(getClassKindImpl(aClass)), aClass); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java index 25f6718202f6..04760c81e387 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java @@ -25,36 +25,44 @@ import java.util.Map; * @author dsl */ public final class EmptySubstitutorImpl extends EmptySubstitutor { + @Override public PsiType substitute(@NotNull PsiTypeParameter typeParameter){ return JavaPsiFacade.getInstance(typeParameter.getProject()).getElementFactory().createType(typeParameter); } + @Override public PsiType substitute(PsiType type){ return type; } + @Override public PsiType substituteWithBoundsPromotion(PsiTypeParameter typeParameter) { return JavaPsiFacade.getInstance(typeParameter.getProject()).getElementFactory().createType(typeParameter); } + @Override public PsiSubstitutor put(PsiTypeParameter classParameter, PsiType mapping){ return new PsiSubstitutorImpl(classParameter, mapping); } + @Override public PsiSubstitutor putAll(PsiClass parentClass, PsiType[] mappings){ if(!parentClass.hasTypeParameters()) return this; return new PsiSubstitutorImpl(parentClass, mappings); } + @Override public PsiSubstitutor putAll(PsiSubstitutor another) { return another; } + @Override @NotNull public Map getSubstitutionMap() { return Collections.emptyMap(); } + @Override public boolean isValid() { return true; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/JavaConstantExpressionEvaluator.java b/java/java-psi-impl/src/com/intellij/psi/impl/JavaConstantExpressionEvaluator.java index cc301c15aed3..674ccbe1f03f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/JavaConstantExpressionEvaluator.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/JavaConstantExpressionEvaluator.java @@ -43,10 +43,12 @@ public class JavaConstantExpressionEvaluator extends JavaRecursiveElementWalking private JavaConstantExpressionEvaluator(Set visitedVars, final boolean throwExceptionOnOverflow, final Project project, final PsiConstantEvaluationHelper.AuxEvaluator auxEvaluator) { myMapFactory = auxEvaluator != null ? new Factory>() { + @Override public ConcurrentMap create() { return auxEvaluator.getCacheMap(throwExceptionOnOverflow); } } : new Factory>() { + @Override public ConcurrentMap create() { final Key>> key = throwExceptionOnOverflow ? CONSTANT_VALUE_WITH_OVERFLOW_MAP_KEY : CONSTANT_VALUE_WO_OVERFLOW_MAP_KEY; @@ -80,6 +82,7 @@ public class JavaConstantExpressionEvaluator extends JavaRecursiveElementWalking } private static final CachedValueProvider> PROVIDER = new CachedValueProvider>() { + @Override public Result> compute() { ConcurrentMap value = new ConcurrentSoftHashMap(); return Result.create(value, PsiModificationTracker.MODIFICATION_COUNT); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java index ddc74b7ee2da..38482bda0310 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java @@ -78,6 +78,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { bus.connect().subscribe(PsiModificationTracker.TOPIC, new PsiModificationTracker.Listener() { private long lastTimeSeen = -1L; + @Override public void modificationCountChanged() { final long now = modificationTracker.getJavaStructureModificationCount(); if (lastTimeSeen != now) { @@ -95,10 +96,12 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { /** * @deprecated */ + @Override public PsiClass findClass(@NotNull String qualifiedName) { return findClass(qualifiedName, GlobalSearchScope.allScope(myProject)); } + @Override public PsiClass findClass(@NotNull final String qualifiedName, @NotNull GlobalSearchScope scope) { ProgressIndicatorProvider.checkCanceled(); // We hope this method is being called often enough to cancel daemon processes smoothly @@ -149,6 +152,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return foundClasses; } + @Override @NotNull public PsiClass[] findClasses(@NotNull String qualifiedName, @NotNull GlobalSearchScope scope) { if (DumbService.getInstance(getProject()).isDumb()) { @@ -165,11 +169,13 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return classes.toArray(new PsiClass[classes.size()]); } + @Override @NotNull public PsiConstantEvaluationHelper getConstantEvaluationHelper() { return myConstantEvaluationHelper; } + @Override public PsiPackage findPackage(@NotNull String qualifiedName) { PsiPackage aPackage = myPackageCache.get(qualifiedName); if (aPackage != null) { @@ -192,16 +198,19 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return null; } + @Override @NotNull public PsiJavaParserFacade getParserFacade() { return getElementFactory(); // TODO: lighter implementation which doesn't mark all the elements as generated. } + @Override @NotNull public PsiResolveHelper getResolveHelper() { return PsiResolveHelper.SERVICE.getInstance(myProject); } + @Override @NotNull public PsiNameHelper getNameHelper() { return myNameHelper; @@ -246,19 +255,23 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { } private class PsiElementFinderImpl extends PsiElementFinder implements DumbAware { + @Override public PsiClass findClass(@NotNull String qualifiedName, @NotNull GlobalSearchScope scope) { return myFileManager.findClass(qualifiedName, scope); } + @Override @NotNull public PsiClass[] findClasses(@NotNull String qualifiedName, @NotNull GlobalSearchScope scope) { return myFileManager.findClasses(qualifiedName, scope); } + @Override public PsiPackage findPackage(@NotNull String qualifiedName) { return myFileManager.findPackage(qualifiedName); } + @Override @NotNull public PsiPackage[] getSubPackages(@NotNull PsiPackage psiPackage, @NotNull GlobalSearchScope scope) { final Map packagesMap = new HashMap(); @@ -280,6 +293,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return packagesMap.values().toArray(new PsiPackage[packagesMap.size()]); } + @Override @NotNull public PsiClass[] getClasses(@NotNull PsiPackage psiPackage, @NotNull GlobalSearchScope scope) { List list = null; @@ -323,6 +337,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { public boolean processPackageDirectories(@NotNull PsiPackage psiPackage, @NotNull final GlobalSearchScope scope, final Processor consumer) { final PsiManager psiManager = PsiManager.getInstance(getProject()); PackageIndex.getInstance(getProject()).getDirsByPackageName(psiPackage.getQualifiedName(), false).forEach(new ReadActionProcessor() { + @Override public boolean processInReadAction(final VirtualFile dir) { if (!scope.contains(dir)) return true; PsiDirectory psiDir = psiManager.findDirectory(dir); @@ -335,6 +350,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { } + @Override public boolean isPartOfPackagePrefix(String packageName) { final Collection packagePrefixes = myFileManager.getNonTrivialPackagePrefixes(); for (final String subpackageName : packagePrefixes) { @@ -348,6 +364,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { subpackageName.startsWith(packageName) && subpackageName.charAt(packageName.length()) == '.'; } + @Override public boolean isInPackage(@NotNull PsiElement element, @NotNull PsiPackage aPackage) { final PsiFile file = FileContextUtil.getContextFile(element); if (file instanceof JavaDummyHolder) { @@ -360,6 +377,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return false; } + @Override public boolean arePackagesTheSame(@NotNull PsiElement element1, @NotNull PsiElement element2) { PsiFile file1 = FileContextUtil.getContextFile(element1); PsiFile file2 = FileContextUtil.getContextFile(element2); @@ -377,15 +395,18 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx { return Comparing.equal(package1, package2); } + @Override public Project getProject() { return myProject; } + @Override @NotNull public PsiElementFactory getElementFactory() { return PsiElementFactory.SERVICE.getInstance(myProject); } + @Override public void setAssertOnFileLoadingFilter(final VirtualFileFilter filter) { ((PsiManagerImpl)PsiManager.getInstance(myProject)).setAssertOnFileLoadingFilter(filter); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java index 0f27c0d8774b..e3296b33ccee 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiClassImplUtil.java @@ -198,6 +198,7 @@ public class PsiClassImplUtil { FilterScopeProcessor processor = new FilterScopeProcessor( new OrFilter(ElementClassFilter.METHOD, ElementClassFilter.FIELD, ElementClassFilter.CLASS)) { + @Override protected void add(PsiElement element, PsiSubstitutor substitutor) { if (element instanceof PsiMethod) { methods.add(new Pair((PsiMethod)element, substitutor)); @@ -287,6 +288,7 @@ public class PsiClassImplUtil { } private static final Function FULL_ICON_EVALUATOR = new NullableFunction() { + @Override public Icon fun(ClassIconRequest r) { if (!r.psiClass.isValid() || r.psiClass.getProject().isDisposed()) return null; @@ -386,6 +388,7 @@ public class PsiClassImplUtil { myClass = aClass; } + @Override public Result compute() { final Map, Map>>> map = buildAllMaps(myClass); return new Result(map, PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiConstantEvaluationHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiConstantEvaluationHelperImpl.java index 9c000845bede..bf04a8ec4181 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiConstantEvaluationHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiConstantEvaluationHelperImpl.java @@ -25,10 +25,12 @@ import java.util.Set; */ public class PsiConstantEvaluationHelperImpl extends PsiConstantEvaluationHelper { + @Override public Object computeConstantExpression(PsiElement expression) { return computeConstantExpression(expression, false); } + @Override public Object computeConstantExpression(PsiElement expression, boolean throwExceptionOnOverflow) { if (expression == null) return null; ConstantExpressionEvaluator expressionEvaluator = LanguageConstantExpressionEvaluator.INSTANCE.forLanguage(expression.getLanguage()); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiNameHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiNameHelperImpl.java index eb26d2c76837..1be15ef94706 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiNameHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiNameHelperImpl.java @@ -31,18 +31,22 @@ public class PsiNameHelperImpl extends PsiNameHelper { myLanguageLevelExtension = LanguageLevelProjectExtension.getInstance(manager.getProject()); } + @Override public boolean isIdentifier(@Nullable String text) { return isIdentifier(text, myLanguageLevelExtension.getLanguageLevel()); } + @Override public boolean isIdentifier(@Nullable String text, @NotNull LanguageLevel languageLevel) { return text != null && StringUtil.isJavaIdentifier(text) && !JavaLexer.isKeyword(text, languageLevel); } + @Override public boolean isKeyword(@Nullable String text) { return text != null && JavaLexer.isKeyword(text, myLanguageLevelExtension.getLanguageLevel()); } + @Override public boolean isQualifiedName(@Nullable String text) { if (text == null) return false; int index = 0; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java index a11cc46a533b..2c67d7eff8bb 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java @@ -69,6 +69,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { putAllInternal(parentClass, mappings); } + @Override public PsiType substitute(@NotNull PsiTypeParameter typeParameter) { if (containsInMap(typeParameter)) { return getFromMap(typeParameter); @@ -90,12 +91,14 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { return mySubstitutionMap.get(typeParameter); } + @Override public PsiType substitute(PsiType type) { if (type == null) return null; PsiType substituted = type.accept(myAddingBoundsSubstitutionVisitor); return correctExternalSubstitution(substituted, type); } + @Override public PsiType substituteWithBoundsPromotion(PsiTypeParameter typeParameter) { return addBounds(substitute(typeParameter), typeParameter); } @@ -226,6 +229,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { private final SubstituteKind myKind; + @Override public PsiType visitClassType(PsiClassType classType) { final PsiClassType.ClassResolveResult resolveResult = classType.resolveGenerics(); final PsiClass aClass = resolveResult.getElement(); @@ -328,14 +332,17 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { if (substituted == null) { return original.accept(new PsiTypeVisitor() { + @Override public PsiType visitArrayType(PsiArrayType arrayType) { return new PsiArrayType(arrayType.getComponentType().accept(this)); } + @Override public PsiType visitEllipsisType(PsiEllipsisType ellipsisType) { return new PsiEllipsisType(ellipsisType.getComponentType().accept(this)); } + @Override public PsiType visitClassType(PsiClassType classType) { PsiClass aClass = classType.resolve(); if (aClass != null) { @@ -351,6 +358,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { } } + @Override public PsiType visitType(PsiType type) { LOG.error(type.getInternalCanonicalText()); return null; @@ -365,6 +373,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { return new PsiSubstitutorImpl(mySubstitutionMap); } + @Override public PsiSubstitutor put(@NotNull PsiTypeParameter typeParameter, PsiType mapping) { PsiSubstitutorImpl ret = clone(); ret.mySubstitutionMap.put(typeParameter, mapping); @@ -386,12 +395,14 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { } } + @Override public PsiSubstitutor putAll(@NotNull PsiClass parentClass, PsiType[] mappings) { PsiSubstitutorImpl substitutor = clone(); substitutor.putAllInternal(parentClass, mappings); return substitutor; } + @Override public PsiSubstitutor putAll(PsiSubstitutor another) { if (another instanceof EmptySubstitutorImpl) return this; final PsiSubstitutorImpl anotherImpl = (PsiSubstitutorImpl)another; @@ -434,6 +445,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { return new PsiSubstitutorImpl(map); } + @Override public boolean isValid() { Collection substitutorValues = mySubstitutionMap.values(); for (PsiType type : substitutorValues) { @@ -442,6 +454,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor { return true; } + @Override @NotNull public Map getSubstitutionMap() { return Collections.unmodifiableMap(mySubstitutionMap); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java index a45870ba8892..20c54525a333 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java @@ -116,10 +116,12 @@ public class PsiSuperMethodImplUtil { final Map> sameParameterErasureMethods = new THashMap>(MethodSignatureUtil.METHOD_PARAMETERS_ERASURE_EQUALITY); Map map = new THashMap(new TObjectHashingStrategy() { + @Override public int computeHashCode(MethodSignature signature) { return MethodSignatureUtil.METHOD_PARAMETERS_ERASURE_EQUALITY.computeHashCode(signature); } + @Override public boolean equals(MethodSignature o1, MethodSignature o2) { if (!MethodSignatureUtil.METHOD_PARAMETERS_ERASURE_EQUALITY.equals(o1, o2)) return false; List list = sameParameterErasureMethods.get(o1); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java index 3e5c1be661c0..887b13b8d747 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java @@ -26,6 +26,7 @@ import com.intellij.util.cls.ClsFormatException; * @author max */ public class ClassFileStubBuilder implements BinaryFileStubBuilder { + @Override public boolean acceptsFile(final VirtualFile file) { return !isInner(file.getNameWithoutExtension(), new ParentDirectory(file)); } @@ -43,6 +44,7 @@ public class ClassFileStubBuilder implements BinaryFileStubBuilder { return endIndex > 0 && directory.contains(name.substring(0, endIndex)); } + @Override public StubElement buildStubTree(final VirtualFile file, final byte[] content, final Project project) { try { return ClsStubBuilder.build(file, content); @@ -52,6 +54,7 @@ public class ClassFileStubBuilder implements BinaryFileStubBuilder { } } + @Override public int getStubVersion() { return JavaFileElementType.STUB_VERSION + 3; } @@ -70,6 +73,7 @@ public class ClassFileStubBuilder implements BinaryFileStubBuilder { myExtension = file.getExtension(); } + @Override public boolean contains(final String name) { final String fullName = myExtension == null ? name : name + "." + myExtension; return myDirectory != null && myDirectory.findChild(fullName) != null; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsAnnotationImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsAnnotationImpl.java index 9cde504521f9..2591124bb0a1 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsAnnotationImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsAnnotationImpl.java @@ -44,11 +44,13 @@ public class ClsAnnotationImpl extends ClsRepositoryPsiElement T setDeclaredAttributeValue(@NonNls String attributeName, T value) { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public String getText() { final StringBuilder buffer = new StringBuilder(); appendMirrorText(0, buffer); return buffer.toString(); } + @Override public PsiMetaData getMetaData() { return MetaRegistry.getMetaBase(this); } @@ -131,6 +143,7 @@ public class ClsAnnotationImpl extends ClsRepositoryPsiElement T setDeclaredAttributeValue(@NonNls String attributeName, T value) { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public String getText() { final StringBuilder buffer = new StringBuilder(); appendMirrorText(0, buffer); return buffer.toString(); } + @Override public PsiMetaData getMetaData() { return MetaRegistry.getMetaBase(this); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsArrayInitializerMemberValueImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsArrayInitializerMemberValueImpl.java index 363d02b1fa73..2e24c8a6ff81 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsArrayInitializerMemberValueImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsArrayInitializerMemberValueImpl.java @@ -34,12 +34,14 @@ public class ClsArrayInitializerMemberValueImpl extends ClsElementImpl implement myInitializers = initializers; } + @Override public String getText() { final StringBuilder buffer = new StringBuilder(); appendMirrorText(0, buffer); return buffer.toString(); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append('{'); for (int i = 0; i < myInitializers.length; i++) { @@ -49,6 +51,7 @@ public class ClsArrayInitializerMemberValueImpl extends ClsElementImpl implement buffer.append('}'); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -61,15 +64,18 @@ public class ClsArrayInitializerMemberValueImpl extends ClsElementImpl implement } } + @Override @NotNull public PsiElement[] getChildren() { return myInitializers; } + @Override public PsiElement getParent() { return myParent; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnnotationArrayInitializer(this); @@ -79,6 +85,7 @@ public class ClsArrayInitializerMemberValueImpl extends ClsElementImpl implement } } + @Override @NotNull public PsiAnnotationMemberValue[] getInitializers() { return myInitializers; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java index 84e2f2b7a52b..33375329898a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java @@ -59,6 +59,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple myNameIdentifier = new ClsIdentifierImpl(this, getShortName()); } + @Override @NotNull public PsiElement[] getChildren() { PsiIdentifier name = getNameIdentifier(); @@ -101,6 +102,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return children; } + @Override @NotNull public PsiIdentifier getNameIdentifier() { return myNameIdentifier; @@ -115,165 +117,199 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return name; } + @Override @NotNull public String getName() { return getStub().getName(); } + @Override @NotNull public PsiTypeParameterList getTypeParameterList() { return getStub().findChildStubByType(JavaStubElementTypes.TYPE_PARAMETER_LIST).getPsi(); } + @Override public boolean hasTypeParameters() { return PsiImplUtil.hasTypeParameters(this); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public String getQualifiedName() { return getStub().getQualifiedName(); } + @Override @NotNull public PsiModifierList getModifierList() { return getStub().findChildStubByType(JavaStubElementTypes.MODIFIER_LIST).getPsi(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override @NotNull public PsiReferenceList getExtendsList() { return getStub().findChildStubByType(JavaStubElementTypes.EXTENDS_LIST).getPsi(); } + @Override @NotNull public PsiReferenceList getImplementsList() { return getStub().findChildStubByType(JavaStubElementTypes.IMPLEMENTS_LIST).getPsi(); } + @Override @NotNull public PsiClassType[] getExtendsListTypes() { return PsiClassImplUtil.getExtendsListTypes(this); } + @Override @NotNull public PsiClassType[] getImplementsListTypes() { return PsiClassImplUtil.getImplementsListTypes(this); } + @Override public PsiClass getSuperClass() { return PsiClassImplUtil.getSuperClass(this); } + @Override public PsiClass[] getInterfaces() { return PsiClassImplUtil.getInterfaces(this); } + @Override @NotNull public PsiClass[] getSupers() { return PsiClassImplUtil.getSupers(this); } + @Override @NotNull public PsiClassType[] getSuperTypes() { return PsiClassImplUtil.getSuperTypes(this); } + @Override public PsiClass getContainingClass() { PsiElement parent = getParent(); return parent instanceof PsiClass ? (PsiClass)parent : null; } + @Override @NotNull public Collection getVisibleSignatures() { return PsiSuperMethodImplUtil.getVisibleSignatures(this); } + @Override @NotNull public PsiField[] getFields() { return getStub().getChildrenByType(Constants.FIELD_BIT_SET, PsiField.ARRAY_FACTORY); } + @Override @NotNull public PsiMethod[] getMethods() { return getStub().getChildrenByType(Constants.METHOD_BIT_SET, PsiMethod.ARRAY_FACTORY); } + @Override @NotNull public PsiMethod[] getConstructors() { return PsiImplUtil.getConstructors(this); } + @Override @NotNull public PsiClass[] getInnerClasses() { return getStub().getChildrenByType(JavaStubElementTypes.CLASS, ARRAY_FACTORY); } + @Override @NotNull public PsiClassInitializer[] getInitializers() { return PsiClassInitializer.EMPTY_ARRAY; } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiImplUtil.getTypeParameters(this); } + @Override @NotNull public PsiField[] getAllFields() { return PsiClassImplUtil.getAllFields(this); } + @Override @NotNull public PsiMethod[] getAllMethods() { return PsiClassImplUtil.getAllMethods(this); } + @Override @NotNull public PsiClass[] getAllInnerClasses() { return PsiClassImplUtil.getAllInnerClasses(this); } + @Override public PsiField findFieldByName(String name, boolean checkBases) { return innersCache.findFieldByName(name, checkBases); } + @Override public PsiMethod findMethodBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodsBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsByName(String name, boolean checkBases) { return innersCache.findMethodsByName(name, checkBases); } + @Override @NotNull public List> findMethodsAndTheirSubstitutorsByName(String name, boolean checkBases) { return PsiClassImplUtil.findMethodsAndTheirSubstitutorsByName(this, name, checkBases); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return PsiClassImplUtil.getAllWithSubstitutorsByMap(this, PsiMethod.class); } + @Override public PsiClass findInnerClassByName(String name, boolean checkBases) { return innersCache.findInnerClassByName(name, checkBases); } + @Override public boolean isDeprecated() { return getStub().isDeprecated(); } @@ -296,30 +332,37 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return name.substring(0, i) + ".java"; } + @Override public PsiDocComment getDocComment() { return myDocComment; } + @Override public PsiJavaToken getLBrace() { return null; } + @Override public PsiJavaToken getRBrace() { return null; } + @Override public boolean isInterface() { return getStub().isInterface(); } + @Override public boolean isAnnotationType() { return getStub().isAnnotationType(); } + @Override public boolean isEnum() { return getStub().isEnum(); } + @Override public void appendMirrorText(final int indentLevel, @NonNls final StringBuilder buffer) { ClsDocCommentImpl docComment = (ClsDocCommentImpl)getDocComment(); if (docComment != null) { @@ -393,6 +436,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple buffer.append('}'); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -456,6 +500,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClass(this); @@ -470,6 +515,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return "PsiClass:" + getName(); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -477,14 +523,17 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return PsiClassImplUtil.processDeclarationsInClass(this, processor, state, null, lastParent, place, false); } + @Override public PsiElement getScope() { return getParent(); } + @Override public boolean isInheritorDeep(PsiClass baseClass, PsiClass classToByPass) { return InheritanceImplUtil.isInheritorDeep(this, baseClass, classToByPass); } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return InheritanceImplUtil.isInheritor(this, baseClass, checkDeep); } @@ -517,16 +566,19 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return null; } + @Override @NotNull public PsiElement getNavigationElement() { PsiClass aClass = getSourceMirrorClass(); return aClass != null && aClass != this ? aClass.getNavigationElement() : this; } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public Icon getElementIcon(final int flags) { return PsiClassImplUtil.getClassIcon(flags, this); } @@ -536,11 +588,13 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple return PsiClassImplUtil.isClassEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiClassImplUtil.getClassUseScope(this); } + @Override public PsiQualifiedNamedElement getContainer() { final PsiFile file = getContainingFile(); final PsiDirectory dir; @@ -548,6 +602,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple ? null : JavaDirectoryService.getInstance().getPackage(dir); } + @Override public void putInfo(Map info) { PsiClassImpl.putInfo(this, info); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassObjectAccessExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassObjectAccessExpressionImpl.java index 9b4af1859b8d..6dd238c65001 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassObjectAccessExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassObjectAccessExpressionImpl.java @@ -42,11 +42,13 @@ public class ClsClassObjectAccessExpressionImpl extends ClsElementImpl implement myTypeElement = new ClsTypeElementImpl(this, canonicalClassText, ClsTypeElementImpl.VARIANCE_NONE); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { myTypeElement.appendMirrorText(0, buffer); buffer.append(CLASS_ENDING); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -54,15 +56,18 @@ public class ClsClassObjectAccessExpressionImpl extends ClsElementImpl implement ((ClsElementImpl)getOperand()).setMirror((TreeElement)SourceTreeToPsiMap.psiElementToTree(mirror.getOperand())); } + @Override @NotNull public PsiElement[] getChildren() { return new PsiElement[]{myTypeElement}; } + @Override public PsiElement getParent() { return myParent; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClassObjectAccessExpression(this); @@ -72,21 +77,25 @@ public class ClsClassObjectAccessExpressionImpl extends ClsElementImpl implement } } + @Override @NotNull public PsiTypeElement getOperand() { return myTypeElement; } + @Override public PsiType getType() { return PsiImplUtil.getType(this); } + @Override public String getText() { final StringBuilder buffer = new StringBuilder(); appendMirrorText(0, buffer); return buffer.toString(); } + @Override public Icon getElementIcon(final int flags) { final RowIcon rowIcon = ElementBase.createLayeredIcon(this, PlatformIcons.FIELD_ICON, 0); rowIcon.setIcon(PlatformIcons.PUBLIC_ICON, 1); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocCommentImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocCommentImpl.java index 6a8a5bec9957..5c5e2cda0b99 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocCommentImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocCommentImpl.java @@ -36,6 +36,7 @@ class ClsDocCommentImpl extends ClsElementImpl implements PsiDocComment, JavaTok myTags = tags; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append("/**"); for (PsiDocTag tag : getTags()) { @@ -47,48 +48,58 @@ class ClsDocCommentImpl extends ClsElementImpl implements PsiDocComment, JavaTok buffer.append("*/"); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, JavaDocElementType.DOC_COMMENT); } + @Override @NotNull public PsiElement[] getChildren() { return getTags(); } + @Override public PsiElement getParent() { return myParent; } + @Override public PsiDocCommentOwner getOwner() { return myParent; } + @Override @NotNull public PsiElement[] getDescriptionElements() { return EMPTY_ARRAY; } + @Override @NotNull public PsiDocTag[] getTags() { return myTags; } + @Override public PsiDocTag findTagByName(@NonNls String name) { if (!name.equals("deprecated")) return null; return getTags()[0]; } + @Override @NotNull public PsiDocTag[] findTagsByName(@NonNls String name) { if (!name.equals("deprecated")) return PsiDocTag.EMPTY_ARRAY; return getTags(); } + @Override public IElementType getTokenType() { return JavaDocElementType.DOC_COMMENT; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocComment(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocTagImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocTagImpl.java index a625f6a1a38c..57dbd5902d3a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocTagImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsDocTagImpl.java @@ -41,64 +41,79 @@ class ClsDocTagImpl extends ClsElementImpl implements PsiDocTag { myNameElement = new NameElement(name); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append(myNameElement.getText()); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, ElementType.DOC_TAG); } + @Override public String getText() { return myNameElement.getText(); } + @Override @NotNull public char[] textToCharArray(){ return myNameElement.textToCharArray(); } + @Override public String getName() { return getNameElement().getText().substring(1); } + @Override public boolean textMatches(@NotNull CharSequence text) { return myNameElement.textMatches(text); } + @Override public boolean textMatches(@NotNull PsiElement element) { return myNameElement.textMatches(element); } + @Override public int getTextLength(){ return myNameElement.getTextLength(); } + @Override @NotNull public PsiElement[] getChildren() { return new PsiElement[]{myNameElement}; } + @Override public PsiElement getParent() { return getContainingComment(); } + @Override public PsiDocComment getContainingComment() { return myDocComment; } + @Override public PsiElement getNameElement() { return myNameElement; } + @Override public PsiElement[] getDataElements() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiDocTagValue getValueElement() { return null; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocTag(this); @@ -115,35 +130,43 @@ class ClsDocTagImpl extends ClsElementImpl implements PsiDocTag { myText = text; } + @Override public String getText() { return myText; } + @Override @NotNull public char[] textToCharArray(){ return myText.toCharArray(); } + @Override @NotNull public PsiElement[] getChildren(){ return PsiElement.EMPTY_ARRAY; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); } + @Override public PsiElement getParent() { return ClsDocTagImpl.this; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitElement(this); } } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException{ PsiImplUtil.setName(getNameElement(), name); return this; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java index 4e3b6bef69bb..dc277379bf82 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsElementImpl.java @@ -41,15 +41,18 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil private volatile TreeElement myMirror = null; + @Override @NotNull public Language getLanguage() { return JavaLanguage.INSTANCE; } + @Override public PsiManager getManager() { return getParent().getManager(); } + @Override public PsiFile getContainingFile() { PsiElement parent = getParent(); if (parent == null) { @@ -59,47 +62,58 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil return parent.getContainingFile(); } + @Override public final boolean isWritable() { return false; } + @Override public boolean isPhysical() { return true; } + @Override public boolean isValid() { PsiElement parent = getParent(); return parent != null && parent.isValid(); } + @Override public PsiElement copy() { return this; } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public void delete() throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public void checkDelete() throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } @@ -119,6 +133,7 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil public abstract void setMirror(@NotNull TreeElement element); + @Override public PsiElement getMirror() { TreeElement mirror = myMirror; if (mirror == null) { @@ -128,16 +143,19 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil return SourceTreeToPsiMap.treeElementToPsi(mirror); } + @Override public final TextRange getTextRange() { PsiElement mirror = getMirror(); return mirror != null ? mirror.getTextRange() : TextRange.EMPTY_RANGE; } + @Override public final int getStartOffsetInParent() { PsiElement mirror = getMirror(); return mirror != null ? mirror.getStartOffsetInParent() : -1; } + @Override public int getTextLength() { String text = getText(); if (text == null){ @@ -147,6 +165,7 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil return text.length(); } + @Override public PsiElement findElementAt(int offset) { PsiElement mirrorAt = getMirror().findElementAt(offset); while(true){ @@ -171,6 +190,7 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil */ } + @Override public PsiReference findReferenceAt(int offset) { PsiReference mirrorRef = getMirror().findReferenceAt(offset); if (mirrorRef == null) return null; @@ -198,29 +218,35 @@ public abstract class ClsElementImpl extends PsiElementBase implements PsiCompil return null; } + @Override public final int getTextOffset() { PsiElement mirror = getMirror(); return mirror != null ? mirror.getTextOffset() : -1; } + @Override public String getText() { PsiElement mirror = getMirror(); return mirror != null ? mirror.getText() : null; } + @Override @NotNull public char[] textToCharArray() { return getMirror().textToCharArray(); } + @Override public boolean textMatches(@NotNull CharSequence text) { return getText().equals(text.toString()); } + @Override public boolean textMatches(@NotNull PsiElement element) { return getText().equals(element.getText()); } + @Override public ASTNode getNode() { return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsEnumConstantImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsEnumConstantImpl.java index 1c448fe51344..568445a4e84e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsEnumConstantImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsEnumConstantImpl.java @@ -33,6 +33,7 @@ public class ClsEnumConstantImpl extends ClsFieldImpl implements PsiEnumConstant super(stub); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { ClsDocCommentImpl docComment = (ClsDocCommentImpl)getDocComment(); if (docComment != null) { @@ -45,6 +46,7 @@ public class ClsEnumConstantImpl extends ClsFieldImpl implements PsiEnumConstant ((ClsElementImpl)getNameIdentifier()).appendMirrorText(indentLevel, buffer); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -56,19 +58,23 @@ public class ClsEnumConstantImpl extends ClsFieldImpl implements PsiEnumConstant ((ClsElementImpl)getNameIdentifier()).setMirror((TreeElement)SourceTreeToPsiMap.psiElementToTree(mirror.getNameIdentifier())); } + @Override public PsiExpressionList getArgumentList() { return null; } + @Override public PsiMethod resolveMethod() { return null; } + @Override @NotNull public JavaResolveResult resolveMethodGenerics() { return JavaResolveResult.EMPTY; } + @Override public PsiEnumConstantInitializer getInitializingClass() { return null; } @@ -79,28 +85,34 @@ public class ClsEnumConstantImpl extends ClsFieldImpl implements PsiEnumConstant throw new IncorrectOperationException("cannot create initializing class in cls enum constant"); } + @Override public PsiMethod resolveConstructor() { return null; } + @Override @NotNull public PsiType getType() { return JavaPsiFacade.getInstance(getProject()).getElementFactory().createType(getContainingClass()); } + @Override public PsiTypeElement getTypeElement() { return null; } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return true; } + @Override public boolean hasModifierProperty(@NotNull String name) { return PsiModifier.PUBLIC.equals(name) || PsiModifier.STATIC.equals(name) || PsiModifier.FINAL.equals(name); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFieldImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFieldImpl.java index 2bbbf69ab266..1b1c64fc70af 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFieldImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFieldImpl.java @@ -53,6 +53,7 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen myNameIdentifier = new ClsIdentifierImpl(this, getName()); } + @Override @NotNull public PsiElement[] getChildren() { PsiDocComment docComment = getDocComment(); @@ -84,31 +85,37 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen return children; } + @Override public PsiClass getContainingClass() { return (PsiClass)getParent(); } + @Override @NotNull public PsiIdentifier getNameIdentifier() { return myNameIdentifier; } + @Override @NotNull @NonNls public String getName() { return getStub().getName(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public PsiType getType() { return getTypeElement().getType(); } + @Override public PsiTypeElement getTypeElement() { synchronized (LAZY_BUILT_LOCK) { if (myType == null) { @@ -119,14 +126,17 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen } } + @Override public PsiModifierList getModifierList() { return getStub().findChildStubByType(JavaStubElementTypes.MODIFIER_LIST).getPsi(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override public PsiExpression getInitializer() { synchronized (LAZY_BUILT_LOCK) { if (!myInitializerInitialized) { @@ -141,14 +151,17 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen } } + @Override public boolean hasInitializer() { return getInitializer() != null; } + @Override public Object computeConstantValue() { return computeConstantValue(new THashSet()); } + @Override public Object computeConstantValue(Set visitedVars) { if (!hasModifierProperty(PsiModifier.FINAL)) return null; PsiExpression initializer = getInitializer(); @@ -172,17 +185,21 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen return PsiConstantEvaluationHelperImpl.computeCastTo(initializer, getType(), visitedVars); } + @Override public boolean isDeprecated() { return getStub().isDeprecated(); } + @Override public PsiDocComment getDocComment() { return myDocComment; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { ClsDocCommentImpl docComment = (ClsDocCommentImpl)getDocComment(); if (docComment != null) { @@ -200,6 +217,7 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen buffer.append(';'); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -212,6 +230,7 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen ((ClsElementImpl)getNameIdentifier()).setMirror((TreeElement)SourceTreeToPsiMap.psiElementToTree(mirror.getNameIdentifier())); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitField(this); @@ -225,6 +244,7 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen return "PsiField:" + getName(); } + @Override @NotNull public PsiElement getNavigationElement() { PsiClass sourceClassMirror = ((ClsClassImpl)getParent()).getSourceMirrorClass(); @@ -232,14 +252,17 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen return sourceFieldMirror != null && sourceFieldMirror != this ? sourceFieldMirror.getNavigationElement() : this; } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public void setInitializer(PsiExpression initializer) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(PlatformIcons.FIELD_ICON, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); @@ -250,11 +273,13 @@ public class ClsFieldImpl extends ClsRepositoryPsiElement implemen return PsiClassImplUtil.isFieldEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiImplUtil.getMemberUseScope(this); } + @Override public PsiType getTypeNoResolve() { return getType(); //todo? } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java index 368c822af2e5..1f7c2b88ea32 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java @@ -85,56 +85,67 @@ public class ClsFileImpl extends ClsRepositoryPsiElement this(manager, viewProvider, false); } + @Override public PsiManager getManager() { return myManager; } + @Override @NotNull public VirtualFile getVirtualFile() { return myViewProvider.getVirtualFile(); } + @Override public boolean processChildren(final PsiElementProcessor processor) { return true; } + @Override public PsiDirectory getParent() { return getContainingDirectory(); } + @Override public PsiDirectory getContainingDirectory() { VirtualFile parentFile = getVirtualFile().getParent(); if (parentFile == null) return null; return getManager().findDirectory(parentFile); } + @Override public PsiFile getContainingFile() { if (!isValid()) throw new PsiInvalidElementAccessException(this); return this; } + @Override public boolean isValid() { if (myIsForDecompiling) return true; VirtualFile vFile = getVirtualFile(); return vFile.isValid(); } + @Override @NotNull public String getName() { return getVirtualFile().getName(); } + @Override @NotNull public PsiElement[] getChildren() { return getClasses(); // TODO : package statement? } + @Override @NotNull public PsiClass[] getClasses() { final PsiClassHolderFileStub fileStub = getStub(); return fileStub != null ? fileStub.getClasses() : PsiClass.EMPTY_ARRAY; } + @Override public PsiPackageStatement getPackageStatement() { getStub(); // Make sure myPackageStatement initializes. @@ -143,34 +154,41 @@ public class ClsFileImpl extends ClsRepositoryPsiElement return statement.getPackageName() != null ? statement : null; } + @Override @NotNull public String getPackageName() { PsiPackageStatement statement = getPackageStatement(); return statement == null ? "" : statement.getPackageName(); } + @Override public void setPackageName(final String packageName) throws IncorrectOperationException { throw new IncorrectOperationException("Cannot set package name for compiled files"); } + @Override public PsiImportList getImportList() { return null; } + @Override public boolean importClass(PsiClass aClass) { throw new UnsupportedOperationException("Cannot add imports to compiled classes"); } + @Override @NotNull public PsiElement[] getOnDemandImports(boolean includeImplicit, boolean checkIncludes) { return PsiJavaCodeReferenceElement.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getSingleClassImports(boolean checkIncludes) { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public String[] getImplicitlyImportedPackages() { return ArrayUtil.EMPTY_STRING_ARRAY; @@ -181,33 +199,40 @@ public class ClsFileImpl extends ClsRepositoryPsiElement return Collections.singleton(getVirtualFile().getNameWithoutExtension()); } + @Override @NotNull public PsiJavaCodeReferenceElement[] getImplicitlyImportedPackageReferences() { return PsiJavaCodeReferenceElement.EMPTY_ARRAY; } + @Override public PsiJavaCodeReferenceElement findImportReferenceTo(PsiClass aClass) { return null; } + @Override @NotNull public LanguageLevel getLanguageLevel() { final List stubs = getStub().getChildrenStubs(); return stubs.size() > 0 ? ((PsiClassStub)stubs.get(0)).getLanguageLevel() : LanguageLevel.HIGHEST; } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public void checkSetName(String name) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public boolean isDirectory() { return false; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append(PsiBundle.message("psi.decompiled.text.header")); goNextLine(indentLevel, buffer); @@ -226,6 +251,7 @@ public class ClsFileImpl extends ClsRepositoryPsiElement } } + @Override public void setMirror(@NotNull TreeElement element) { PsiElement mirrorFile = SourceTreeToPsiMap.treeElementToPsi(element); if (mirrorFile instanceof PsiJavaFile) { @@ -256,6 +282,7 @@ public class ClsFileImpl extends ClsRepositoryPsiElement myMirrorFileElement = element; } + @Override @NotNull public PsiElement getNavigationElement() { return JavaPsiImplementationHelper.getInstance(getProject()).getClsFileNavigationElement(this); @@ -291,10 +318,12 @@ public class ClsFileImpl extends ClsRepositoryPsiElement } } + @Override public long getModificationStamp() { return getVirtualFile().getModificationStamp(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitJavaFile(this); @@ -308,26 +337,31 @@ public class ClsFileImpl extends ClsRepositoryPsiElement return "PsiFile:" + getName(); } + @Override @NotNull public PsiFile getOriginalFile() { return this; } + @Override @NotNull public FileType getFileType() { return JavaClassFileType.INSTANCE; } + @Override @NotNull public PsiFile[] getPsiRoots() { return new PsiFile[]{this}; } + @Override @NotNull public FileViewProvider getViewProvider() { return myViewProvider; } + @Override public void subtreeChanged() { } @@ -355,6 +389,7 @@ public class ClsFileImpl extends ClsRepositoryPsiElement return FileContextUtil.getFileContext(this); } + @Override @NotNull public PsiClassHolderFileStub getStub() { return (PsiClassHolderFileStub)getStubTree().getRoot(); @@ -362,6 +397,7 @@ public class ClsFileImpl extends ClsRepositoryPsiElement private final Object lock = new Object(); + @Override @NotNull public StubTree getStubTree() { ApplicationManager.getApplication().assertReadAccessAllowed(); @@ -413,14 +449,17 @@ public class ClsFileImpl extends ClsRepositoryPsiElement } } + @Override public ASTNode findTreeForStub(final StubTree tree, final StubElement stub) { return null; } + @Override public boolean isContentsLoaded() { return myStub != null; } + @Override public void onContentReload() { SoftReference stub = myStub; StubTree stubHolder = stub == null ? null : stub.get(); @@ -437,14 +476,17 @@ public class ClsFileImpl extends ClsRepositoryPsiElement } } + @Override public PsiFile cacheCopy(final FileContent content) { return this; } + @Override public void putInfo(Map info) { PsiFileImpl.putInfo(this, info); } + @Override public FileASTNode getNode() { return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsIdentifierImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsIdentifierImpl.java index 85369cd80845..e7fd57cbf41e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsIdentifierImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsIdentifierImpl.java @@ -33,31 +33,38 @@ class ClsIdentifierImpl extends ClsElementImpl implements PsiIdentifier, PsiJava myText = text; } + @Override public IElementType getTokenType() { return JavaTokenType.IDENTIFIER; } + @Override public String getText() { return myText; } + @Override @NotNull public PsiElement[] getChildren(){ return PsiElement.EMPTY_ARRAY; } + @Override public PsiElement getParent(){ return myParent; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer){ buffer.append(getText()); } + @Override public void setMirror(@NotNull TreeElement element){ setMirrorCheckingType(element, ElementType.IDENTIFIER); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitIdentifier(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsJavaCodeReferenceElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsJavaCodeReferenceElementImpl.java index 23fcc84001dc..b7fd7140ddd0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsJavaCodeReferenceElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsJavaCodeReferenceElementImpl.java @@ -73,27 +73,33 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P myQualifiedName = PsiNameHelper.getQualifiedClassName(myCanonicalText, false); } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiElement getParent() { return myParent; } + @Override public String getText() { return PsiNameHelper.getPresentableText(this); } + @Override public int getTextLength() { return getText().length(); } + @Override public PsiReference getReference() { return this; } + @Override @NotNull public String getCanonicalText() { return myCanonicalText; @@ -102,6 +108,7 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P private static class Resolver implements ResolveCache.PolyVariantResolver { public static final Resolver INSTANCE = new Resolver(); + @Override public JavaResolveResult[] resolve(ClsJavaCodeReferenceElementImpl ref, boolean incompleteCode) { final JavaResolveResult resolveResult = ref.advancedResolveImpl(); return resolveResult.getElement() == null ? JavaResolveResult.EMPTY_ARRAY : new JavaResolveResult[] {resolveResult}; @@ -130,6 +137,7 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { final JavaResolveResult[] results = multiResolve(incompleteCode); @@ -137,6 +145,7 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P return JavaResolveResult.EMPTY; } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final ResolveCache resolveCache = ResolveCache.getInstance(getProject()); @@ -144,6 +153,7 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P return (JavaResolveResult[])results; } + @Override public PsiElement resolve() { return advancedResolve(false).getElement(); } @@ -188,34 +198,42 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P return classes[0]; } + @Override public void processVariants(PsiScopeProcessor processor) { throw new RuntimeException("Variants are not available for light references"); } + @Override public PsiElement getReferenceNameElement() { return null; } + @Override public PsiReferenceParameterList getParameterList() { return null; } + @Override public String getQualifiedName() { return getCanonicalText(); } + @Override public String getReferenceName() { return PsiNameHelper.getShortClassName(myCanonicalText); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(CAN_NOT_MODIFY_MESSAGE); } + @Override public boolean isReferenceTo(PsiElement element) { if (!(element instanceof PsiClass)) return false; PsiClass aClass = (PsiClass)element; @@ -223,23 +241,28 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P || getManager().areElementsEquivalent(resolve(), element); } + @Override @NotNull public Object[] getVariants() { throw new RuntimeException("Variants are not available for references to compiled code"); } + @Override public boolean isSoft() { return false; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append(getCanonicalText()); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, JavaElementType.JAVA_CODE_REFERENCE); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceElement(this); @@ -254,14 +277,17 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P return "PsiJavaCodeReferenceElement:" + getText(); } + @Override public TextRange getRangeInElement() { return new TextRange(0, getTextLength()); } + @Override public PsiElement getElement() { return this; } + @Override @NotNull public PsiType[] getTypeParameters() { PsiType[] cachedTypes = myTypeParametersCachedTypes; @@ -275,10 +301,12 @@ public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements P return cachedTypes; } + @Override public boolean isQualified() { return false; } + @Override public PsiElement getQualifier() { return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsLiteralExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsLiteralExpressionImpl.java index d2a89da39356..d73610037b54 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsLiteralExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsLiteralExpressionImpl.java @@ -37,35 +37,43 @@ public class ClsLiteralExpressionImpl extends ClsElementImpl implements PsiLiter myParent = parent; } + @Override public PsiType getType() { return myType; } + @Override public Object getValue() { return myValue; } + @Override public String getText() { return myText; } + @Override public String getParsingError() { return null; } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { buffer.append(getText()); } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, JavaElementType.LITERAL_EXPRESSION); } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiElement getParent() { return myParent; } @@ -74,6 +82,7 @@ public class ClsLiteralExpressionImpl extends ClsElementImpl implements PsiLiter return "PsiLiteralExpression:" + getText(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitLiteralExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsMethodImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsMethodImpl.java index aba78bc66820..e16222d6a7b0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsMethodImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsMethodImpl.java @@ -57,6 +57,7 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem super(stub); } + @Override @NotNull public PsiElement[] getChildren() { PsiDocComment docComment = getDocComment(); @@ -104,10 +105,12 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem return children; } + @Override public PsiClass getContainingClass() { return (PsiClass)getParent(); } + @Override public PsiIdentifier getNameIdentifier() { synchronized (LAZY_BUILT_LOCK) { if (myNameIdentifier == null) { @@ -117,50 +120,60 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } } + @Override @NotNull public PsiMethod[] findSuperMethods() { return PsiSuperMethodImplUtil.findSuperMethods(this); } + @Override @NotNull public PsiMethod[] findSuperMethods(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess); } + @Override @NotNull public PsiMethod[] findSuperMethods(PsiClass parentClass) { return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass); } + @Override @NotNull public List findSuperMethodSignaturesIncludingStatic(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess); } + @Override public PsiMethod findDeepestSuperMethod() { return PsiSuperMethodImplUtil.findDeepestSuperMethod(this); } + @Override @NotNull public PsiMethod[] findDeepestSuperMethods() { return PsiSuperMethodImplUtil.findDeepestSuperMethods(this); } + @Override @NotNull public String getName() { return getStub().getName(); } + @Override @NotNull public HierarchicalMethodSignature getHierarchicalMethodSignature() { return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override public PsiTypeElement getReturnTypeElement() { if (isConstructor()) return null; @@ -173,38 +186,46 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } } + @Override public PsiType getReturnType() { PsiTypeElement typeElement = getReturnTypeElement(); return typeElement == null ? null : typeElement.getType(); } + @Override @NotNull public PsiModifierList getModifierList() { return getStub().findChildStubByType(JavaStubElementTypes.MODIFIER_LIST).getPsi(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override @NotNull public PsiParameterList getParameterList() { return getStub().findChildStubByType(JavaStubElementTypes.PARAMETER_LIST).getPsi(); } + @Override @NotNull public PsiReferenceList getThrowsList() { return getStub().findChildStubByType(JavaStubElementTypes.THROWS_LIST).getPsi(); } + @Override public PsiCodeBlock getBody() { return null; } + @Override public boolean isDeprecated() { return getStub().isDeprecated(); } + @Override public PsiAnnotationMemberValue getDefaultValue() { synchronized (LAZY_BUILT_LOCK) { if (myDefaultValue == null) { @@ -217,6 +238,7 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } } + @Override public PsiDocComment getDocComment() { if (!isDeprecated()) return null; @@ -229,19 +251,23 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } + @Override public boolean isConstructor() { return getStub().isConstructor(); } + @Override public boolean isVarArgs() { return getStub().isVarArgs(); } + @Override @NotNull public MethodSignature getSignature(@NotNull PsiSubstitutor substitutor) { return MethodSignatureBackedByPsiMethod.create(this, substitutor); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { appendMethodHeader(buffer, indentLevel); @@ -282,6 +308,7 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -305,6 +332,7 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitMethod(this); @@ -318,6 +346,7 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem return "PsiMethod:" + getName(); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -347,28 +376,34 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem return this; } + @Override @NotNull public PsiElement getNavigationElement() { final PsiMethod method = getSourceMirrorMethod(); return method != this ? method.getNavigationElement() : this; } + @Override public PsiTypeParameterList getTypeParameterList() { return getStub().findChildStubByType(JavaStubElementTypes.TYPE_PARAMETER_LIST).getPsi(); } + @Override public boolean hasTypeParameters() { return PsiImplUtil.hasTypeParameters(this); } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiImplUtil.getTypeParameters(this); } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public Icon getElementIcon(final int flags) { Icon methodIcon = hasModifierProperty(PsiModifier.ABSTRACT) ? PlatformIcons.ABSTRACT_METHOD_ICON : PlatformIcons.METHOD_ICON; RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(methodIcon, this, false); @@ -380,13 +415,16 @@ public class ClsMethodImpl extends ClsRepositoryPsiElement implem return PsiClassImplUtil.isMethodEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiImplUtil.getMemberUseScope(this); } + @Override public PsiMethodReceiver getMethodReceiver() { return null; //todo parse cls } + @Override public PsiType getReturnTypeNoResolve() { return getReturnType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsModifierListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsModifierListImpl.java index 8f9ec219ef1d..35d1558c973a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsModifierListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsModifierListImpl.java @@ -35,43 +35,52 @@ public class ClsModifierListImpl extends ClsRepositoryPsiElement super(stub); } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override public String getName() { if (myName == null) { if (DumbService.getInstance(getProject()).isDumb()) { @@ -76,11 +78,13 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return myName; } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public PsiTypeElement getTypeElement() { if (myType == null) { @@ -94,11 +98,13 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return myType; } + @Override @NotNull public PsiType getType() { return getTypeElement().getType(); } + @Override @NotNull public PsiModifierList getModifierList() { final StubElement child = getStub().findChildStubByType(JavaStubElementTypes.MODIFIER_LIST); @@ -106,25 +112,31 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return child.getPsi(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return false; } + @Override public Object computeConstantValue() { return null; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer) { PsiAnnotation[] annotations = getModifierList().getAnnotations(); for (PsiAnnotation annotation : annotations) { @@ -201,6 +213,7 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement } } + @Override public void setMirror(@NotNull TreeElement element) { setMirrorCheckingType(element, null); @@ -209,6 +222,7 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement ((ClsElementImpl)getTypeElement()).setMirror((TreeElement)SourceTreeToPsiMap.psiElementToTree(mirror.getTypeElement())); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitParameter(this); @@ -222,6 +236,7 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return "PsiParameter"; } + @Override @NotNull public PsiElement getDeclarationScope() { // only method parameters exist in compiled code @@ -233,12 +248,14 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return stub.getParentStub().getChildrenStubs().indexOf(stub); } + @Override public boolean isVarArgs() { final PsiParameterList paramList = (PsiParameterList)getParent(); final PsiMethod method = (PsiMethod)paramList.getParent(); return method.isVarArgs() && getIndex() == paramList.getParametersCount() - 1; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return getModifierList().getAnnotations(); @@ -249,16 +266,19 @@ public class ClsParameterImpl extends ClsRepositoryPsiElement return true; } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = createLayeredIcon(this, PlatformIcons.PARAMETER_ICON, 0); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); } + @Override @NotNull public SearchScope getUseScope() { return new LocalSearchScope(getDeclarationScope()); } + @Override public PsiType getTypeNoResolve() { return getType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsParameterListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsParameterListImpl.java index 980b75476b1a..ab5d0b4b53e9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsParameterListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsParameterListImpl.java @@ -35,20 +35,24 @@ public class ClsParameterListImpl extends ClsRepositoryPsiElement extends Cls myStub = stub; } + @Override public IStubElementType getElementType() { return myStub.getStubType(); } + @Override public PsiElement getParent() { return myStub.getParentStub().getPsi(); } + @Override public PsiManager getManager() { final PsiFile file = getContainingFile(); if (file == null) throw new PsiInvalidElementAccessException(this); return file.getManager(); } + @Override public PsiFile getContainingFile() { StubElement p = myStub; while (!(p instanceof PsiFileStub)) { @@ -53,10 +57,12 @@ public abstract class ClsRepositoryPsiElement extends Cls return (PsiFile)p.getPsi(); } + @Override public T getStub() { return myStub; } + @Override @NotNull public PsiElement[] getChildren() { final List stubs = getStub().getChildrenStubs(); @@ -67,18 +73,21 @@ public abstract class ClsRepositoryPsiElement extends Cls return children; } + @Override public PsiElement getFirstChild() { final List children = getStub().getChildrenStubs(); if (children.isEmpty()) return null; return children.get(0).getPsi(); } + @Override public PsiElement getLastChild() { final List children = getStub().getChildrenStubs(); if (children.isEmpty()) return null; return children.get(children.size() - 1).getPsi(); } + @Override public PsiElement getNextSibling() { final PsiElement[] psiElements = getParent().getChildren(); final int i = ArrayUtil.indexOf(psiElements, this); @@ -89,6 +98,7 @@ public abstract class ClsRepositoryPsiElement extends Cls } + @Override public PsiElement getPrevSibling() { final PsiElement[] psiElements = getParent().getChildren(); final int i = ArrayUtil.indexOf(psiElements, this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java index 50c1cf33e946..e632de5e435d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsStubBuilder.java @@ -125,6 +125,7 @@ public class ClsStubBuilder { return myResult; } + @Override public void visit(final int version, final int access, final String name, @@ -301,24 +302,30 @@ public class ClsStubBuilder { return flags; } + @Override public void visitSource(final String source, final String debug) { ((PsiClassStubImpl)myResult).setSourceFileName(source); } + @Override public void visitOuterClass(final String owner, final String name, final String desc) { } + @Override public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override public void callback(final String text) { new PsiAnnotationStubImpl(myModList, text); } }); } + @Override public void visitAttribute(final Attribute attr) { } + @Override public void visitInnerClass(final String name, final String outerName, final String innerName, final int access) { if ((access & Opcodes.ACC_SYNTHETIC) != 0) return; if (!isCorrectName(innerName)) return; @@ -349,6 +356,7 @@ public class ClsStubBuilder { return myLexer.getTokenType() == null; } + @Override @Nullable public FieldVisitor visitField(final int access, final String name, final String desc, final String signature, final Object value) { if ((access & Opcodes.ACC_SYNTHETIC) != 0) return null; @@ -384,6 +392,7 @@ public class ClsStubBuilder { return new TypeInfo(StringRef.fromString(getTypeText(type)), (byte)dim, false, Collections.emptyList()); //todo read annos from .class file } + @Override @Nullable public MethodVisitor visitMethod(final int access, final String name, @@ -524,6 +533,7 @@ public class ClsStubBuilder { return returnType; } + @Override public void visitEnd() { } } @@ -543,11 +553,13 @@ public class ClsStubBuilder { } } + @Override public void visit(final String name, final Object value) { valuePairPrefix(name); myBuilder.append(constToString(value)); } + @Override public void visitEnum(final String name, final String desc, final String value) { valuePairPrefix(name); myBuilder.append(getTypeText(Type.getType(desc))).append(".").append(value); @@ -568,25 +580,30 @@ public class ClsStubBuilder { } } + @Override public AnnotationVisitor visitAnnotation(final String name, final String desc) { valuePairPrefix(name); return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override public void callback(final String text) { myBuilder.append(text); } }); } + @Override public AnnotationVisitor visitArray(final String name) { valuePairPrefix(name); myBuilder.append("{"); return new AnnotationTextCollector(null, new AnnotationResultCallback() { + @Override public void callback(final String text) { myBuilder.append(text).append('}'); } }); } + @Override public void visitEnd() { if (hasParams && myDesc != null) { myBuilder.append(')'); @@ -604,25 +621,31 @@ public class ClsStubBuilder { myModList = modList; } + @Override public AnnotationVisitor visitAnnotationDefault() { return new AnnotationTextCollector(null, new AnnotationResultCallback() { + @Override public void callback(final String text) { ((PsiMethodStubImpl)myOwner).setDefaultValueText(text); } }); } + @Override public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override public void callback(final String text) { new PsiAnnotationStubImpl(myModList, text); } }); } + @Override @Nullable public AnnotationVisitor visitParameterAnnotation(final int parameter, final String desc, final boolean visible) { return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override public void callback(final String text) { new PsiAnnotationStubImpl(((PsiMethodStub)myOwner).findParameter(parameter).getModList(), text); } @@ -671,6 +694,7 @@ public class ClsStubBuilder { } } + @Override @Nullable public AnnotationVisitor visitParameterAnnotation(final int parameter, String desc, boolean visible) { return (parameter < myParamIgnoreCount) ? null : super.visitParameterAnnotation(parameter - myParamIgnoreCount, desc, visible); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeElementImpl.java index ca14f003cdaf..708765972e93 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeElementImpl.java @@ -48,6 +48,7 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement myVariance = variance; } + @Override @NotNull public PsiElement[] getChildren(){ loadChild(); @@ -55,10 +56,12 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement return new PsiElement[] {myChild}; } + @Override public PsiElement getParent(){ return myParent; } + @Override public String getText(){ final String shortClassName = PsiNameHelper.getShortClassName(myTypeText); return decorateTypeText(shortClassName); @@ -84,10 +87,12 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement return decorateTypeText(myTypeText); } + @Override public void appendMirrorText(final int indentLevel, final StringBuilder buffer){ buffer.append(decorateTypeText(myTypeText)); } + @Override public void setMirror(@NotNull TreeElement element){ setMirrorCheckingType(element, JavaElementType.TYPE); @@ -126,6 +131,7 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement return myTypeText.endsWith("..."); } + @Override @NotNull public PsiType getType() { if (myCachedType == null) { @@ -138,14 +144,17 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement return myCachedType; } + @Override public PsiJavaCodeReferenceElement getInnermostComponentReferenceElement() { return null; } + @Override public PsiAnnotationOwner getOwner(PsiAnnotation annotation) { return this; //todo } + @Override public PsiType getTypeNoResolve(@NotNull PsiElement context) { return getType(); } @@ -229,6 +238,7 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTypeElement(this); @@ -242,20 +252,24 @@ public class ClsTypeElementImpl extends ClsElementImpl implements PsiTypeElement return "PsiTypeElement:" + getText(); } + @Override @NotNull public PsiAnnotation[] getAnnotations() { throw new UnsupportedOperationException();//todo } + @Override public PsiAnnotation findAnnotation(@NotNull @NonNls String qualifiedName) { return PsiImplUtil.findAnnotation(this, qualifiedName); } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new UnsupportedOperationException();//todo } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { return getAnnotations(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeParameterImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeParameterImpl.java index 494b9d859d36..113345e640c5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeParameterImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsTypeParameterImpl.java @@ -52,206 +52,252 @@ public class ClsTypeParameterImpl extends ClsRepositoryPsiElement> findMethodsAndTheirSubstitutorsByName(String name, boolean checkBases) { return PsiClassImplUtil.findMethodsAndTheirSubstitutorsByName(this, name, checkBases); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return PsiClassImplUtil.getAllWithSubstitutorsByMap(this, PsiMethod.class); } + @Override public PsiClass findInnerClassByName(String name, boolean checkBases) { return PsiClassImplUtil.findInnerByName(this, name, checkBases); } + @Override public PsiTypeParameterList getTypeParameterList() { return null; } + @Override public boolean hasTypeParameters() { return false; } // very special method! + @Override public PsiElement getScope() { return getParent().getParent(); } + @Override public boolean isInheritorDeep(PsiClass baseClass, PsiClass classToByPass) { return InheritanceImplUtil.isInheritorDeep(this, baseClass, classToByPass); } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return InheritanceImplUtil.isInheritor(this, baseClass, checkDeep); } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { return PsiClassImplUtil.processDeclarationsInClass(this, processor, state, null, lastParent, place, false); } + @Override public String getName() { return getStub().getName(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { throw new IncorrectOperationException("Cannot change compiled classes"); } + @Override @NotNull public PsiMethod[] getConstructors() { return PsiMethod.EMPTY_ARRAY; } + @Override public PsiDocComment getDocComment() { return null; } + @Override public boolean isDeprecated() { return false; } + @Override @NotNull public PsiReferenceList getExtendsList() { return getStub().findChildStubByType(JavaStubElementTypes.EXTENDS_BOUND_LIST).getPsi(); } + @Override public PsiReferenceList getImplementsList() { return myLightEmptyImplementsList; } + @Override @NotNull public PsiClassType[] getExtendsListTypes() { return getExtendsList().getReferencedTypes(); } + @Override @NotNull public PsiClassType[] getImplementsListTypes() { return PsiClassType.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getInnerClasses() { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public PsiField[] getAllFields() { return PsiField.EMPTY_ARRAY; } + @Override @NotNull public PsiMethod[] getAllMethods() { return PsiMethod.EMPTY_ARRAY; } + @Override @NotNull public PsiClass[] getAllInnerClasses() { return PsiClass.EMPTY_ARRAY; } + @Override @NotNull public PsiClassInitializer[] getInitializers() { return PsiClassInitializer.EMPTY_ARRAY; } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiTypeParameter.EMPTY_ARRAY; } + @Override public PsiClass getSuperClass() { return PsiClassImplUtil.getSuperClass(this); } + @Override public PsiClass[] getInterfaces() { return PsiClassImplUtil.getInterfaces(this); } + @Override @NotNull public PsiClass[] getSupers() { return PsiClassImplUtil.getSupers(this); } + @Override @NotNull public PsiClassType[] getSuperTypes() { return PsiClassImplUtil.getSuperTypes(this); } + @Override public PsiClass getContainingClass() { return null; } + @Override @NotNull public Collection getVisibleSignatures() { return PsiSuperMethodImplUtil.getVisibleSignatures(this); } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@NotNull String name) { return false; } + @Override public PsiJavaToken getLBrace() { return null; } + @Override public PsiJavaToken getRBrace() { return null; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTypeParameter(this); @@ -266,6 +312,7 @@ public class ClsTypeParameterImpl extends ClsRepositoryPsiElement getAllDirectories() { if (myDirectories == null) { myDirectories = CachedValuesManager.getManager(myManager.getProject()).createCachedValue(new CachedValueProvider>() { + @Override public Result> compute() { final CommonProcessors.CollectProcessor processor = new CommonProcessors.CollectProcessor(); getFacade().processPackageDirectories(PsiPackageImpl.this, allScope(), processor); @@ -71,10 +73,12 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return getFacade().findPackage(qName); } + @Override public void handleQualifiedNameChange(@NotNull final String newQualifiedName) { PsiPackageImplementationHelper.getInstance().handleQualifiedNameChange(this, newQualifiedName); } + @Override public VirtualFile[] occursInPackagePrefixes() { return PsiPackageImplementationHelper.getInstance().occursInPackagePrefixes(this); } @@ -90,17 +94,20 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return new PsiPackageImpl(myManager, qName); } + @Override @NotNull public Language getLanguage() { return JavaLanguage.INSTANCE; } + @Override public boolean isValid() { final CommonProcessors.FindFirstProcessor processor = new CommonProcessors.FindFirstProcessor(); getFacade().processPackageDirectories(this, allScope(), processor); return processor.getFoundValue() != null || PsiPackageImplementationHelper.getInstance().packagePrefixExists(this); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitPackage(this); @@ -114,6 +121,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return "PsiPackage:" + getQualifiedName(); } + @Override @NotNull public PsiClass[] getClasses() { return getClasses(allScope()); @@ -123,11 +131,13 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return PsiPackageImplementationHelper.getInstance().adjustAllScope(this, GlobalSearchScope.allScope(getProject())); } + @Override @NotNull public PsiClass[] getClasses(@NotNull GlobalSearchScope scope) { return getFacade().getClasses(this, scope); } + @Override @Nullable public PsiModifierList getAnnotationList() { if (myAnnotationList == null) { @@ -136,11 +146,13 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return myAnnotationList.getValue(); } + @Override @NotNull public PsiPackage[] getSubPackages() { return getSubPackages(allScope()); } + @Override @NotNull public PsiPackage[] getSubPackages(@NotNull GlobalSearchScope scope) { return getFacade().getSubPackages(this, scope); @@ -183,6 +195,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return aPackage; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -250,6 +263,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return true; } + @Override public boolean canNavigate() { return isValid(); } @@ -259,6 +273,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya return ItemPresentationProviders.getItemPresentation(this); } + @Override public void navigate(final boolean requestFocus) { PsiPackageImplementationHelper.getInstance().navigate(this, requestFocus); } @@ -266,6 +281,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya private class PackageAnnotationValueProvider implements CachedValueProvider { private final Object[] OOCB_DEPENDENCY = { PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT }; + @Override public Result compute() { List list = new ArrayList(); for(PsiDirectory directory: getDirectories()) { @@ -290,15 +306,18 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya } } + @Override @Nullable public PsiModifierList getModifierList() { return getAnnotationList(); } + @Override public boolean hasModifierProperty(@NonNls @NotNull final String name) { return false; } + @Override public PsiQualifiedNamedElement getContainer() { return getParentPackage(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaAnnotationElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaAnnotationElementType.java index f763b8053a89..c10f2219d2ce 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaAnnotationElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaAnnotationElementType.java @@ -48,6 +48,7 @@ public class JavaAnnotationElementType extends JavaStubElementType implements Ps myText = text; } + @Override public String getText() { return myText; } + @Override public CompositeElement getTreeElement() { if (myParsedFromRepository != null) { CompositeElement parsed = myParsedFromRepository.get(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassReferenceListStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassReferenceListStubImpl.java index 7d3efa0e2e46..73d0f5304a45 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassReferenceListStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassReferenceListStubImpl.java @@ -53,6 +53,7 @@ public class PsiClassReferenceListStubImpl extends StubBase im myRole = role; } + @Override public PsiClassType[] getReferencedTypes() { if (myTypes != null) return myTypes; if (myNames.length == 0) { @@ -104,6 +105,7 @@ public class PsiClassReferenceListStubImpl extends StubBase im return types; } + @Override public String[] getReferencedNames() { String[] names = ArrayUtil.newStringArray(myNames.length); for (int i = 0; i < names.length; i++) { @@ -112,6 +114,7 @@ public class PsiClassReferenceListStubImpl extends StubBase im return names; } + @Override public PsiReferenceList.Role getRole() { return myRole; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java index a67d17ef7f82..9a12f719b62a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java @@ -67,34 +67,42 @@ public class PsiClassStubImpl extends StubBase implements myFlags = flags; } + @Override public String getName() { return StringRef.toString(myName); } + @Override public String getQualifiedName() { return StringRef.toString(myQualifiedName); } + @Override public String getBaseClassReferenceText() { return StringRef.toString(myBaseRefText); } + @Override public boolean isDeprecated() { return (myFlags & DEPRECATED) != 0; } + @Override public boolean hasDeprecatedAnnotation() { return (myFlags & DEPRECATED_ANNOTATION) != 0; } + @Override public boolean isInterface() { return (myFlags & INTERFACE) != 0; } + @Override public boolean isEnum() { return (myFlags & ENUM) != 0; } + @Override public boolean isEnumConstantInitializer() { return isEnumConstInitializer(myFlags); } @@ -103,6 +111,7 @@ public class PsiClassStubImpl extends StubBase implements return (flags & ENUM_CONSTANT_INITIALIZER) != 0; } + @Override public boolean isAnonymous() { return isAnonymous(myFlags); } @@ -111,14 +120,17 @@ public class PsiClassStubImpl extends StubBase implements return (flags & ANONYMOUS) != 0; } + @Override public boolean isAnnotationType() { return (myFlags & ANON_TYPE) != 0; } + @Override public LanguageLevel getLanguageLevel() { return myLanguageLevel != null ? myLanguageLevel : LanguageLevel.HIGHEST; // TODO!!! } + @Override public String getSourceFileName() { return StringRef.toString(mySourceFileName); } @@ -135,6 +147,7 @@ public class PsiClassStubImpl extends StubBase implements mySourceFileName = StringRef.fromString(sourceFileName); } + @Override public boolean isAnonymousInQualifiedNew() { return (myFlags & IN_QUALIFIED_NEW) != 0; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java index 1163093b0be3..4a71079fadd0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java @@ -54,6 +54,7 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub myFlags = flags; } + @Override @NotNull public TypeInfo getType(boolean doResolve) { if (!doResolve) return myType; @@ -76,6 +77,7 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub return typeInfo; } + @Override public String getInitializerText() { return StringRef.toString(myInitializer); } @@ -84,6 +86,7 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub return myFlags; } + @Override public boolean isEnumConstant() { return isEnumConst(myFlags); } @@ -92,14 +95,17 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub return (flags & ENUM_CONST) != 0; } + @Override public boolean isDeprecated() { return (myFlags & DEPRECATED) != 0; } + @Override public boolean hasDeprecatedAnnotation() { return (myFlags & DEPRECATED_ANNOTATION) != 0; } + @Override public String getName() { return StringRef.toString(myName); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiImportStatementStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiImportStatementStubImpl.java index 203b02f5fc1b..995aafcc66dc 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiImportStatementStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiImportStatementStubImpl.java @@ -51,6 +51,7 @@ public class PsiImportStatementStubImpl extends StubBase myFlags = flags; } + @Override public boolean isStatic() { return isStatic(myFlags); } @@ -59,6 +60,7 @@ public class PsiImportStatementStubImpl extends StubBase return (flags & STATIC) != 0; } + @Override public boolean isOnDemand() { return (myFlags & ON_DEMAND) != 0; } @@ -67,10 +69,12 @@ public class PsiImportStatementStubImpl extends StubBase return myFlags; } + @Override public String getImportReferenceText() { return StringRef.toString(myText); } + @Override @Nullable public PsiJavaCodeReferenceElement getReference() { PsiJavaCodeReferenceElement ref = myReference != null ? myReference.get() : null; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java index 9c73a78acdb2..c735686cd6d0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiJavaFileStubImpl.java @@ -41,10 +41,12 @@ public class PsiJavaFileStubImpl extends PsiFileStubImpl implements this(null, StringRef.fromString(packageName), compiled); } + @Override public String getPackageName() { return StringRef.toString(myPackageName); } + @Override public boolean isCompiled() { return myCompiled; } @@ -53,6 +55,7 @@ public class PsiJavaFileStubImpl extends PsiFileStubImpl implements myPackageName = StringRef.fromString(packageName); } + @Override public IStubFileElementType getType() { return JavaStubElementTypes.JAVA_FILE; } @@ -62,6 +65,7 @@ public class PsiJavaFileStubImpl extends PsiFileStubImpl implements return "PsiJavaFileStub [" + myPackageName + "]"; } + @Override public PsiClass[] getClasses() { return getChildrenByType(JavaStubElementTypes.CLASS, PsiClass.ARRAY_FACTORY); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiMethodStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiMethodStubImpl.java index fb1fd67b1d6a..35dd68955db4 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiMethodStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiMethodStubImpl.java @@ -73,14 +73,17 @@ public class PsiMethodStubImpl extends StubBase implements PsiMethodS myReturnType = returnType; } + @Override public boolean isConstructor() { return (myFlags & CONSTRUCTOR) != 0; } + @Override public boolean isVarArgs() { return (myFlags & VARARGS) != 0; } + @Override public boolean isAnnotationMethod() { return isAnnotationMethod(myFlags); } @@ -89,24 +92,29 @@ public class PsiMethodStubImpl extends StubBase implements PsiMethodS return (flags & ANNOTATION) != 0; } + @Override public String getDefaultValueText() { return StringRef.toString(myDefaultValueText); } + @Override @NotNull public TypeInfo getReturnTypeText(boolean doResolve) { if (!doResolve) return myReturnType; return PsiFieldStubImpl.addApplicableTypeAnnotationsFromChildModifierList(this, myReturnType); } + @Override public boolean isDeprecated() { return (myFlags & DEPRECATED) != 0; } + @Override public boolean hasDeprecatedAnnotation() { return (myFlags & DEPRECATED_ANNOTATION) != 0; } + @Override public PsiParameterStub findParameter(final int idx) { PsiParameterListStub list = null; for (StubElement child : getChildrenStubs()) { @@ -124,6 +132,7 @@ public class PsiMethodStubImpl extends StubBase implements PsiMethodS throw new RuntimeException("No parameter(s) [yet?]"); } + @Override public String getName() { return StringRef.toString(myName); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java index 225077d42f46..0980c9a3e1f4 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiModifierListStubImpl.java @@ -33,6 +33,7 @@ public class PsiModifierListStubImpl extends StubBase implement myMask = mask; } + @Override public int getModifiersMask() { return myMask; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java index 0b32ad159ebf..bfc56298dae7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java @@ -47,16 +47,19 @@ public class PsiParameterStubImpl extends StubBase implements PsiP myIsEllipsis = isEllipsis; } + @Override public boolean isParameterTypeEllipsis() { return myIsEllipsis; } + @Override @NotNull public TypeInfo getType(boolean doResolve) { if (!doResolve) return myType; return PsiFieldStubImpl.addApplicableTypeAnnotationsFromChildModifierList(this, myType); } + @Override public PsiModifierListStub getModList() { for (StubElement child : getChildrenStubs()) { if (child instanceof PsiModifierListStub) { @@ -66,6 +69,7 @@ public class PsiParameterStubImpl extends StubBase implements PsiP return null; } + @Override public String getName() { return StringRef.toString(myName); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiTypeParameterStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiTypeParameterStubImpl.java index 53c980b239fe..4f2a83519025 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiTypeParameterStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiTypeParameterStubImpl.java @@ -40,6 +40,7 @@ public class PsiTypeParameterStubImpl extends StubBase impleme myName = name; } + @Override public String getName() { return StringRef.toString(myName); } @@ -51,11 +52,13 @@ public class PsiTypeParameterStubImpl extends StubBase impleme return builder.toString(); } + @Override @NotNull public List getAnnotations() { List children = getChildrenStubs(); return ContainerUtil.mapNotNull(children, new Function() { + @Override public PsiAnnotationStub fun(StubElement stubElement) { return stubElement instanceof PsiAnnotationStub ? (PsiAnnotationStub)stubElement : null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClass.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClass.java index a92d5a07d173..1c1707bc3e3e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClass.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClass.java @@ -46,87 +46,105 @@ public class LightClass extends LightElement implements PsiClass { myDelegate = delegate; } + @Override @NonNls @Nullable public String getName() { return myDelegate.getName(); } + @Override @Nullable public PsiModifierList getModifierList() { return myDelegate.getModifierList(); } + @Override public boolean hasModifierProperty(@Modifier @NonNls @NotNull String name) { return myDelegate.hasModifierProperty(name); } + @Override @Nullable public PsiDocComment getDocComment() { return null; } + @Override public boolean isDeprecated() { return myDelegate.isDeprecated(); } + @Override public boolean hasTypeParameters() { return PsiImplUtil.hasTypeParameters(this); } + @Override @Nullable public PsiTypeParameterList getTypeParameterList() { return myDelegate.getTypeParameterList(); } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return myDelegate.getTypeParameters(); } + @Override @NonNls @Nullable public String getQualifiedName() { return myDelegate.getQualifiedName(); } + @Override public boolean isInterface() { return myDelegate.isInterface(); } + @Override public boolean isAnnotationType() { return myDelegate.isAnnotationType(); } + @Override public boolean isEnum() { return myDelegate.isEnum(); } + @Override @Nullable public PsiReferenceList getExtendsList() { return myDelegate.getExtendsList(); } + @Override @Nullable public PsiReferenceList getImplementsList() { return myDelegate.getImplementsList(); } + @Override @NotNull public PsiClassType[] getExtendsListTypes() { return PsiClassImplUtil.getExtendsListTypes(this); } + @Override @NotNull public PsiClassType[] getImplementsListTypes() { return PsiClassImplUtil.getImplementsListTypes(this); } + @Override @Nullable public PsiClass getSuperClass() { return myDelegate.getSuperClass(); } + @Override public PsiClass[] getInterfaces() { return myDelegate.getInterfaces(); } @@ -137,36 +155,43 @@ public class LightClass extends LightElement implements PsiClass { return myDelegate.getNavigationElement(); } + @Override @NotNull public PsiClass[] getSupers() { return myDelegate.getSupers(); } + @Override @NotNull public PsiClassType[] getSuperTypes() { return myDelegate.getSuperTypes(); } + @Override @NotNull public PsiField[] getFields() { return myDelegate.getFields(); } + @Override @NotNull public PsiMethod[] getMethods() { return myDelegate.getMethods(); } + @Override @NotNull public PsiMethod[] getConstructors() { return myDelegate.getConstructors(); } + @Override @NotNull public PsiClass[] getInnerClasses() { return myDelegate.getInnerClasses(); } + @Override @NotNull public PsiClassInitializer[] getInitializers() { return myDelegate.getInitializers(); @@ -180,93 +205,112 @@ public class LightClass extends LightElement implements PsiClass { return PsiClassImplUtil.processDeclarationsInClass(this, processor, state, null, lastParent, place, false); } + @Override @NotNull public PsiField[] getAllFields() { return myDelegate.getAllFields(); } + @Override @NotNull public PsiMethod[] getAllMethods() { return myDelegate.getAllMethods(); } + @Override @NotNull public PsiClass[] getAllInnerClasses() { return myDelegate.getAllInnerClasses(); } + @Override @Nullable public PsiField findFieldByName(@NonNls String name, boolean checkBases) { return PsiClassImplUtil.findFieldByName(this, name, checkBases); } + @Override @Nullable public PsiMethod findMethodBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodsBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsByName(@NonNls String name, boolean checkBases) { return PsiClassImplUtil.findMethodsByName(this, name, checkBases); } + @Override @NotNull public List> findMethodsAndTheirSubstitutorsByName(@NonNls String name, boolean checkBases) { return PsiClassImplUtil.findMethodsAndTheirSubstitutorsByName(this, name, checkBases); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return PsiClassImplUtil.getAllWithSubstitutorsByMap(this, PsiMethod.class); } + @Override @Nullable public PsiClass findInnerClassByName(@NonNls String name, boolean checkBases) { return myDelegate.findInnerClassByName(name, checkBases); } + @Override @Nullable public PsiElement getLBrace() { return myDelegate.getLBrace(); } + @Override @Nullable public PsiElement getRBrace() { return myDelegate.getRBrace(); } + @Override @Nullable public PsiIdentifier getNameIdentifier() { return myDelegate.getNameIdentifier(); } + @Override public PsiElement getScope() { return myDelegate.getScope(); } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return myDelegate.isInheritor(baseClass, checkDeep); } + @Override public boolean isInheritorDeep(PsiClass baseClass, @Nullable PsiClass classToByPass) { return myDelegate.isInheritorDeep(baseClass, classToByPass); } + @Override @Nullable public PsiClass getContainingClass() { return myDelegate.getContainingClass(); } + @Override @NotNull public Collection getVisibleSignatures() { return myDelegate.getVisibleSignatures(); } + @Override public PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException { return myDelegate.setName(name); } @@ -276,10 +320,12 @@ public class LightClass extends LightElement implements PsiClass { return "PsiClass:" + getName(); } + @Override public String getText() { return myDelegate.getText(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClass(this); @@ -288,6 +334,7 @@ public class LightClass extends LightElement implements PsiClass { } } + @Override public PsiElement copy() { return new LightClass(this); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReference.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReference.java index 4ba2b6422331..10ae244d05a2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReference.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReference.java @@ -76,6 +76,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe mySubstitutor = substitutor; } + @Override public PsiElement resolve() { if (myClassName != null) { final JavaPsiFacade facade = JavaPsiFacade.getInstance(getProject()); @@ -91,6 +92,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe } } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode){ final PsiElement resolved = resolve(); @@ -108,6 +110,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return new CandidateInfo(resolved, substitutor); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode){ final JavaResolveResult result = advancedResolve(incompleteCode); @@ -115,14 +118,17 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return JavaResolveResult.EMPTY_ARRAY; } + @Override public void processVariants(PsiScopeProcessor processor){ throw new RuntimeException("Variants are not available for light references"); } + @Override public PsiElement getReferenceNameElement() { return null; } + @Override public PsiReferenceParameterList getParameterList() { if (myParameterList == null) { myParameterList = new LightReferenceParameterList(myManager, PsiTypeElement.EMPTY_ARRAY); @@ -130,6 +136,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return myParameterList; } + @Override public String getQualifiedName() { if (myClassName != null) { if (myContext != null) { @@ -143,6 +150,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return myRefClass.getQualifiedName(); } + @Override public String getReferenceName() { if (myClassName != null){ return PsiNameHelper.getShortClassName(myClassName); @@ -157,14 +165,17 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe } } + @Override public String getText() { return myText; } + @Override public PsiReference getReference() { return this; } + @Override @NotNull public String getCanonicalText() { String name = getQualifiedName(); @@ -184,6 +195,7 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return buf.toString(); } + @Override public PsiElement copy() { if (myClassName != null) { if (myContext != null) { @@ -198,16 +210,19 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe } } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { //TODO? throw new UnsupportedOperationException(); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { //TODO? throw new UnsupportedOperationException(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceElement(this); @@ -221,40 +236,49 @@ public class LightClassReference extends LightElement implements PsiJavaCodeRefe return "LightClassReference:" + myText; } + @Override public boolean isReferenceTo(PsiElement element) { return element instanceof PsiClass && getManager().areElementsEquivalent(resolve(), element); } + @Override @NotNull public Object[] getVariants() { throw new RuntimeException("Variants are not available for light references"); } + @Override public boolean isSoft(){ return false; } + @Override public TextRange getRangeInElement() { return new TextRange(0, getTextLength()); } + @Override public PsiElement getElement() { return this; } + @Override public boolean isValid() { return myRefClass == null || myRefClass.isValid(); } + @Override @NotNull public PsiType[] getTypeParameters() { return PsiType.EMPTY_ARRAY; } + @Override public PsiElement getQualifier() { return null; } + @Override public boolean isQualified() { return false; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReferenceExpression.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReferenceExpression.java index 4c36f7217a96..a60b37293901 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReferenceExpression.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightClassReferenceExpression.java @@ -26,26 +26,32 @@ public class LightClassReferenceExpression extends LightClassReference implement super(manager, text, refClass); } + @Override public PsiExpression getQualifierExpression(){ return null; } + @Override public PsiElement bindToElementViaStaticImport(@NotNull PsiClass aClass) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void setQualifierExpression(@Nullable PsiExpression newQualifier) throws IncorrectOperationException { throw new IncorrectOperationException("This method should not be called for light elements"); } + @Override public PsiType getType(){ return null; } + @Override public boolean isReferenceTo(PsiElement element) { return getManager().areElementsEquivalent(resolve(), element); } + @Override public PsiReferenceParameterList getParameterList() { return null; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightEmptyImplementsList.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightEmptyImplementsList.java index 2a63bd367962..6e35f12ac2f0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightEmptyImplementsList.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightEmptyImplementsList.java @@ -31,10 +31,12 @@ public class LightEmptyImplementsList extends LightElement implements PsiReferen return "PsiReferenceList"; } + @Override public String getText() { return ""; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceList(this); @@ -44,20 +46,24 @@ public class LightEmptyImplementsList extends LightElement implements PsiReferen } } + @Override public PsiElement copy() { return this; } + @Override @NotNull public PsiJavaCodeReferenceElement[] getReferenceElements() { return PsiJavaCodeReferenceElement.EMPTY_ARRAY; } + @Override @NotNull public PsiClassType[] getReferencedTypes() { return PsiClassType.EMPTY_ARRAY; } + @Override public Role getRole() { return Role.IMPLEMENTS_LIST; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightIdentifier.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightIdentifier.java index 3a28278eee5f..81c213d4616c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightIdentifier.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightIdentifier.java @@ -28,14 +28,17 @@ public class LightIdentifier extends LightElement implements PsiIdentifier, PsiJ myText = text; } + @Override public IElementType getTokenType() { return JavaTokenType.IDENTIFIER; } + @Override public String getText(){ return myText; } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitIdentifier(this); @@ -45,6 +48,7 @@ public class LightIdentifier extends LightElement implements PsiIdentifier, PsiJ } } + @Override public PsiElement copy(){ return new LightIdentifier(getManager(), myText); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightKeyword.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightKeyword.java index b60b04f765d2..306d2ac549f8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightKeyword.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightKeyword.java @@ -31,16 +31,19 @@ public class LightKeyword extends LightElement implements PsiKeyword, PsiJavaTok myText = text; } + @Override public String getText(){ return myText; } + @Override public IElementType getTokenType(){ Lexer lexer = new JavaLexer(LanguageLevel.HIGHEST); lexer.start(myText); return lexer.getTokenType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitKeyword(this); @@ -50,6 +53,7 @@ public class LightKeyword extends LightElement implements PsiKeyword, PsiJavaTok } } + @Override public PsiElement copy(){ return new LightKeyword(getManager(), myText); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightMethod.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightMethod.java index 9988c9583208..bdd8d76a869a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightMethod.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightMethod.java @@ -56,134 +56,164 @@ public class LightMethod extends LightElement implements PsiMethod { return ItemPresentationProviders.getItemPresentation(this); } + @Override public boolean hasTypeParameters() { return myMethod.hasTypeParameters(); } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return myMethod.getTypeParameters(); } + @Override public PsiTypeParameterList getTypeParameterList() { return myMethod.getTypeParameterList(); } + @Override public PsiDocComment getDocComment() { return myMethod.getDocComment(); } + @Override public boolean isDeprecated() { return myMethod.isDeprecated(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { return myMethod.setName(name); } + @Override @NotNull public String getName() { return myMethod.getName(); } + @Override @NotNull public HierarchicalMethodSignature getHierarchicalMethodSignature() { return myMethod.getHierarchicalMethodSignature(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return myMethod.hasModifierProperty(name); } + @Override @NotNull public PsiModifierList getModifierList() { return myMethod.getModifierList(); } + @Override public PsiType getReturnType() { return myMethod.getReturnType(); } + @Override public PsiTypeElement getReturnTypeElement() { return myMethod.getReturnTypeElement(); } + @Override @NotNull public PsiParameterList getParameterList() { return myMethod.getParameterList(); } + @Override @NotNull public PsiReferenceList getThrowsList() { return myMethod.getThrowsList(); } + @Override public PsiCodeBlock getBody() { return myMethod.getBody(); } + @Override public boolean isConstructor() { return myMethod.isConstructor(); } + @Override public boolean isVarArgs() { return myMethod.isVarArgs(); } + @Override @NotNull public MethodSignature getSignature(@NotNull PsiSubstitutor substitutor) { return myMethod.getSignature(substitutor); } + @Override public PsiIdentifier getNameIdentifier() { return myMethod.getNameIdentifier(); } + @Override @NotNull public PsiMethod[] findSuperMethods() { return myMethod.findSuperMethods(); } + @Override @NotNull public PsiMethod[] findSuperMethods(boolean checkAccess) { return myMethod.findSuperMethods(checkAccess); } + @Override @NotNull public PsiMethod[] findSuperMethods(PsiClass parentClass) { return myMethod.findSuperMethods(parentClass); } + @Override @NotNull public List findSuperMethodSignaturesIncludingStatic(boolean checkAccess) { return myMethod.findSuperMethodSignaturesIncludingStatic(checkAccess); } + @Override @SuppressWarnings("deprecation") public PsiMethod findDeepestSuperMethod() { return myMethod.findDeepestSuperMethod(); } + @Override @NotNull public PsiMethod[] findDeepestSuperMethods() { return myMethod.findDeepestSuperMethods(); } + @Override public String getText() { return myMethod.getText(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { myMethod.accept(visitor); } + @Override public PsiElement copy() { return new LightMethod(myManager, (PsiMethod)myMethod.copy(), myContainingClass); } + @Override public boolean isValid() { return myContainingClass.isValid(); } + @Override public PsiClass getContainingClass() { return myContainingClass; } @@ -197,6 +227,7 @@ public class LightMethod extends LightElement implements PsiMethod { return true; } + @Override public Icon getElementIcon(final int flags) { Icon methodIcon = hasModifierProperty(PsiModifier.ABSTRACT) ? PlatformIcons.ABSTRACT_METHOD_ICON : PlatformIcons.METHOD_ICON; RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(methodIcon, this, false); @@ -208,6 +239,7 @@ public class LightMethod extends LightElement implements PsiMethod { return PsiClassImplUtil.isMethodEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiImplUtil.getMemberUseScope(this); @@ -218,10 +250,12 @@ public class LightMethod extends LightElement implements PsiMethod { return getContainingClass(); } + @Override public PsiMethodReceiver getMethodReceiver() { return null; } + @Override public PsiType getReturnTypeNoResolve() { return getReturnType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightModifierList.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightModifierList.java index 77011c6ba561..06ad95ce50b7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightModifierList.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightModifierList.java @@ -60,42 +60,51 @@ public class LightModifierList extends LightElement implements PsiModifierList { myModifiers.clear(); } + @Override public boolean hasModifierProperty(@NotNull String name) { return myModifiers.contains(name); } + @Override public boolean hasExplicitModifier(@NotNull String name) { return myModifiers.contains(name); } + @Override public void setModifierProperty(@NotNull String name, boolean value) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkSetModifierProperty(@NotNull String name, boolean value) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override @NotNull public PsiAnnotation[] getAnnotations() { //todo return PsiAnnotation.EMPTY_ARRAY; } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { return getAnnotations(); } + @Override public PsiAnnotation findAnnotation(@NotNull String qualifiedName) { return null; } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new IncorrectOperationException(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitModifierList(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReference.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReference.java index 05f52b689e9f..1f5abf5560f5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReference.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReference.java @@ -39,6 +39,7 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe myRefPackage = null; } + @Override public PsiElement resolve(){ if (myPackageName != null){ return JavaPsiFacade.getInstance(myManager.getProject()).findPackage(myPackageName); @@ -48,11 +49,13 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe } } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode){ return new CandidateInfo(resolve(), PsiSubstitutor.EMPTY); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode){ final JavaResolveResult result = advancedResolve(incompleteCode); @@ -60,6 +63,7 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe return JavaResolveResult.EMPTY_ARRAY; } + @Override public String getText(){ if (myPackageName != null){ return myPackageName; @@ -69,15 +73,18 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe } } + @Override public PsiReference getReference() { return this; } + @Override @NotNull public String getCanonicalText(){ return getText(); } + @Override public PsiElement copy(){ if (myPackageName != null){ return new LightPackageReference(myManager, myPackageName); @@ -87,16 +94,19 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe } } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { //TODO? throw new UnsupportedOperationException(); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { //TODO? throw new UnsupportedOperationException(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceElement(this); @@ -110,36 +120,44 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe return "PsiJavaCodeReferenceElement:" + getText(); } + @Override public boolean isReferenceTo(PsiElement element) { if (!(element instanceof PsiPackage)) return false; return getManager().areElementsEquivalent(resolve(), element); } + @Override @NotNull public Object[] getVariants() { throw new RuntimeException("Variants are not available for light references"); } + @Override public boolean isSoft(){ return false; } + @Override public void processVariants(PsiScopeProcessor processor){ throw new RuntimeException("Variants are not available for light references"); } + @Override public PsiElement getReferenceNameElement() { return null; } + @Override public PsiReferenceParameterList getParameterList() { return null; } + @Override public String getQualifiedName() { return getText(); } + @Override public String getReferenceName() { if (myPackageName != null){ return PsiNameHelper.getShortClassName(myPackageName); @@ -149,27 +167,33 @@ public class LightPackageReference extends LightElement implements PsiJavaCodeRe } } + @Override public TextRange getRangeInElement() { return new TextRange(0, getTextLength()); } + @Override public PsiElement getElement() { return this; } + @Override public boolean isValid() { return myRefPackage == null || myRefPackage.isValid(); } + @Override @NotNull public PsiType[] getTypeParameters() { return PsiType.EMPTY_ARRAY; } + @Override public PsiElement getQualifier() { return null; } + @Override public boolean isQualified() { return false; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReferenceExpression.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReferenceExpression.java index 6251a9f2f36a..d33b96f58ac0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReferenceExpression.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightPackageReferenceExpression.java @@ -25,22 +25,27 @@ public class LightPackageReferenceExpression extends LightPackageReference imple super(manager, refPackage); } + @Override public PsiExpression getQualifierExpression(){ return null; } + @Override public PsiElement bindToElementViaStaticImport(@NotNull PsiClass aClass) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void setQualifierExpression(@Nullable PsiExpression newQualifier) throws IncorrectOperationException { throw new IncorrectOperationException("This method should not be called for light elements"); } + @Override public PsiType getType(){ return null; } + @Override public boolean isReferenceTo(PsiElement element) { return getManager().areElementsEquivalent(resolve(), element); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightReferenceParameterList.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightReferenceParameterList.java index 2ba389d5a022..4f1fff96690a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightReferenceParameterList.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightReferenceParameterList.java @@ -52,10 +52,12 @@ public class LightReferenceParameterList extends LightElement implements PsiRefe return "PsiReferenceParameterList"; } + @Override public String getText() { return myText; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceParameterList(this); @@ -65,6 +67,7 @@ public class LightReferenceParameterList extends LightElement implements PsiRefe } } + @Override public PsiElement copy() { final PsiTypeElement[] elements = new PsiTypeElement[myTypeElements.length]; for (int i = 0; i < myTypeElements.length; i++) { @@ -74,11 +77,13 @@ public class LightReferenceParameterList extends LightElement implements PsiRefe return new LightReferenceParameterList(myManager, elements); } + @Override @NotNull public PsiTypeElement[] getTypeParameterElements() { return myTypeElements; } + @Override @NotNull public PsiType[] getTypeArguments() { return PsiImplUtil.typesByTypeElements(myTypeElements); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightTypeElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightTypeElement.java index bb32fdd2d791..f8c0c89d2f1c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightTypeElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightTypeElement.java @@ -38,10 +38,12 @@ public class LightTypeElement extends LightElement implements PsiTypeElement { return "PsiTypeElement:" + getText(); } + @Override public String getText() { return myType.getPresentableText(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTypeElement(this); @@ -51,45 +53,55 @@ public class LightTypeElement extends LightElement implements PsiTypeElement { } } + @Override public PsiElement copy() { return new LightTypeElement(myManager, myType); } + @Override @NotNull public PsiType getType() { return myType; } + @Override public PsiJavaCodeReferenceElement getInnermostComponentReferenceElement() { return null; } + @Override public PsiAnnotationOwner getOwner(PsiAnnotation annotation) { return this; } + @Override public PsiType getTypeNoResolve(@NotNull PsiElement context) { return getType(); } + @Override public boolean isValid() { return myType.isValid(); } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return myType.getAnnotations(); } + @Override public PsiAnnotation findAnnotation(@NotNull @NonNls String qualifiedName) { return myType.findAnnotation(qualifiedName); } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new IncorrectOperationException(); } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { return getAnnotations(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java index e4de79dbf1bc..6d8c0d5b127c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/ClassInnerStuffCache.java @@ -61,6 +61,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myConstructorsCache = cache = manager.createCachedValue(new CachedValueProvider() { + @Override public Result compute() { return Result.create(PsiImplUtil.getConstructors(myClass), dependencies); } @@ -79,6 +80,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myFieldsCache = cache = manager.createCachedValue(new CachedValueProvider() { + @Override public Result compute() { return Result.create(getAllFields(), dependencies); } @@ -96,6 +98,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myMethodsCache = cache = manager.createCachedValue(new CachedValueProvider() { + @Override public Result compute() { return Result.create(getAllMethods(), dependencies); } @@ -113,6 +116,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myInnerClassesCache = cache = manager.createCachedValue(new CachedValueProvider() { + @Override public Result compute() { return Result.create(getAllInnerClasses(), dependencies); } @@ -131,6 +135,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myFieldsMapCache = cache = manager.createCachedValue(new CachedValueProvider>() { + @Override public Result> compute() { return Result.create(getFieldsMap(), dependencies); } @@ -151,6 +156,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myMethodsMapCache = cache = manager.createCachedValue(new CachedValueProvider>>() { + @Override public Result>> compute() { return Result.create(getMethodsMap(), dependencies); } @@ -177,6 +183,7 @@ public class ClassInnerStuffCache { final Object[] dependencies = {PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT, myTreeChangeTracker}; myInnerClassesMapCache = cache = manager.createCachedValue(new CachedValueProvider>() { + @Override public Result> compute() { return Result.create(getInnerClassesMap(), dependencies); } @@ -262,6 +269,7 @@ public class ClassInnerStuffCache { private static class MyModificationTracker implements ModificationTracker { private long myCount = 0; + @Override public long getModificationCount() { return myCount; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java index 166dc1767e61..fc2a1c2a6282 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java @@ -23,66 +23,77 @@ import com.intellij.psi.tree.TokenSet; public interface Constants extends ElementType { PsiElementArrayConstructor PSI_CLASS_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiClass[] newPsiElementArray(int length) { return length == 0 ? PsiClass.EMPTY_ARRAY : new PsiClass[length]; } }; PsiElementArrayConstructor PSI_FIELD_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiField[] newPsiElementArray(int length) { return length == 0 ? PsiField.EMPTY_ARRAY : new PsiField[length]; } }; PsiElementArrayConstructor PSI_METHOD_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiMethod[] newPsiElementArray(int length) { return length == 0 ? PsiMethod.EMPTY_ARRAY : new PsiMethod[length]; } }; PsiElementArrayConstructor PSI_CLASS_INITIALIZER_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiClassInitializer[] newPsiElementArray(int length) { return length == 0 ? PsiClassInitializer.EMPTY_ARRAY : new PsiClassInitializer[length]; } }; PsiElementArrayConstructor PSI_PARAMETER_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiParameter[] newPsiElementArray(int length) { return length == 0 ? PsiParameter.EMPTY_ARRAY : new PsiParameter[length]; } }; PsiElementArrayConstructor PSI_CATCH_SECTION_ARRAYS_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiCatchSection[] newPsiElementArray(int length) { return length == 0 ? PsiCatchSection.EMPTY_ARRAY : new PsiCatchSection[length]; } }; PsiElementArrayConstructor PSI_REFERENCE_ELEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiJavaCodeReferenceElement[] newPsiElementArray(int length) { return length == 0 ? PsiJavaCodeReferenceElement.EMPTY_ARRAY : new PsiJavaCodeReferenceElement[length]; } }; PsiElementArrayConstructor PSI_STATEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiStatement[] newPsiElementArray(int length) { return length == 0 ? PsiStatement.EMPTY_ARRAY : new PsiStatement[length]; } }; PsiElementArrayConstructor PSI_EXPRESSION_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiExpression[] newPsiElementArray(int length) { return length == 0 ? PsiExpression.EMPTY_ARRAY : new PsiExpression[length]; } }; PsiElementArrayConstructor PSI_IMPORT_STATEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiImportStatement[] newPsiElementArray(int length) { return length == 0 ? PsiImportStatement.EMPTY_ARRAY : new PsiImportStatement[length]; } }; PsiElementArrayConstructor PSI_IMPORT_STATIC_STATEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiImportStaticStatement[] newPsiElementArray(int length) { return length == 0 ? PsiImportStaticStatement.EMPTY_ARRAY : new PsiImportStaticStatement[length]; } @@ -90,24 +101,28 @@ public interface Constants extends ElementType { PsiElementArrayConstructor PSI_IMPORT_STATEMENT_BASE_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiImportStatementBase[] newPsiElementArray(int length) { return length == 0 ? PsiImportStatementBase.EMPTY_ARRAY : new PsiImportStatementBase[length]; } }; PsiElementArrayConstructor PSI_ANNOTATION_MEMBER_VALUE_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiAnnotationMemberValue[] newPsiElementArray(int length) { return length == 0 ? PsiAnnotationMemberValue.EMPTY_ARRAY : new PsiAnnotationMemberValue[length]; } }; PsiElementArrayConstructor PSI_NAME_VALUE_PAIR_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiNameValuePair[] newPsiElementArray(int length) { return length == 0 ? PsiNameValuePair.EMPTY_ARRAY : new PsiNameValuePair[length]; } }; PsiElementArrayConstructor PSI_ANNOTATION_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiAnnotation[] newPsiElementArray(int length) { return length == 0 ? PsiAnnotation.EMPTY_ARRAY : new PsiAnnotation[length]; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/HierarchicalMethodSignatureImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/HierarchicalMethodSignatureImpl.java index 106c6ebd7d05..f7acfd793cb1 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/HierarchicalMethodSignatureImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/HierarchicalMethodSignatureImpl.java @@ -38,6 +38,7 @@ public class HierarchicalMethodSignatureImpl extends HierarchicalMethodSignature mySupers.add(superSignatureHierarchical); } + @Override @NotNull public List getSuperSignatures() { return mySupers == null ? Collections.emptyList() : mySupers; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolder.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolder.java index 18fcee7e00e6..d03ec0fc0972 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolder.java @@ -58,6 +58,7 @@ public class JavaDummyHolder extends DummyHolder implements PsiImportHolder { super(manager, null, null, table, null, JavaLanguage.INSTANCE); } + @Override public boolean importClass(PsiClass aClass) { if (myContext != null) { final PsiClass resolved = JavaPsiFacade.getInstance(getProject()).getResolveHelper().resolveReferencedClass(aClass.getName(), myContext); @@ -85,6 +86,7 @@ public class JavaDummyHolder extends DummyHolder implements PsiImportHolder { return !myPseudoImports.isEmpty(); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { ElementClassHint classHint = processor.getHint(ElementClassHint.KEY); if (classHint == null || classHint.shouldProcess(ElementClassHint.DeclarationKind.CLASS)) { @@ -129,6 +131,7 @@ public class JavaDummyHolder extends DummyHolder implements PsiImportHolder { } + @Override public void setOriginalFile(@NotNull final PsiFile originalFile) { super.setOriginalFile(originalFile); putUserData(PsiUtil.FILE_LANGUAGE_LEVEL_KEY, PsiUtil.getLanguageLevel(originalFile)); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolderFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolderFactory.java index d5453555b72d..e6227fbc45e8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolderFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaDummyHolderFactory.java @@ -28,31 +28,38 @@ import com.intellij.util.CharTable; import org.jetbrains.annotations.NotNull; public class JavaDummyHolderFactory implements HolderFactory { + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final TreeElement contentElement, final PsiElement context) { return new JavaDummyHolder(manager, contentElement, context); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final TreeElement contentElement, final PsiElement context, final CharTable table) { return new JavaDummyHolder(manager, contentElement, context, table); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final PsiElement context) { return new JavaDummyHolder(manager, context); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final Language language, final PsiElement context) { return language == JavaLanguage.INSTANCE ? new JavaDummyHolder(manager, context) : new DummyHolder(manager, language, context); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final PsiElement context, final CharTable table) { return new JavaDummyHolder(manager, context, table); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final CharTable table, final Language language) { return new JavaDummyHolder(manager, table); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final CharTable table, final boolean validity) { return new JavaDummyHolder(manager, table, validity); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaStubPsiElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaStubPsiElement.java index 538f86b22a06..986b6d025773 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaStubPsiElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaStubPsiElement.java @@ -52,15 +52,18 @@ public abstract class JavaStubPsiElement extends StubBase super(node); } + @Override @NotNull public Language getLanguage() { return JavaLanguage.INSTANCE; } + @Override public PsiElement getParent() { return getParentByStub(); } + @Override public int getTextOffset() { return calcTreeElement().getTextOffset(); } @@ -69,6 +72,7 @@ public abstract class JavaStubPsiElement extends StubBase return (CompositeElement)getNode(); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -77,6 +81,7 @@ public abstract class JavaStubPsiElement extends StubBase return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -85,6 +90,7 @@ public abstract class JavaStubPsiElement extends StubBase return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public PsiElement addAfter(@NotNull PsiElement element, @Nullable PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -93,24 +99,29 @@ public abstract class JavaStubPsiElement extends StubBase return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public final void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, null, null); } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.TRUE); } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.FALSE); } + @Override public void delete() throws IncorrectOperationException { ASTNode treeElement = calcTreeElement(); LOG.assertTrue(treeElement.getTreeParent() != null); @@ -118,6 +129,7 @@ public abstract class JavaStubPsiElement extends StubBase ((CompositeElement)treeElement.getTreeParent()).deleteChildInternal(treeElement); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { CheckUtil.checkWritable(this); if (first == null) { @@ -132,11 +144,13 @@ public abstract class JavaStubPsiElement extends StubBase CodeEditUtil.removeChildren(treeElement, firstElement, lastElement); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { CompositeElement treeElement = calcTreeElement(); return SharedImplUtil.doReplace(this, treeElement, newElement); } + @Override public void navigate(boolean requestFocus) { final Navigatable navigatable = PsiNavigationSupport.getInstance().getDescriptor(this); if (navigatable != null) { @@ -144,18 +158,22 @@ public abstract class JavaStubPsiElement extends StubBase } } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { SharedImplUtil.acceptChildren(visitor, calcTreeElement()); } + @Override protected Object clone() { CompositeElement treeElement = calcTreeElement(); CompositeElement treeElementClone @@ -175,12 +193,14 @@ public abstract class JavaStubPsiElement extends StubBase return clone; } + @Override public void subtreeChanged() { final CompositeElement compositeElement = calcTreeElement(); if (compositeElement != null) compositeElement.clearCaches(); super.subtreeChanged(); } + @Override @NotNull public PsiElement[] getChildren() { PsiElement psiChild = getFirstChild(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnnotationMethodImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnnotationMethodImpl.java index 1133ac80ea82..ccb21e60b0d2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnnotationMethodImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnnotationMethodImpl.java @@ -41,14 +41,17 @@ public class PsiAnnotationMethodImpl extends PsiMethodImpl implements PsiAnnotat super(node); } + @Override public boolean hasModifierProperty(@NotNull String name) { return PsiModifier.ABSTRACT.equals(name) || PsiModifier.PUBLIC.equals(name) || super.hasModifierProperty(name); } + @Override protected void dropCached() { myCachedDefaultValue = null; } + @Override public PsiAnnotationMemberValue getDefaultValue() { final PsiMethodStub stub = getStub(); if (stub != null) { @@ -81,6 +84,7 @@ public class PsiAnnotationMethodImpl extends PsiMethodImpl implements PsiAnnotat return "PsiAnnotationMethod:" + getName(); } + @Override public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnnotationMethod(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnonymousClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnonymousClassImpl.java index 082fe4878337..6578d5cb4f3e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnonymousClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiAnonymousClassImpl.java @@ -37,21 +37,25 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC super(node); } + @Override protected Object clone() { PsiAnonymousClassImpl clone = (PsiAnonymousClassImpl)super.clone(); clone.myCachedBaseType = null; return clone; } + @Override public void subtreeChanged() { super.subtreeChanged(); myCachedBaseType = null; } + @Override public PsiExpressionList getArgumentList() { return (PsiExpressionList)getNode().findChildByRoleAsPsiElement(ChildRole.ARGUMENT_LIST); } + @Override @NotNull public PsiJavaCodeReferenceElement getBaseClassReference() { final PsiJavaCodeReferenceElement result = @@ -60,6 +64,7 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC return result; } + @Override @NotNull public PsiClassType getBaseClassType() { final PsiClassStub stub = getStub(); @@ -100,54 +105,67 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC return JavaPsiFacade.getInstance(getProject()).getElementFactory().createType(getBaseClassReference()); } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override public String getQualifiedName() { return null; } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@NotNull String name) { return name.equals(PsiModifier.FINAL); } + @Override public PsiReferenceList getExtendsList() { return null; } + @Override public PsiReferenceList getImplementsList() { return null; } + @Override public PsiClass getContainingClass() { return null; } + @Override public boolean isInterface() { return false; } + @Override public boolean isAnnotationType() { return false; } + @Override public boolean isEnum() { return false; } + @Override public PsiTypeParameterList getTypeParameterList() { return null; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnonymousClass(this); @@ -161,6 +179,7 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC return "PsiAnonymousClass"; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -182,6 +201,7 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC return super.processDeclarations(processor, state, lastParent, place); } + @Override public boolean isInQualifiedNew() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -192,6 +212,7 @@ public class PsiAnonymousClassImpl extends PsiClassImpl implements PsiAnonymousC return parent instanceof PsiNewExpression && ((PsiNewExpression)parent).getQualifier() != null; } + @Override public PsiElement getParent() { return SharedImplUtil.getParent(getNode()); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassImpl.java index d6408990fa13..903a5f0ea790 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassImpl.java @@ -72,6 +72,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements super(node); } + @Override public void subtreeChanged() { dropCaches(); @@ -83,6 +84,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements myCachedForLongName = null; } + @Override protected Object clone() { PsiClassImpl clone = (PsiClassImpl)super.clone(); @@ -91,6 +93,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return clone; } + @Override public PsiElement getParent() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -104,6 +107,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return SharedImplUtil.getParent(getNode()); } + @Override public PsiElement getOriginalElement() { final JavaPsiImplementationHelper helper = JavaPsiImplementationHelper.getInstance(getProject()); if (helper != null) { @@ -112,15 +116,18 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return this; } + @Override @NotNull public CompositeElement getNode() { return (CompositeElement)super.getNode(); } + @Override public PsiIdentifier getNameIdentifier() { return (PsiIdentifier)getNode().findChildByRoleAsPsiElement(ChildRole.NAME); } + @Override public PsiElement getScope() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -140,6 +147,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return getContainingFile(); } + @Override public String getName() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -150,6 +158,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return identifier != null ? identifier.getText() : null; } + @Override public String getQualifiedName() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -175,51 +184,62 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return null; } + @Override public PsiModifierList getModifierList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.MODIFIER_LIST); } + @Override public boolean hasModifierProperty(@NotNull String name) { final PsiModifierList modlist = getModifierList(); return modlist != null && modlist.hasModifierProperty(name); } + @Override public PsiReferenceList getExtendsList() { return getStubOrPsiChild(JavaStubElementTypes.EXTENDS_LIST); } + @Override public PsiReferenceList getImplementsList() { return getStubOrPsiChild(JavaStubElementTypes.IMPLEMENTS_LIST); } + @Override @NotNull public PsiClassType[] getExtendsListTypes() { return PsiClassImplUtil.getExtendsListTypes(this); } + @Override @NotNull public PsiClassType[] getImplementsListTypes() { return PsiClassImplUtil.getImplementsListTypes(this); } + @Override public PsiClass getSuperClass() { return PsiClassImplUtil.getSuperClass(this); } + @Override public PsiClass[] getInterfaces() { return PsiClassImplUtil.getInterfaces(this); } + @Override @NotNull public PsiClass[] getSupers() { return PsiClassImplUtil.getSupers(this); } + @Override @NotNull public PsiClassType[] getSuperTypes() { return PsiClassImplUtil.getSuperTypes(this); } + @Override @Nullable public PsiClass getContainingClass() { final PsiClassStub stub = getStub(); @@ -250,26 +270,31 @@ public class PsiClassImpl extends JavaStubPsiElement> implements } + @Override @NotNull public Collection getVisibleSignatures() { return PsiSuperMethodImplUtil.getVisibleSignatures(this); } + @Override @NotNull public PsiField[] getFields() { return myInnersCache.getFields(); } + @Override @NotNull public PsiMethod[] getMethods() { return myInnersCache.getMethods(); } + @Override @NotNull public PsiMethod[] getConstructors() { return myInnersCache.getConstructors(); } + @Override @NotNull public PsiClass[] getInnerClasses() { return myInnersCache.getInnerClasses(); @@ -280,71 +305,86 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return getStubOrPsiChildren(JavaStubElementTypes.CLASS, ARRAY_FACTORY); } + @Override @NotNull public PsiClassInitializer[] getInitializers() { return getStubOrPsiChildren(JavaStubElementTypes.CLASS_INITIALIZER, PsiClassInitializer.ARRAY_FACTORY); } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiImplUtil.getTypeParameters(this); } + @Override @NotNull public PsiField[] getAllFields() { return PsiClassImplUtil.getAllFields(this); } + @Override @NotNull public PsiMethod[] getAllMethods() { return PsiClassImplUtil.getAllMethods(this); } + @Override @NotNull public PsiClass[] getAllInnerClasses() { return PsiClassImplUtil.getAllInnerClasses(this); } + @Override public PsiField findFieldByName(String name, boolean checkBases) { return myInnersCache.findFieldByName(name, checkBases); } + @Override public PsiMethod findMethodBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsBySignature(PsiMethod patternMethod, boolean checkBases) { return PsiClassImplUtil.findMethodsBySignature(this, patternMethod, checkBases); } + @Override @NotNull public PsiMethod[] findMethodsByName(String name, boolean checkBases) { return myInnersCache.findMethodsByName(name, checkBases); } + @Override @NotNull public List> findMethodsAndTheirSubstitutorsByName(String name, boolean checkBases) { return PsiClassImplUtil.findMethodsAndTheirSubstitutorsByName(this, name, checkBases); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return PsiClassImplUtil.getAllWithSubstitutorsByMap(this, PsiMethod.class); } + @Override public PsiClass findInnerClassByName(String name, boolean checkBases) { return myInnersCache.findInnerClassByName(name, checkBases); } + @Override public PsiTypeParameterList getTypeParameterList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.TYPE_PARAMETER_LIST); } + @Override public boolean hasTypeParameters() { return PsiImplUtil.hasTypeParameters(this); } + @Override public boolean isDeprecated() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -354,18 +394,22 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return PsiImplUtil.isDeprecatedByDocTag(this) || PsiImplUtil.isDeprecatedByAnnotation(this); } + @Override public PsiDocComment getDocComment(){ return (PsiDocComment)getNode().findChildByRoleAsPsiElement(ChildRole.DOC_COMMENT); } + @Override public PsiJavaToken getLBrace() { return (PsiJavaToken)getNode().findChildByRoleAsPsiElement(ChildRole.LBRACE); } + @Override public PsiJavaToken getRBrace() { return (PsiJavaToken)getNode().findChildByRoleAsPsiElement(ChildRole.RBRACE); } + @Override public boolean isInterface() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -376,6 +420,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return keyword != null && keyword.getElementType() == JavaTokenType.INTERFACE_KEYWORD; } + @Override public boolean isAnnotationType() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -385,6 +430,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return getNode().findChildByRole(ChildRole.AT) != null; } + @Override public boolean isEnum() { final PsiClassStub stub = getStub(); if (stub != null) { @@ -395,6 +441,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return keyword != null && keyword.getElementType() == JavaTokenType.ENUM_KEYWORD; } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClass(this); @@ -408,6 +455,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return "PsiClass:" + getName(); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { if (isEnum()) { String name = getName(); @@ -443,6 +491,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return PsiClassImplUtil.processDeclarationsInClass(this, processor, state, null, lastParent, place, false); } + @Override public PsiElement setName(@NotNull String newName) throws IncorrectOperationException{ String oldName = getName(); boolean isRenameFile = isRenameFileOnRenaming(); @@ -567,18 +616,22 @@ public class PsiClassImpl extends JavaStubPsiElement> implements } } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return InheritanceImplUtil.isInheritor(this, baseClass, checkDeep); } + @Override public boolean isInheritorDeep(PsiClass baseClass, PsiClass classToByPass) { return InheritanceImplUtil.isInheritorDeep(this, baseClass, classToByPass); } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public Icon getElementIcon(final int flags) { return PsiClassImplUtil.getClassIcon(flags, this); } @@ -588,11 +641,13 @@ public class PsiClassImpl extends JavaStubPsiElement> implements return PsiClassImplUtil.isClassEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiClassImplUtil.getClassUseScope(this); } + @Override @Nullable public PsiQualifiedNamedElement getContainer() { final PsiFile file = getContainingFile(); @@ -601,6 +656,7 @@ public class PsiClassImpl extends JavaStubPsiElement> implements ? null : JavaDirectoryService.getInstance().getPackage(dir); } + @Override public void putInfo(Map info) { putInfo(this, info); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassInitializerImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassInitializerImpl.java index cd0c19d24eee..56c554a99525 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassInitializerImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiClassInitializerImpl.java @@ -39,6 +39,7 @@ public class PsiClassInitializerImpl extends JavaStubPsiElement implem return "PsiEnumConstant:" + getName(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitEnumConstant(this); @@ -65,10 +66,12 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem } } + @Override public PsiExpressionList getArgumentList() { return (PsiExpressionList)calcTreeElement().findChildByRoleAsPsiElement(ChildRole.ARGUMENT_LIST); } + @Override public PsiEnumConstantInitializer getInitializingClass() { return (PsiEnumConstantInitializer)getStubOrPsiChild(JavaStubElementTypes.ENUM_CONSTANT_INITIALIZER); } @@ -92,6 +95,7 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem } } + @Override public PsiClass getContainingClass() { PsiElement parent = getParent(); return parent instanceof PsiClass ? (PsiClass)parent : null; @@ -103,37 +107,46 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return cc != null ? cc : super.getContext(); } + @Override public PsiModifierList getModifierList() { return getStubOrPsiChild(JavaStubElementTypes.MODIFIER_LIST); } + @Override public boolean hasModifierProperty(@NotNull String name) { return PsiModifier.PUBLIC.equals(name) || PsiModifier.STATIC.equals(name) || PsiModifier.FINAL.equals(name); } + @Override @NotNull public PsiType getType() { return JavaPsiFacade.getInstance(getProject()).getElementFactory().createType(getContainingClass()); } + @Override public PsiTypeElement getTypeElement() { return null; } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return true; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { } + @Override public Object computeConstantValue() { return this; } + @Override public PsiMethod resolveMethod() { PsiClass containingClass = getContainingClass(); LOG.assertTrue(containingClass != null); @@ -143,6 +156,7 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return (PsiMethod)resolveResult.getElement(); } + @Override @NotNull public JavaResolveResult resolveMethodGenerics() { PsiClass containingClass = getContainingClass(); @@ -151,11 +165,13 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return facade.getResolveHelper().resolveConstructor(facade.getElementFactory().createType(containingClass), getArgumentList(), this); } + @Override @NotNull public PsiIdentifier getNameIdentifier() { return (PsiIdentifier)calcTreeElement().findChildByRoleAsPsiElement(ChildRole.NAME); } + @Override @NotNull public String getName() { final PsiFieldStub stub = getStub(); @@ -165,15 +181,18 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return getNameIdentifier().getText(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override public PsiDocComment getDocComment() { return (PsiDocComment)calcTreeElement().findChildByRoleAsPsiElement(ChildRole.DOC_COMMENT); } + @Override public boolean isDeprecated() { final PsiFieldStub stub = getStub(); if (stub != null) { @@ -185,14 +204,17 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem getModifierList().findAnnotation("java.lang.Deprecated") != null; } + @Override public PsiReference getReference() { return myReference; } + @Override public PsiMethod resolveConstructor() { return resolveMethod(); } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(PlatformIcons.FIELD_ICON, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); @@ -204,36 +226,44 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem } private class MyReference implements PsiJavaReference { + @Override public PsiElement getElement() { return PsiEnumConstantImpl.this; } + @Override public TextRange getRangeInElement() { PsiIdentifier nameIdentifier = getNameIdentifier(); int startOffsetInParent = nameIdentifier.getStartOffsetInParent(); return new TextRange(startOffsetInParent, startOffsetInParent + nameIdentifier.getTextLength()); } + @Override public boolean isSoft() { return false; } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { return getElement(); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException("Invalid operation"); } + @Override @NotNull public Object[] getVariants() { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public void processVariants(PsiScopeProcessor processor) { } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final JavaPsiFacade facade = JavaPsiFacade.getInstance(getProject()); @@ -241,6 +271,7 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return facade.getResolveHelper().multiResolveConstructor(type, getArgumentList(), getElement()); } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { final JavaResolveResult[] results = multiResolve(incompleteCode); @@ -248,15 +279,18 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem return JavaResolveResult.EMPTY; } + @Override public PsiElement resolve() { return advancedResolve(false).getElement(); } + @Override @NotNull public String getCanonicalText() { return getContainingClass().getName(); } + @Override public boolean isReferenceTo(PsiElement element) { return element instanceof PsiMethod && ((PsiMethod)element).isConstructor() @@ -265,10 +299,12 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem } } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public void setInitializer(PsiExpression initializer) throws IncorrectOperationException { throw new IncorrectOperationException(); } @@ -277,6 +313,7 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem public boolean isEquivalentTo(final PsiElement another) { return PsiClassImplUtil.isFieldEquivalentTo(this, another); } + @Override public PsiType getTypeNoResolve() { return getType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantInitializerImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantInitializerImpl.java index dd485c1b675f..5cb3cb87f6e1 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantInitializerImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantInitializerImpl.java @@ -35,27 +35,32 @@ public class PsiEnumConstantInitializerImpl extends PsiClassImpl implements PsiE super(node); } + @Override protected Object clone() { PsiEnumConstantInitializerImpl clone = (PsiEnumConstantInitializerImpl)super.clone(); clone.myCachedBaseType = null; return clone; } + @Override public void subtreeChanged() { super.subtreeChanged(); myCachedBaseType = null; } + @Override public PsiExpressionList getArgumentList() { PsiElement parent = getParent(); LOG.assertTrue(parent instanceof PsiEnumConstant); return ((PsiCall)parent).getArgumentList(); } + @Override public boolean isInQualifiedNew() { return false; } + @Override @NotNull public PsiJavaCodeReferenceElement getBaseClassReference() { PsiClass containingClass = getBaseClass(); @@ -70,15 +75,18 @@ public class PsiEnumConstantInitializerImpl extends PsiClassImpl implements PsiE return containingClass; } + @Override public PsiElement getParent() { return getParentByStub(); } + @Override @NotNull public PsiEnumConstant getEnumConstant() { return (PsiEnumConstant) getParent(); } + @Override @NotNull public PsiClassType getBaseClassType() { if (myCachedBaseType == null) { @@ -87,55 +95,68 @@ public class PsiEnumConstantInitializerImpl extends PsiClassImpl implements PsiE return myCachedBaseType; } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override public String getQualifiedName() { return null; } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@NotNull String name) { return false; } + @Override public PsiReferenceList getExtendsList() { return null; } + @Override public PsiReferenceList getImplementsList() { return null; } + @Override @NotNull public PsiClassType[] getSuperTypes() { return new PsiClassType[]{getBaseClassType()}; } + @Override public boolean isInterface() { return false; } + @Override public boolean isAnnotationType() { return false; } + @Override public boolean isEnum() { return false; } + @Override public PsiTypeParameterList getTypeParameterList() { return null; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitEnumConstantInitializer(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiFieldImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiFieldImpl.java index 59d36dd23e3d..feffcfa8b6d3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiFieldImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiFieldImpl.java @@ -64,6 +64,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps super(node); } + @Override public void subtreeChanged() { super.subtreeChanged(); dropCached(); @@ -74,12 +75,14 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps myCachedType = null; } + @Override protected Object clone() { PsiFieldImpl clone = (PsiFieldImpl)super.clone(); clone.dropCached(); return clone; } + @Override public PsiClass getContainingClass() { PsiElement parent = getParent(); return parent instanceof PsiClass ? (PsiClass)parent : PsiTreeUtil.getParentOfType(this, PsiSyntheticClass.class); @@ -91,16 +94,19 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return cc != null ? cc : super.getContext(); } + @Override @NotNull public CompositeElement getNode() { return (CompositeElement)super.getNode(); } + @Override @NotNull public PsiIdentifier getNameIdentifier() { return (PsiIdentifier)getNode().findChildByRoleAsPsiElement(ChildRole.NAME); } + @Override @NotNull public String getName() { final PsiFieldStub stub = getStub(); @@ -110,11 +116,13 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return getNameIdentifier().getText(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException{ PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override public PsiType getTypeNoResolve() { final PsiFieldStub stub = getStub(); if (stub != null) { @@ -135,6 +143,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return JavaSharedImplUtil.getTypeNoResolve(typeElement, nameIdentifier, this); } + @Override @NotNull public PsiType getType(){ final PsiFieldStub stub = getStub(); @@ -161,6 +170,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return JavaSharedImplUtil.getType(this); } + @Override public PsiTypeElement getTypeElement(){ PsiField firstField = findFirstFieldInDeclaration(); if (firstField != this){ @@ -170,6 +180,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return (PsiTypeElement)getNode().findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override @NotNull public PsiModifierList getModifierList() { final PsiModifierList selfModifierList = getSelfModifierList(); @@ -196,6 +207,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return getStubOrPsiChild(JavaStubElementTypes.MODIFIER_LIST); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } @@ -236,10 +248,12 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps } } + @Override public PsiExpression getInitializer() { return (PsiExpression)getNode().findChildByRoleAsPsiElement(ChildRole.INITIALIZER); } + @Override public boolean hasInitializer() { if (getStub() != null) { return getInitializerText() != null; @@ -248,6 +262,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return getInitializer() != null; } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(PlatformIcons.FIELD_ICON, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); @@ -256,6 +271,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps private static class OurConstValueComputer implements JavaResolveCache.ConstValueComputer { private static final OurConstValueComputer INSTANCE = new OurConstValueComputer(); + @Override public Object execute(PsiVariable variable, Set visitedVars) { return ((PsiFieldImpl)variable)._computeConstantValue(visitedVars); } @@ -310,6 +326,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return result; } + @Override public Object computeConstantValue() { Object cachedInitializerValue = myCachedInitializerValue; if (cachedInitializerValue != null && !(cachedInitializerValue instanceof PsiExpression)){ @@ -319,6 +336,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return computeConstantValue(new HashSet(2)); } + @Override public Object computeConstantValue(Set visitedVars) { if (!hasModifierProperty(PsiModifier.FINAL)) return null; @@ -335,6 +353,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps throw new RuntimeException("Shall not be called when in stubless mode"); } + @Override public boolean isDeprecated() { final PsiFieldStub stub = getStub(); if (stub != null) { @@ -344,6 +363,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return PsiImplUtil.isDeprecatedByDocTag(this) || PsiImplUtil.isDeprecatedByAnnotation(this); } + @Override public PsiDocComment getDocComment(){ CompositeElement treeElement = getNode(); if (getTypeElement() != null) { @@ -359,6 +379,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps } } + @Override public void normalizeDeclaration() throws IncorrectOperationException{ CheckUtil.checkWritable(this); @@ -388,6 +409,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps JavaSharedImplUtil.normalizeBrackets(this); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitField(this); @@ -397,6 +419,7 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps } } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place){ processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); return true; @@ -406,16 +429,19 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return "PsiField:" + getName(); } + @Override public PsiElement getOriginalElement() { PsiClass originalClass = (PsiClass)getContainingClass().getOriginalElement(); PsiField originalField = originalClass.findFieldByName(getName(), false); return originalField != null ? originalField : this; } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public void setInitializer(PsiExpression initializer) throws IncorrectOperationException { JavaSharedImplUtil.setInitializer(this, initializer); } @@ -425,11 +451,13 @@ public class PsiFieldImpl extends JavaStubPsiElement implements Ps return PsiClassImplUtil.isFieldEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return PsiImplUtil.getMemberUseScope(this); } + @Override public void putInfo(Map info) { info.put("fieldName", getName()); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImmediateClassType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImmediateClassType.java index 24424208d1b3..06947461b9ef 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImmediateClassType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImmediateClassType.java @@ -39,30 +39,37 @@ public class PsiImmediateClassType extends PsiClassType { private String myInternalCanonicalText; private final ClassResolveResult myClassResolveResult = new ClassResolveResult() { + @Override public PsiClass getElement() { return myClass; } + @Override public PsiSubstitutor getSubstitutor() { return mySubstitutor; } + @Override public boolean isValidResult() { return true; } + @Override public boolean isAccessible() { return true; } + @Override public boolean isStaticsScopeCorrect() { return true; } + @Override public PsiElement getCurrentFileResolveScope() { return null; } + @Override public boolean isPackagePrefixPackageReference() { return false; } @@ -84,13 +91,16 @@ public class PsiImmediateClassType extends PsiClassType { LOG.assertTrue(mySubstitutor != null); } + @Override public PsiClass resolve() { return myClass; } + @Override public String getClassName() { return myClass.getName(); } + @Override @NotNull public PsiType[] getParameters() { final PsiTypeParameter[] parameters = myClass.getTypeParameters(); @@ -108,16 +118,19 @@ public class PsiImmediateClassType extends PsiClassType { return lst.toArray(new PsiType[lst.size()]); } + @Override @NotNull public ClassResolveResult resolveGenerics() { return myClassResolveResult; } + @Override @NotNull public PsiClassType rawType() { return JavaPsiFacade.getInstance(myClass.getProject()).getElementFactory().createType(myClass); } + @Override public String getPresentableText() { if (myPresentableText == null) { final StringBuilder buffer = new StringBuilder(); @@ -127,6 +140,7 @@ public class PsiImmediateClassType extends PsiClassType { return myPresentableText; } + @Override public String getCanonicalText() { if (myCanonicalText == null) { final StringBuilder buffer = new StringBuilder(); @@ -136,6 +150,7 @@ public class PsiImmediateClassType extends PsiClassType { return myCanonicalText; } + @Override public String getInternalCanonicalText() { if (myInternalCanonicalText == null) { final StringBuilder buffer = new StringBuilder(); @@ -214,10 +229,12 @@ public class PsiImmediateClassType extends PsiClassType { } } + @Override public boolean isValid() { return myClass.isValid() && mySubstitutor.isValid(); } + @Override public boolean equalsToText(String text) { PsiElementFactory factory = JavaPsiFacade.getInstance(myManager.getProject()).getElementFactory(); final PsiType patternType; @@ -231,17 +248,20 @@ public class PsiImmediateClassType extends PsiClassType { } + @Override @NotNull public GlobalSearchScope getResolveScope() { return myClass.getResolveScope(); } + @Override @NotNull public LanguageLevel getLanguageLevel() { if (myLanguageLevel != null) return myLanguageLevel; return PsiUtil.getLanguageLevel(myClass); } + @Override public PsiClassType setLanguageLevel(final LanguageLevel languageLevel) { if (languageLevel.equals(myLanguageLevel)) return this; return new PsiImmediateClassType(myClass, mySubstitutor, languageLevel,getAnnotations()); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportListImpl.java index 9d19f3100a0a..05b5a6b86a1f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportListImpl.java @@ -32,6 +32,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp private volatile Map myNameToSingleImportMap = null; private static final PsiImportStatementBase[] EMPTY_ARRAY = new PsiImportStatementBase[0]; private static final ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiImportStatementBase[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiImportStatementBase[count]; } @@ -45,6 +46,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp super(node); } + @Override protected Object clone() { PsiImportListImpl clone = (PsiImportListImpl)super.clone(); clone.myClassNameToImportMap = null; @@ -53,6 +55,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp return clone; } + @Override public void subtreeChanged() { myClassNameToImportMap = null; myPackageNameToImportMap = null; @@ -60,22 +63,26 @@ public class PsiImportListImpl extends JavaStubPsiElement imp super.subtreeChanged(); } + @Override @NotNull public PsiImportStatement[] getImportStatements() { return getStubOrPsiChildren(ElementType.IMPORT_STATEMENT_BIT_SET, PsiImportStatementImpl.ARRAY_FACTORY); } + @Override @NotNull public PsiImportStaticStatement[] getImportStaticStatements() { return getStubOrPsiChildren(ElementType.IMPORT_STATIC_STATEMENT_BIT_SET, PsiImportStaticStatementImpl.ARRAY_FACTORY); } + @Override @NotNull public PsiImportStatementBase[] getAllImportStatements() { return getStubOrPsiChildren(ElementType.IMPORT_STATEMENT_BASE_BIT_SET, ARRAY_FACTORY); } + @Override public PsiImportStatement findSingleClassImportStatement(String name) { while (true) { Map map = myClassNameToImportMap; @@ -88,6 +95,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp } } + @Override public PsiImportStatement findOnDemandImportStatement(String name) { while (true) { Map map = myPackageNameToImportMap; @@ -100,6 +108,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp } } + @Override public PsiImportStatementBase findSingleImportStatement(String name) { while (true) { Map map = myNameToSingleImportMap; @@ -112,6 +121,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp } } + @Override public boolean isReplaceEquivalent(PsiImportList otherList) { return getText().equals(otherList.getText()); } @@ -150,6 +160,7 @@ public class PsiImportListImpl extends JavaStubPsiElement imp myNameToSingleImportMap = nameToSingleImportMap; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitImportList(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStatementBaseImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStatementBaseImpl.java index 187cb31ef043..16d4483e8e8a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStatementBaseImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStatementBaseImpl.java @@ -37,6 +37,7 @@ public abstract class PsiImportStatementBaseImpl extends JavaStubPsiElement ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiImportStatementImpl[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiImportStatementImpl[count]; } @@ -38,11 +39,13 @@ public class PsiImportStatementImpl extends PsiImportStatementBaseImpl implement super(node); } + @Override public String getQualifiedName() { final PsiJavaCodeReferenceElement reference = getImportReference(); return reference == null ? null : reference.getCanonicalText(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitImportStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java index 3389d8cb0a63..9df30ba5232a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java @@ -45,6 +45,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp super(JavaElementType.IMPORT_STATIC_REFERENCE); } + @Override public int getTextOffset() { ASTNode refName = findChildByRole(ChildRole.REFERENCE_NAME); if (refName != null){ @@ -55,11 +56,13 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp } } + @Override public void clearCaches() { super.clearCaches(); myCanonicalText = null; } + @Override public final ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -87,6 +90,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp } } + @Override public final int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -105,27 +109,33 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp } + @Override public PsiElement getReferenceNameElement() { return findChildByRoleAsPsiElement(ChildRole.REFERENCE_NAME); } + @Override public PsiReferenceParameterList getParameterList() { return null; } + @Override @NotNull public PsiType[] getTypeParameters() { return PsiType.EMPTY_ARRAY; } + @Override public PsiElement getQualifier() { return findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override public PsiJavaCodeReferenceElement getClassReference() { return (PsiJavaCodeReferenceElement)findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override public PsiImportStaticStatement bindToTargetClass(final PsiClass aClass) throws IncorrectOperationException { final String qualifiedName = aClass.getQualifiedName(); if (qualifiedName == null) throw new IncorrectOperationException(); @@ -147,28 +157,34 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp } } + @Override public boolean isQualified() { return findChildByRole(ChildRole.QUALIFIER) != null; } + @Override public String getQualifiedName() { return getCanonicalText(); } + @Override public boolean isSoft() { return false; } + @Override public String getReferenceName() { final ASTNode childByRole = findChildByRole(ChildRole.REFERENCE_NAME); if (childByRole == null) return ""; return childByRole.getText(); } + @Override public PsiElement getElement() { return this; } + @Override public TextRange getRangeInElement() { TreeElement nameChild = (TreeElement)findChildByRole(ChildRole.REFERENCE_NAME); if (nameChild == null) return new TextRange(0, getTextLength()); @@ -176,6 +192,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp return new TextRange(startOffset, startOffset + nameChild.getTextLength()); } + @Override @NotNull public String getCanonicalText() { String canonicalText = myCanonicalText; @@ -199,6 +216,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp return "PsiImportStaticReferenceElement:" + getText(); } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { final JavaResolveResult[] results = multiResolve(incompleteCode); @@ -206,6 +224,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp return JavaResolveResult.EMPTY; } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final ResolveCache resolveCache = ResolveCache.getInstance(getProject()); @@ -216,6 +235,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp private static final class OurGenericsResolver implements ResolveCache.PolyVariantResolver { private static final OurGenericsResolver INSTANCE = new OurGenericsResolver(); + @Override public JavaResolveResult[] resolve(final PsiImportStaticReferenceElementImpl referenceElement, final boolean incompleteCode) { final PsiElement qualifier = referenceElement.getQualifier(); if (!(qualifier instanceof PsiJavaCodeReferenceElement)) return JavaResolveResult.EMPTY_ARRAY; @@ -227,14 +247,17 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp } } + @Override public PsiReference getReference() { return this; } + @Override public PsiElement resolve() { return advancedResolve(false).getElement(); } + @Override public boolean isReferenceTo(PsiElement element) { final String name = getReferenceName(); return name != null && @@ -242,6 +265,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp name.equals(((PsiNamedElement)element).getName()) && element.getManager().areElementsEquivalent(resolve(), element); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { PsiElement oldIdentifier = findChildByRoleAsPsiElement(ChildRole.REFERENCE_NAME); if (oldIdentifier == null) { @@ -252,6 +276,7 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp return this; } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (!(element instanceof PsiMember) || !(element instanceof PsiNamedElement) || @@ -293,17 +318,20 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp return reference; } + @Override public void processVariants(PsiScopeProcessor processor) { FilterScopeProcessor proc = new FilterScopeProcessor(new ClassFilter(PsiModifierListOwner.class), processor); PsiScopesUtil.resolveAndWalk(proc, this, null, true); } + @Override @NotNull public Object[] getVariants() { // IMPLEMENT[dsl] return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitImportStaticReferenceElement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticStatementImpl.java index 303b118d9867..4917a76f3339 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticStatementImpl.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; public class PsiImportStaticStatementImpl extends PsiImportStatementBaseImpl implements PsiImportStaticStatement { public static final PsiImportStaticStatementImpl[] EMPTY_ARRAY = new PsiImportStaticStatementImpl[0]; public static final ArrayFactory ARRAY_FACTORY = new ArrayFactory() { + @Override public PsiImportStaticStatementImpl[] create(final int count) { return count == 0 ? EMPTY_ARRAY : new PsiImportStaticStatementImpl[count]; } @@ -39,6 +40,7 @@ public class PsiImportStaticStatementImpl extends PsiImportStatementBaseImpl imp super(node); } + @Override public PsiClass resolveTargetClass() { final PsiJavaCodeReferenceElement classReference = getClassReference(); if (classReference == null) return null; @@ -51,6 +53,7 @@ public class PsiImportStaticStatementImpl extends PsiImportStatementBaseImpl imp } } + @Override public String getReferenceName() { if (isOnDemand()) return null; final PsiImportStaticReferenceElement memberReference = getMemberReference(); @@ -88,6 +91,7 @@ public class PsiImportStaticStatementImpl extends PsiImportStatementBaseImpl imp } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitImportStaticStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java index eae30113a56d..c6923329dd83 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java @@ -69,6 +69,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme super(JavaElementType.JAVA_CODE_REFERENCE); } + @Override public int getTextOffset() { final ASTNode refName = getReferenceNameNode(); return refName != null ? refName.getStartOffset() : super.getTextOffset(); @@ -190,6 +191,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return type == TokenType.CODE_FRAGMENT || type instanceof ICodeFragmentElementType; } + @Override public void deleteChildInternal(@NotNull final ASTNode child) { if (getChildRole(child) == ChildRole.QUALIFIER) { final ASTNode dot = findChildByRole(ChildRole.DOT); @@ -202,6 +204,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override public final ASTNode findChildByRole(final int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -246,6 +249,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override public final int getChildRole(final ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); final IElementType i = child.getElementType(); @@ -266,6 +270,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override @NotNull public String getCanonicalText() { switch (getKind()) { @@ -311,10 +316,12 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override public PsiReference getReference() { return this; } + @Override public final PsiElement resolve() { return advancedResolve(false).getElement(); } @@ -337,6 +344,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return result; } + @Override public JavaResolveResult[] resolve(final PsiJavaReference ref, final boolean incompleteCode) { final JavaResolveResult[] result = _resolve(ref, incompleteCode); if (result.length > 0 && result[0].getElement() instanceof PsiClass) { @@ -354,6 +362,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override @NotNull public JavaResolveResult advancedResolve(final boolean incompleteCode) { final JavaResolveResult[] results = multiResolve(incompleteCode); @@ -361,6 +370,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return JavaResolveResult.EMPTY; } + @Override @NotNull public JavaResolveResult[] multiResolve(final boolean incompleteCode) { final PsiManagerEx manager = getManager(); @@ -472,6 +482,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return JavaResolveResult.EMPTY_ARRAY; } + @Override public final PsiElement handleElementRename(final String newElementName) throws IncorrectOperationException { final PsiElement oldIdentifier = getReferenceNameElement(); if (oldIdentifier == null) { @@ -483,6 +494,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } + @Override public PsiElement bindToElement(@NotNull final PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); if (isReferenceTo(element)) return this; @@ -605,6 +617,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return ref; } + @Override public boolean isReferenceTo(final PsiElement element) { switch (getKind()) { case CLASS_NAME_KIND: @@ -672,6 +685,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return whiteSpaceAndComments; } + @Override public String getClassNameText() { String cachedQName = myCachedQName; if (cachedQName == null) { @@ -680,6 +694,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return cachedQName; } + @Override public void fullyQualify(final PsiClass targetClass) { final int kind = getKind(); if (kind != CLASS_NAME_KIND && kind != CLASS_OR_PACKAGE_NAME_KIND && kind != CLASS_IN_QUALIFIED_NEW_KIND) { @@ -689,20 +704,24 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme JavaSourceUtil.fullyQualifyReference(this, targetClass); } + @Override public boolean isQualified() { return getChildRole(getFirstChildNode()) != ChildRole.REFERENCE_NAME; } + @Override public PsiElement getQualifier() { return SourceTreeToPsiMap.treeElementToPsi(findChildByRole(ChildRole.QUALIFIER)); } + @Override public void clearCaches() { super.clearCaches(); myCachedQName = null; myCachedTextSkipWhiteSpaceAndComments = null; } + @Override @NotNull public Object[] getVariants() { final ElementFilter filter; @@ -737,10 +756,12 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return PsiImplUtil.getReferenceVariantsByFilter(this, filter); } + @Override public boolean isSoft() { return false; } + @Override public void processVariants(final PsiScopeProcessor processor) { final OrFilter filter = new OrFilter(); if (isInCode()) { @@ -822,6 +843,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } } + @Override public PsiElement getReferenceNameElement() { return SourceTreeToPsiMap.treeElementToPsi(getReferenceNameNode()); } @@ -832,10 +854,12 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } + @Override public PsiReferenceParameterList getParameterList() { return (PsiReferenceParameterList)findChildByRoleAsPsiElement(ChildRole.REFERENCE_PARAMETER_LIST); } + @Override public String getQualifiedName() { switch (getKind()) { case CLASS_NAME_KIND: @@ -870,12 +894,14 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } + @Override public String getReferenceName() { final ASTNode childByRole = getReferenceNameNode(); if (childByRole == null) return null; return childByRole.getText(); } + @Override public final TextRange getRangeInElement() { final TreeElement nameChild = (TreeElement)getReferenceNameNode(); if (nameChild == null) return new TextRange(0, getTextLength()); @@ -883,6 +909,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return new TextRange(startOffset, startOffset + nameChild.getTextLength()); } + @Override @NotNull public PsiType[] getTypeParameters() { final PsiReferenceParameterList parameterList = getParameterList(); @@ -891,10 +918,12 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme } + @Override public final PsiElement getElement() { return this; } + @Override public final void accept(@NotNull final PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceElement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java index e02961875f7c..bf1dfb0fe3fe 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java @@ -68,6 +68,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava myResolveCache = CachedValuesManager.getManager(myManager.getProject()).createCachedValue(new MyCacheBuilder(this), false); } + @Override @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"}) protected PsiJavaFileBaseImpl clone() { PsiJavaFileBaseImpl clone = (PsiJavaFileBaseImpl)super.clone(); @@ -75,6 +76,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return clone; } + @Override @NotNull public PsiClass[] getClasses() { final StubElement stub = getStub(); @@ -85,11 +87,13 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return calcTreeElement().getChildrenAsPsiElements(Constants.CLASS_BIT_SET, Constants.PSI_CLASS_ARRAY_CONSTRUCTOR); } + @Override public PsiPackageStatement getPackageStatement() { ASTNode node = calcTreeElement().findChildByType(JavaElementType.PACKAGE_STATEMENT); return node != null ? (PsiPackageStatement)node.getPsi() : null; } + @Override @NotNull public String getPackageName() { PsiJavaFileStub stub = (PsiJavaFileStub)getStub(); @@ -120,6 +124,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava } } + @Override @NotNull public PsiImportList getImportList() { final StubElement stub = getStub(); @@ -134,6 +139,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return SourceTreeToPsiMap.treeToPsiNotNull(node); } + @Override @NotNull public PsiElement[] getOnDemandImports(boolean includeImplicit, boolean checkIncludes) { List array = new ArrayList(); @@ -162,6 +168,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return PsiUtilCore.toPsiElementArray(array); } + @Override @NotNull public PsiClass[] getSingleClassImports(boolean checkIncludes) { List array = new ArrayList(); @@ -178,6 +185,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return array.toArray(new PsiClass[array.size()]); } + @Override public PsiJavaCodeReferenceElement findImportReferenceTo(PsiClass aClass) { PsiImportList importList = getImportList(); PsiImportStatement[] statements = importList.getImportStatements(); @@ -192,11 +200,13 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return null; } + @Override @NotNull public String[] getImplicitlyImportedPackages() { return IMPLICIT_IMPORTS; } + @Override @NotNull public PsiJavaCodeReferenceElement[] getImplicitlyImportedPackageReferences() { return PsiImplUtil.namesToPackageReferences(myManager, IMPLICIT_IMPORTS); @@ -212,6 +222,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava myDelegate = delegate; } + @Override public T getHint(final Key hintKey) { return myDelegate.getHint(hintKey); } @@ -228,6 +239,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava myDelegate.handleEvent(event, associated); } + @Override public boolean execute(final PsiElement element, final ResolveState state) { if (element instanceof PsiModifierListOwner && ((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC)) { if (element instanceof PsiNamedElement && myIsProcessingOnDemand) { @@ -242,6 +254,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava } } + @Override public boolean processDeclarations(@NotNull final PsiScopeProcessor processor, @NotNull final ResolveState state, PsiElement lastParent, @@ -374,6 +387,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava return true; } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitJavaFile(this); @@ -383,27 +397,32 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava } } + @Override @NotNull public Language getLanguage() { return JavaLanguage.INSTANCE; } + @Override public boolean importClass(PsiClass aClass) { return JavaCodeStyleManager.getInstance(getProject()).addImport(this, aClass); } private static final NotNullLazyKey LANGUAGE_LEVEL_KEY = NotNullLazyKey.create("LANGUAGE_LEVEL", new NotNullFunction() { + @Override @NotNull public LanguageLevel fun(PsiJavaFileBaseImpl file) { return file.getLanguageLevelInner(); } }); + @Override @NotNull public LanguageLevel getLanguageLevel() { return LANGUAGE_LEVEL_KEY.getValue(this); } + @Override public void clearCaches() { super.clearCaches(); putUserData(LANGUAGE_LEVEL_KEY, null); @@ -446,6 +465,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava myFile = file; } + @Override public Result> compute() { SymbolCollectingProcessor p = new SymbolCollectingProcessor(); myFile.processDeclarationsNoGuess(p, ResolveState.initial(), myFile, myFile); @@ -463,6 +483,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava myState = state; } + @Override public boolean process(SymbolCollectingProcessor.ResultWithContext result) { myProcessor.handleEvent(JavaScopeProcessorEvent.SET_CURRENT_FILE_CONTEXT, result.getFileContext()); return myProcessor.execute(result.getElement(), myState); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileImpl.java index c302e2d45b70..dda81bca4f16 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileImpl.java @@ -54,6 +54,7 @@ public class PsiJavaFileImpl extends PsiJavaFileBaseImpl { return super.getResolveScope(); } + @Override @NotNull public FileType getFileType() { return JavaFileType.INSTANCE; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiLabelReference.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiLabelReference.java index 9572fa180e51..61d536af75b2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiLabelReference.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiLabelReference.java @@ -41,15 +41,18 @@ public class PsiLabelReference implements PsiReference{ myIdentifier = identifier; } + @Override public PsiElement getElement(){ return myStatement; } + @Override public TextRange getRangeInElement(){ final int parent = myIdentifier.getStartOffsetInParent(); return new TextRange(parent, myIdentifier.getTextLength() + parent); } + @Override public PsiElement resolve(){ final String label = myIdentifier.getText(); if(label == null) return null; @@ -65,16 +68,19 @@ public class PsiLabelReference implements PsiReference{ return null; } + @Override @NotNull public String getCanonicalText(){ return getElement().getText(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException{ myIdentifier = (PsiIdentifier) PsiImplUtil.setName(myIdentifier, newElementName); return myIdentifier; } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException{ if(element instanceof PsiLabeledStatement){ myIdentifier = (PsiIdentifier) PsiImplUtil.setName(myIdentifier, ((PsiLabeledStatement)element).getName()); @@ -83,10 +89,12 @@ public class PsiLabelReference implements PsiReference{ throw new IncorrectOperationException("Can't bind not to labeled statement"); } + @Override public boolean isReferenceTo(PsiElement element){ return resolve() == element; } + @Override @NotNull public Object[] getVariants(){ final List result = new ArrayList(); @@ -100,6 +108,7 @@ public class PsiLabelReference implements PsiReference{ return result.toArray(); } + @Override public boolean isSoft(){ return false; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java index c1ad511fc78f..7046c7762995 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodImpl.java @@ -68,6 +68,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements super(node); } + @Override public void subtreeChanged() { super.subtreeChanged(); dropCached(); @@ -77,12 +78,14 @@ public class PsiMethodImpl extends JavaStubPsiElement implements myCachedType = null; } + @Override protected Object clone() { PsiMethodImpl clone = (PsiMethodImpl)super.clone(); clone.dropCached(); return clone; } + @Override public PsiClass getContainingClass() { PsiElement parent = getParent(); return parent instanceof PsiClass ? (PsiClass)parent : PsiTreeUtil.getParentOfType(this, PsiSyntheticClass.class); @@ -94,39 +97,47 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return cc != null ? cc : super.getContext(); } + @Override public PsiIdentifier getNameIdentifier() { return (PsiIdentifier)getNode().findChildByRoleAsPsiElement(ChildRole.NAME); } + @Override @NotNull public PsiMethod[] findSuperMethods() { return PsiSuperMethodImplUtil.findSuperMethods(this); } + @Override @NotNull public PsiMethod[] findSuperMethods(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethods(this, checkAccess); } + @Override @NotNull public PsiMethod[] findSuperMethods(PsiClass parentClass) { return PsiSuperMethodImplUtil.findSuperMethods(this, parentClass); } + @Override @NotNull public List findSuperMethodSignaturesIncludingStatic(boolean checkAccess) { return PsiSuperMethodImplUtil.findSuperMethodSignaturesIncludingStatic(this, checkAccess); } + @Override public PsiMethod findDeepestSuperMethod() { return PsiSuperMethodImplUtil.findDeepestSuperMethod(this); } + @Override @NotNull public PsiMethod[] findDeepestSuperMethods() { return PsiSuperMethodImplUtil.findDeepestSuperMethods(this); } + @Override @NotNull public String getName() { final String name; @@ -142,39 +153,47 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return name != null ? name : ""; } + @Override @NotNull public HierarchicalMethodSignature getHierarchicalMethodSignature() { return PsiSuperMethodImplUtil.getHierarchicalMethodSignature(this); } + @Override public PsiMethodReceiver getMethodReceiver() { ASTNode node = getNode().findChildByType(JavaElementType.METHOD_RECEIVER); if (node == null) return null; return (PsiMethodReceiver)node.getPsi(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException{ PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override public PsiTypeElement getReturnTypeElement() { if (isConstructor()) return null; return (PsiTypeElement)getNode().findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override public PsiTypeParameterList getTypeParameterList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.TYPE_PARAMETER_LIST); } + @Override public boolean hasTypeParameters() { return PsiImplUtil.hasTypeParameters(this); } + @Override @NotNull public PsiTypeParameter[] getTypeParameters() { return PsiImplUtil.getTypeParameters(this); } + @Override public PsiType getReturnTypeNoResolve() { if (isConstructor()) return null; @@ -198,6 +217,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return JavaSharedImplUtil.getTypeNoResolve(typeElement, parameterList, this); } + @Override public PsiType getReturnType() { if (isConstructor()) return null; @@ -230,34 +250,41 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return JavaSharedImplUtil.getType(typeElement, parameterList, this); } + @Override @NotNull public PsiModifierList getModifierList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.MODIFIER_LIST); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override @NotNull public PsiParameterList getParameterList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.PARAMETER_LIST); } + @Override @NotNull public PsiReferenceList getThrowsList() { return getRequiredStubOrPsiChild(JavaStubElementTypes.THROWS_LIST); } + @Override public PsiCodeBlock getBody() { return (PsiCodeBlock)getNode().findChildByRoleAsPsiElement(ChildRole.METHOD_BODY); } + @Override @NotNull public CompositeElement getNode() { return (CompositeElement)super.getNode(); } + @Override public boolean isDeprecated() { final PsiMethodStub stub = getStub(); if (stub != null) { @@ -267,10 +294,12 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return PsiImplUtil.isDeprecatedByDocTag(this) || PsiImplUtil.isDeprecatedByAnnotation(this); } + @Override public PsiDocComment getDocComment() { return (PsiDocComment)getNode().findChildByRoleAsPsiElement(ChildRole.DOC_COMMENT); } + @Override public boolean isConstructor() { final PsiMethodStub stub = getStub(); if (stub != null) { @@ -280,6 +309,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return getNode().findChildByRole(ChildRole.TYPE) == null; } + @Override public boolean isVarArgs() { final PsiMethodStub stub = getStub(); if (stub != null) { @@ -290,6 +320,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return parameters.length > 0 && parameters[parameters.length - 1].isVarArgs(); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitMethod(this); @@ -303,26 +334,31 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return "PsiMethod:" + getName(); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { return PsiImplUtil.processDeclarationsInMethod(this, processor, state, lastParent, place); } + @Override @NotNull public MethodSignature getSignature(@NotNull PsiSubstitutor substitutor){ return MethodSignatureBackedByPsiMethod.create(this, substitutor); } + @Override public PsiElement getOriginalElement() { PsiClass originalClass = (PsiClass)getContainingClass().getOriginalElement(); final PsiMethod originalMethod = originalClass.findMethodBySignature(this, false); return originalMethod != null ? originalMethod : this; } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public Icon getElementIcon(final int flags) { Icon methodIcon = hasModifierProperty(PsiModifier.ABSTRACT) ? PlatformIcons.ABSTRACT_METHOD_ICON : PlatformIcons.METHOD_ICON; RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(methodIcon, this, false); @@ -334,6 +370,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements return PsiClassImplUtil.isMethodEquivalentTo(this, another); } + @Override @NotNull public SearchScope getUseScope() { return ApplicationManager.getApplication().runReadAction(new Computable() { @@ -344,6 +381,7 @@ public class PsiMethodImpl extends JavaStubPsiElement implements }); } + @Override public void putInfo(Map info) { info.put("methodName", getName()); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodReceiverImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodReceiverImpl.java index e042ba85e0b2..b8a936c7e0ca 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodReceiverImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiMethodReceiverImpl.java @@ -32,80 +32,98 @@ public class PsiMethodReceiverImpl extends CompositePsiElement implements PsiMet super(JavaElementType.METHOD_RECEIVER); } + @Override @NotNull public PsiElement getDeclarationScope() { return getParent(); } + @Override public boolean isVarArgs() { return false; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return getChildrenAsPsiElements(ElementType.ANNOTATIONS, Constants.PSI_ANNOTATION_ARRAY_CONSTRUCTOR); } + @Override public PsiAnnotation findAnnotation(@NotNull @NonNls String qualifiedName) { return PsiImplUtil.findAnnotation(this, qualifiedName); } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new IncorrectOperationException(); } + @Override @NotNull public PsiType getType() { return JavaPsiFacade.getElementFactory(getProject()).createType(((PsiMethod)getParent()).getContainingClass()); } + @Override public PsiTypeElement getTypeElement() { return null; } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return false; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { } + @Override public Object computeConstantValue() { return null; } + @Override public PsiIdentifier getNameIdentifier() { return null; } + @Override public String getName() { return "this"; } + @Override public PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@Modifier @NonNls @NotNull String name) { return false; } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { return getAnnotations(); } + @Override public PsiType getTypeNoResolve() { return getType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiModifierListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiModifierListImpl.java index a9f65d0bf4f1..361d5539e4e9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiModifierListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiModifierListImpl.java @@ -82,6 +82,7 @@ public class PsiModifierListImpl extends JavaStubPsiElement super(node); } + @Override public boolean hasModifierProperty(@NotNull String name) { final PsiModifierListStub stub = getStub(); if (stub != null) { @@ -190,12 +191,14 @@ public class PsiModifierListImpl extends JavaStubPsiElement return getNode().findChildByType(type) != null; } + @Override public boolean hasExplicitModifier(@NotNull String name) { final CompositeElement tree = (CompositeElement)getNode(); IElementType type = NAME_TO_KEYWORD_TYPE_MAP.get(name); return tree.findChildByType(type) != null; } + @Override public void setModifierProperty(@NotNull String name, boolean value) throws IncorrectOperationException{ checkSetModifierProperty(name, value); @@ -270,19 +273,23 @@ public class PsiModifierListImpl extends JavaStubPsiElement } } + @Override public void checkSetModifierProperty(@NotNull String name, boolean value) throws IncorrectOperationException{ CheckUtil.checkWritable(this); } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return getStubOrPsiChildren(JavaStubElementTypes.ANNOTATION, PsiAnnotation.ARRAY_FACTORY); } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { final String[] fields = PsiAnnotationImpl.getApplicableElementTypeFields(this); List filtered = ContainerUtil.findAll(getAnnotations(), new Condition() { + @Override public boolean value(PsiAnnotation annotation) { return PsiAnnotationImpl.isAnnotationApplicableTo(annotation, true, fields); } @@ -291,15 +298,18 @@ public class PsiModifierListImpl extends JavaStubPsiElement return filtered.toArray(new PsiAnnotation[filtered.size()]); } + @Override public PsiAnnotation findAnnotation(@NotNull String qualifiedName) { return PsiImplUtil.findAnnotation(this, qualifiedName); } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { return (PsiAnnotation)addAfter(JavaPsiFacade.getInstance(getProject()).getElementFactory().createAnnotationFromText("@" + qualifiedName, this), null); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitModifierList(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java index b04603d914bc..38ff553b541d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java @@ -52,11 +52,13 @@ public class PsiParameterImpl extends JavaStubPsiElement imple super(node); } + @Override public void subtreeChanged() { super.subtreeChanged(); myCachedType = null; } + @Override protected Object clone() { PsiParameterImpl clone = (PsiParameterImpl)super.clone(); clone.myCachedType = null; @@ -64,6 +66,7 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return clone; } + @Override @NotNull public final String getName() { final PsiParameterStub stub = getStub(); @@ -73,21 +76,25 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return getNameIdentifier().getText(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public final PsiIdentifier getNameIdentifier() { return (PsiIdentifier)getNode().findChildByRoleAsPsiElement(ChildRole.NAME); } + @Override @NotNull public CompositeElement getNode() { return (CompositeElement)super.getNode(); } + @Override @NotNull public PsiType getType() { final PsiParameterStub stub = getStub(); @@ -114,6 +121,7 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return JavaSharedImplUtil.getType(this); } + @Override public PsiType getTypeNoResolve() { final PsiParameterStub stub = getStub(); if (stub != null) { @@ -131,37 +139,45 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return JavaSharedImplUtil.getTypeNoResolve(typeElement, nameIdentifier, this); } + @Override @NotNull public PsiTypeElement getTypeElement() { return (PsiTypeElement)getNode().findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override @NotNull public PsiModifierList getModifierList() { return getStubOrPsiChild(JavaStubElementTypes.MODIFIER_LIST); } + @Override public boolean hasModifierProperty(@NotNull String name) { return getModifierList().hasModifierProperty(name); } + @Override public PsiExpression getInitializer() { return null; } + @Override public boolean hasInitializer() { return false; } + @Override public Object computeConstantValue() { return null; } + @Override public void normalizeDeclaration() throws IncorrectOperationException { CheckUtil.checkWritable(this); JavaSharedImplUtil.normalizeBrackets(this); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitParameter(this); @@ -175,6 +191,7 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return "PsiParameter:" + getName(); } + @Override @NotNull public PsiElement getDeclarationScope() { final PsiElement parent = getParent(); @@ -208,6 +225,7 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return null; } + @Override public boolean isVarArgs() { final PsiParameterStub stub = getStub(); if (stub != null) { @@ -218,15 +236,18 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return SourceTreeToPsiMap.psiToTreeNotNull(getTypeElement()).findChildByType(JavaTokenType.ELLIPSIS) != null; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { return getModifierList().getAnnotations(); } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = createLayeredIcon(this, PlatformIcons.PARAMETER_ICON, 0); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); @@ -236,6 +257,7 @@ public class PsiParameterImpl extends JavaStubPsiElement imple return true; } + @Override @NotNull public SearchScope getUseScope() { final PsiElement declarationScope = getDeclarationScope(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterListImpl.java index ab241c0be959..b224bac150d7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterListImpl.java @@ -39,21 +39,25 @@ public class PsiParameterListImpl extends JavaStubPsiElement ANNOTATION_TEXT = new Function() { + @Override public String fun(PsiAnnotation psiAnnotation) { return psiAnnotation.getText(); } }; + @Override public PsiType getTypeNoResolve(@NotNull PsiElement context) { PsiFile file = getContainingFile(); String text; @@ -249,6 +254,7 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl return temp; } + @Override public PsiJavaCodeReferenceElement getInnermostComponentReferenceElement() { TreeElement firstChildNode = getFirstChildNode(); if (firstChildNode == null) return null; @@ -260,6 +266,7 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl } } + @Override public PsiAnnotationOwner getOwner(PsiAnnotation annotation) { PsiElement next = PsiTreeUtil.skipSiblingsForward(annotation, PsiComment.class, PsiWhiteSpace.class); if (next != null && next.getNode().getElementType() == JavaTokenType.LBRACKET) { @@ -275,11 +282,13 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl return (PsiJavaCodeReferenceElement)SourceTreeToPsiMap.treeElementToPsi(ref); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place){ processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); return true; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { List result = null; @@ -296,6 +305,7 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl return result== null ? PsiAnnotation.EMPTY_ARRAY : toAnnotationsArray(result); } + @Override @NotNull public PsiAnnotation[] getApplicableAnnotations() { PsiAnnotation[] annotations = getAnnotations(); @@ -306,10 +316,12 @@ public class PsiTypeElementImpl extends CompositePsiElement implements PsiTypeEl return toAnnotationsArray(list); } + @Override public PsiAnnotation findAnnotation(@NotNull @NonNls String qualifiedName) { return PsiImplUtil.findAnnotation(this, qualifiedName); } + @Override @NotNull public PsiAnnotation addAnnotation(@NotNull @NonNls String qualifiedName) { throw new UnsupportedOperationException();//todo diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocCommentImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocCommentImpl.java index 01ccadaf8f78..5f592a41cc95 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocCommentImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocCommentImpl.java @@ -42,6 +42,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc private static final TokenSet TAG_BIT_SET = TokenSet.create(DOC_TAG); private static final PsiElementArrayConstructor PSI_TAG_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiDocTag[] newPsiElementArray(int length) { return length == 0 ? PsiDocTag.EMPTY_ARRAY : new PsiDocTag[length]; } @@ -55,6 +56,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc super(JavaDocElementType.DOC_COMMENT, text); } + @Override public PsiDocCommentOwner getOwner() { final PsiElement parent = getParent(); if (parent instanceof PsiDocCommentOwner) { @@ -67,6 +69,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc return null; } + @Override @NotNull public PsiElement[] getDescriptionElements() { ArrayList array = new ArrayList(); @@ -80,11 +83,13 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc return PsiUtilCore.toPsiElementArray(array); } + @Override @NotNull public PsiDocTag[] getTags() { return getChildrenAsPsiElements(TAG_BIT_SET, PSI_TAG_ARRAY_CONSTRUCTOR); } + @Override public PsiDocTag findTagByName(String name) { if (getFirstChildNode().getElementType() == JavaDocElementType.DOC_COMMENT) { if (getFirstChildNode().getText().indexOf(name) < 0) return null; @@ -104,6 +109,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc return null; } + @Override @NotNull public PsiDocTag[] findTagsByName(String name) { ArrayList array = new ArrayList(); @@ -117,10 +123,12 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc return array.toArray(new PsiDocTag[array.size()]); } + @Override public IElementType getTokenType() { return getElementType(); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -167,6 +175,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc tag.addInternal(commentData, commentData, leadingWhitespaceAnchor, Boolean.TRUE); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { boolean needToAddNewline = false; if (first == last && first.getElementType() == DOC_TAG) { @@ -233,6 +242,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc } } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (child.getElementType() == DOC_TAG) { if (child.getTreeNext() == null || child.getTreeNext().getElementType() != DOC_TAG) { @@ -280,6 +290,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc super.deleteChildInternal(child); } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -303,6 +314,7 @@ public class PsiDocCommentImpl extends LazyParseablePsiElement implements PsiDoc } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocComment(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocMethodOrFieldRef.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocMethodOrFieldRef.java index 83148222af7d..91cdd946eb29 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocMethodOrFieldRef.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocMethodOrFieldRef.java @@ -52,6 +52,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo super(DOC_METHOD_OR_FIELD_REF); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocTagValue(this); @@ -61,6 +62,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo } } + @Override public PsiReference getReference() { final PsiClass scope = getScope(); final PsiElement element = getNameElement(); @@ -118,6 +120,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo if (!method.getName().equals(name) || (methodSignature != null && !MethodSignatureUtil.areSignaturesErasureEqual(methodSignature, method.getSignature(PsiSubstitutor.EMPTY)))) continue; return new MyReference(method) { + @Override @NotNull public PsiElement[] getVariants() { final List lst = new ArrayList(); @@ -146,6 +149,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return result.toArray(new PsiMethod[result.size()]); } + @Override public int getTextOffset() { final PsiElement element = getNameElement(); return element != null ? element.getTextRange().getStartOffset() : getTextRange().getEndOffset(); @@ -217,10 +221,12 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo myReferredElement = referredElement; } + @Override public PsiElement resolve() { return myReferredElement; } + @Override public void processVariants(PsiScopeProcessor processor) { for (final PsiElement element : getVariants()) { if (!processor.execute(element, ResolveState.initial())) { @@ -229,18 +235,21 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo } } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { return myReferredElement == null ? JavaResolveResult.EMPTY : new CandidateInfo(myReferredElement, PsiSubstitutor.EMPTY); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { return myReferredElement == null ? JavaResolveResult.EMPTY_ARRAY : new JavaResolveResult[]{new CandidateInfo(myReferredElement, PsiSubstitutor.EMPTY)}; } + @Override @NotNull public PsiElement[] getVariants(){ final List vars = new ArrayList(); @@ -252,10 +261,12 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return vars.toArray(new PsiModifierListOwner[vars.size()]); } + @Override public boolean isSoft(){ return false; } + @Override @NotNull public String getCanonicalText() { final PsiElement nameElement = getNameElement(); @@ -263,6 +274,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return nameElement.getText(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { final PsiElement nameElement = getNameElement(); assert nameElement != null; @@ -273,6 +285,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return SourceTreeToPsiMap.treeToPsiNotNull(newToken); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (isReferenceTo(element)) return PsiDocMethodOrFieldRef.this; final PsiElement nameElement = getNameElement(); @@ -355,10 +368,12 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return replace(ref); } + @Override public boolean isReferenceTo(PsiElement element) { return getManager().areElementsEquivalent(resolve(), element); } + @Override public TextRange getRangeInElement() { final ASTNode sharp = findChildByType(DOC_TAG_VALUE_SHARP_TOKEN); if (sharp == null) return new TextRange(0, getTextLength()); @@ -383,6 +398,7 @@ public class PsiDocMethodOrFieldRef extends CompositePsiElement implements PsiDo return new TextRange(getTextLength(), getTextLength()); } + @Override public PsiElement getElement() { return PsiDocMethodOrFieldRef.this; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java index d0770857a165..4fb485baf727 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocParamRef.java @@ -48,6 +48,7 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu super(Constants.DOC_PARAMETER_REF); } + @Override public PsiReference getReference() { final PsiDocComment comment = PsiTreeUtil.getParentOfType(this, PsiDocComment.class); if (comment == null) return null; @@ -78,15 +79,18 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu final PsiElement resultReference = reference; return new PsiJavaReference() { + @Override public PsiElement resolve() { return resultReference; } + @Override @NotNull public String getCanonicalText() { return valueToken.getText(); } + @Override public PsiElement handleElementRename(String newElementName) { final CharTable charTableByTree = SharedImplUtil.findCharTableByTree(getNode()); LeafElement newElement = Factory.createSingleLeafElement(JavaDocTokenType.DOC_TAG_VALUE_TOKEN, newElementName, charTableByTree, getManager()); @@ -94,6 +98,7 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu return PsiDocParamRef.this; } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { if (isReferenceTo(element)) return PsiDocParamRef.this; if(!(element instanceof PsiParameter)) { @@ -102,6 +107,7 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu return handleElementRename(((PsiParameter) element).getName()); } + @Override public boolean isReferenceTo(PsiElement element) { if (!(element instanceof PsiNamedElement)) return false; PsiNamedElement namedElement = (PsiNamedElement)element; @@ -109,6 +115,7 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu return getManager().areElementsEquivalent(resolve(), element); } + @Override @NotNull public PsiElement[] getVariants() { final PsiElement firstChild = getFirstChild(); @@ -138,19 +145,23 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu return filtered.toArray(new PsiElement[filtered.size()]); } + @Override public boolean isSoft(){ return false; } + @Override public TextRange getRangeInElement() { final int startOffsetInParent = valueToken.getPsi().getStartOffsetInParent(); return new TextRange(startOffsetInParent, startOffsetInParent + valueToken.getTextLength()); } + @Override public PsiElement getElement() { return PsiDocParamRef.this; } + @Override public void processVariants(PsiScopeProcessor processor) { for (final PsiElement element : getVariants()) { if (!processor.execute(element, ResolveState.initial())) { @@ -159,11 +170,13 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu } } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { return resultReference == null ? JavaResolveResult.EMPTY : new CandidateInfo(resultReference, PsiSubstitutor.EMPTY); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { return resultReference == null @@ -173,6 +186,7 @@ public class PsiDocParamRef extends CompositePsiElement implements PsiDocTagValu }; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocTagValue(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagImpl.java index f26c118639f0..d6bc8d3774a3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/PsiDocTagImpl.java @@ -53,32 +53,39 @@ public class PsiDocTagImpl extends CompositePsiElement implements PsiDocTag, Con super(DOC_TAG); } + @Override public PsiDocComment getContainingComment() { return (PsiDocComment)SourceTreeToPsiMap.treeElementToPsi(getTreeParent()); } + @Override public PsiElement getNameElement() { return findChildByRoleAsPsiElement(ChildRole.DOC_TAG_NAME); } + @Override public PsiDocTagValue getValueElement() { return (PsiDocTagValue)findChildByRoleAsPsiElement(ChildRole.DOC_TAG_VALUE); } + @Override public PsiElement[] getDataElements() { return getChildrenAsPsiElements(VALUE_BIT_SET, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); } + @Override public String getName() { if (getNameElement() == null) return ""; return getNameElement().getText().substring(1); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameElement(), name); return this; } + @Override public int getChildRole(ASTNode child) { assert (child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -102,11 +109,13 @@ public class PsiDocTagImpl extends CompositePsiElement implements PsiDocTag, Con } } + @Override @NotNull public PsiReference[] getReferences() { return ReferenceProvidersRegistry.getReferencesFromProviders(this, PsiDocTag.class); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDocTag(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/ClassResolverProcessor.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/ClassResolverProcessor.java index 4af44bbc9ca8..878ecce5a3ba 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/ClassResolverProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/ClassResolverProcessor.java @@ -75,16 +75,19 @@ public class ClassResolverProcessor extends BaseScopeProcessor implements NameHi return myResult; } + @Override public String getName(ResolveState state) { return myClassName; } + @Override public boolean shouldProcess(DeclarationKind kind) { return kind == DeclarationKind.CLASS; } private boolean myStaticContext = false; + @Override public void handleEvent(PsiScopeProcessor.Event event, Object associated) { if (event == JavaScopeProcessorEvent.START_STATIC) { myStaticContext = true; @@ -161,6 +164,7 @@ public class ClassResolverProcessor extends BaseScopeProcessor implements NameHi return Domination.EQUAL; } + @Override public boolean execute(PsiElement element, ResolveState state) { if (!(element instanceof PsiClass)) return true; final PsiClass aClass = (PsiClass)element; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java index f28f55c818b1..f23480179ce5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java @@ -42,12 +42,14 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { myManager = manager; } + @Override @NotNull public JavaResolveResult resolveConstructor(PsiClassType classType, PsiExpressionList argumentList, PsiElement place) { JavaResolveResult[] result = multiResolveConstructor(classType, argumentList, place); return result.length == 1 ? result[0] : JavaResolveResult.EMPTY; } + @Override @NotNull public JavaResolveResult[] multiResolveConstructor(PsiClassType type, PsiExpressionList argumentList, PsiElement place) { PsiClassType.ClassResolveResult classResolveResult = type.resolveGenerics(); @@ -76,6 +78,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return processor.getResult(); } + @Override public PsiClass resolveReferencedClass(@NotNull final String referenceText, final PsiElement context) { final PsiJavaParserFacade parserFacade = JavaPsiFacade.getInstance(myManager.getProject()).getParserFacade(); try { @@ -87,6 +90,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { } } + @Override public PsiVariable resolveReferencedVariable(@NotNull String referenceText, PsiElement context) { return resolveVar(referenceText, context, null); } @@ -110,10 +114,12 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { } } + @Override public boolean isAccessible(@NotNull PsiMember member, @NotNull PsiElement place, @Nullable PsiClass accessObjectClass) { return isAccessible(member, member.getModifierList(), place, accessObjectClass, null); } + @Override public boolean isAccessible(@NotNull PsiMember member, PsiModifierList modifierList, @NotNull PsiElement place, @@ -122,6 +128,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return JavaResolveUtil.isAccessible(member, member.getContainingClass(), modifierList, place, accessObjectClass, currentFileResolveScope); } + @Override @NotNull public CandidateInfo[] getReferencedMethodCandidates(PsiCallExpression expr, boolean dummyImplicitConstructor) { final MethodCandidatesProcessor processor = new MethodCandidatesProcessor(expr); @@ -233,6 +240,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return new Pair(JavaPsiFacade.getInstance(typeParameter.getProject()).getElementFactory().createType(typeParameter), ConstraintType.EQUALS); } + @Override public PsiType inferTypeForMethodTypeParameter(@NotNull final PsiTypeParameter typeParameter, @NotNull final PsiParameter[] parameters, @NotNull PsiExpression[] arguments, @@ -246,6 +254,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return constraint.getFirst(); } + @Override @NotNull public PsiSubstitutor inferTypeArguments(@NotNull PsiTypeParameter[] typeParameters, @NotNull PsiParameter[] parameters, @@ -337,6 +346,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return partialSubstitutor; } + @Override @NotNull public PsiSubstitutor inferTypeArguments(@NotNull PsiTypeParameter[] typeParameters, @NotNull PsiType[] leftTypes, @@ -410,6 +420,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return substitution; } + @Override public PsiType getSubstitutionForTypeParameter(PsiTypeParameter typeParam, PsiType param, PsiType arg, diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/StaticImportResolveProcessor.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/StaticImportResolveProcessor.java index ce3364b63d5b..316f5a980fc2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/StaticImportResolveProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/StaticImportResolveProcessor.java @@ -37,6 +37,7 @@ public class StaticImportResolveProcessor extends BaseScopeProcessor implements myName = myReference.getReferenceName(); } + @Override public boolean execute(final PsiElement candidate, final ResolveState state) { if (candidate instanceof PsiMember && ((PsiModifierListOwner)candidate).hasModifierProperty(PsiModifier.STATIC)) { if (candidate instanceof PsiField) { @@ -83,6 +84,7 @@ public class StaticImportResolveProcessor extends BaseScopeProcessor implements return Domination.EQUAL; } + @Override public String getName(final ResolveState state) { return myName; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/SymbolCollectingProcessor.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/SymbolCollectingProcessor.java index e28c8942e59c..8145272ed390 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/SymbolCollectingProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/SymbolCollectingProcessor.java @@ -49,6 +49,7 @@ public class SymbolCollectingProcessor extends BaseScopeProcessor implements Ele } } + @Override public boolean execute(PsiElement element, ResolveState state) { if (element instanceof PsiNamedElement) { PsiNamedElement named = (PsiNamedElement)element; @@ -60,6 +61,7 @@ public class SymbolCollectingProcessor extends BaseScopeProcessor implements Ele return true; } + @Override public boolean shouldProcess(DeclarationKind kind) { return kind == DeclarationKind.CLASS || kind == DeclarationKind.PACKAGE || kind == DeclarationKind.METHOD || kind == DeclarationKind.FIELD; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/VariableResolverProcessor.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/VariableResolverProcessor.java index dbfc2650039b..56c9f20d1dd0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/VariableResolverProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/VariableResolverProcessor.java @@ -67,6 +67,7 @@ public class VariableResolverProcessor extends ConflictFilterProcessor implement myAccessClass = access; } + @Override public final void handleEvent(PsiScopeProcessor.Event event, Object associated) { super.handleEvent(event, associated); if(event == JavaScopeProcessorEvent.START_STATIC){ @@ -77,16 +78,19 @@ public class VariableResolverProcessor extends ConflictFilterProcessor implement } } + @Override public void add(PsiElement element, PsiSubstitutor substitutor) { final boolean staticProblem = myStaticScopeFlag && !((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC); add(new CandidateInfo(element, substitutor, myPlace, myAccessClass, staticProblem, myCurrentFileContext)); } + @Override public boolean shouldProcess(DeclarationKind kind) { return kind == DeclarationKind.VARIABLE || kind == DeclarationKind.FIELD || kind == DeclarationKind.ENUM_CONST; } + @Override public boolean execute(PsiElement element, ResolveState state) { if (!(element instanceof PsiField) && (myName == null || PsiUtil.checkName(element, myName, myPlace))) { super.execute(element, state); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java index 46871d80f473..e0c480eba592 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java @@ -71,6 +71,7 @@ public interface ElementType extends JavaTokenType, JavaDocTokenType, TokenSet TYPES_BIT_SET = TokenSet.create(TYPE); PsiElementArrayConstructor PSI_TYPE_ELEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiTypeElement[] newPsiElementArray(int length) { return length > 0 ? new PsiTypeElement[length] : PsiTypeElement.EMPTY_ARRAY; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java index e4bd50ef6e9e..acd68f964221 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaDocElementType.java @@ -119,6 +119,7 @@ public interface JavaDocElementType { return JavaParserUtil.parseFragment(chameleon, myParser); } + @Override public boolean isParsable(final CharSequence buffer, final Project project) { final JavaLexer lexer = new JavaLexer(LanguageLevelProjectExtension.getInstance(project).getLanguageLevel()); lexer.start(buffer); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java index 529aceffb89e..6d532975938c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java @@ -194,6 +194,7 @@ public interface JavaElementType { IElementType STATEMENTS = new ICodeFragmentElementType("STATEMENTS", JavaLanguage.INSTANCE) { private final JavaParserUtil.ParserWrapper myParser = new JavaParserUtil.ParserWrapper() { + @Override public void parse(final PsiBuilder builder) { StatementParser.parseStatements(builder); } @@ -208,6 +209,7 @@ public interface JavaElementType { IElementType EXPRESSION_TEXT = new ICodeFragmentElementType("EXPRESSION_TEXT", JavaLanguage.INSTANCE) { private final JavaParserUtil.ParserWrapper myParser = new JavaParserUtil.ParserWrapper() { + @Override public void parse(final PsiBuilder builder) { ExpressionParser.parse(builder); } @@ -222,6 +224,7 @@ public interface JavaElementType { IElementType REFERENCE_TEXT = new ICodeFragmentElementType("REFERENCE_TEXT", JavaLanguage.INSTANCE) { private final JavaParserUtil.ParserWrapper myParser = new JavaParserUtil.ParserWrapper() { + @Override public void parse(final PsiBuilder builder) { ReferenceParser.parseJavaCodeReference(builder, false, true, false, false, false); } @@ -236,6 +239,7 @@ public interface JavaElementType { IElementType TYPE_TEXT = new ICodeFragmentElementType("TYPE_TEXT", JavaLanguage.INSTANCE) { private final JavaParserUtil.ParserWrapper myParser = new JavaParserUtil.ParserWrapper() { + @Override public void parse(final PsiBuilder builder) { ReferenceParser.parseType(builder, ReferenceParser.EAT_LAST_DOT | ReferenceParser.ELLIPSIS | ReferenceParser.WILDCARD | ReferenceParser.DISJUNCTIONS); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java index 213232073971..46df541f3487 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java @@ -32,6 +32,7 @@ public class StringLiteralEscaper extends Li super(host); } + @Override public boolean decode(@NotNull final TextRange rangeInsideHost, @NotNull StringBuilder outChars) { ProperTextRange.assertProperRange(rangeInsideHost); String subText = rangeInsideHost.substring(myHost.getText()); @@ -39,12 +40,14 @@ public class StringLiteralEscaper extends Li return PsiLiteralExpressionImpl.parseStringCharacters(subText, outChars, outSourceOffsets); } + @Override public int getOffsetInHost(int offsetInDecoded, @NotNull final TextRange rangeInsideHost) { int result = offsetInDecoded < outSourceOffsets.length ? outSourceOffsets[offsetInDecoded] : -1; if (result == -1) return -1; return (result <= rangeInsideHost.getLength() ? result : rangeInsideHost.getLength()) + rangeInsideHost.getStartOffset(); } + @Override public boolean isOneLine() { return true; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationElement.java index 936e006e342a..8576334e52aa 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationElement.java @@ -34,6 +34,7 @@ public class AnnotationElement extends CompositeElement implements Constants { super(ANNOTATION); } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); @@ -49,6 +50,7 @@ public class AnnotationElement extends CompositeElement implements Constants { } } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationMethodElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationMethodElement.java index 705f4ce1788e..1903ab885e15 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationMethodElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnnotationMethodElement.java @@ -27,6 +27,7 @@ public class AnnotationMethodElement extends MethodElement { super(ANNOTATION_METHOD); } + @Override public ASTNode findChildByRole(int role) { if (role == ChildRole.ANNOTATION_DEFAULT_VALUE) { return findChildByType(ANNOTATION_MEMBER_VALUE_BIT_SET); @@ -37,6 +38,7 @@ public class AnnotationMethodElement extends MethodElement { return super.findChildByRole(role); } + @Override public int getChildRole(ASTNode child) { if (child.getElementType() == DEFAULT_KEYWORD) { return ChildRole.DEFAULT_KEYWORD; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnonymousClassElementBase.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnonymousClassElementBase.java index bfa3c467b0f2..c52bf6f41214 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnonymousClassElementBase.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/AnonymousClassElementBase.java @@ -36,6 +36,7 @@ public abstract class AnonymousClassElementBase extends ClassElement { super(type); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -56,6 +57,7 @@ public abstract class AnonymousClassElementBase extends ClassElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java index 0bd7dc0d6ef0..e3830e5d6be8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java @@ -37,6 +37,7 @@ public class ClassElement extends CompositeElement implements Constants { super(type); } + @Override public int getTextOffset() { ASTNode name = findChildByRole(ChildRole.NAME); if (name != null) { @@ -47,6 +48,7 @@ public class ClassElement extends CompositeElement implements Constants { } } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { PsiClass psiClass = (PsiClass)SourceTreeToPsiMap.treeElementToPsi(this); if (anchor == null) { @@ -171,6 +173,7 @@ public class ClassElement extends CompositeElement implements Constants { return firstAdded; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (isEnum()) { if (child.getElementType() == ENUM_CONSTANT) { @@ -239,6 +242,7 @@ public class ClassElement extends CompositeElement implements Constants { ); + @Override public ASTNode findChildByRole(int role) { assert ChildRole.isUnique(role); @@ -328,6 +332,7 @@ public class ClassElement extends CompositeElement implements Constants { return null; } + @Override public int getChildRole(ASTNode child) { assert child.getTreeParent() == this; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassInitializerElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassInitializerElement.java index e3f7203cc5d7..0026b5d3d6d3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassInitializerElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassInitializerElement.java @@ -30,6 +30,7 @@ public class ClassInitializerElement extends CompositeElement implements Constan super(CLASS_INITIALIZER); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -44,6 +45,7 @@ public class ClassInitializerElement extends CompositeElement implements Constan } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/EnumConstantElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/EnumConstantElement.java index e3d3a0d27423..b18dd77d0bdf 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/EnumConstantElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/EnumConstantElement.java @@ -33,10 +33,12 @@ public class EnumConstantElement extends CompositeElement implements Constants { super(ENUM_CONSTANT); } + @Override public int getTextOffset() { return findChildByRole(ChildRole.NAME).getStartOffset(); } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -60,6 +62,7 @@ public class EnumConstantElement extends CompositeElement implements Constants { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExpressionPsiElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExpressionPsiElement.java index 032a7542cb2e..cf40d04ca427 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExpressionPsiElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExpressionPsiElement.java @@ -36,6 +36,7 @@ public class ExpressionPsiElement extends CompositePsiElement { super(type); } + @Override public void replaceChildInternal(@NotNull ASTNode child, @NotNull TreeElement newElement) { if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { boolean needParenth = ReplaceExpressionUtil.isNeedParenthesis(child, newElement); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExtendsListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExtendsListElement.java index c0aac9d8e2c7..6d24380c6d32 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExtendsListElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ExtendsListElement.java @@ -34,14 +34,17 @@ public class ExtendsListElement extends ReferenceListElement { super(JavaElementType.EXTENDS_LIST); } + @Override protected String getKeywordText() { return PsiKeyword.EXTENDS; } + @Override protected IElementType getKeywordType() { return JavaTokenType.EXTENDS_KEYWORD; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -53,6 +56,7 @@ public class ExtendsListElement extends ReferenceListElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/FieldElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/FieldElement.java index 5fd1c0c780a6..db0d189b72f8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/FieldElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/FieldElement.java @@ -36,10 +36,12 @@ public class FieldElement extends CompositeElement{ super(type); } + @Override public int getTextOffset() { return findChildByRole(ChildRole.NAME).getStartOffset(); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.INITIALIZER){ ASTNode eq = findChildByRole(ChildRole.INITIALIZER_EQ); @@ -50,6 +52,7 @@ public class FieldElement extends CompositeElement{ super.deleteChildInternal(child); } + @Override public ASTNode findChildByRole(int role){ assert (ChildRole.isUnique(role)); switch(role){ @@ -79,6 +82,7 @@ public class FieldElement extends CompositeElement{ } } + @Override public int getChildRole(ASTNode child) { assert (child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplementsListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplementsListElement.java index f2f51e1c33b2..88e0d83b5249 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplementsListElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplementsListElement.java @@ -34,14 +34,17 @@ public class ImplementsListElement extends ReferenceListElement { super(JavaElementType.IMPLEMENTS_LIST); } + @Override protected String getKeywordText() { return PsiKeyword.IMPLEMENTS; } + @Override protected IElementType getKeywordType() { return JavaTokenType.IMPLEMENTS_KEYWORD; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -53,6 +56,7 @@ public class ImplementsListElement extends ReferenceListElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportListElement.java index 188e577cfcfe..c64336c56a81 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportListElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportListElement.java @@ -29,6 +29,7 @@ public class ImportListElement extends CompositeElement{ super(JavaElementType.IMPORT_LIST); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before){ if (before == null){ if (first == last && (first.getElementType() == JavaElementType.IMPORT_STATEMENT || first.getElementType() == JavaElementType.IMPORT_STATIC_STATEMENT)){ diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementBaseElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementBaseElement.java index da479065707e..853e45178ee6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementBaseElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementBaseElement.java @@ -35,6 +35,7 @@ public class ImportStatementBaseElement extends CompositeElement { super(type); } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -55,6 +56,7 @@ public class ImportStatementBaseElement extends CompositeElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementElement.java index 3a1d842ba32e..c9f50479ba4b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStatementElement.java @@ -24,6 +24,7 @@ public class ImportStatementElement extends ImportStatementBaseElement { super(JavaElementType.IMPORT_STATEMENT); } + @Override public ASTNode findChildByRole(int role) { final ASTNode result = super.findChildByRole(role); if (result != null) return result; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStaticStatementElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStaticStatementElement.java index 16c05ad8fbdf..4e331956c7c9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStaticStatementElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImportStaticStatementElement.java @@ -26,6 +26,7 @@ public class ImportStaticStatementElement extends ImportStatementBaseElement { super(JavaElementType.IMPORT_STATIC_STATEMENT); } + @Override public ASTNode findChildByRole(int role) { final ASTNode result = super.findChildByRole(role); if (result != null) return result; @@ -44,6 +45,7 @@ public class ImportStaticStatementElement extends ImportStatementBaseElement { } } + @Override public int getChildRole(ASTNode child) { final int role = super.getChildRole(child); if (role != ChildRoleBase.NONE) return role; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/JavaFileElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/JavaFileElement.java index ce3182c8024c..2239f0b35d39 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/JavaFileElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/JavaFileElement.java @@ -37,6 +37,7 @@ public class JavaFileElement extends FileElement { super(JavaStubElementTypes.JAVA_FILE, text); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (child.getElementType() == JavaElementType.CLASS) { PsiJavaFile file = SourceTreeToPsiMap.treeToPsiNotNull(this); @@ -48,6 +49,7 @@ public class JavaFileElement extends FileElement { super.deleteChildInternal(child); } + @Override @Nullable public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); @@ -63,6 +65,7 @@ public class JavaFileElement extends FileElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -80,6 +83,7 @@ public class JavaFileElement extends FileElement { } } + @Override public void replaceChildInternal(@NotNull ASTNode child, @NotNull TreeElement newElement) { if (newElement.getElementType() == JavaElementType.IMPORT_LIST) { LOG.assertTrue(child.getElementType() == JavaElementType.IMPORT_LIST); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodElement.java index 7f5bf4a9e240..600f4bd3e011 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodElement.java @@ -39,10 +39,12 @@ public class MethodElement extends CompositeElement implements Constants { super(type); } + @Override public int getTextOffset() { return findChildByRole(ChildRole.NAME).getStartOffset(); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (first == last && first.getElementType() == ElementType.CODE_BLOCK){ ASTNode semicolon = findChildByRole(ChildRole.CLOSING_SEMICOLON); @@ -60,6 +62,7 @@ public class MethodElement extends CompositeElement implements Constants { return psiClass != null ? ChangeUtil.copyElement(this, psiClass.getTypeParameterList(), table) : super.copyElement(); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (child.getElementType() == CODE_BLOCK){ final ASTNode prevWS = TreeUtil.prevLeaf(child); @@ -76,6 +79,7 @@ public class MethodElement extends CompositeElement implements Constants { } } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -111,6 +115,7 @@ public class MethodElement extends CompositeElement implements Constants { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ModifierListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ModifierListElement.java index 4c3cef82899d..2ca740d55edb 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ModifierListElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ModifierListElement.java @@ -33,6 +33,7 @@ public class ModifierListElement extends CompositeElement { super(Constants.MODIFIER_LIST); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (before == null){ if (first == last && ElementType.KEYWORD_BIT_SET.contains(first.getElementType())){ @@ -44,6 +45,7 @@ public class ModifierListElement extends CompositeElement { return super.addInternal(first, last, anchor, before); } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (child.getElementType() == JavaElementType.ANNOTATION) return ChildRole.ANNOTATION; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterElement.java index 677333eb8c68..c373753f96ae 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterElement.java @@ -36,10 +36,12 @@ public class ParameterElement extends CompositeElement{ super(type); } + @Override public int getTextOffset() { return findChildByRole(ChildRole.NAME).getStartOffset(); } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -58,6 +60,7 @@ public class ParameterElement extends CompositeElement{ } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java index c02cd3959fff..a5e32e9ce95b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java @@ -35,6 +35,7 @@ public class ParameterListElement extends CompositeElement implements Constants super(PARAMETER_LIST); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (anchor == null) { if (before == null || before.booleanValue()) { @@ -77,6 +78,7 @@ public class ParameterListElement extends CompositeElement implements Constants return firstAdded; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { final TreeElement oldLastNodeInsideParens = getLastNodeInsideParens(); final TreeElement oldFirstNodeInsideParens = getFirstNodeInsideParens(); @@ -125,6 +127,7 @@ public class ParameterListElement extends CompositeElement implements Constants } } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -149,6 +152,7 @@ public class ParameterListElement extends CompositeElement implements Constants } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationImpl.java index 8ed14acb11dd..68a4e468623f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationImpl.java @@ -39,6 +39,7 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl"); private static final PairFunction ANNOTATION_CREATOR = new PairFunction() { + @Override public PsiAnnotation fun(Project project, String text) { return JavaPsiFacade.getInstance(project).getElementFactory().createAnnotationFromText(text, null); } @@ -52,6 +53,7 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp super(node); } + @Override public PsiJavaCodeReferenceElement getNameReferenceElement() { final PsiAnnotationStub stub = getStub(); if (stub != null) { @@ -65,15 +67,18 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp return (PsiJavaCodeReferenceElement)result; } + @Override public PsiAnnotationMemberValue findAttributeValue(String attributeName) { return PsiImplUtil.findAttributeValue(this, attributeName); } + @Override @Nullable public PsiAnnotationMemberValue findDeclaredAttributeValue(@NonNls final String attributeName) { return PsiImplUtil.findDeclaredAttributeValue(this, attributeName); } + @Override public T setDeclaredAttributeValue(@NonNls String attributeName, @Nullable T value) { return (T)PsiImplUtil.setDeclaredAttributeValue(this, attributeName, value, ANNOTATION_CREATOR); } @@ -82,6 +87,7 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp return "PsiAnnotation"; } + @Override @NotNull public PsiAnnotationParameterList getParameterList() { final PsiAnnotationStub stub = getStub(); @@ -92,12 +98,14 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp return PsiTreeUtil.getRequiredChildOfType(this, PsiAnnotationParameterList.class); } + @Override @Nullable public String getQualifiedName() { final PsiJavaCodeReferenceElement nameRef = getNameReferenceElement(); if (nameRef == null) return null; return nameRef.getCanonicalText(); } + @Override public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnnotation(this); @@ -107,10 +115,12 @@ public class PsiAnnotationImpl extends JavaStubPsiElement imp } } + @Override public PsiMetaData getMetaData() { return MetaRegistry.getMetaBase(this); } + @Override public PsiAnnotationOwner getOwner() { PsiElement parent = getParent(); if (parent instanceof PsiTypeElement) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationParameterListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationParameterListImpl.java index c38d312483de..1a46f91eb025 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationParameterListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAnnotationParameterListImpl.java @@ -36,11 +36,13 @@ public class PsiAnnotationParameterListImpl extends PsiCommaSeparatedListImpl im super(ANNOTATION_PARAMETER_LIST, NAME_VALUE_PAIR_BIT_SET); } + @Override public void clearCaches() { super.clearCaches(); myCachedMembers = null; } + @Override @NotNull public PsiNameValuePair[] getAttributes() { PsiNameValuePair[] cachedMembers = myCachedMembers; @@ -51,6 +53,7 @@ public class PsiAnnotationParameterListImpl extends PsiCommaSeparatedListImpl im return cachedMembers; } + @Override public int getChildRole(ASTNode child) { IElementType i = child.getElementType(); if (i == COMMA) { @@ -73,6 +76,7 @@ public class PsiAnnotationParameterListImpl extends PsiCommaSeparatedListImpl im } } + @Override public ASTNode findChildByRole(int role) { switch (role) { default: @@ -90,6 +94,7 @@ public class PsiAnnotationParameterListImpl extends PsiCommaSeparatedListImpl im return "PsiAnnotationParameterList"; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnnotationParameterList(this); @@ -99,6 +104,7 @@ public class PsiAnnotationParameterListImpl extends PsiCommaSeparatedListImpl im } } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (first.getElementType() == NAME_VALUE_PAIR && last.getElementType() == NAME_VALUE_PAIR) { final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java index f2fe78360f58..3c3fbbff1d2e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayAccessExpressionImpl.java @@ -31,21 +31,25 @@ public class PsiArrayAccessExpressionImpl extends ExpressionPsiElement implement super(ARRAY_ACCESS_EXPRESSION); } + @Override @NotNull public PsiExpression getArrayExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.ARRAY); } + @Override public PsiExpression getIndexExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.INDEX); } + @Override public PsiType getType() { PsiType arrayType = getArrayExpression().getType(); if (!(arrayType instanceof PsiArrayType)) return null; return ((PsiArrayType)arrayType).getComponentType(); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -75,6 +79,7 @@ public class PsiArrayAccessExpressionImpl extends ExpressionPsiElement implement } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -94,6 +99,7 @@ public class PsiArrayAccessExpressionImpl extends ExpressionPsiElement implement } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitArrayAccessExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerExpressionImpl.java index 8e1c809a2534..7fb4f275a316 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerExpressionImpl.java @@ -32,11 +32,13 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl super(ARRAY_INITIALIZER_EXPRESSION); } + @Override @NotNull public PsiExpression[] getInitializers(){ return getChildrenAsPsiElements(EXPRESSION_BIT_SET, PSI_EXPRESSION_ARRAY_CONSTRUCTOR); } + @Override public PsiType getType(){ if (getTreeParent() instanceof PsiNewExpression){ if (getTreeParent().getChildRole(this) == ChildRole.ARRAY_INITIALIZER){ @@ -59,6 +61,7 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl return null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -73,6 +76,7 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -93,6 +97,7 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitArrayInitializerExpression(this); @@ -106,6 +111,7 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl return "PsiArrayInitializerExpression:" + getText(); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (anchor == null){ if (before == null || before.booleanValue()){ diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerMemberValueImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerMemberValueImpl.java index 285d262328e8..2d36cac53b22 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerMemberValueImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiArrayInitializerMemberValueImpl.java @@ -35,11 +35,13 @@ public class PsiArrayInitializerMemberValueImpl extends PsiCommaSeparatedListImp super(ANNOTATION_ARRAY_INITIALIZER, ANNOTATION_MEMBER_VALUE_BIT_SET); } + @Override @NotNull public PsiAnnotationMemberValue[] getInitializers() { return getChildrenAsPsiElements(ANNOTATION_MEMBER_VALUE_BIT_SET, PSI_ANNOTATION_MEMBER_VALUE_ARRAY_CONSTRUCTOR); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -54,6 +56,7 @@ public class PsiArrayInitializerMemberValueImpl extends PsiCommaSeparatedListImp } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -78,6 +81,7 @@ public class PsiArrayInitializerMemberValueImpl extends PsiCommaSeparatedListImp return "PsiArrayInitializerMemberValue:" + getText(); } + @Override public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAnnotationArrayInitializer(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssertStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssertStatementImpl.java index be241812e872..90c7d301a335 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssertStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssertStatementImpl.java @@ -35,14 +35,17 @@ public class PsiAssertStatementImpl extends CompositePsiElement implements PsiAs super(ASSERT_STATEMENT); } + @Override public PsiExpression getAssertCondition() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CONDITION); } + @Override public PsiExpression getAssertDescription() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.ASSERT_DESCRIPTION); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -74,6 +77,7 @@ public class PsiAssertStatementImpl extends CompositePsiElement implements PsiAs } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -96,6 +100,7 @@ public class PsiAssertStatementImpl extends CompositePsiElement implements PsiAs } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAssertStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssignmentExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssignmentExpressionImpl.java index e2cfcf15ac44..a450c8a8ac42 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssignmentExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiAssignmentExpressionImpl.java @@ -33,29 +33,35 @@ public class PsiAssignmentExpressionImpl extends ExpressionPsiElement implements super(JavaElementType.ASSIGNMENT_EXPRESSION); } + @Override @NotNull public PsiExpression getLExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.LOPERAND); } + @Override public PsiExpression getRExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.ROPERAND); } + @Override @NotNull public PsiJavaToken getOperationSign() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.OPERATION_SIGN); } + @Override @NotNull public IElementType getOperationTokenType() { return getOperationSign().getTokenType(); } + @Override public PsiType getType() { return getLExpression().getType(); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -73,6 +79,7 @@ public class PsiAssignmentExpressionImpl extends ExpressionPsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { @@ -93,6 +100,7 @@ public class PsiAssignmentExpressionImpl extends ExpressionPsiElement implements JavaTokenType.LTLTEQ, JavaTokenType.GTGTEQ, JavaTokenType.GTGTGTEQ, JavaTokenType.ANDEQ, JavaTokenType.OREQ, JavaTokenType.XOREQ); + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitAssignmentExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java index 88cff8f0352a..e0e03a36e1d1 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBinaryExpressionImpl.java @@ -40,20 +40,24 @@ public class PsiBinaryExpressionImpl extends ExpressionPsiElement implements Psi super(elementType); } + @Override @NotNull public PsiExpression getLOperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.LOPERAND); } + @Override public PsiExpression getROperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.ROPERAND); } + @Override @NotNull public PsiJavaToken getOperationSign() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.OPERATION_SIGN); } + @Override @NotNull public IElementType getOperationTokenType() { return getOperationSign().getTokenType(); @@ -98,14 +102,17 @@ public class PsiBinaryExpressionImpl extends ExpressionPsiElement implements Psi } private static final Function MY_TYPE_EVALUATOR = new Function() { + @Override public PsiType fun(PsiBinaryExpressionImpl expression) { return doGetType(expression); } }; + @Override public PsiType getType() { return JavaResolveCache.getInstance(getProject()).getType(this, MY_TYPE_EVALUATOR); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -123,6 +130,7 @@ public class PsiBinaryExpressionImpl extends ExpressionPsiElement implements Psi } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { @@ -142,6 +150,7 @@ public class PsiBinaryExpressionImpl extends ExpressionPsiElement implements Psi JavaTokenType.GTGT, JavaTokenType.GTGTGT, JavaTokenType.PLUS, JavaTokenType.MINUS, JavaTokenType.ASTERISK, JavaTokenType.DIV, JavaTokenType.PERC); + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitBinaryExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBlockStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBlockStatementImpl.java index 9a96ae4c1c62..b1dae5402eef 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBlockStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBlockStatementImpl.java @@ -34,11 +34,13 @@ public class PsiBlockStatementImpl extends CompositePsiElement implements PsiBlo super(Constants.BLOCK_STATEMENT); } + @Override @NotNull public PsiCodeBlock getCodeBlock() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.BLOCK); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -50,6 +52,7 @@ public class PsiBlockStatementImpl extends CompositePsiElement implements PsiBlo } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (child.getElementType() == Constants.CODE_BLOCK) { @@ -60,6 +63,7 @@ public class PsiBlockStatementImpl extends CompositePsiElement implements PsiBlo } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitBlockStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBreakStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBreakStatementImpl.java index 4225f0eb74a5..7332d0ebddef 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBreakStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiBreakStatementImpl.java @@ -36,10 +36,12 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre super(BREAK_STATEMENT); } + @Override public PsiIdentifier getLabelIdentifier() { return (PsiIdentifier)findChildByRoleAsPsiElement(ChildRole.LABEL); } + @Override public PsiStatement findExitedStatement() { PsiIdentifier label = getLabelIdentifier(); if (label == null){ @@ -69,6 +71,7 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre return null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -86,6 +89,7 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -103,6 +107,7 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitBreakStatement(this); @@ -112,6 +117,7 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre } } + @Override public PsiReference getReference() { final PsiReference[] references = getReferences(); if (references != null && references.length > 0) @@ -119,6 +125,7 @@ public class PsiBreakStatementImpl extends CompositePsiElement implements PsiBre return null; } + @Override @NotNull public PsiReference[] getReferences() { if (getLabelIdentifier() == null) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java index bd37726d1fde..f7b9b8ff77c8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCatchSectionImpl.java @@ -49,20 +49,24 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch super(CATCH_SECTION); } + @Override public PsiParameter getParameter() { return (PsiParameter)findChildByRoleAsPsiElement(ChildRole.PARAMETER); } + @Override public PsiCodeBlock getCatchBlock() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.CATCH_BLOCK); } + @Override public PsiType getCatchType() { PsiParameter parameter = getParameter(); if (parameter == null) return null; return parameter.getType(); } + @Override @NotNull public List getPreciseCatchTypes() { final PsiParameter parameter = getParameter(); @@ -142,21 +146,25 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch return result[0]; } + @Override @NotNull public PsiTryStatement getTryStatement() { return (PsiTryStatement)getParent(); } + @Override @Nullable public PsiJavaToken getLParenth() { return (PsiJavaToken)findChildByRole(ChildRole.CATCH_BLOCK_PARAMETER_LPARENTH); } + @Override @Nullable public PsiJavaToken getRParenth() { return (PsiJavaToken)findChildByRole(ChildRole.CATCH_BLOCK_PARAMETER_RPARENTH); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitCatchSection(this); @@ -170,6 +178,7 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch return "PsiCatchSection"; } + @Override public ASTNode findChildByRole(int role) { switch(role) { default: @@ -192,6 +201,7 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -210,6 +220,7 @@ public class PsiCatchSectionImpl extends CompositePsiElement implements PsiCatch return ChildRoleBase.NONE; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiClassObjectAccessExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiClassObjectAccessExpressionImpl.java index 1016783f90bd..b0c633d9c030 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiClassObjectAccessExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiClassObjectAccessExpressionImpl.java @@ -37,15 +37,18 @@ public class PsiClassObjectAccessExpressionImpl extends ExpressionPsiElement imp super(CLASS_OBJECT_ACCESS_EXPRESSION); } + @Override public PsiType getType() { return PsiImplUtil.getType(this); } + @Override @NotNull public PsiTypeElement getOperand() { return (PsiTypeElement)findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -63,6 +66,7 @@ public class PsiClassObjectAccessExpressionImpl extends ExpressionPsiElement imp } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -80,6 +84,7 @@ public class PsiClassObjectAccessExpressionImpl extends ExpressionPsiElement imp } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitClassObjectAccessExpression(this); @@ -98,6 +103,7 @@ public class PsiClassObjectAccessExpressionImpl extends ExpressionPsiElement imp return getElementIcon(flags); } + @Override @NotNull public Icon getElementIcon(final int flags) { final RowIcon rowIcon = ElementBase.createLayeredIcon(this, PlatformIcons.FIELD_ICON, 0); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCodeBlockImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCodeBlockImpl.java index 395148f40f29..55adbec6bee5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCodeBlockImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCodeBlockImpl.java @@ -44,6 +44,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode super(JavaElementType.CODE_BLOCK, text); } + @Override public void clearCaches() { super.clearCaches(); myVariablesSet = null; @@ -51,11 +52,13 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode myConflict = false; } + @Override @NotNull public PsiStatement[] getStatements() { return PsiImplUtil.getChildStatements(this); } + @Override public PsiElement getFirstBodyElement() { final PsiJavaToken lBrace = getLBrace(); if (lBrace == null) return null; @@ -63,6 +66,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode return nextSibling == getRBrace() ? null : nextSibling; } + @Override public PsiElement getLastBodyElement() { final PsiJavaToken rBrace = getRBrace(); if (rBrace != null) { @@ -72,10 +76,12 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode return getLastChild(); } + @Override public PsiJavaToken getLBrace() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.LBRACE); } + @Override public PsiJavaToken getRBrace() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.RBRACE); } @@ -95,6 +101,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode final Set classesSet = new THashSet(); final Ref conflict = new Ref(Boolean.FALSE); PsiScopesUtil.walkChildrenScopes(this, new BaseScopeProcessor() { + @Override public boolean execute(PsiElement element, ResolveState state) { if (element instanceof PsiLocalVariable) { final PsiLocalVariable variable = (PsiLocalVariable)element; @@ -125,6 +132,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode return wasConflict ? null : Pair.create(set1, set2); } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (anchor == null){ if (before == null || before.booleanValue()){ @@ -158,6 +166,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode return psi instanceof PsiStatement && psi.getLanguage() != JavaLanguage.INSTANCE; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -172,6 +181,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -186,6 +196,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitCodeBlock(this); @@ -200,6 +211,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); if (lastParent == null) { @@ -227,6 +239,7 @@ public class PsiCodeBlockImpl extends LazyParseablePsiElement implements PsiCode return true; } + @Override public boolean shouldChangeModificationCount(PsiElement place) { PsiElement parent = getParent(); return !(parent instanceof PsiMethod || parent instanceof PsiClassInitializer); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCommaSeparatedListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCommaSeparatedListImpl.java index a7f687a57491..272931438e58 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCommaSeparatedListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCommaSeparatedListImpl.java @@ -40,6 +40,7 @@ public abstract class PsiCommaSeparatedListImpl extends CompositePsiElement impl } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { if (myTypesOfElements.contains(first.getElementType()) && myTypesOfElements.contains(last.getElementType())) { final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this); @@ -68,6 +69,7 @@ public abstract class PsiCommaSeparatedListImpl extends CompositePsiElement impl } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (myTypesOfElements.contains(child.getElementType())) { ASTNode next = PsiImplUtil.skipWhitespaceAndComments(child.getTreeNext()); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCompositeModifierList.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCompositeModifierList.java index 44b60dbebb64..7865708d0067 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCompositeModifierList.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiCompositeModifierList.java @@ -37,6 +37,7 @@ public class PsiCompositeModifierList extends LightModifierList { mySublists = sublists; } + @Override @NotNull public PsiAnnotation[] getAnnotations() { List annotations = new ArrayList(); @@ -46,6 +47,7 @@ public class PsiCompositeModifierList extends LightModifierList { return annotations.toArray(new PsiAnnotation[annotations.size()]); } + @Override public PsiAnnotation findAnnotation(@NotNull final String qualifiedName) { for (PsiModifierList sublist : mySublists) { final PsiAnnotation annotation = sublist.findAnnotation(qualifiedName); @@ -55,6 +57,7 @@ public class PsiCompositeModifierList extends LightModifierList { return null; } + @Override public boolean hasModifierProperty(@NotNull final String name) { for (PsiModifierList sublist : mySublists) { if (sublist.hasModifierProperty(name)) return true; @@ -62,6 +65,7 @@ public class PsiCompositeModifierList extends LightModifierList { return false; } + @Override public boolean hasExplicitModifier(@NotNull final String name) { for (PsiModifierList sublist : mySublists) { if (sublist.hasExplicitModifier(name)) return true; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java index 1b143d6644ab..b7eef3417690 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java @@ -33,15 +33,18 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement super(JavaElementType.CONDITIONAL_EXPRESSION); } + @Override @NotNull public PsiExpression getCondition() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CONDITION); } + @Override public PsiExpression getThenExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.THEN_EXPRESSION); } + @Override public PsiExpression getElseExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.ELSE_EXPRESSION); } @@ -49,6 +52,7 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement /** * JLS 15.25 */ + @Override public PsiType getType() { PsiExpression expr1 = getThenExpression(); PsiExpression expr2 = getElseExpression(); @@ -96,6 +100,7 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement return GenericsUtil.getLeastUpperBound(type1, type2, getManager()); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -128,6 +133,7 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())){ @@ -147,6 +153,7 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement return ChildRoleBase.NONE; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitConditionalExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiContinueStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiContinueStatementImpl.java index bac1f74d2ccb..fd868bc7776d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiContinueStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiContinueStatementImpl.java @@ -33,10 +33,12 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi super(CONTINUE_STATEMENT); } + @Override public PsiIdentifier getLabelIdentifier() { return (PsiIdentifier)findChildByRoleAsPsiElement(ChildRole.LABEL); } + @Override public PsiStatement findContinuedStatement() { PsiIdentifier label = getLabelIdentifier(); if (label == null){ @@ -65,6 +67,7 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi return null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -82,6 +85,7 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -99,6 +103,7 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitContinueStatement(this); @@ -112,6 +117,7 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi return "PsiContinueStatement"; } + @Override public PsiReference getReference() { final PsiReference[] references = getReferences(); if (references != null && references.length > 0) @@ -119,6 +125,7 @@ public class PsiContinueStatementImpl extends CompositePsiElement implements Psi return null; } + @Override @NotNull public PsiReference[] getReferences() { if (getLabelIdentifier() == null) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDeclarationStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDeclarationStatementImpl.java index 57b7d6b59f08..8bacb1a19e3c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDeclarationStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDeclarationStatementImpl.java @@ -30,6 +30,7 @@ public class PsiDeclarationStatementImpl extends CompositePsiElement implements super(JavaElementType.DECLARATION_STATEMENT); } + @Override @NotNull public PsiElement[] getDeclaredElements() { return getChildrenAsPsiElements(DECLARED_ELEMENT_BIT_SET, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); @@ -37,11 +38,13 @@ public class PsiDeclarationStatementImpl extends CompositePsiElement implements private static final TokenSet DECLARED_ELEMENT_BIT_SET = TokenSet.create(JavaElementType.LOCAL_VARIABLE, JavaElementType.CLASS); + @Override public int getChildRole(ASTNode child) { if (child.getElementType() == JavaTokenType.COMMA) return ChildRole.COMMA; return super.getChildRole(child); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (DECLARED_ELEMENT_BIT_SET.contains(child.getElementType())) { PsiElement[] declaredElements = getDeclaredElements(); @@ -81,6 +84,7 @@ public class PsiDeclarationStatementImpl extends CompositePsiElement implements if (prev != null && prev.getElementType() == JavaTokenType.COMMA) deleteChildInternal(prev); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDeclarationStatement(this); @@ -94,6 +98,7 @@ public class PsiDeclarationStatementImpl extends CompositePsiElement implements return "PsiDeclarationStatement"; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); PsiElement[] decls = getDeclaredElements(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDoWhileStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDoWhileStatementImpl.java index 51f62a3852b5..c2f1d0ba4de7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDoWhileStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiDoWhileStatementImpl.java @@ -34,26 +34,32 @@ public class PsiDoWhileStatementImpl extends CompositePsiElement implements PsiD super(DO_WHILE_STATEMENT); } + @Override public PsiExpression getCondition(){ return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CONDITION); } + @Override public PsiStatement getBody(){ return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.LOOP_BODY); } + @Override public PsiKeyword getWhileKeyword() { return (PsiKeyword) findChildByRoleAsPsiElement(ChildRole.WHILE_KEYWORD); } + @Override public PsiJavaToken getLParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.LPARENTH); } + @Override public PsiJavaToken getRParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.RPARENTH); } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -83,6 +89,7 @@ public class PsiDoWhileStatementImpl extends CompositePsiElement implements PsiD } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -114,6 +121,7 @@ public class PsiDoWhileStatementImpl extends CompositePsiElement implements PsiD } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitDoWhileStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyExpressionImpl.java index 7bedd68b8f88..1cbe8457fbe4 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyExpressionImpl.java @@ -27,10 +27,12 @@ public class PsiEmptyExpressionImpl extends ExpressionPsiElement implements PsiE super(Constants.EMPTY_EXPRESSION); } + @Override public PsiType getType() { return null; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyStatementImpl.java index e8c08302f4ea..40566a32ae9c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiEmptyStatementImpl.java @@ -27,6 +27,7 @@ public class PsiEmptyStatementImpl extends CompositePsiElement implements PsiEmp super(Constants.EMPTY_STATEMENT); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitEmptyStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListImpl.java index 918a2046d6c4..0d29bb84d92f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListImpl.java @@ -33,11 +33,13 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp super(JavaElementType.EXPRESSION_LIST); } + @Override @NotNull public PsiExpression[] getExpressions() { return getChildrenAsPsiElements(ElementType.EXPRESSION_BIT_SET, Constants.PSI_EXPRESSION_ARRAY_CONSTRUCTOR); } + @Override @NotNull public PsiType[] getExpressionTypes() { PsiExpression[] expressions = getExpressions(); @@ -50,6 +52,7 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp return types; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -69,6 +72,7 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -89,6 +93,7 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp } } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this); if (anchor == null) { @@ -141,6 +146,7 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp return firstAdded; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { ASTNode next = PsiImplUtil.skipWhitespaceAndComments(child.getTreeNext()); @@ -157,6 +163,7 @@ public class PsiExpressionListImpl extends CompositePsiElement implements PsiExp super.deleteChildInternal(child); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitExpressionList(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListStatementImpl.java index 0a6b73fdf602..5670d47ec30d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionListStatementImpl.java @@ -36,10 +36,12 @@ public class PsiExpressionListStatementImpl extends CompositePsiElement implemen super(EXPRESSION_LIST_STATEMENT); } + @Override public PsiExpressionList getExpressionList() { return (PsiExpressionList)findChildByRoleAsPsiElement(ChildRole.EXPRESSION_LIST); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -54,6 +56,7 @@ public class PsiExpressionListStatementImpl extends CompositePsiElement implemen } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -68,6 +71,7 @@ public class PsiExpressionListStatementImpl extends CompositePsiElement implemen } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitExpressionListStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionStatementImpl.java index de4fd131035d..585813333d1c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiExpressionStatementImpl.java @@ -32,6 +32,7 @@ public class PsiExpressionStatementImpl extends CompositePsiElement implements P super(JavaElementType.EXPRESSION_STATEMENT); } + @Override @NotNull public PsiExpression getExpression() { PsiExpression expression = (PsiExpression)SourceTreeToPsiMap.treeElementToPsi(findChildByType(ElementType.EXPRESSION_BIT_SET)); @@ -40,6 +41,7 @@ public class PsiExpressionStatementImpl extends CompositePsiElement implements P return null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -54,6 +56,7 @@ public class PsiExpressionStatementImpl extends CompositePsiElement implements P } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -68,6 +71,7 @@ public class PsiExpressionStatementImpl extends CompositePsiElement implements P } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitExpressionStatement(this); @@ -81,6 +85,7 @@ public class PsiExpressionStatementImpl extends CompositePsiElement implements P return "PsiExpressionStatement"; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.EXPRESSION) { getTreeParent().deleteChildInternal(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForStatementImpl.java index 7e2edb44ae49..a83605b3814b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForStatementImpl.java @@ -38,30 +38,37 @@ public class PsiForStatementImpl extends CompositePsiElement implements PsiForSt super(FOR_STATEMENT); } + @Override public PsiStatement getInitialization(){ return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.FOR_INITIALIZATION); } + @Override public PsiExpression getCondition(){ return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CONDITION); } + @Override public PsiStatement getUpdate(){ return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.FOR_UPDATE); } + @Override public PsiStatement getBody(){ return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.LOOP_BODY); } + @Override public PsiJavaToken getLParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.LPARENTH); } + @Override public PsiJavaToken getRParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.RPARENTH); } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -118,6 +125,7 @@ public class PsiForStatementImpl extends CompositePsiElement implements PsiForSt } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -150,6 +158,7 @@ public class PsiForStatementImpl extends CompositePsiElement implements PsiForSt } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitForStatement(this); @@ -163,6 +172,7 @@ public class PsiForStatementImpl extends CompositePsiElement implements PsiForSt return "PsiForStatement"; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { final boolean isForInitialization = getChildRole(child) == ChildRole.FOR_INITIALIZATION; @@ -180,6 +190,7 @@ public class PsiForStatementImpl extends CompositePsiElement implements PsiForSt } } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); if (lastParent == null || lastParent.getParent() != this) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForeachStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForeachStatementImpl.java index baee662c4e7f..26f3545e22fa 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForeachStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiForeachStatementImpl.java @@ -36,28 +36,34 @@ public class PsiForeachStatementImpl extends CompositePsiElement implements PsiF super(FOREACH_STATEMENT); } + @Override @NotNull public PsiParameter getIterationParameter() { return (PsiParameter) findChildByRoleAsPsiElement(ChildRole.FOR_ITERATION_PARAMETER); } + @Override public PsiExpression getIteratedValue() { return (PsiExpression) findChildByRoleAsPsiElement(ChildRole.FOR_ITERATED_VALUE); } + @Override public PsiStatement getBody() { return (PsiStatement) findChildByRoleAsPsiElement(ChildRole.LOOP_BODY); } + @Override @NotNull public PsiJavaToken getLParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.LPARENTH); } + @Override public PsiJavaToken getRParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.RPARENTH); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); @@ -88,6 +94,7 @@ public class PsiForeachStatementImpl extends CompositePsiElement implements PsiF } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); @@ -124,6 +131,7 @@ public class PsiForeachStatementImpl extends CompositePsiElement implements PsiF return "PsiForeachStatement"; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this); if (lastParent == null || lastParent.getParent() != this || lastParent == getIteratedValue()) @@ -133,6 +141,7 @@ public class PsiForeachStatementImpl extends CompositePsiElement implements PsiF return processor.execute(getIterationParameter(), state); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitForeachStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIfStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIfStatementImpl.java index 35de12d11a6c..fe2b2bb95b44 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIfStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiIfStatementImpl.java @@ -35,10 +35,12 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat super(IF_STATEMENT); } + @Override public PsiExpression getCondition() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CONDITION); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (child == getElseBranch()) { ASTNode elseKeyword = findChildByRole(ChildRole.ELSE_KEYWORD); @@ -49,26 +51,32 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat super.deleteChildInternal(child); } + @Override public PsiStatement getThenBranch() { return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.THEN_BRANCH); } + @Override public PsiStatement getElseBranch() { return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.ELSE_BRANCH); } + @Override public PsiJavaToken getLParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.LPARENTH); } + @Override public PsiJavaToken getRParenth() { return (PsiJavaToken) findChildByRoleAsPsiElement(ChildRole.RPARENTH); } + @Override public PsiKeyword getElseElement() { return (PsiKeyword)findChildByRoleAsPsiElement(ChildRole.ELSE_KEYWORD); } + @Override public void setElseBranch(@NotNull PsiStatement statement) throws IncorrectOperationException { PsiStatement elseBranch = getElseBranch(); if (elseBranch != null) elseBranch.delete(); @@ -81,6 +89,7 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat addRange(ifStatement.getElseElement(), ifStatement.getLastChild()); } + @Override public void setThenBranch(@NotNull PsiStatement statement) throws IncorrectOperationException { PsiElementFactory elementFactory = JavaPsiFacade.getInstance(getProject()).getElementFactory(); ASTNode keyword = findChildByRole(ChildRole.IF_KEYWORD); @@ -102,6 +111,7 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat } } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -138,6 +148,7 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -171,6 +182,7 @@ public class PsiIfStatementImpl extends CompositePsiElement implements PsiIfStat } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitIfStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInlineDocTagImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInlineDocTagImpl.java index 613b52678ffd..fe3a08ac5e0d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInlineDocTagImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInlineDocTagImpl.java @@ -46,6 +46,7 @@ public class PsiInlineDocTagImpl extends CompositePsiElement implements PsiInlin super(DOC_INLINE_TAG); } + @Override public PsiDocComment getContainingComment() { ASTNode scope = getTreeParent(); while (scope.getElementType() != JavaDocElementType.DOC_COMMENT) { @@ -54,24 +55,29 @@ public class PsiInlineDocTagImpl extends CompositePsiElement implements PsiInlin return (PsiDocComment)SourceTreeToPsiMap.treeElementToPsi(scope); } + @Override public PsiElement getNameElement() { return findChildByRoleAsPsiElement(ChildRole.DOC_TAG_NAME); } + @Override public PsiElement[] getDataElements() { return getChildrenAsPsiElements(VALUE_BIT_SET, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); } + @Override public PsiDocTagValue getValueElement() { return (PsiDocTagValue)findChildByRoleAsPsiElement(ChildRole.DOC_TAG_VALUE); } + @Override public String getName() { final PsiElement nameElement = getNameElement(); if (nameElement == null) return ""; return nameElement.getText().substring(1); } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -98,6 +104,7 @@ public class PsiInlineDocTagImpl extends CompositePsiElement implements PsiInlin } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitInlineDocTag(this); @@ -112,6 +119,7 @@ public class PsiInlineDocTagImpl extends CompositePsiElement implements PsiInlin return "PsiInlineDocTag:" + (nameElement != null ? nameElement.getText() : null); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameElement(), name); return this; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInstanceOfExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInstanceOfExpressionImpl.java index c2e3519ca39e..4275acfd05ff 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInstanceOfExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiInstanceOfExpressionImpl.java @@ -31,19 +31,23 @@ public class PsiInstanceOfExpressionImpl extends ExpressionPsiElement implements super(INSTANCE_OF_EXPRESSION); } + @Override @NotNull public PsiExpression getOperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.OPERAND); } + @Override public PsiTypeElement getCheckType() { return (PsiTypeElement)findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override public PsiType getType() { return PsiType.BOOLEAN; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -61,6 +65,7 @@ public class PsiInstanceOfExpressionImpl extends ExpressionPsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -78,6 +83,7 @@ public class PsiInstanceOfExpressionImpl extends ExpressionPsiElement implements } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitInstanceOfExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLabeledStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLabeledStatementImpl.java index 3a0cc5e2990e..393b7f76a509 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLabeledStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLabeledStatementImpl.java @@ -37,15 +37,18 @@ public class PsiLabeledStatementImpl extends CompositePsiElement implements PsiL super(LABELED_STATEMENT); } + @Override @NotNull public PsiIdentifier getLabelIdentifier() { return (PsiIdentifier)findChildByRoleAsPsiElement(ChildRole.LABEL_NAME); } + @Override public PsiStatement getStatement() { return (PsiStatement)findChildByRoleAsPsiElement(ChildRole.STATEMENT); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -63,6 +66,7 @@ public class PsiLabeledStatementImpl extends CompositePsiElement implements PsiL } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -80,6 +84,7 @@ public class PsiLabeledStatementImpl extends CompositePsiElement implements PsiL } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitLabeledStatement(this); @@ -93,6 +98,7 @@ public class PsiLabeledStatementImpl extends CompositePsiElement implements PsiL return "PsiLabeledStatement"; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { if (lastParent != null && lastParent.getParent() != this){ PsiElement[] children = getChildren(); @@ -105,15 +111,18 @@ public class PsiLabeledStatementImpl extends CompositePsiElement implements PsiL return true; } + @Override public String getName() { return getLabelIdentifier().getText(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getLabelIdentifier(), name); return this; } + @Override @NotNull public SearchScope getUseScope() { return new LocalSearchScope(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java index e3f7fa5020c9..297e1b97eab0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java @@ -48,6 +48,7 @@ public class PsiLiteralExpressionImpl super(JavaElementType.LITERAL_EXPRESSION); } + @Override public PsiType getType() { final IElementType type = getFirstChildNode().getElementType(); if (type == JavaTokenType.INTEGER_LITERAL) { @@ -85,6 +86,7 @@ public class PsiLiteralExpressionImpl return NUMERIC_LITERALS.contains(type) ? LiteralFormatUtil.removeUnderscores(literal.getText()) : literal.getText(); } + @Override public Object getValue() { final TreeElement literal = getFirstChildNode(); final IElementType type = literal.getElementType(); @@ -215,6 +217,7 @@ public class PsiLiteralExpressionImpl return integer; } + @Override public String getParsingError() { return null; } @@ -351,6 +354,7 @@ public class PsiLiteralExpressionImpl return true; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitLiteralExpression(this); @@ -369,11 +373,13 @@ public class PsiLiteralExpressionImpl return getValue() instanceof String; } + @Override @NotNull public PsiReference[] getReferences() { return PsiReferenceService.getService().getContributedReferences(this); } + @Override public PsiLanguageInjectionHost updateText(@NotNull final String text) { TreeElement valueNode = getFirstChildNode(); assert valueNode instanceof LeafElement; @@ -381,6 +387,7 @@ public class PsiLiteralExpressionImpl return this; } + @Override @NotNull public LiteralTextEscaper createLiteralTextEscaper() { return new StringLiteralEscaper(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLocalVariableImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLocalVariableImpl.java index c77a430c387e..344c8f081287 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLocalVariableImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLocalVariableImpl.java @@ -57,11 +57,13 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca super(type); } + @Override public void clearCaches() { super.clearCaches(); myCachedName = null; } + @Override @NotNull public final PsiIdentifier getNameIdentifier() { final PsiElement element = findChildByRoleAsPsiElement(ChildRole.NAME); @@ -69,6 +71,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return (PsiIdentifier)element; } + @Override @NotNull public final String getName() { String cachedName = myCachedName; @@ -78,20 +81,24 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return cachedName; } + @Override public void setInitializer(PsiExpression initializer) throws IncorrectOperationException { JavaSharedImplUtil.setInitializer(this, initializer); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { PsiImplUtil.setName(getNameIdentifier(), name); return this; } + @Override @NotNull public final PsiType getType() { return JavaSharedImplUtil.getType(this); } + @Override @NotNull public PsiTypeElement getTypeElement() { PsiTypeElement typeElement = PsiTreeUtil.getChildOfType(this, PsiTypeElement.class); @@ -106,6 +113,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return typeElement; } + @Override public PsiModifierList getModifierList() { final CompositeElement parent = getTreeParent(); if (parent == null) return null; @@ -113,23 +121,28 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return first != null ? (PsiModifierList)first.findChildByRoleAsPsiElement(ChildRole.MODIFIER_LIST) : null; } + @Override public boolean hasModifierProperty(@NotNull String name) { final PsiModifierList modifierList = getModifierList(); return modifierList != null && modifierList.hasModifierProperty(name); } + @Override public PsiExpression getInitializer() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.INITIALIZER); } + @Override public boolean hasInitializer() { return getInitializer() != null; } + @Override public Object computeConstantValue() { return computeConstantValue(new THashSet()); } + @Override public Object computeConstantValue(Set visitedVars) { if (!hasModifierProperty(PsiModifier.FINAL)) return null; @@ -142,10 +155,12 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return PsiConstantEvaluationHelperImpl.computeCastTo(initializer, getType(), visitedVars); } + @Override public int getTextOffset() { return getNameIdentifier().getTextOffset(); } + @Override public void normalizeDeclaration() throws IncorrectOperationException { CheckUtil.checkWritable(this); final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this); @@ -198,6 +213,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca JavaSharedImplUtil.normalizeBrackets(this); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.INITIALIZER){ ASTNode eq = findChildByRole(ChildRole.INITIALIZER_EQ); @@ -208,6 +224,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca super.deleteChildInternal(child); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -234,6 +251,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -260,6 +278,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitLocalVariable(this); @@ -269,6 +288,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca } } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { if (lastParent == null) return true; if (lastParent.getContext() instanceof JavaDummyHolder) { @@ -282,6 +302,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca processor.execute(this, state); } + @Override public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } @@ -290,6 +311,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return "PsiLocalVariable:" + getName(); } + @Override @NotNull public SearchScope getUseScope() { final PsiElement parentElement = getParent(); @@ -301,6 +323,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca } } + @Override public Icon getElementIcon(final int flags) { final RowIcon baseIcon = ElementPresentationUtil.createLayeredIcon(PlatformIcons.VARIABLE_ICON, this, false); return ElementPresentationUtil.addVisibilityIcon(this, flags, baseIcon); @@ -310,6 +333,7 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca return true; } + @Override public PsiType getTypeNoResolve() { return getType(); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java index 659aad6d2bf4..9065941b38d8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java @@ -45,14 +45,17 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements super(JavaElementType.METHOD_CALL_EXPRESSION); } + @Override public PsiType getType() { return JavaResolveCache.getInstance(getProject()).getType(this, ourTypeEvaluator); } + @Override public PsiMethod resolveMethod() { return (PsiMethod)getMethodExpression().resolve(); } + @Override @NotNull public JavaResolveResult resolveMethodGenerics() { return getMethodExpression().advancedResolve(false); @@ -66,6 +69,7 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements super.removeChild(child); } + @Override @NotNull public PsiReferenceParameterList getTypeArgumentList() { PsiReferenceExpression expression = getMethodExpression(); @@ -75,16 +79,19 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements return result; } + @Override @NotNull public PsiType[] getTypeArguments() { return getMethodExpression().getTypeParameters(); } + @Override @NotNull public PsiReferenceExpression getMethodExpression() { return (PsiReferenceExpression)findChildByRoleAsPsiElement(ChildRole.METHOD_EXPRESSION); } + @Override @NotNull public PsiExpressionList getArgumentList() { PsiExpressionList list = (PsiExpressionList)findChildByRoleAsPsiElement(ChildRole.ARGUMENT_LIST); @@ -93,6 +100,7 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements return list; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -107,6 +115,7 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -121,6 +130,7 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitMethodCallExpression(this); @@ -137,6 +147,7 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements private static final TypeEvaluator ourTypeEvaluator = new TypeEvaluator(); private static class TypeEvaluator implements Function { + @Override @Nullable public PsiType fun(final PsiMethodCallExpression call) { PsiReferenceExpression methodExpression = call.getMethodExpression(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNameValuePairImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNameValuePairImpl.java index 930328d3ed94..c13aa8815de2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNameValuePairImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNameValuePairImpl.java @@ -43,6 +43,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName private volatile PsiAnnotationMemberValue myCachedValue = null; private volatile boolean myNameCached = false; + @Override public void clearCaches() { myNameCached = false; myCachedName = null; @@ -55,6 +56,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName super(JavaElementType.NAME_VALUE_PAIR); } + @Override public PsiIdentifier getNameIdentifier() { PsiIdentifier cachedNameIdentifier = myCachedNameIdentifier; if (!myNameCached) { @@ -65,6 +67,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return cachedNameIdentifier; } + @Override public String getName() { String cachedName = myCachedName; if (!myNameCached) { @@ -76,6 +79,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return cachedName; } + @Override public PsiAnnotationMemberValue getValue() { PsiAnnotationMemberValue cachedValue = myCachedValue; if (cachedValue == null) { @@ -85,12 +89,14 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return cachedValue; } + @Override @NotNull public PsiAnnotationMemberValue setValue(@NotNull PsiAnnotationMemberValue newValue) { getValue().replace(newValue); return getValue(); } + @Override public int getChildRole(ASTNode child) { if (ElementType.ANNOTATION_MEMBER_VALUE_BIT_SET.contains(child.getElementType())) { return ChildRole.ANNOTATION_VALUE; @@ -105,6 +111,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return ChildRoleBase.NONE; } + @Override public ASTNode findChildByRole(int role) { if (role == ChildRole.NAME) { return findChildByType(JavaTokenType.IDENTIFIER); @@ -123,6 +130,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return "PsiNameValuePair"; } + @Override public PsiReference getReference() { return new PsiReference() { @Nullable @@ -135,6 +143,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return target instanceof PsiClass ? (PsiClass)target : null; } + @Override public PsiElement getElement() { PsiIdentifier nameIdentifier = getNameIdentifier(); if (nameIdentifier != null) { @@ -143,6 +152,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return PsiNameValuePairImpl.this; } + @Override public TextRange getRangeInElement() { PsiIdentifier id = getNameIdentifier(); if (id != null) { @@ -151,6 +161,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return TextRange.EMPTY_RANGE; } + @Override public PsiElement resolve() { PsiClass refClass = getReferencedClass(); if (refClass == null) return null; @@ -160,12 +171,14 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return MethodSignatureUtil.findMethodBySignature(refClass, signature, false); } + @Override @NotNull public String getCanonicalText() { String name = getName(); return name != null ? name : PsiAnnotation.DEFAULT_REFERENCED_METHOD_NAME; } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { PsiIdentifier nameIdentifier = getNameIdentifier(); if (nameIdentifier != null) { @@ -180,25 +193,30 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return PsiNameValuePairImpl.this; } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public boolean isReferenceTo(PsiElement element) { return element instanceof PsiMethod && element.equals(resolve()); } + @Override @NotNull public Object[] getVariants() { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public boolean isSoft() { return false; } }; } + @Override public final void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitNameValuePair(this); @@ -208,6 +226,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName } } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before) { final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this); final TreeElement treeElement = super.addInternal(first, last, anchor, before); @@ -218,6 +237,7 @@ public class PsiNameValuePairImpl extends CompositePsiElement implements PsiName return treeElement; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { super.deleteChildInternal(child); if (child.getElementType() == JavaTokenType.IDENTIFIER) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java index 2c02678cd36c..26e571a01554 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNewExpressionImpl.java @@ -43,6 +43,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew super(JavaElementType.NEW_EXPRESSION); } + @Override public PsiType getType(){ PsiType type = null; List annotations = new SmartList(); @@ -78,6 +79,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew return type; } + @Override public PsiExpressionList getArgumentList() { PsiExpressionList list = (PsiExpressionList)findChildByRoleAsPsiElement(ChildRole.ARGUMENT_LIST); if (list != null) return list; @@ -88,6 +90,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew return null; } + @Override @NotNull public PsiExpression[] getArrayDimensions() { PsiExpression[] expressions = getChildrenAsPsiElements(ElementType.ARRAY_DIMENSION_BIT_SET, Constants.PSI_EXPRESSION_ARRAY_CONSTRUCTOR); @@ -103,16 +106,19 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew } } + @Override public PsiArrayInitializerExpression getArrayInitializer() { return (PsiArrayInitializerExpression)findChildByRoleAsPsiElement(ChildRole.ARRAY_INITIALIZER); } + @Override public PsiMethod resolveMethod() { return resolveConstructor(); } private PsiPolyVariantCachingReference getConstructorFakeReference() { return new PsiPolyVariantCachingReference() { + @Override @NotNull public JavaResolveResult[] resolveInner(boolean incompleteCode) { ASTNode classRef = findChildByRole(ChildRole.TYPE_REFERENCE); @@ -141,27 +147,33 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew return JavaResolveResult.EMPTY_ARRAY; } + @Override public PsiElement getElement() { return PsiNewExpressionImpl.this; } + @Override public TextRange getRangeInElement() { return null; } + @Override @NotNull public String getCanonicalText() { return null; } + @Override public PsiElement handleElementRename(String newElementName) { return null; } + @Override public PsiElement bindToElement(@NotNull PsiElement element) { return null; } + @Override @NotNull public Object[] getVariants() { return ArrayUtil.EMPTY_OBJECT_ARRAY; @@ -179,34 +191,41 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew }; } + @Override @NotNull public JavaResolveResult resolveMethodGenerics() { ResolveResult[] results = getConstructorFakeReference().multiResolve(false); return results.length == 1 ? (JavaResolveResult)results[0] : JavaResolveResult.EMPTY; } + @Override public PsiExpression getQualifier() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override @NotNull public PsiReferenceParameterList getTypeArgumentList() { return (PsiReferenceParameterList) findChildByRoleAsPsiElement(ChildRole.REFERENCE_PARAMETER_LIST); } + @Override @NotNull public PsiType[] getTypeArguments() { return getTypeArgumentList().getTypeArguments(); } + @Override public PsiMethod resolveConstructor(){ return (PsiMethod)resolveMethodGenerics().getElement(); } + @Override public PsiJavaCodeReferenceElement getClassReference() { return (PsiJavaCodeReferenceElement)findChildByRoleAsPsiElement(ChildRole.TYPE_REFERENCE); } + @Override public PsiAnonymousClass getAnonymousClass() { ASTNode anonymousClass = findChildByType(JavaElementType.ANONYMOUS_CLASS); if (anonymousClass == null) return null; @@ -214,6 +233,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew } private static final TokenSet CLASS_REF = TokenSet.create(JavaElementType.JAVA_CODE_REFERENCE, JavaElementType.ANONYMOUS_CLASS); + @Override @Nullable public PsiJavaCodeReferenceElement getClassOrAnonymousClassReference() { ASTNode ref = findChildByType(CLASS_REF); @@ -223,6 +243,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew return anonymousClass.getBaseClassReference(); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.QUALIFIER){ ASTNode dot = findChildByRole(ChildRole.DOT); @@ -234,6 +255,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew } } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -286,6 +308,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -337,6 +360,7 @@ public class PsiNewExpressionImpl extends ExpressionPsiElement implements PsiNew } } + @Override public void accept(@NotNull PsiElementVisitor visitor){ if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitNewExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java index ef7b35d8a08d..1880639d7f3e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java @@ -31,19 +31,23 @@ public class PsiPackageStatementImpl extends CompositePsiElement implements PsiP super(JavaElementType.PACKAGE_STATEMENT); } + @Override public PsiJavaCodeReferenceElement getPackageReference() { return (PsiJavaCodeReferenceElement)findChildByRoleAsPsiElement(ChildRole.PACKAGE_REFERENCE); } + @Override public String getPackageName() { PsiJavaCodeReferenceElement ref = getPackageReference(); return ref == null ? null : SourceUtil.getTextSkipWhiteSpaceAndComments(SourceTreeToPsiMap.psiElementToTree(ref)); } + @Override public PsiModifierList getAnnotationList() { return (PsiModifierList)findChildByRoleAsPsiElement(ChildRole.MODIFIER_LIST); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -64,6 +68,7 @@ public class PsiPackageStatementImpl extends CompositePsiElement implements PsiP } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -84,6 +89,7 @@ public class PsiPackageStatementImpl extends CompositePsiElement implements PsiP } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitPackageStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiParenthesizedExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiParenthesizedExpressionImpl.java index 0146a854cebc..cce0eea32bac 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiParenthesizedExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiParenthesizedExpressionImpl.java @@ -32,17 +32,20 @@ public class PsiParenthesizedExpressionImpl extends ExpressionPsiElement impleme super(PARENTH_EXPRESSION); } + @Override @Nullable public PsiExpression getExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.EXPRESSION); } + @Override public PsiType getType() { PsiExpression expr = getExpression(); if (expr == null) return null; return expr.getType(); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -61,6 +64,7 @@ public class PsiParenthesizedExpressionImpl extends ExpressionPsiElement impleme } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -78,6 +82,7 @@ public class PsiParenthesizedExpressionImpl extends ExpressionPsiElement impleme } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitParenthesizedExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPolyadicExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPolyadicExpressionImpl.java index 4b1dfe2c00bd..94a4f2a36863 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPolyadicExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPolyadicExpressionImpl.java @@ -37,6 +37,7 @@ public class PsiPolyadicExpressionImpl extends ExpressionPsiElement implements P super(JavaElementType.POLYADIC_EXPRESSION); } + @Override @NotNull public IElementType getOperationTokenType() { return ((PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.OPERATION_SIGN)).getTokenType(); @@ -52,10 +53,12 @@ public class PsiPolyadicExpressionImpl extends ExpressionPsiElement implements P return null; } + @Override public PsiType getType() { return JavaResolveCache.getInstance(getProject()).getType(this, MY_TYPE_EVALUATOR); } private static final Function MY_TYPE_EVALUATOR = new Function() { + @Override public PsiType fun(PsiPolyadicExpressionImpl expression) { return doGetType(expression); } @@ -78,6 +81,7 @@ public class PsiPolyadicExpressionImpl extends ExpressionPsiElement implements P } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -89,6 +93,7 @@ public class PsiPolyadicExpressionImpl extends ExpressionPsiElement implements P } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (OUR_OPERATIONS_BIT_SET.contains(child.getElementType())) { @@ -104,6 +109,7 @@ public class PsiPolyadicExpressionImpl extends ExpressionPsiElement implements P JavaTokenType.PERC); + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitPolyadicExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPostfixExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPostfixExpressionImpl.java index 6d2545c219e2..6f6f0f4d36dd 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPostfixExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPostfixExpressionImpl.java @@ -31,27 +31,32 @@ public class PsiPostfixExpressionImpl extends ExpressionPsiElement implements Ps super(Constants.POSTFIX_EXPRESSION); } + @Override @NotNull public PsiExpression getOperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.OPERAND); } + @Override @NotNull public PsiJavaToken getOperationSign() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.OPERATION_SIGN); } + @Override @NotNull public IElementType getOperationTokenType() { return getOperationSign().getTokenType(); } + @Override public PsiType getType() { PsiType type = getOperand().getType(); if (type instanceof PsiClassType) type = PsiPrimitiveType.getUnboxedType(type); return type; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -66,6 +71,7 @@ public class PsiPostfixExpressionImpl extends ExpressionPsiElement implements Ps } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (child == getFirstChildNode()) return ChildRole.OPERAND; @@ -73,6 +79,7 @@ public class PsiPostfixExpressionImpl extends ExpressionPsiElement implements Ps return ChildRoleBase.NONE; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitPostfixExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPrefixExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPrefixExpressionImpl.java index db61d5996c01..0bda2b5f3b3b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPrefixExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPrefixExpressionImpl.java @@ -32,20 +32,24 @@ public class PsiPrefixExpressionImpl extends ExpressionPsiElement implements Psi super(JavaElementType.PREFIX_EXPRESSION); } + @Override public PsiExpression getOperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.OPERAND); } + @Override @NotNull public PsiJavaToken getOperationSign() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.OPERATION_SIGN); } + @Override @NotNull public IElementType getOperationTokenType() { return getOperationSign().getTokenType(); } + @Override public PsiType getType() { PsiExpression operand = getOperand(); if (operand == null) return null; @@ -68,6 +72,7 @@ public class PsiPrefixExpressionImpl extends ExpressionPsiElement implements Psi } } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -82,6 +87,7 @@ public class PsiPrefixExpressionImpl extends ExpressionPsiElement implements Psi } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (child == getFirstChildNode()) return ChildRole.OPERATION_SIGN; @@ -89,6 +95,7 @@ public class PsiPrefixExpressionImpl extends ExpressionPsiElement implements Psi return ChildRoleBase.NONE; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitPrefixExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index d52ae8ecd6b4..4ed98931f32e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -70,10 +70,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements super(JavaElementType.REFERENCE_EXPRESSION); } + @Override public PsiExpression getQualifierExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override public PsiElement bindToElementViaStaticImport(@NotNull PsiClass qualifierClass) throws IncorrectOperationException { String qualifiedName = qualifierClass.getQualifiedName(); if (qualifiedName == null) throw new IncorrectOperationException(); @@ -143,6 +145,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return array; } + @Override public void setQualifierExpression(@Nullable PsiExpression newQualifier) throws IncorrectOperationException { final PsiExpression oldQualifier = getQualifierExpression(); if (newQualifier == null) { @@ -166,18 +169,22 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } } + @Override public PsiElement getQualifier() { return getQualifierExpression(); } + @Override public PsiReference getReference() { return this; } + @Override public PsiElement resolve() { return advancedResolve(false).getElement(); } + @Override public void clearCaches() { myCachedQName = null; myCachedTextSkipWhiteSpaceAndComments = null; @@ -198,6 +205,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return result; } + @Override public JavaResolveResult[] resolve(PsiJavaReference ref, boolean incompleteCode) { final JavaResolveResult[] result = _resolve(incompleteCode, (PsiReferenceExpressionImpl)ref); if (result.length > 0 && result[0].getElement() instanceof PsiClass) { @@ -282,6 +290,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return processor.getResult(); } + @Override @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final PsiManagerEx manager = getManager(); @@ -293,6 +302,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return (JavaResolveResult[])results; } + @Override @NotNull public String getCanonicalText() { final PsiElement element = resolve(); @@ -306,10 +316,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return getCachedTextSkipWhiteSpaceAndComments(); } + @Override public String getQualifiedName() { return getCanonicalText(); } + @Override public String getReferenceName() { PsiElement element = getReferenceNameElement(); if (element == null) return null; @@ -319,6 +331,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements private final Function ourTypeEvaluator = new TypeEvaluator(); private static class TypeEvaluator implements NullableFunction { + @Override public PsiType fun(final PsiReferenceExpressionImpl expr) { JavaResolveResult result = expr.advancedResolve(false); PsiElement resolve = result.getElement(); @@ -369,10 +382,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } } + @Override public PsiType getType() { return JavaResolveCache.getInstance(getProject()).getType(this, ourTypeEvaluator); } + @Override public boolean isReferenceTo(PsiElement element) { IElementType i = getLastChildNode().getElementType(); boolean resolvingToMethod = element instanceof PsiMethod; @@ -398,16 +413,19 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } + @Override @NotNull public Object[] getVariants() { //this reference's variants are rather obtained with processVariants() return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override public boolean isSoft() { return false; } + @Override public void processVariants(PsiScopeProcessor processor) { OrFilter filter = new OrFilter(); filter.addFilter(ElementClassFilter.CLASS); @@ -451,6 +469,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements Character.isLowerCase(qualifiedName.charAt(0)); } + @Override @NotNull public JavaResolveResult advancedResolve(boolean incompleteCode) { final JavaResolveResult[] results = multiResolve(incompleteCode); @@ -458,19 +477,23 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return JavaResolveResult.EMPTY; } + @Override public PsiElement getReferenceNameElement() { return findChildByRoleAsPsiElement(ChildRole.REFERENCE_NAME); } + @Override public PsiReferenceParameterList getParameterList() { return (PsiReferenceParameterList)findChildByRoleAsPsiElement(ChildRole.REFERENCE_PARAMETER_LIST); } + @Override public int getTextOffset() { ASTNode refName = findChildByRole(ChildRole.REFERENCE_NAME); return refName == null ? super.getTextOffset() : refName.getStartOffset(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { if (getQualifierExpression() != null) { return renameDirectly(newElementName); @@ -512,6 +535,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return this; } + @Override public PsiElement bindToElement(@NotNull final PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); @@ -571,6 +595,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return refElement instanceof PsiPackage || isFullyQualified((CompositeElement)qualifier); } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (getChildRole(child) == ChildRole.QUALIFIER) { ASTNode dot = findChildByRole(ChildRole.DOT); @@ -582,6 +607,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { @@ -610,6 +636,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -630,6 +657,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceExpression(this); @@ -643,6 +671,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return "PsiReferenceExpression:" + getText(); } + @Override public TextRange getRangeInElement() { TreeElement nameChild = (TreeElement)findChildByRole(ChildRole.REFERENCE_NAME); if (nameChild == null) { @@ -655,10 +684,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return new TextRange(nameChild.getStartOffsetInParent(), getTextLength()); } + @Override public PsiElement getElement() { return this; } + @Override @NotNull public PsiType[] getTypeParameters() { final PsiReferenceParameterList parameterList = getParameterList(); @@ -667,6 +698,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements } + @Override public String getClassNameText() { String cachedQName = myCachedQName; if (cachedQName == null) { @@ -675,10 +707,12 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements return cachedQName; } + @Override public void fullyQualify(PsiClass targetClass) { JavaSourceUtil.fullyQualifyReference(this, targetClass); } + @Override public boolean isQualified() { return getChildRole(getFirstChildNode()) == ChildRole.QUALIFIER; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceParameterListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceParameterListImpl.java index e7df0bf96865..73d23b7faf06 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceParameterListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceParameterListImpl.java @@ -35,16 +35,19 @@ public class PsiReferenceParameterListImpl extends CompositePsiElement implement super(JavaElementType.REFERENCE_PARAMETER_LIST); } + @Override @NotNull public PsiTypeElement[] getTypeParameterElements() { return getChildrenAsPsiElements(ElementType.TYPES_BIT_SET, ElementType.PSI_TYPE_ELEMENT_ARRAY_CONSTRUCTOR); } + @Override @NotNull public PsiType[] getTypeArguments() { return PsiImplUtil.typesByReferenceParameterList(this); } + @Override public int getChildRole(ASTNode child) { IElementType i = child.getElementType(); if (i == JavaElementType.TYPE) { @@ -64,6 +67,7 @@ public class PsiReferenceParameterListImpl extends CompositePsiElement implement } } + @Override public ASTNode findChildByRole(int role){ LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -88,6 +92,7 @@ public class PsiReferenceParameterListImpl extends CompositePsiElement implement } } + @Override public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before){ if (first == last && first.getElementType() == JavaElementType.TYPE){ if (getLastChildNode() != null && getLastChildNode().getElementType() == TokenType.ERROR_ELEMENT){ @@ -142,6 +147,7 @@ public class PsiReferenceParameterListImpl extends CompositePsiElement implement return firstAdded; } + @Override public void deleteChildInternal(@NotNull ASTNode child) { if (child.getElementType() == JavaElementType.TYPE){ ASTNode next = PsiImplUtil.skipWhitespaceAndComments(child.getTreeNext()); @@ -171,6 +177,7 @@ public class PsiReferenceParameterListImpl extends CompositePsiElement implement } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReferenceParameterList(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReturnStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReturnStatementImpl.java index 55a7359916b4..166bea5f67ec 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReturnStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReturnStatementImpl.java @@ -36,10 +36,12 @@ public class PsiReturnStatementImpl extends CompositePsiElement implements PsiRe super(RETURN_STATEMENT); } + @Override public PsiExpression getReturnValue() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.RETURN_VALUE); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -57,6 +59,7 @@ public class PsiReturnStatementImpl extends CompositePsiElement implements PsiRe } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -76,6 +79,7 @@ public class PsiReturnStatementImpl extends CompositePsiElement implements PsiRe } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitReturnStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSuperExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSuperExpressionImpl.java index c0eae2dc78e5..ab9404ce5747 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSuperExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSuperExpressionImpl.java @@ -31,10 +31,12 @@ public class PsiSuperExpressionImpl extends ExpressionPsiElement implements PsiS super(SUPER_EXPRESSION); } + @Override public PsiJavaCodeReferenceElement getQualifier() { return (PsiJavaCodeReferenceElement)findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override public PsiType getType() { PsiJavaCodeReferenceElement qualifier = getQualifier(); if (qualifier != null){ @@ -90,6 +92,7 @@ public class PsiSuperExpressionImpl extends ExpressionPsiElement implements PsiS return superTypes[0]; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -112,6 +115,7 @@ public class PsiSuperExpressionImpl extends ExpressionPsiElement implements PsiS } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -129,6 +133,7 @@ public class PsiSuperExpressionImpl extends ExpressionPsiElement implements PsiS } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitSuperExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementImpl.java index d0ec3746a411..18ac9584010a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementImpl.java @@ -37,14 +37,17 @@ public class PsiSwitchLabelStatementImpl extends CompositePsiElement implements super(SWITCH_LABEL_STATEMENT); } + @Override public boolean isDefaultCase() { return findChildByRoleAsPsiElement(ChildRole.DEFAULT_KEYWORD) != null; } + @Override public PsiExpression getCaseValue() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.CASE_EXPRESSION); } + @Override public PsiSwitchStatement getEnclosingSwitchStatement() { final CompositeElement guessedSwitch = getTreeParent().getTreeParent(); return guessedSwitch != null && guessedSwitch.getElementType() == SWITCH_STATEMENT @@ -52,6 +55,7 @@ public class PsiSwitchLabelStatementImpl extends CompositePsiElement implements : null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -72,6 +76,7 @@ public class PsiSwitchLabelStatementImpl extends CompositePsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -94,6 +99,7 @@ public class PsiSwitchLabelStatementImpl extends CompositePsiElement implements } } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { if (lastParent == null) return true; @@ -108,6 +114,7 @@ public class PsiSwitchLabelStatementImpl extends CompositePsiElement implements return true; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitSwitchLabelStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchStatementImpl.java index f93e869ca971..aac24948dbf5 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchStatementImpl.java @@ -32,22 +32,27 @@ public class PsiSwitchStatementImpl extends CompositePsiElement implements PsiSw super(SWITCH_STATEMENT); } + @Override public PsiExpression getExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.SWITCH_EXPRESSION); } + @Override public PsiCodeBlock getBody() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.SWITCH_BODY); } + @Override public PsiJavaToken getLParenth() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.LPARENTH); } + @Override public PsiJavaToken getRParenth() { return (PsiJavaToken)findChildByRoleAsPsiElement(ChildRole.RPARENTH); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -71,6 +76,7 @@ public class PsiSwitchStatementImpl extends CompositePsiElement implements PsiSw } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -96,6 +102,7 @@ public class PsiSwitchStatementImpl extends CompositePsiElement implements PsiSw } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitSwitchStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSynchronizedStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSynchronizedStatementImpl.java index fc16c8b48935..104178a381d3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSynchronizedStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSynchronizedStatementImpl.java @@ -32,14 +32,17 @@ public class PsiSynchronizedStatementImpl extends CompositePsiElement implements super(SYNCHRONIZED_STATEMENT); } + @Override public PsiExpression getLockExpression() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.LOCK); } + @Override public PsiCodeBlock getBody() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.BLOCK); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -63,6 +66,7 @@ public class PsiSynchronizedStatementImpl extends CompositePsiElement implements } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -86,6 +90,7 @@ public class PsiSynchronizedStatementImpl extends CompositePsiElement implements } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitSynchronizedStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThisExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThisExpressionImpl.java index 5742b3722906..ff7c042d906d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThisExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThisExpressionImpl.java @@ -33,10 +33,12 @@ public class PsiThisExpressionImpl extends ExpressionPsiElement implements PsiTh super(THIS_EXPRESSION); } + @Override public PsiJavaCodeReferenceElement getQualifier() { return (PsiJavaCodeReferenceElement)findChildByRoleAsPsiElement(ChildRole.QUALIFIER); } + @Override public PsiType getType() { PsiJavaCodeReferenceElement qualifier = getQualifier(); if (qualifier != null){ @@ -61,6 +63,7 @@ public class PsiThisExpressionImpl extends ExpressionPsiElement implements PsiTh return null; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -83,6 +86,7 @@ public class PsiThisExpressionImpl extends ExpressionPsiElement implements PsiTh } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -100,6 +104,7 @@ public class PsiThisExpressionImpl extends ExpressionPsiElement implements PsiTh } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitThisExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowStatementImpl.java index 11c70369ac2d..75c2b4602eff 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowStatementImpl.java @@ -36,10 +36,12 @@ public class PsiThrowStatementImpl extends CompositePsiElement implements PsiThr super(THROW_STATEMENT); } + @Override public PsiExpression getException() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.EXCEPTION); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -57,6 +59,7 @@ public class PsiThrowStatementImpl extends CompositePsiElement implements PsiThr } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -76,6 +79,7 @@ public class PsiThrowStatementImpl extends CompositePsiElement implements PsiThr } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitThrowStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowsListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowsListImpl.java index 5937bb60e74b..3e92e4bce54f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowsListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiThrowsListImpl.java @@ -34,14 +34,17 @@ public class PsiThrowsListImpl extends ReferenceListElement { super(JavaElementType.THROWS_LIST); } + @Override protected String getKeywordText() { return PsiKeyword.THROWS; } + @Override protected IElementType getKeywordType() { return JavaTokenType.THROWS_KEYWORD; } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -53,6 +56,7 @@ public class PsiThrowsListImpl extends ReferenceListElement { } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTryStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTryStatementImpl.java index dc08cba23711..aee7dc12a9e8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTryStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTryStatementImpl.java @@ -40,15 +40,18 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt super(TRY_STATEMENT); } + @Override public void clearCaches() { super.clearCaches(); myCachedCatchParameters = null; } + @Override public PsiCodeBlock getTryBlock() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.TRY_BLOCK); } + @Override @NotNull public PsiCodeBlock[] getCatchBlocks() { ASTNode tryBlock = SourceTreeToPsiMap.psiElementToTree(getTryBlock()); @@ -65,6 +68,7 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt return PsiCodeBlock.EMPTY_ARRAY; } + @Override @NotNull public PsiParameter[] getCatchBlockParameters() { PsiParameter[] catchParameters = myCachedCatchParameters; @@ -83,11 +87,13 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt return catchParameters; } + @Override @NotNull public PsiCatchSection[] getCatchSections() { return getChildrenAsPsiElements(CATCH_SECTION_BIT_SET, PSI_CATCH_SECTION_ARRAYS_CONSTRUCTOR); } + @Override public PsiCodeBlock getFinallyBlock() { return (PsiCodeBlock)findChildByRoleAsPsiElement(ChildRole.FINALLY_BLOCK); } @@ -97,6 +103,7 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt return PsiTreeUtil.getChildOfType(this, PsiResourceList.class); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -126,6 +133,7 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt } } + @Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); @@ -150,6 +158,7 @@ public class PsiTryStatementImpl extends CompositePsiElement implements PsiTrySt } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTryStatement(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeCastExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeCastExpressionImpl.java index c2a42aefd29a..bfd7482724d8 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeCastExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeCastExpressionImpl.java @@ -32,20 +32,24 @@ public class PsiTypeCastExpressionImpl extends ExpressionPsiElement implements P super(TYPE_CAST_EXPRESSION); } + @Override public PsiTypeElement getCastType() { return (PsiTypeElement)findChildByRoleAsPsiElement(ChildRole.TYPE); } + @Override public PsiExpression getOperand() { return (PsiExpression)findChildByRoleAsPsiElement(ChildRole.OPERAND); } + @Override @Nullable public PsiType getType() { final PsiTypeElement castType = getCastType(); if (castType == null) return null; return castType.getType(); } + @Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch(role){ @@ -66,6 +70,7 @@ public class PsiTypeCastExpressionImpl extends ExpressionPsiElement implements P } } + @Override public int getChildRole(ASTNode child) { assert child.getTreeParent() == this: "child:"+child+"; child.getTreeParent():"+child.getTreeParent(); IElementType i = child.getElementType(); @@ -86,6 +91,7 @@ public class PsiTypeCastExpressionImpl extends ExpressionPsiElement implements P } } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTypeCastExpression(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeParameterExtendsBoundsListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeParameterExtendsBoundsListImpl.java index fa4f982b2574..b913706545f3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeParameterExtendsBoundsListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiTypeParameterExtendsBoundsListImpl.java @@ -35,12 +35,14 @@ public class PsiTypeParameterExtendsBoundsListImpl extends JavaStubPsiElement implements PsiTypeParameter { private final LightEmptyImplementsList myLightEmptyImplementsList = new LightEmptyImplementsList(null) { + @Override public PsiManager getManager() { return PsiTypeParameterImpl.this.getManager(); } @@ -61,85 +62,104 @@ public class PsiTypeParameterImpl extends JavaStubPsiElement> findMethodsAndTheirSubstitutorsByName(String name, boolean checkBases) { return PsiClassImplUtil.findMethodsAndTheirSubstitutorsByName(this, name, checkBases); } + @Override @NotNull public List> getAllMethodsAndTheirSubstitutors() { return PsiClassImplUtil.getAllWithSubstitutorsByMap(this, PsiMethod.class); } + @Override public PsiClass findInnerClassByName(String name, boolean checkBases) { return PsiClassImplUtil.findInnerByName(this, name, checkBases); } + @Override public PsiTypeParameterList getTypeParameterList() { return null; } + @Override public boolean hasTypeParameters() { return false; } // very special method! + @Override public PsiElement getScope() { return getParent().getParent(); } + @Override public boolean isInheritorDeep(PsiClass baseClass, PsiClass classToByPass) { return InheritanceImplUtil.isInheritorDeep(this, baseClass, classToByPass); } + @Override public boolean isInheritor(@NotNull PsiClass baseClass, boolean checkDeep) { return InheritanceImplUtil.isInheritor(this, baseClass, checkDeep); } + @Override public PsiTypeParameterListOwner getOwner() { final PsiElement parent = getParent(); if (parent == null) throw new PsiInvalidElementAccessException(this); @@ -153,6 +173,7 @@ public class PsiTypeParameterImpl extends JavaStubPsiElement getVisibleSignatures() { return PsiSuperMethodImplUtil.getVisibleSignatures(this); } + @Override public PsiModifierList getModifierList() { return null; } + @Override public boolean hasModifierProperty(@NotNull String name) { return false; } + @Override public PsiJavaToken getLBrace() { return null; } + @Override public PsiJavaToken getRBrace() { return null; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { ((JavaElementVisitor)visitor).visitTypeParameter(this); @@ -316,6 +365,7 @@ public class PsiTypeParameterImpl extends JavaStubPsiElement conflicts){ final Map uniqueItems = new HashMap(); for (CandidateInfo info : conflicts) { diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java index bf9151ba2c61..46c6321d0df7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaMethodsConflictResolver.java @@ -56,6 +56,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{ myActualParameterTypes = actualParameterTypes; } + @Override public CandidateInfo resolveConflict(List conflicts){ if (conflicts.isEmpty()) return null; if (conflicts.size() == 1) return conflicts.get(0); diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaVariableConflictResolver.java b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaVariableConflictResolver.java index 106f47d7499f..4992105bdf41 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaVariableConflictResolver.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/conflictResolvers/JavaVariableConflictResolver.java @@ -32,6 +32,7 @@ import java.util.List; * To change this template use Options | File Templates. */ public class JavaVariableConflictResolver implements PsiConflictResolver{ + @Override public CandidateInfo resolveConflict(List conflicts){ final int size = conflicts.size(); if(size == 1){ diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/processor/ConflictFilterProcessor.java b/java/java-psi-impl/src/com/intellij/psi/scope/processor/ConflictFilterProcessor.java index 2716f9f6695b..fe0984b9c71e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/processor/ConflictFilterProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/processor/ConflictFilterProcessor.java @@ -46,6 +46,7 @@ public class ConflictFilterProcessor extends FilterScopeProcessor myPlaceFile = place.getContainingFile(); } + @Override public boolean execute(PsiElement element, ResolveState state) { if (myCachedResult != null && myCachedResult.length == 1 && myCachedResult[0].isAccessible()) { return false; @@ -56,6 +57,7 @@ public class ConflictFilterProcessor extends FilterScopeProcessor return true; } + @Override protected void add(PsiElement element, PsiSubstitutor substitutor) { add(new CandidateInfo(element, substitutor)); } @@ -65,6 +67,7 @@ public class ConflictFilterProcessor extends FilterScopeProcessor myResults.add(info); } + @Override public void handleEvent(PsiScopeProcessor.Event event, Object associated) { if (event == JavaScopeProcessorEvent.CHANGE_LEVEL && myName != null) { getResult(); @@ -88,6 +91,7 @@ public class ConflictFilterProcessor extends FilterScopeProcessor return myCachedResult; } + @Override public String getName(ResolveState state) { return myName; } @@ -96,6 +100,7 @@ public class ConflictFilterProcessor extends FilterScopeProcessor myName = name; } + @Override public T getHint(Key hintKey) { if (hintKey == NameHint.KEY) { //noinspection unchecked diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/processor/FilterScopeProcessor.java b/java/java-psi-impl/src/com/intellij/psi/scope/processor/FilterScopeProcessor.java index ccd5b8f63128..3adf67c1aa49 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/processor/FilterScopeProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/processor/FilterScopeProcessor.java @@ -55,6 +55,7 @@ public class FilterScopeProcessor extends BaseScopeProcessor { myResults = container; } + @Override public void handleEvent(PsiScopeProcessor.Event event, Object associated) { if (myProcessor != null) { myProcessor.handleEvent(event, associated); @@ -64,6 +65,7 @@ public class FilterScopeProcessor extends BaseScopeProcessor { } } + @Override public boolean execute(PsiElement element, ResolveState state) { if (myFilter.isAcceptable(element, myCurrentDeclarationHolder)) { if (myProcessor != null) { diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodCandidatesProcessor.java b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodCandidatesProcessor.java index a81921a5cc17..2b1b4a4744ab 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodCandidatesProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodCandidatesProcessor.java @@ -38,6 +38,7 @@ public class MethodCandidatesProcessor extends MethodsProcessor{ super(new PsiConflictResolver[]{DuplicateConflictResolver.INSTANCE}, new SmartList(), place); } + @Override public void add(PsiElement element, PsiSubstitutor substitutor) { if (element instanceof PsiMethod) { final PsiMethod method = (PsiMethod)element; diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodResolverProcessor.java b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodResolverProcessor.java index 1a54066a57ed..76cc89586b86 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodResolverProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodResolverProcessor.java @@ -42,6 +42,7 @@ public class MethodResolverProcessor extends MethodCandidatesProcessor { super(place, resolvers, new SmartList()); } + @Override public void handleEvent(Event event, Object associated) { if (event == JavaScopeProcessorEvent.CHANGE_LEVEL) { if (myHasAccessibleStaticCorrectCandidate) myStopAcceptingCandidates = true; @@ -49,6 +50,7 @@ public class MethodResolverProcessor extends MethodCandidatesProcessor { super.handleEvent(event, associated); } + @Override public boolean execute(PsiElement element, ResolveState state) { return !myStopAcceptingCandidates && super.execute(element, state); } diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodsProcessor.java b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodsProcessor.java index 73cd192fda70..919eb89bbec0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodsProcessor.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/processor/MethodsProcessor.java @@ -81,6 +81,7 @@ public abstract class MethodsProcessor extends ConflictFilterProcessor implement return myStaticScopeFlag; } + @Override public void handleEvent(Event event, Object associated) { if (event == JavaScopeProcessorEvent.START_STATIC) { myStaticScopeFlag = true; @@ -123,6 +124,7 @@ public abstract class MethodsProcessor extends ConflictFilterProcessor implement return super.getHint(hintKey); } + @Override public boolean shouldProcess(DeclarationKind kind) { return kind == DeclarationKind.METHOD; } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java index 777c094016cb..04d72e8b3436 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java @@ -29,6 +29,7 @@ public abstract class CompletionSortingTestCase extends LightFixtureCompletionTe super.tearDown(); } + @Override protected abstract String getBasePath(); protected void checkPreferredItems(final int selected, @NonNls final String... expected) { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java index 70e030234c3e..1297c152d408 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java @@ -1140,6 +1140,7 @@ public class SmartTypeCompletionTest extends LightFixtureCompletionTestCase { checkResultByFile("/" + getTestName(false) + "-out.java"); } + @Override protected void complete() { myItems = myFixture.complete(CompletionType.SMART); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java index 5988544c5533..72874131f79c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingTest.java @@ -248,6 +248,7 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(true, false); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { PsiFile txt = myFile.getParent().createFile("x.txt"); try { @@ -319,6 +320,7 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase { final int pos = getEditor().getDocument().getText().indexOf("\"\""); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { getEditor().getDocument().replaceString(pos, pos + 2, hugeExpr); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/UnusedSymbolLocalTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/UnusedSymbolLocalTest.java index 7d0810470593..69536714cab2 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/UnusedSymbolLocalTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/UnusedSymbolLocalTest.java @@ -34,6 +34,7 @@ public class UnusedSymbolLocalTest extends DaemonAnalyzerTestCase { final int offset = myEditor.getCaretModel().getOffset(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { document.insertString(offset, "//"); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java index e98d779faa39..fdcaa3a50cf8 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/OrderEntryTest.java @@ -76,6 +76,7 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { fail("Action '" + text + "' is available in test " + testFullPath); } ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { action.invoke(getProject(), getEditor(), getFile()); } @@ -101,6 +102,7 @@ public class OrderEntryTest extends DaemonAnalyzerTestCase { final Module a = ModuleManager.getInstance(getProject()).findModuleByName("A"); final Module b = ModuleManager.getInstance(getProject()).findModuleByName("B"); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel model = ModuleRootManager.getInstance(a).getModifiableModel(); model.addModuleOrderEntry(b); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/VariableAccessFromInnerClassTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/VariableAccessFromInnerClassTest.java index 99db0648c66d..95fc1d6603b6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/VariableAccessFromInnerClassTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/VariableAccessFromInnerClassTest.java @@ -12,6 +12,7 @@ public class VariableAccessFromInnerClassTest extends LightQuickFixTestCase { protected void beforeActionStarted(String testName, String contents) { for (int i=0;i<10;i++) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { myEditor.getDocument().insertString(myEditor.getCaretModel().getOffset(), "//"); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/slice/SliceBackwardTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/slice/SliceBackwardTest.java index a2c458564e23..334a7a346003 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/slice/SliceBackwardTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/slice/SliceBackwardTest.java @@ -123,6 +123,7 @@ public class SliceBackwardTest extends DaemonAnalyzerTestCase { private static void extract(final Document document, final Map sliceUsageName2Offset, final String name) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { for (int i = 1; i < 9; i++) { String newName = name + i; diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java index 9d3118a4e862..61fb39b75972 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/JavaAPIUsagesInspectionTest.java @@ -39,6 +39,7 @@ public class JavaAPIUsagesInspectionTest extends InspectionTestCase { final LanguageLevel[] languageLevel = {null}; try { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel(); LanguageLevelModuleExtension extension = model.getModuleExtension(LanguageLevelModuleExtension.class); @@ -52,6 +53,7 @@ public class JavaAPIUsagesInspectionTest extends InspectionTestCase { } finally { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel(); LanguageLevelModuleExtension extension = model.getModuleExtension(LanguageLevelModuleExtension.class); diff --git a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java index 90aac5346ed6..fe317df5eb4d 100644 --- a/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java +++ b/java/java-tests/testSrc/com/intellij/ide/fileTemplates/FileTemplatesTest.java @@ -107,6 +107,7 @@ public class FileTemplatesTest extends IdeaTestCase { final ModuleRootManager rootManager = ModuleRootManager.getInstance(getModule()); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel model = rootManager.getModifiableModel(); ContentEntry contentEntry = model.addContentEntry(tempDir); diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ExpressionParserTest.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ExpressionParserTest.java index 4316a5c12c5d..0f6f4456b763 100644 --- a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ExpressionParserTest.java +++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ExpressionParserTest.java @@ -77,7 +77,8 @@ public class ExpressionParserTest extends JavaParsingTestCase { public void testNew15() { doParserTest("new C.B()"); } public void testNew16() { withLevel(LanguageLevel.JDK_1_7, - new Runnable() { public void run() { doParserTest("new C<>()"); } }); + new Runnable() { @Override + public void run() { doParserTest("new C<>()"); } }); } public void testExprList0() { doParserTest("f(1,2)"); } @@ -117,11 +118,13 @@ public class ExpressionParserTest extends JavaParsingTestCase { public void testChainedThisObjectAccess() { doParserTest("A.this.B.this"); } private void doParserTest(@NonNls final String text) { - doParserTest(text, new TestParser() { - @Override - public void parse(final PsiBuilder builder) { - ExpressionParser.parse(builder); - } - }); + doParserTest(text, new MyTestParser()); + } + + private static class MyTestParser implements TestParser { + @Override + public void parse(final PsiBuilder builder) { + ExpressionParser.parse(builder); + } } } diff --git a/java/java-tests/testSrc/com/intellij/openapi/vfs/VirtualFilePointerTest.java b/java/java-tests/testSrc/com/intellij/openapi/vfs/VirtualFilePointerTest.java index 1ce381a69ecc..eee42b232161 100644 --- a/java/java-tests/testSrc/com/intellij/openapi/vfs/VirtualFilePointerTest.java +++ b/java/java-tests/testSrc/com/intellij/openapi/vfs/VirtualFilePointerTest.java @@ -471,6 +471,7 @@ public class VirtualFilePointerTest extends IdeaTestCase { @Override public boolean process(Object o) { ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { VirtualFile file = pointer.getFile(); if (file != null && !file.isValid()) { diff --git a/java/java-tests/testSrc/com/intellij/psi/AddRemoveInTypeParameterListTest.java b/java/java-tests/testSrc/com/intellij/psi/AddRemoveInTypeParameterListTest.java index fd4a4dc61abc..1f829aa740bc 100644 --- a/java/java-tests/testSrc/com/intellij/psi/AddRemoveInTypeParameterListTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/AddRemoveInTypeParameterListTest.java @@ -41,6 +41,7 @@ public class AddRemoveInTypeParameterListTest extends LightIdeaTestCase{ final PsiTypeElement[] parms = list.getTypeParameterElements(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { parms[0].delete(); diff --git a/java/java-tests/testSrc/com/intellij/psi/ArrayIndexOutOfBoundsTest.java b/java/java-tests/testSrc/com/intellij/psi/ArrayIndexOutOfBoundsTest.java index 5fd9e8b59a19..d0f3894a2697 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ArrayIndexOutOfBoundsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ArrayIndexOutOfBoundsTest.java @@ -85,6 +85,7 @@ public class ArrayIndexOutOfBoundsTest extends PsiTestCase { final PsiPackage aPackage = JavaPsiFacade.getInstance(myPsiManager.getProject()).findPackage("anotherBla"); assertNotNull("Package anotherBla not found", aPackage); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { aPackage.getDirectories()[0].delete(); } diff --git a/java/java-tests/testSrc/com/intellij/psi/JavaSOEOnReparseTest.java b/java/java-tests/testSrc/com/intellij/psi/JavaSOEOnReparseTest.java index 074f3e7108a9..4aac606be8e4 100644 --- a/java/java-tests/testSrc/com/intellij/psi/JavaSOEOnReparseTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/JavaSOEOnReparseTest.java @@ -40,28 +40,32 @@ public class JavaSOEOnReparseTest extends LightDaemonAnalyzerTestCase { final int pos = getEditor().getDocument().getText().indexOf("\"\""); // replace small expression with huge binary one - ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { + ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override + public void run() { getEditor().getDocument().replaceString(pos, pos + 2, HUGE_EXPR); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); }}); doTestConfiguredFile(false, false, null); // modify huge binary expression (1) - ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { + ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override + public void run() { getEditor().getDocument().insertString(pos, "\".\"+"); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); }}); doTestConfiguredFile(false, false, null); // modify huge binary expression (2) - ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { + ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override + public void run() { getEditor().getDocument().replaceString(pos, pos + 4, ""); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); }}); doTestConfiguredFile(false, false, null); // replace huge binary expression with small one - ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { + ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override + public void run() { getEditor().getDocument().replaceString(pos, pos + HUGE_EXPR.length(), "\".\""); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); }}); diff --git a/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java b/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java index 014336eacc98..59ca7f2e90fd 100644 --- a/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java @@ -118,6 +118,7 @@ public class PsiConcurrencyStressTest extends PsiTestCase { final PsiMethod[] psiMethods = getPsiClass().getMethods(); if (psiMethods.length > 0) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { psiMethods[random.nextInt(psiMethods.length)].delete(); } diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/ExtendsBoundListTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/ExtendsBoundListTest.java index 79832f07a0c4..76559f6b058a 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/ExtendsBoundListTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/ExtendsBoundListTest.java @@ -11,6 +11,7 @@ public class ExtendsBoundListTest extends LightCodeInsightTestCase { public void testRemoveBoundFromFront() throws Exception { final PsiTypeParameter typeParameter = getTypeParameter(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { typeParameter.getExtendsList().getReferenceElements()[0].delete(); } @@ -21,6 +22,7 @@ public class ExtendsBoundListTest extends LightCodeInsightTestCase { public void testRemoveBoundFromEnd() throws Exception { final PsiTypeParameter typeParameter = getTypeParameter(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { typeParameter.getExtendsList().getReferenceElements()[1].delete(); } @@ -31,6 +33,7 @@ public class ExtendsBoundListTest extends LightCodeInsightTestCase { public void testRemoveBoundFromMiddle() throws Exception { final PsiTypeParameter typeParameter = getTypeParameter(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { typeParameter.getExtendsList().getReferenceElements()[1].delete(); } diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/JavadocParamTagsTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/JavadocParamTagsTest.java index 9433d167c079..2cb329bd4244 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/JavadocParamTagsTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/source/tree/java/JavadocParamTagsTest.java @@ -26,6 +26,7 @@ public class JavadocParamTagsTest extends LightIdeaTestCase { assertNotNull(docComment); final PsiDocTag[] tags = docComment.getTags(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { tags[0].delete(); } @@ -51,6 +52,7 @@ public class JavadocParamTagsTest extends LightIdeaTestCase { assertNotNull(docComment); final PsiDocTag[] tags = docComment.getTags(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { tags[1].delete(); } @@ -77,6 +79,7 @@ public class JavadocParamTagsTest extends LightIdeaTestCase { assertNotNull(docComment); final PsiDocTag[] tags = docComment.getTags(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { tags[1].delete(); } diff --git a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java index 9de0a78a00ec..b67073bfcbca 100644 --- a/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/resolve/ResolveClassTest.java @@ -183,6 +183,7 @@ public class ResolveClassTest extends ResolveTestCase { @SuppressWarnings({"ConstantConditions"}) private void configureDependency() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableModuleModel modifiableModel = ModuleManager.getInstance(getProject()).getModifiableModel(); Module module = modifiableModel.newModule("a.iml", StdModuleTypes.JAVA); diff --git a/java/java-tests/testSrc/com/intellij/refactoring/AbstractJavaInplaceIntroduceTest.java b/java/java-tests/testSrc/com/intellij/refactoring/AbstractJavaInplaceIntroduceTest.java index ff71ff364e15..8845dc17956e 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/AbstractJavaInplaceIntroduceTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/AbstractJavaInplaceIntroduceTest.java @@ -59,12 +59,14 @@ public abstract class AbstractJavaInplaceIntroduceTest extends AbstractInplaceIn return JavaSdkImpl.getMockJdk17(); } + @Override protected String getExtension() { return ".java"; } protected abstract MyIntroduceHandler createIntroduceHandler(); + @Override protected AbstractInplaceIntroducer invokeRefactoring() { final MyIntroduceHandler introduceHandler = createIntroduceHandler(); final PsiExpression expression = getExpressionFromEditor(); diff --git a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java index ba218ee76c8b..86513151f1b6 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceFieldWitSetUpInitializationTest.java @@ -40,6 +40,7 @@ public class IntroduceFieldWitSetUpInitializationTest extends CodeInsightTestCas protected Module createModule(final String name) { final Module module = super.createModule(name); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); final LibraryTable.ModifiableModel modifiableModel = model.getModuleLibraryTable().getModifiableModel(); diff --git a/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java b/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java index 7fc7f2afe716..e9411f677e7d 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java @@ -118,6 +118,7 @@ public class PushDownTest extends LightCodeInsightTestCase { PsiClass currentClass = JavaPsiFacade.getInstance(getProject()).findClass("Test"); MemberInfoStorage memberInfoStorage = new MemberInfoStorage(currentClass, new MemberInfo.Filter() { + @Override public boolean includeMember(PsiMember element) { return true; } diff --git a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java index 08a539a5b19e..6b33b1ab7bc2 100644 --- a/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/DirectoryIndexImplTest.java @@ -308,6 +308,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { public void testExplicitExcludeOfInner() throws Exception { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); @@ -368,6 +369,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { final VirtualFile finalModule2Output = module2Output; final VirtualFile finalModule2TestOutput = module2TestOutput; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel m = ModuleRootManager.getInstance(myModule).getModifiableModel(); ContentEntry[] ee = m.getContentEntries(); @@ -475,6 +477,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { final File f = new File(rootPath, "excludedDir/dir/anotherContentRoot"); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); rootModel.getContentEntries()[0] @@ -497,6 +500,7 @@ public class DirectoryIndexImplTest extends IdeaTestCase { public void testLibraryDirInContent() throws Exception { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); Library.ModifiableModel libraryModel = rootModel.getModuleLibraryTable().createLibrary().getModifiableModel(); diff --git a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java index e2a17c957133..c9aa2cdaa327 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ExportingModulesTest.java @@ -33,6 +33,7 @@ public class ExportingModulesTest extends IdeaTestCase { assertNotNull(testRoot); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableModuleModel moduleModel = ModuleManager.getInstance(myProject).getModifiableModel(); final Module moduleA = moduleModel.newModule("A.iml", StdModuleTypes.JAVA); @@ -70,6 +71,7 @@ public class ExportingModulesTest extends IdeaTestCase { private void configureModule(final Module module, final VirtualFile testRoot, final String name) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); final VirtualFile contentRoot = testRoot.findChild(name); diff --git a/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java b/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java index d01d465b9c33..ab27c2c820d2 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java @@ -38,6 +38,7 @@ public class ManagingContentRootsTest extends IdeaTestCase { final VirtualFile finalRoot = root; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel m = getRootManager().getModifiableModel(); m.addContentEntry(finalRoot); @@ -61,6 +62,7 @@ public class ManagingContentRootsTest extends IdeaTestCase { root.delete(null); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel m = getRootManager().getModifiableModel(); m.addContentEntry(url); @@ -80,6 +82,7 @@ public class ManagingContentRootsTest extends IdeaTestCase { final String url = root.getUrl(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel m = getRootManager().getModifiableModel(); m.addContentEntry(url); @@ -93,6 +96,7 @@ public class ManagingContentRootsTest extends IdeaTestCase { public void testGettingMofifiableModelCorrectlySetsRootModelForContentEntries() throws Exception { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { ModifiableRootModel m = getRootManager().getModifiableModel(); m.addContentEntry(dir); diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java index 8ee8e9c458e1..d7eaffef020d 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleRootManagerTestCase.java @@ -72,6 +72,7 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase { protected VirtualFile setModuleOutput(final Module module, final boolean test) throws IOException { final VirtualFile output = getVirtualFile(createTempDir(module.getName() + (test ? "Test" : "Prod") + "Output")); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); final CompilerModuleExtension extension = model.getModuleExtension(CompilerModuleExtension.class); @@ -96,6 +97,7 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase { protected void addLibraryDependency(final Module module, final Library dependency, final DependencyScope scope, final boolean exported) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); final LibraryOrderEntry entry = model.addLibraryEntry(dependency); @@ -112,6 +114,7 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase { protected void addModuleDependency(final Module module, final Module dependency, final DependencyScope scope, final boolean exported) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); final ModuleOrderEntry entry = model.addModuleOrderEntry(dependency); diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java index 63ba28da59d1..39c76f076704 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java @@ -78,6 +78,7 @@ public class ModuleScopesTest extends ModuleTestCase { final Module moduleB = createModule("b.iml", StdModuleTypes.JAVA); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { VirtualFile rootB = myFixture.findOrCreateDir("b"); VirtualFile outB = myFixture.findOrCreateDir("out"); @@ -187,6 +188,7 @@ public class ModuleScopesTest extends ModuleTestCase { final VirtualFile libraryRoot = myFixture.findOrCreateDir("lib"); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModifiableRootModel model = ModuleRootManager.getInstance(m).getModifiableModel(); final Library library = model.getModuleLibraryTable().createLibrary("l"); diff --git a/java/openapi/src/com/intellij/codeInsight/completion/util/MethodParenthesesHandler.java b/java/openapi/src/com/intellij/codeInsight/completion/util/MethodParenthesesHandler.java index 5ef82f43d2b3..815abeb03662 100644 --- a/java/openapi/src/com/intellij/codeInsight/completion/util/MethodParenthesesHandler.java +++ b/java/openapi/src/com/intellij/codeInsight/completion/util/MethodParenthesesHandler.java @@ -31,6 +31,7 @@ public class MethodParenthesesHandler extends ParenthesesInsertHandler result = new ArrayList(); RootPolicy> policy = new RootPolicy>() { + @Override public List visitLibraryOrderEntry(final LibraryOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootFiles(getInstance())); return value; } + @Override public List visitJdkOrderEntry(final JdkOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootFiles(getInstance())); return value; } + @Override public List visitModuleSourceOrderEntry(final ModuleSourceOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootModel().getRootPaths(getInstance())); @@ -68,16 +72,19 @@ public class AnnotationOrderRootType extends PersistentOrderRootType { public static String[] getUrls(OrderEntry entry) { List result = new ArrayList(); RootPolicy> policy = new RootPolicy>() { + @Override public List visitLibraryOrderEntry(final LibraryOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootUrls(getInstance())); return value; } + @Override public List visitJdkOrderEntry(final JdkOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootUrls(getInstance())); return value; } + @Override public List visitModuleSourceOrderEntry(final ModuleSourceOrderEntry orderEntry, final List value) { Collections.addAll(value, orderEntry.getRootModel().getRootUrls(getInstance())); diff --git a/java/openapi/src/com/intellij/openapi/roots/JavadocOrderRootType.java b/java/openapi/src/com/intellij/openapi/roots/JavadocOrderRootType.java index 839aa30ee59b..025bd150f1ac 100644 --- a/java/openapi/src/com/intellij/openapi/roots/JavadocOrderRootType.java +++ b/java/openapi/src/com/intellij/openapi/roots/JavadocOrderRootType.java @@ -30,6 +30,7 @@ public class JavadocOrderRootType extends PersistentOrderRootType { return getOrderRootType(JavadocOrderRootType.class); } + @Override public boolean collectFromDependentModules() { return true; } diff --git a/java/openapi/src/com/intellij/openapi/roots/LanguageLevelModuleExtension.java b/java/openapi/src/com/intellij/openapi/roots/LanguageLevelModuleExtension.java index 20d5c2283116..7ea84866331d 100644 --- a/java/openapi/src/com/intellij/openapi/roots/LanguageLevelModuleExtension.java +++ b/java/openapi/src/com/intellij/openapi/roots/LanguageLevelModuleExtension.java @@ -75,6 +75,7 @@ public class LanguageLevelModuleExtension extends ModuleExtension() { + @Override public boolean execute(@NotNull final SearchParameters parameters, @NotNull final Processor consumer) { final PsiClass baseClass = parameters.getClassToProcess(); final SearchScope searchScope = parameters.getScope(); @@ -161,15 +162,18 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory() { + @Override public String compute() { return baseClass.getQualifiedName(); } }); if (CommonClassNames.JAVA_LANG_OBJECT.equals(qname)) { return AllClassesSearch.search(searchScope, baseClass.getProject(), parameters.getNameCondition()).forEach(new Processor() { + @Override public boolean process(final PsiClass aClass) { ProgressManager.checkCanceled(); final String qname1 = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override @Nullable public String compute() { return aClass.getQualifiedName(); @@ -187,12 +191,14 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory processed = new THashSet(); // processed classes without FQN (e.g. anonymous) final Processor processor = new Processor() { + @Override public boolean process(final PsiClass candidate) { ProgressManager.checkCanceled(); final Ref result = new Ref(); final String[] fqn = new String[1]; ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { fqn[0] = candidate.getQualifiedName(); if (parameters.isCheckInheritance() || parameters.isCheckDeep() && !(candidate instanceof PsiAnonymousClass)) { @@ -234,6 +240,7 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory() { + @Override public PsiClass compute() { return facade.findClass(fqn, projectScope); } @@ -264,6 +271,7 @@ public class ClassInheritorsSearch extends ExtensibleQueryFactory() { + @Override public Boolean compute() { return Boolean.valueOf(baseClass.hasModifierProperty(PsiModifier.FINAL)); } diff --git a/java/openapi/src/com/intellij/psi/search/searches/DirectClassInheritorsSearch.java b/java/openapi/src/com/intellij/psi/search/searches/DirectClassInheritorsSearch.java index 93ec3ebb7775..2ef1574cbf47 100644 --- a/java/openapi/src/com/intellij/psi/search/searches/DirectClassInheritorsSearch.java +++ b/java/openapi/src/com/intellij/psi/search/searches/DirectClassInheritorsSearch.java @@ -89,6 +89,7 @@ public class DirectClassInheritorsSearch extends ExtensibleQueryFactory(raw, new Condition() { + @Override public boolean value(final PsiClass psiClass) { return !(psiClass instanceof PsiAnonymousClass); } diff --git a/java/openapi/src/com/intellij/psi/util/EnclosingLoopMatcherExpression.java b/java/openapi/src/com/intellij/psi/util/EnclosingLoopMatcherExpression.java index 4506de0a8395..4a370cd914b3 100644 --- a/java/openapi/src/com/intellij/psi/util/EnclosingLoopMatcherExpression.java +++ b/java/openapi/src/com/intellij/psi/util/EnclosingLoopMatcherExpression.java @@ -24,6 +24,7 @@ import com.intellij.psi.*; public class EnclosingLoopMatcherExpression implements PsiMatcherExpression { public static final PsiMatcherExpression INSTANCE = new EnclosingLoopMatcherExpression(); + @Override public Boolean match(PsiElement element) { if (element instanceof PsiForStatement) return Boolean.TRUE; if (element instanceof PsiForeachStatement) return Boolean.TRUE; diff --git a/java/openapi/src/com/intellij/psi/util/EnclosingLoopOrSwitchMatcherExpression.java b/java/openapi/src/com/intellij/psi/util/EnclosingLoopOrSwitchMatcherExpression.java index f663d04cc5db..b40ce6882bb1 100644 --- a/java/openapi/src/com/intellij/psi/util/EnclosingLoopOrSwitchMatcherExpression.java +++ b/java/openapi/src/com/intellij/psi/util/EnclosingLoopOrSwitchMatcherExpression.java @@ -24,6 +24,7 @@ import com.intellij.psi.*; public class EnclosingLoopOrSwitchMatcherExpression implements PsiMatcherExpression { public static final PsiMatcherExpression INSTANCE = new EnclosingLoopOrSwitchMatcherExpression(); + @Override public Boolean match(PsiElement element) { if (element instanceof PsiForStatement) return Boolean.TRUE; if (element instanceof PsiForeachStatement) return Boolean.TRUE; diff --git a/java/openapi/src/com/intellij/psi/util/PsiExpressionTrimRenderer.java b/java/openapi/src/com/intellij/psi/util/PsiExpressionTrimRenderer.java index a4a868dc1b0e..029e136c373f 100644 --- a/java/openapi/src/com/intellij/psi/util/PsiExpressionTrimRenderer.java +++ b/java/openapi/src/com/intellij/psi/util/PsiExpressionTrimRenderer.java @@ -221,6 +221,7 @@ public class PsiExpressionTrimRenderer extends JavaRecursiveElementWalkingVisito } public static class RenderFunction implements Function { + @Override public String fun(PsiExpression psiExpression) { return render(psiExpression); } diff --git a/java/openapi/src/com/intellij/psi/util/PsiMatchers.java b/java/openapi/src/com/intellij/psi/util/PsiMatchers.java index 8f1499886eaa..4ec9bf8dc30c 100644 --- a/java/openapi/src/com/intellij/psi/util/PsiMatchers.java +++ b/java/openapi/src/com/intellij/psi/util/PsiMatchers.java @@ -31,6 +31,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasModifier(@Modifier final String modifier, final boolean shouldHave) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { PsiModifierListOwner owner = element instanceof PsiModifierListOwner ? (PsiModifierListOwner) element : null; @@ -42,6 +43,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasText(final String text) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { if (element.getTextLength() != text.length()) return Boolean.FALSE; return text.equals(element.getText()); @@ -51,6 +53,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasText(@NotNull final String... texts) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { String text = element.getText(); return ArrayUtil.find(texts, text) != -1; @@ -60,6 +63,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasClass(final Class aClass) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { if (aClass.isAssignableFrom(element.getClass())) return Boolean.TRUE; return Boolean.FALSE; @@ -69,6 +73,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasClass(final Class[] classes) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { for (Class aClass : classes) { if (aClass.isAssignableFrom(element.getClass())) return Boolean.TRUE; @@ -80,6 +85,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasName(final String name) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { if (element instanceof PsiNamedElement && name.equals(((PsiNamedElement) element).getName())) return Boolean.TRUE; if (element instanceof XmlTag && name.equals(((XmlTag) element).getName())) return Boolean.TRUE; @@ -90,6 +96,7 @@ public class PsiMatchers { public static PsiMatcherExpression hasTagValue(final String value) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { if (element instanceof XmlTag && value.equals(((XmlTag) element).getValue().getTrimmedText())) return Boolean.TRUE; return Boolean.FALSE; @@ -99,6 +106,7 @@ public class PsiMatchers { public static PsiMatcherExpression isConstructor(final boolean shouldBe) { return new PsiMatcherExpression() { + @Override public Boolean match(PsiElement element) { return element instanceof PsiMethod && ((PsiMethod)element).isConstructor() == shouldBe; } diff --git a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java index 6db057f72866..6ead55d1a05b 100644 --- a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java +++ b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java @@ -88,6 +88,7 @@ public class RedundantCastUtil { // avoid multiple visit } + @Override protected void addToResults(@NotNull PsiTypeCastExpression typeCast){ if (!isTypeCastSemantical(typeCast)) { myFoundCasts.add(typeCast); @@ -455,6 +456,7 @@ public class RedundantCastUtil { final PsiElement resolved = refExpression.resolve(); final Ref result = new Ref(Boolean.FALSE); CodeStyleManager.getInstance(refExpression.getProject()).performActionWithFormatterDisabled(new Runnable() { + @Override public void run() { try { final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(refExpression.getProject()).getElementFactory(); diff --git a/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java b/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java index 02ec62df85e1..9509da7a3ad7 100644 --- a/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java +++ b/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java @@ -156,6 +156,7 @@ public abstract class CodeInsightTestCase extends PsiTestCase { final VirtualFile vdir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(dir); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); final ModifiableRootModel rootModel = rootManager.getModifiableModel(); @@ -192,6 +193,7 @@ public abstract class CodeInsightTestCase extends PsiTestCase { final String newFileText = editorInfo.getNewFileText(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { if (!document.getText().equals(newFileText)) { document.setText(newFileText); @@ -218,6 +220,7 @@ public abstract class CodeInsightTestCase extends PsiTestCase { final VirtualFile toDir = getVirtualFile(toDirIO); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule); @@ -475,6 +478,7 @@ public abstract class CodeInsightTestCase extends PsiTestCase { protected void checkResultByFile(@NonNls final String filePath, final boolean stripTrailingSpaces) throws Exception { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { getProject().getComponent(PostprocessReformattingAspect.class).doPostponedFormatting(); if (stripTrailingSpaces) { diff --git a/java/testFramework/src/com/intellij/codeInsight/EditorInfo.java b/java/testFramework/src/com/intellij/codeInsight/EditorInfo.java index 9a98477532bc..d770d7e93972 100644 --- a/java/testFramework/src/com/intellij/codeInsight/EditorInfo.java +++ b/java/testFramework/src/com/intellij/codeInsight/EditorInfo.java @@ -35,6 +35,7 @@ public class EditorInfo { public EditorInfo(final String fileText) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { updateCaretAndSelection(EditorFactory.getInstance().createDocument(fileText)); } diff --git a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java index c2cfb53f5d04..9f3e826cebbe 100644 --- a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java +++ b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java @@ -304,6 +304,7 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase { //to load text ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { TreeUtil.clearCaches((TreeElement)myFile.getNode()); } diff --git a/java/testFramework/src/com/intellij/testFramework/ModuleTestCase.java b/java/testFramework/src/com/intellij/testFramework/ModuleTestCase.java index c488715dc405..71a5c0d3e13f 100644 --- a/java/testFramework/src/com/intellij/testFramework/ModuleTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/ModuleTestCase.java @@ -140,6 +140,7 @@ public abstract class ModuleTestCase extends IdeaTestCase { protected void readJdomExternalizables(final ModuleImpl module) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ProjectImpl project = (ProjectImpl)myProject; project.setOptimiseTestLoadSpeed(false); diff --git a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java index 7bdb083af317..a906fc068d9f 100644 --- a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java @@ -218,6 +218,7 @@ public abstract class PsiTestCase extends ModuleTestCase { protected static void addLibraryToRoots(final Module module, final VirtualFile jarFile, final OrderRootType rootType) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { final ModuleRootManager manager = ModuleRootManager.getInstance(module); final ModifiableRootModel rootModel = manager.getModifiableModel(); diff --git a/platform/core-api/src/com/intellij/diagnostic/PluginException.java b/platform/core-api/src/com/intellij/diagnostic/PluginException.java index 8a17ec65cad4..1710d05cd34a 100644 --- a/platform/core-api/src/com/intellij/diagnostic/PluginException.java +++ b/platform/core-api/src/com/intellij/diagnostic/PluginException.java @@ -47,6 +47,7 @@ public class PluginException extends RuntimeException { return myPluginId; } + @Override public String getMessage() { @NonNls String message = super.getMessage(); diff --git a/platform/core-api/src/com/intellij/lang/LanguageExtension.java b/platform/core-api/src/com/intellij/lang/LanguageExtension.java index ed416fbdda77..2e9690528181 100644 --- a/platform/core-api/src/com/intellij/lang/LanguageExtension.java +++ b/platform/core-api/src/com/intellij/lang/LanguageExtension.java @@ -40,6 +40,7 @@ public class LanguageExtension extends KeyedExtensionCollector { myDefaultImplementation = defaultImplementation; } + @Override protected String keyToString(final Language key) { return key.getID(); } diff --git a/platform/core-api/src/com/intellij/lang/LanguageUtil.java b/platform/core-api/src/com/intellij/lang/LanguageUtil.java index bfcdf84c1894..67a567aaa14e 100644 --- a/platform/core-api/src/com/intellij/lang/LanguageUtil.java +++ b/platform/core-api/src/com/intellij/lang/LanguageUtil.java @@ -46,6 +46,7 @@ public final class LanguageUtil { @NotNull public static Language[] getLanguageDialects(final Language base) { final List list = ContainerUtil.findAll(Language.getRegisteredLanguages(), new Condition() { + @Override public boolean value(final Language language) { return language.getBaseLanguage() == base; } diff --git a/platform/core-api/src/com/intellij/lexer/DelegateLexer.java b/platform/core-api/src/com/intellij/lexer/DelegateLexer.java index 8acbdb77647f..e2ca198886fb 100644 --- a/platform/core-api/src/com/intellij/lexer/DelegateLexer.java +++ b/platform/core-api/src/com/intellij/lexer/DelegateLexer.java @@ -33,35 +33,43 @@ public class DelegateLexer extends LexerBase { return myDelegate; } + @Override public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { myDelegate.start(buffer, startOffset, endOffset, initialState); } + @Override public int getState() { return myDelegate.getState(); } + @Override @Nullable public IElementType getTokenType() { return myDelegate.getTokenType(); } + @Override public int getTokenStart() { return myDelegate.getTokenStart(); } + @Override public int getTokenEnd() { return myDelegate.getTokenEnd(); } + @Override public void advance() { myDelegate.advance(); } + @Override public final CharSequence getBufferSequence() { return myDelegate.getBufferSequence(); } + @Override public int getBufferEnd() { return myDelegate.getBufferEnd(); } diff --git a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java b/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java index f5072c1b8fd4..76e56d9da9de 100644 --- a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java +++ b/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java @@ -44,6 +44,7 @@ public class DocCommentLexer extends MergingLexerAdapter { myTokenTypes = tokenTypes; } + @Override public final void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferIndex = startOffset; @@ -53,34 +54,41 @@ public class DocCommentLexer extends MergingLexerAdapter { myFlex.reset(myBuffer, startOffset, endOffset, initialState); } + @Override public int getState() { return myState; } + @Override public CharSequence getBufferSequence() { return myBuffer; } + @Override public int getBufferEnd() { return myBufferEndOffset; } + @Override public final IElementType getTokenType() { locateToken(); return myTokenType; } + @Override public final int getTokenStart() { locateToken(); return myBufferIndex; } + @Override public final int getTokenEnd() { locateToken(); return myTokenEndOffset; } + @Override public final void advance() { locateToken(); myTokenType = null; diff --git a/platform/core-api/src/com/intellij/lexer/FlexAdapter.java b/platform/core-api/src/com/intellij/lexer/FlexAdapter.java index 9a37e830e4c3..10caae063c5f 100644 --- a/platform/core-api/src/com/intellij/lexer/FlexAdapter.java +++ b/platform/core-api/src/com/intellij/lexer/FlexAdapter.java @@ -38,6 +38,7 @@ public class FlexAdapter extends LexerBase { return myFlex; } + @Override public void start(final CharSequence buffer, int startOffset, int endOffset, final int initialState) { myText = buffer; myEnd = endOffset; @@ -45,35 +46,42 @@ public class FlexAdapter extends LexerBase { myTokenType = null; } + @Override public int getState() { locateToken(); return myState; } + @Override public IElementType getTokenType() { locateToken(); return myTokenType; } + @Override public int getTokenStart() { locateToken(); return myFlex.getTokenStart(); } + @Override public int getTokenEnd() { locateToken(); return myFlex.getTokenEnd(); } + @Override public void advance() { locateToken(); myTokenType = null; } + @Override public CharSequence getBufferSequence() { return myText; } + @Override public int getBufferEnd() { return myEnd; } diff --git a/platform/core-api/src/com/intellij/lexer/LexerBase.java b/platform/core-api/src/com/intellij/lexer/LexerBase.java index e308bf35959d..c166bed402e0 100644 --- a/platform/core-api/src/com/intellij/lexer/LexerBase.java +++ b/platform/core-api/src/com/intellij/lexer/LexerBase.java @@ -16,12 +16,14 @@ package com.intellij.lexer; public abstract class LexerBase extends Lexer { + @Override public LexerPosition getCurrentPosition() { final int offset = getTokenStart(); final int intState = getState(); return new LexerPositionImpl(offset, intState); } + @Override public void restore(LexerPosition position) { start(getBufferSequence(), position.getOffset(), getBufferEnd(), position.getState()); } diff --git a/platform/core-api/src/com/intellij/lexer/LexerPositionImpl.java b/platform/core-api/src/com/intellij/lexer/LexerPositionImpl.java index b79a3e9793e1..e649a5b744ba 100644 --- a/platform/core-api/src/com/intellij/lexer/LexerPositionImpl.java +++ b/platform/core-api/src/com/intellij/lexer/LexerPositionImpl.java @@ -24,10 +24,12 @@ class LexerPositionImpl implements LexerPosition { myState = state; } + @Override public int getOffset() { return myOffset; } + @Override public int getState() { return myState; } diff --git a/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java b/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java index 44891fe132f4..d6b83bee804f 100644 --- a/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java +++ b/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java @@ -28,31 +28,37 @@ public class MergingLexerAdapterBase extends DelegateLexer { myMergeFunction = mergeFunction; } + @Override public void start(final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { super.start(buffer, startOffset, endOffset, initialState); myTokenType = null; } + @Override public int getState(){ locateToken(); return myState; } + @Override public IElementType getTokenType(){ locateToken(); return myTokenType; } + @Override public int getTokenStart(){ locateToken(); return myTokenStart; } + @Override public int getTokenEnd(){ locateToken(); return super.getTokenStart(); } + @Override public void advance(){ myTokenType = null; } @@ -75,6 +81,7 @@ public class MergingLexerAdapterBase extends DelegateLexer { return getDelegate(); } + @Override public void restore(LexerPosition position) { MyLexerPosition pos = (MyLexerPosition)position; @@ -84,6 +91,7 @@ public class MergingLexerAdapterBase extends DelegateLexer { myState = pos.getOldState(); } + @Override public LexerPosition getCurrentPosition() { return new MyLexerPosition(myTokenStart, myTokenType, getDelegate().getCurrentPosition(), myState); } @@ -101,10 +109,12 @@ public class MergingLexerAdapterBase extends DelegateLexer { myOldState = oldState; } + @Override public int getOffset() { return myOffset; } + @Override public int getState() { return myOriginalPosition.getState(); } diff --git a/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java b/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java index a71465141765..fc830d1059ec 100644 --- a/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java +++ b/platform/core-api/src/com/intellij/lexer/_JavaDocLexer.java @@ -360,14 +360,17 @@ class _JavaDocLexer implements FlexLexer { return map; } + @Override public final int getTokenStart(){ return zzStartRead; } + @Override public final int getTokenEnd(){ return getTokenStart() + yylength(); } + @Override public void reset(CharSequence buffer, int start, int end,int initialState){ zzBuffer = buffer; zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer); @@ -394,6 +397,7 @@ class _JavaDocLexer implements FlexLexer { /** * Returns the current lexical state. */ + @Override public final int yystate() { return zzLexicalState; } @@ -404,6 +408,7 @@ class _JavaDocLexer implements FlexLexer { * * @param newState the new lexical state */ + @Override public final void yybegin(int newState) { zzLexicalState = newState; } @@ -503,6 +508,7 @@ class _JavaDocLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ + @Override public IElementType advance() throws java.io.IOException { int zzInput; int zzAction; diff --git a/platform/core-api/src/com/intellij/openapi/application/Application.java b/platform/core-api/src/com/intellij/openapi/application/Application.java index dfc60e440cc8..78c74cf74b3e 100644 --- a/platform/core-api/src/com/intellij/openapi/application/Application.java +++ b/platform/core-api/src/com/intellij/openapi/application/Application.java @@ -279,6 +279,7 @@ public interface Application extends ComponentManager { */ boolean isCommandLine(); + @Override boolean isDisposed(); /** diff --git a/platform/core-api/src/com/intellij/openapi/application/ApplicationManager.java b/platform/core-api/src/com/intellij/openapi/application/ApplicationManager.java index 79de477d4d7e..c9ce7cc65992 100644 --- a/platform/core-api/src/com/intellij/openapi/application/ApplicationManager.java +++ b/platform/core-api/src/com/intellij/openapi/application/ApplicationManager.java @@ -42,6 +42,7 @@ public class ApplicationManager { public static void setApplication(Application instance, @NotNull Disposable parent) { final Application old = ourApplication; Disposer.register(parent, new Disposable() { + @Override public void dispose() { if (old != null) { // to prevent NPEs in threads still running setApplication(old); diff --git a/platform/core-api/src/com/intellij/openapi/application/ReadActionProcessor.java b/platform/core-api/src/com/intellij/openapi/application/ReadActionProcessor.java index eadecfe62734..22872931f1c8 100644 --- a/platform/core-api/src/com/intellij/openapi/application/ReadActionProcessor.java +++ b/platform/core-api/src/com/intellij/openapi/application/ReadActionProcessor.java @@ -23,8 +23,10 @@ import com.intellij.openapi.util.Computable; * @author cdr */ public abstract class ReadActionProcessor implements Processor { + @Override public boolean process(final T t) { return ApplicationManager.getApplication().runReadAction(new Computable(){ + @Override public Boolean compute() { return processInReadAction(t); } diff --git a/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java b/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java index 2e7b6e448670..f269d1fff5b2 100644 --- a/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java +++ b/platform/core-api/src/com/intellij/openapi/components/ServiceManager.java @@ -49,6 +49,7 @@ public class ServiceManager { */ public static NotNullLazyKey createLazyKey(@NotNull final Class serviceClass) { return NotNullLazyKey.create("Service: " + serviceClass.getName(), new NotNullFunction() { + @Override @NotNull public T fun(Project project) { return getService(project, serviceClass); diff --git a/platform/core-api/src/com/intellij/openapi/editor/RangeMarker.java b/platform/core-api/src/com/intellij/openapi/editor/RangeMarker.java index 7fc06fd80f63..820b7b768355 100644 --- a/platform/core-api/src/com/intellij/openapi/editor/RangeMarker.java +++ b/platform/core-api/src/com/intellij/openapi/editor/RangeMarker.java @@ -46,6 +46,7 @@ public interface RangeMarker extends UserDataHolder, Segment { * * @return the start offset. */ + @Override int getStartOffset(); /** @@ -53,6 +54,7 @@ public interface RangeMarker extends UserDataHolder, Segment { * * @return the end offset. */ + @Override int getEndOffset(); /** @@ -80,6 +82,7 @@ public interface RangeMarker extends UserDataHolder, Segment { void setGreedyToRight(boolean greedy); Comparator BY_START_OFFSET = new Comparator() { + @Override public int compare(RangeMarker r1, RangeMarker r2) { int result = r1.getStartOffset() - r2.getStartOffset(); if (result == 0) result = r1.getEndOffset() - r2.getEndOffset(); diff --git a/platform/core-api/src/com/intellij/openapi/editor/event/DocumentAdapter.java b/platform/core-api/src/com/intellij/openapi/editor/event/DocumentAdapter.java index 3e29addc06fa..d016e1e1f4c7 100644 --- a/platform/core-api/src/com/intellij/openapi/editor/event/DocumentAdapter.java +++ b/platform/core-api/src/com/intellij/openapi/editor/event/DocumentAdapter.java @@ -16,9 +16,11 @@ package com.intellij.openapi.editor.event; public abstract class DocumentAdapter implements DocumentListener { + @Override public void beforeDocumentChange(DocumentEvent e) { } + @Override public void documentChanged(DocumentEvent e) { } } diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java index 1282dfa91fcb..97c85807817a 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/FileType.java @@ -35,6 +35,7 @@ public interface FileType extends Scheme { * @return The file type name. */ + @Override @NotNull @NonNls String getName(); diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtension.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtension.java index 3e68c20c3075..d66b9215db57 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtension.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtension.java @@ -29,6 +29,7 @@ public class FileTypeExtension extends KeyedExtensionCollector { super(epName); } + @Override protected String keyToString(final FileType key) { return key.getName(); } diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionPoint.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionPoint.java index 05252fc147e5..f8c7a318173c 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionPoint.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionPoint.java @@ -34,15 +34,18 @@ public class FileTypeExtensionPoint extends AbstractExtensionPointBean implem public String implementationClass; private final LazyInstance myHandler = new LazyInstance() { + @Override protected Class getInstanceClass() throws ClassNotFoundException { return findClass(implementationClass); } }; + @Override public T getInstance() { return myHandler.getValue(); } + @Override public String getKey() { return filetype; } diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java b/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java index 71be1c18465f..76963e53bc49 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java @@ -47,14 +47,17 @@ public abstract class LanguageFileType implements FileType{ return myLanguage; } + @Override public final boolean isBinary() { return false; } + @Override public final boolean isReadOnly() { return false; } + @Override public String getCharset(@NotNull VirtualFile file, final byte[] content) { return null; } diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/UnknownFileType.java b/platform/core-api/src/com/intellij/openapi/fileTypes/UnknownFileType.java index 768dc2606a3e..0b6b7ccac45a 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/UnknownFileType.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/UnknownFileType.java @@ -34,33 +34,40 @@ public class UnknownFileType implements FileType { private UnknownFileType() {} + @Override @NotNull public String getName() { return "UNKNOWN"; } + @Override @NotNull public String getDescription() { return "UNKNOWN"; } + @Override @NotNull public String getDefaultExtension() { return ""; } + @Override public Icon getIcon() { return ICON.getValue(); } + @Override public boolean isBinary() { return true; } + @Override public boolean isReadOnly() { return false; } + @Override public String getCharset(@NotNull VirtualFile file, final byte[] content) { return null; } diff --git a/platform/core-api/src/com/intellij/openapi/module/Module.java b/platform/core-api/src/com/intellij/openapi/module/Module.java index b233262dd8a3..cd2d95e584e9 100644 --- a/platform/core-api/src/com/intellij/openapi/module/Module.java +++ b/platform/core-api/src/com/intellij/openapi/module/Module.java @@ -73,6 +73,7 @@ public interface Module extends ComponentManager, AreaInstance, Disposable { * * @return true if the module has been disposed, false otherwise */ + @Override boolean isDisposed(); boolean isLoaded(); diff --git a/platform/core-api/src/com/intellij/openapi/project/DumbService.java b/platform/core-api/src/com/intellij/openapi/project/DumbService.java index 2558ff8ae889..6eb6ce3f242e 100644 --- a/platform/core-api/src/com/intellij/openapi/project/DumbService.java +++ b/platform/core-api/src/com/intellij/openapi/project/DumbService.java @@ -70,6 +70,7 @@ public abstract class DumbService { */ public void smartInvokeLater(@NotNull final Runnable runnable) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { runWhenSmart(runnable); } @@ -78,6 +79,7 @@ public abstract class DumbService { public void smartInvokeLater(@NotNull final Runnable runnable, ModalityState modalityState) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { runWhenSmart(runnable); } @@ -113,10 +115,12 @@ public abstract class DumbService { public void makeDumbAware(@NotNull final JComponent component, @NotNull Disposable disposable) { component.setEnabled(!isDumb()); getProject().getMessageBus().connect(disposable).subscribe(DUMB_MODE, new DumbModeListener() { + @Override public void enteredDumbMode() { component.setEnabled(false); } + @Override public void exitDumbMode() { component.setEnabled(true); } diff --git a/platform/core-api/src/com/intellij/openapi/util/ActionCallback.java b/platform/core-api/src/com/intellij/openapi/util/ActionCallback.java index 9944715e13d7..d41c91bdcf22 100644 --- a/platform/core-api/src/com/intellij/openapi/util/ActionCallback.java +++ b/platform/core-api/src/com/intellij/openapi/util/ActionCallback.java @@ -99,6 +99,7 @@ public class ActionCallback implements Disposable { public final ActionCallback notifyWhenDone(final ActionCallback child) { return doWhenDone(new Runnable() { + @Override public void run() { child.setDone(); } @@ -107,6 +108,7 @@ public class ActionCallback implements Disposable { public final ActionCallback notifyWhenRejected(final ActionCallback child) { return doWhenRejected(new Runnable() { + @Override public void run() { child.setRejected(); } @@ -115,10 +117,12 @@ public class ActionCallback implements Disposable { public final ActionCallback notify(final ActionCallback child) { return doWhenDone(new Runnable() { + @Override public void run() { child.setDone(); } }).doWhenRejected(new Runnable() { + @Override public void run() { child.setRejected(); } @@ -164,6 +168,7 @@ public class ActionCallback implements Disposable { final ActionCallback result = new ActionCallback(myCallbacks.size()); for (ActionCallback each : myCallbacks) { each.doWhenProcessed(new Runnable() { + @Override public void run() { result.setDone(); } @@ -174,6 +179,7 @@ public class ActionCallback implements Disposable { } + @Override public void dispose() { } @@ -198,6 +204,7 @@ public class ActionCallback implements Disposable { myMessage = message; myAllocation = allocation; myTask = SimpleTimer.getInstance().setUp(new Runnable() { + @Override public void run() { if (isEdt) { SwingUtilities.invokeLater(TimedOut.this); @@ -208,6 +215,7 @@ public class ActionCallback implements Disposable { }, timeOut); } + @Override public final void run() { if (!isProcessed()) { setRejected(); diff --git a/platform/core-api/src/com/intellij/openapi/util/ClassExtension.java b/platform/core-api/src/com/intellij/openapi/util/ClassExtension.java index a7c8cd24e669..e763075019a9 100644 --- a/platform/core-api/src/com/intellij/openapi/util/ClassExtension.java +++ b/platform/core-api/src/com/intellij/openapi/util/ClassExtension.java @@ -32,10 +32,12 @@ public class ClassExtension extends KeyedExtensionCollector { super(epName); } + @Override protected String keyToString(final Class key) { return key.getName(); } + @Override protected List buildExtensions(final String key, final Class classKey) { final Set allSupers = new THashSet(); collectSupers(classKey, allSupers); diff --git a/platform/core-api/src/com/intellij/openapi/util/ClassExtensionPoint.java b/platform/core-api/src/com/intellij/openapi/util/ClassExtensionPoint.java index b1dba0756eb3..5a80280280eb 100644 --- a/platform/core-api/src/com/intellij/openapi/util/ClassExtensionPoint.java +++ b/platform/core-api/src/com/intellij/openapi/util/ClassExtensionPoint.java @@ -33,15 +33,18 @@ public class ClassExtensionPoint extends AbstractExtensionPointBean implement public String implementationClass; private final LazyInstance myHandler = new LazyInstance() { + @Override protected Class getInstanceClass() throws ClassNotFoundException { return findClass(implementationClass); } }; + @Override public T getInstance() { return myHandler.getValue(); } + @Override public String getKey() { return psiElementClass; } diff --git a/platform/core-api/src/com/intellij/openapi/util/ExecutionCallback.java b/platform/core-api/src/com/intellij/openapi/util/ExecutionCallback.java index ff515ecc2064..8ce224760d3d 100644 --- a/platform/core-api/src/com/intellij/openapi/util/ExecutionCallback.java +++ b/platform/core-api/src/com/intellij/openapi/util/ExecutionCallback.java @@ -56,6 +56,7 @@ public class ExecutionCallback { final void notifyWhenExecuted(final ActionCallback child) { doWhenExecuted(new Runnable() { + @Override public void run() { child.setDone(); } diff --git a/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java b/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java index 3ea99004a3b5..a8d350255cc6 100644 --- a/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java +++ b/platform/core-api/src/com/intellij/openapi/util/KeyedExtensionCollector.java @@ -153,6 +153,7 @@ public abstract class KeyedExtensionCollector { ExtensionPointName> typesafe = ExtensionPointName.create(myEpName); myPoint = Extensions.getRootArea().getExtensionPoint(typesafe); myListener = new ExtensionPointAndAreaListener>() { + @Override public void extensionAdded(@NotNull final KeyedLazyInstance bean, @Nullable final PluginDescriptor pluginDescriptor) { synchronized (lock) { if (bean.getKey() == null) { @@ -169,6 +170,7 @@ public abstract class KeyedExtensionCollector { } } + @Override public void extensionRemoved(@NotNull final KeyedLazyInstance bean, @Nullable final PluginDescriptor pluginDescriptor) { synchronized (lock) { myCache.remove(bean.getKey()); @@ -178,6 +180,7 @@ public abstract class KeyedExtensionCollector { } } + @Override public void areaReplaced(final ExtensionsArea area) { resetAreaListener(); } diff --git a/platform/core-api/src/com/intellij/openapi/util/ModificationTracker.java b/platform/core-api/src/com/intellij/openapi/util/ModificationTracker.java index bcac21adbf86..33dda8211932 100644 --- a/platform/core-api/src/com/intellij/openapi/util/ModificationTracker.java +++ b/platform/core-api/src/com/intellij/openapi/util/ModificationTracker.java @@ -24,6 +24,7 @@ public interface ModificationTracker { ModificationTracker EVER_CHANGED = new ModificationTracker() { private long myCounter = 0; + @Override public long getModificationCount() { return myCounter++; } diff --git a/platform/core-api/src/com/intellij/openapi/util/SimpleTimer.java b/platform/core-api/src/com/intellij/openapi/util/SimpleTimer.java index 68cc8f97a3d8..6e8b3dd84e0a 100644 --- a/platform/core-api/src/com/intellij/openapi/util/SimpleTimer.java +++ b/platform/core-api/src/com/intellij/openapi/util/SimpleTimer.java @@ -90,6 +90,7 @@ public class SimpleTimer { private void scheduleNext(long delay, long targetTime) { myNextScheduledTime = targetTime; myNextProcessingTask = new TimerTask() { + @Override public void run() { processNext(); } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/DeprecatedVirtualFileSystem.java b/platform/core-api/src/com/intellij/openapi/vfs/DeprecatedVirtualFileSystem.java index 04437fb3ddfa..8d3b8b3d7152 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/DeprecatedVirtualFileSystem.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/DeprecatedVirtualFileSystem.java @@ -29,6 +29,7 @@ import java.util.List; public abstract class DeprecatedVirtualFileSystem extends VirtualFileSystem { protected final List myFileListeners = ContainerUtil.createEmptyCOWList(); + @Override public void addVirtualFileListener(@NotNull VirtualFileListener listener) { synchronized (myFileListeners) { myFileListeners.add(listener); @@ -40,6 +41,7 @@ public abstract class DeprecatedVirtualFileSystem extends VirtualFileSystem { * * @param listener the listener */ + @Override public void removeVirtualFileListener(@NotNull VirtualFileListener listener) { synchronized (myFileListeners) { myFileListeners.remove(listener); @@ -165,6 +167,7 @@ public abstract class DeprecatedVirtualFileSystem extends VirtualFileSystem { ApplicationManager.getApplication().assertWriteAccessAllowed(); } + @Override public boolean isReadOnly() { return true; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java index 4928b32c504d..572daa417ab5 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFile.java @@ -422,6 +422,7 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica } EncodingRegistry.doActionAndRestoreEncoding(this, new ThrowableComputable() { + @Override public VirtualFile compute() throws IOException { getFileSystem().moveFile(requestor, VirtualFile.this, newParent); return VirtualFile.this; @@ -439,6 +440,7 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica } return EncodingRegistry.doActionAndRestoreEncoding(this, new ThrowableComputable() { + @Override public VirtualFile compute() throws IOException { return getFileSystem().copyFile(requestor, VirtualFile.this, newParent, copyName); } @@ -611,6 +613,7 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica return getName(); } + @Override public long getModificationCount() { return isValid() ? getTimeStamp() : -1; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileFilter.java b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileFilter.java index d5a97475063f..cf7ec823c5f2 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileFilter.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileFilter.java @@ -19,6 +19,7 @@ public interface VirtualFileFilter { boolean accept(VirtualFile file); VirtualFileFilter ALL = new VirtualFileFilter() { + @Override public boolean accept(VirtualFile file) { return true; } @@ -29,6 +30,7 @@ public interface VirtualFileFilter { }; VirtualFileFilter NONE = new VirtualFileFilter() { + @Override public boolean accept(VirtualFile file) { return false; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileContentChangeEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileContentChangeEvent.java index 283b38f81b39..37540f405b88 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileContentChangeEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileContentChangeEvent.java @@ -38,6 +38,7 @@ public class VFileContentChangeEvent extends VFileEvent { myNewModificationStamp = newModificationStamp == -1 ? LocalTimeCounter.currentTime() : newModificationStamp; } + @Override public VirtualFile getFile() { return myFile; } @@ -55,14 +56,17 @@ public class VFileContentChangeEvent extends VFileEvent { return "VfsEvent[update: " + myFile.getUrl() + "]"; } + @Override public String getPath() { return myFile.getPath(); } + @Override public VirtualFileSystem getFileSystem() { return myFile.getFileSystem(); } + @Override public boolean isValid() { return myFile.isValid() && myFile.getModificationStamp() == myOldModificationStamp; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCopyEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCopyEvent.java index e2920beddc7a..b3486b65b233 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCopyEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCopyEvent.java @@ -35,6 +35,7 @@ public class VFileCopyEvent extends VFileEvent { myNewChildName = newChildName; } + @Override public VirtualFile getFile() { return myFile; } @@ -52,14 +53,17 @@ public class VFileCopyEvent extends VFileEvent { return "VfsEvent[copy " + myFile +" to " + myNewParent + " as " + myNewChildName +"]"; } + @Override public String getPath() { return myNewParent.getPath() + "/" + myNewChildName; } + @Override public VirtualFileSystem getFileSystem() { return myFile.getFileSystem(); } + @Override public boolean isValid() { return myFile.isValid() && myNewParent.findChild(myNewChildName) == null; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCreateEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCreateEvent.java index 2ff6b3fe7421..7b9a7b86d8bd 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCreateEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileCreateEvent.java @@ -52,6 +52,7 @@ public class VFileCreateEvent extends VFileEvent { return "VfsEvent[create " + (isDirectory() ? "dir " : "file ") + myChildName + " in " + myParent.getUrl() + "]"; } + @Override public String getPath() { return myParent.getPath() + "/" + myChildName; } @@ -61,10 +62,12 @@ public class VFileCreateEvent extends VFileEvent { return myParent.findChild(myChildName); } + @Override public VirtualFileSystem getFileSystem() { return myParent.getFileSystem(); } + @Override public boolean isValid() { return myParent.isValid() && myParent.findChild(myChildName) == null; } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileDeleteEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileDeleteEvent.java index cc11e3e878d8..891c7807fbbc 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileDeleteEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileDeleteEvent.java @@ -34,6 +34,7 @@ public class VFileDeleteEvent extends VFileEvent { myFile = file; } + @Override @NotNull public VirtualFile getFile() { return myFile; @@ -44,14 +45,17 @@ public class VFileDeleteEvent extends VFileEvent { return "VfsEvent[deleted: " + myFile.getUrl() + "]"; } + @Override public String getPath() { return myFile.getPath(); } + @Override public VirtualFileSystem getFileSystem() { return myFile.getFileSystem(); } + @Override public boolean isValid() { return myFile.isValid(); } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileMoveEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileMoveEvent.java index bebe17156d18..e42ca825a495 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileMoveEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFileMoveEvent.java @@ -35,6 +35,7 @@ public class VFileMoveEvent extends VFileEvent { myOldParent = file.getParent(); } + @Override public VirtualFile getFile() { return myFile; } @@ -52,14 +53,17 @@ public class VFileMoveEvent extends VFileEvent { return "VfsEvent[move " + myFile.getName() +" from " + myOldParent + " to " + myNewParent + "]"; } + @Override public String getPath() { return myFile.getPath(); } + @Override public VirtualFileSystem getFileSystem() { return myFile.getFileSystem(); } + @Override public boolean isValid() { return myFile.isValid() && myFile.getParent() == myOldParent && myOldParent.isValid(); } diff --git a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFilePropertyChangeEvent.java b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFilePropertyChangeEvent.java index d766c8836316..1151e6df5b0b 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFilePropertyChangeEvent.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/newvfs/events/VFilePropertyChangeEvent.java @@ -37,6 +37,7 @@ public class VFilePropertyChangeEvent extends VFileEvent { myNewValue = newValue; } + @Override public VirtualFile getFile() { return myFile; } @@ -58,14 +59,17 @@ public class VFilePropertyChangeEvent extends VFileEvent { return "VfsEvent[property( " + myPropertyName + ") changed for '" + myFile + "': oldValue = " + myOldValue + ", newValue = " + myNewValue + "]"; } + @Override public String getPath() { return myFile.getPath(); } + @Override public VirtualFileSystem getFileSystem() { return myFile.getFileSystem(); } + @Override public boolean isValid() { return myFile.isValid(); } diff --git a/platform/core-api/src/com/intellij/patterns/PatternCondition.java b/platform/core-api/src/com/intellij/patterns/PatternCondition.java index 890131a4367e..043bf5cf97da 100644 --- a/platform/core-api/src/com/intellij/patterns/PatternCondition.java +++ b/platform/core-api/src/com/intellij/patterns/PatternCondition.java @@ -94,6 +94,7 @@ public abstract class PatternCondition { String prevName; int prevOffset; + @Override public boolean process(String name, Object value) { count ++; if (count == 2) builder.insert(prevOffset, prevName +"="); diff --git a/platform/core-api/src/com/intellij/pom/event/PomModelEvent.java b/platform/core-api/src/com/intellij/pom/event/PomModelEvent.java index e5387834deba..0b56be2a20bc 100644 --- a/platform/core-api/src/com/intellij/pom/event/PomModelEvent.java +++ b/platform/core-api/src/com/intellij/pom/event/PomModelEvent.java @@ -85,6 +85,7 @@ public class PomModelEvent extends EventObject { } + @Override public PomModel getSource() { return (PomModel)super.getSource(); } diff --git a/platform/core-api/src/com/intellij/pom/impl/PomTransactionBase.java b/platform/core-api/src/com/intellij/pom/impl/PomTransactionBase.java index cc1595751771..78383f215857 100644 --- a/platform/core-api/src/com/intellij/pom/impl/PomTransactionBase.java +++ b/platform/core-api/src/com/intellij/pom/impl/PomTransactionBase.java @@ -33,10 +33,12 @@ public abstract class PomTransactionBase implements PomTransaction{ myAccumulatedEvent = new PomModelEvent(PomManager.getModel(scope.getProject())); } + @Override public PomModelEvent getAccumulatedEvent() { return myAccumulatedEvent; } + @Override public void run() throws IncorrectOperationException { // override accumulated event because transaction should construct full model event in its aspect final PomModelEvent event = runInner(); @@ -51,10 +53,12 @@ public abstract class PomTransactionBase implements PomTransaction{ @Nullable public abstract PomModelEvent runInner() throws IncorrectOperationException; + @Override public PsiElement getChangeScope() { return myScope; } + @Override public PomModelAspect getTransactionAspect() { return myAspect; } diff --git a/platform/core-api/src/com/intellij/psi/ContributedReferenceHost.java b/platform/core-api/src/com/intellij/psi/ContributedReferenceHost.java index e914565b81f5..b529fb61ed8f 100644 --- a/platform/core-api/src/com/intellij/psi/ContributedReferenceHost.java +++ b/platform/core-api/src/com/intellij/psi/ContributedReferenceHost.java @@ -26,6 +26,7 @@ public interface ContributedReferenceHost extends PsiElement { * {@link com.intellij.psi.PsiReferenceService#getReferences(PsiElement, com.intellij.psi.PsiReferenceService.Hints)} * @return {@link com.intellij.psi.PsiReferenceService#getContributedReferences(PsiElement)} */ + @Override @NotNull PsiReference[] getReferences(); } diff --git a/platform/core-api/src/com/intellij/psi/PsiDirectory.java b/platform/core-api/src/com/intellij/psi/PsiDirectory.java index 1e8a2ab2121d..453e6650b27b 100644 --- a/platform/core-api/src/com/intellij/psi/PsiDirectory.java +++ b/platform/core-api/src/com/intellij/psi/PsiDirectory.java @@ -35,12 +35,15 @@ public interface PsiDirectory extends PsiFileSystemItem { * * @return the virtual file instance. */ + @Override @NotNull VirtualFile getVirtualFile(); + @Override @NotNull String getName(); + @Override @NotNull PsiElement setName(@NotNull String name) throws IncorrectOperationException; @@ -52,6 +55,7 @@ public interface PsiDirectory extends PsiFileSystemItem { @Nullable PsiDirectory getParentDirectory(); + @Override @Nullable PsiDirectory getParent(); diff --git a/platform/core-api/src/com/intellij/psi/PsiElementResolveResult.java b/platform/core-api/src/com/intellij/psi/PsiElementResolveResult.java index dc07cd2cb3ed..3bb181aadf6b 100644 --- a/platform/core-api/src/com/intellij/psi/PsiElementResolveResult.java +++ b/platform/core-api/src/com/intellij/psi/PsiElementResolveResult.java @@ -43,10 +43,12 @@ public class PsiElementResolveResult implements ResolveResult{ myValidResult = validResult; } + @Override @NotNull public PsiElement getElement() { return myElement; } + @Override public boolean isValidResult() { return myValidResult; } diff --git a/platform/core-api/src/com/intellij/psi/PsiFile.java b/platform/core-api/src/com/intellij/psi/PsiFile.java index 8af9ac5c42ca..3ec735a1471d 100644 --- a/platform/core-api/src/com/intellij/psi/PsiFile.java +++ b/platform/core-api/src/com/intellij/psi/PsiFile.java @@ -40,6 +40,7 @@ public interface PsiFile extends PsiFileSystemItem { * * @return the virtual file, or null if the file exists only in memory. */ + @Override @Nullable VirtualFile getVirtualFile(); /** @@ -49,6 +50,7 @@ public interface PsiFile extends PsiFileSystemItem { */ @Nullable PsiDirectory getContainingDirectory(); + @Override @Nullable PsiDirectory getParent(); /** @@ -88,6 +90,7 @@ public interface PsiFile extends PsiFileSystemItem { @NotNull FileViewProvider getViewProvider(); + @Override FileASTNode getNode(); void subtreeChanged(); diff --git a/platform/core-api/src/com/intellij/psi/PsiFileSystemItem.java b/platform/core-api/src/com/intellij/psi/PsiFileSystemItem.java index a10628d91bc3..a9d77c46eba7 100644 --- a/platform/core-api/src/com/intellij/psi/PsiFileSystemItem.java +++ b/platform/core-api/src/com/intellij/psi/PsiFileSystemItem.java @@ -29,12 +29,14 @@ import org.jetbrains.annotations.Nullable; public interface PsiFileSystemItem extends PsiCheckedRenameElement, NavigatablePsiElement { boolean isDirectory(); + @Override @Nullable PsiFileSystemItem getParent(); @Nullable VirtualFile getVirtualFile(); + @Override @NotNull @NonNls String getName(); diff --git a/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java b/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java index 8309829cf393..a63575a96c67 100644 --- a/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java +++ b/platform/core-api/src/com/intellij/psi/PsiRecursiveElementWalkingVisitor.java @@ -27,6 +27,7 @@ import java.util.List; public abstract class PsiRecursiveElementWalkingVisitor extends PsiElementVisitor { private final boolean myVisitAllFileRoots; private final PsiWalkingState myWalkingState = new PsiWalkingState(this){ + @Override public void elementFinished(@NotNull PsiElement element) { PsiRecursiveElementWalkingVisitor.this.elementFinished(element); } @@ -40,6 +41,7 @@ public abstract class PsiRecursiveElementWalkingVisitor extends PsiElementVisito myVisitAllFileRoots = visitAllFileRoots; } + @Override public void visitElement(final PsiElement element) { ProgressIndicatorProvider.checkCanceled(); diff --git a/platform/core-api/src/com/intellij/psi/PsiWalkingState.java b/platform/core-api/src/com/intellij/psi/PsiWalkingState.java index dd8a75a76450..fc0f5d88f30f 100644 --- a/platform/core-api/src/com/intellij/psi/PsiWalkingState.java +++ b/platform/core-api/src/com/intellij/psi/PsiWalkingState.java @@ -28,18 +28,22 @@ public abstract class PsiWalkingState extends WalkingState { private final PsiElementVisitor myVisitor; private static class PsiTreeGuide implements TreeGuide { + @Override public PsiElement getNextSibling(@NotNull PsiElement element) { return element.getNextSibling(); } + @Override public PsiElement getPrevSibling(@NotNull PsiElement element) { return element.getPrevSibling(); } + @Override public PsiElement getFirstChild(@NotNull PsiElement element) { return element.getFirstChild(); } + @Override public PsiElement getParent(@NotNull PsiElement element) { return element.getParent(); } diff --git a/platform/core-api/src/com/intellij/psi/ResolveState.java b/platform/core-api/src/com/intellij/psi/ResolveState.java index 8693b87454cc..714652c71437 100644 --- a/platform/core-api/src/com/intellij/psi/ResolveState.java +++ b/platform/core-api/src/com/intellij/psi/ResolveState.java @@ -132,10 +132,12 @@ public class ResolveState { myValues.put(key, value); } + @Override public ResolveState put(Key key, T value) { return new ManyElementResolveState(this, key, value); } + @Override public T get(Key key) { final T value = (T)myValues.get(key); if (value == null && key instanceof KeyWithDefaultValue) { diff --git a/platform/core-api/src/com/intellij/psi/SmartPsiFileRange.java b/platform/core-api/src/com/intellij/psi/SmartPsiFileRange.java index 01d89f8af3d5..a6096728a5ad 100644 --- a/platform/core-api/src/com/intellij/psi/SmartPsiFileRange.java +++ b/platform/core-api/src/com/intellij/psi/SmartPsiFileRange.java @@ -26,6 +26,7 @@ public interface SmartPsiFileRange extends SmartPsiElementPointer { /** * @return the range inside the PsiFile, or null if the range or PsiFile became invalid */ + @Override @Nullable Segment getRange(); } diff --git a/platform/core-api/src/com/intellij/psi/codeStyle/SuggestedNameInfo.java b/platform/core-api/src/com/intellij/psi/codeStyle/SuggestedNameInfo.java index f0e50a1569d1..7d98aaa7491e 100644 --- a/platform/core-api/src/com/intellij/psi/codeStyle/SuggestedNameInfo.java +++ b/platform/core-api/src/com/intellij/psi/codeStyle/SuggestedNameInfo.java @@ -51,6 +51,7 @@ public abstract class SuggestedNameInfo { myDelegate = delegate; } + @Override public void nameChoosen(final String name) { myDelegate.nameChoosen(name); } diff --git a/platform/core-api/src/com/intellij/psi/filters/position/PatternFilter.java b/platform/core-api/src/com/intellij/psi/filters/position/PatternFilter.java index d7fd46c292c2..79134ac8711b 100644 --- a/platform/core-api/src/com/intellij/psi/filters/position/PatternFilter.java +++ b/platform/core-api/src/com/intellij/psi/filters/position/PatternFilter.java @@ -29,10 +29,12 @@ public class PatternFilter implements ElementFilter { myPattern = pattern; } + @Override public boolean isAcceptable(Object element, PsiElement context) { return myPattern.accepts(element); } + @Override public boolean isClassAcceptable(Class hintClass) { return true; //throw new UnsupportedOperationException("Method isClassAcceptable is not yet implemented in " + getClass().getName()); diff --git a/platform/core-api/src/com/intellij/psi/impl/ElementBase.java b/platform/core-api/src/com/intellij/psi/impl/ElementBase.java index 31f2f40a9689..9b9be421e145 100644 --- a/platform/core-api/src/com/intellij/psi/impl/ElementBase.java +++ b/platform/core-api/src/com/intellij/psi/impl/ElementBase.java @@ -51,6 +51,7 @@ public abstract class ElementBase extends UserDataHolderBase implements Iconable public static final int FLAGS_LOCKED = 0x800; private static final NullableFunction ICON_COMPUTE = new NullableFunction() { + @Override public Icon fun(ElementIconRequest request) { final PsiElement element = request.getElement(); if (element == null || !element.isValid()) return null; @@ -76,6 +77,7 @@ public abstract class ElementBase extends UserDataHolderBase implements Iconable } }; + @Override @Nullable public Icon getIcon(int flags) { if (!(this instanceof PsiElement)) return null; diff --git a/platform/core-api/src/com/intellij/psi/search/EverythingGlobalScope.java b/platform/core-api/src/com/intellij/psi/search/EverythingGlobalScope.java index 7b2a2e457983..41d7f2dfde51 100644 --- a/platform/core-api/src/com/intellij/psi/search/EverythingGlobalScope.java +++ b/platform/core-api/src/com/intellij/psi/search/EverythingGlobalScope.java @@ -32,18 +32,22 @@ public class EverythingGlobalScope extends GlobalSearchScope { public EverythingGlobalScope() { } + @Override public int compare(final VirtualFile file1, final VirtualFile file2) { return 0; } + @Override public boolean contains(final VirtualFile file) { return true; } + @Override public boolean isSearchInLibraries() { return true; } + @Override public boolean isSearchInModuleContent(@NotNull final Module aModule) { return true; } diff --git a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java index 6d4bb6a43a00..c4d0c8fad934 100644 --- a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java +++ b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java @@ -49,6 +49,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw public abstract boolean contains(VirtualFile file); + @Override public Project getProject() { return myProject; } @@ -70,6 +71,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return isSearchInModuleContent(aModule); } + @Override public boolean accept(VirtualFile file) { return contains(file); } @@ -111,6 +113,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return new LocalSearchScope(result.toArray(new PsiElement[result.size()]), null, localScope2.isIgnoreInjectedPsi()); } + @Override @NotNull public GlobalSearchScope union(@NotNull SearchScope scope) { if (scope instanceof GlobalSearchScope) return uniteWith((GlobalSearchScope)scope); @@ -166,6 +169,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw @NotNull public static GlobalSearchScope notScope(@NotNull final GlobalSearchScope scope) { return new DelegatingGlobalSearchScope(scope) { + @Override public boolean contains(final VirtualFile file) { return !myBaseScope.contains(file); } @@ -272,6 +276,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return new IntersectionScope(this, scope, null); } + @Override public String getDisplayName() { if (myDisplayName == null) { return PsiBundle.message("psi.search.scope.intersection", myScope1.getDisplayName(), myScope2.getDisplayName()); @@ -279,10 +284,12 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return myDisplayName; } + @Override public boolean contains(VirtualFile file) { return myScope1.contains(file) && myScope2.contains(file); } + @Override public int compare(VirtualFile file1, VirtualFile file2) { int res1 = myScope1.compare(file1, file2); int res2 = myScope2.compare(file1, file2); @@ -297,18 +304,22 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return myScope1.isSearchInModuleContent(aModule) && myScope2.isSearchInModuleContent(aModule); } + @Override public boolean isSearchInModuleContent(@NotNull final Module aModule, final boolean testSources) { return myScope1.isSearchInModuleContent(aModule, testSources) && myScope2.isSearchInModuleContent(aModule, testSources); } + @Override public boolean isSearchInLibraries() { return myScope1.isSearchInLibraries() && myScope2.isSearchInLibraries(); } + @Override public boolean isSearchOutsideRootModel() { return myScope1.isSearchOutsideRootModel() && myScope2.isSearchOutsideRootModel(); } @@ -343,6 +354,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw myDisplayName = displayName; } + @Override public String getDisplayName() { if (myDisplayName == null) { return PsiBundle.message("psi.search.scope.union", myScope1.getDisplayName(), myScope2.getDisplayName()); @@ -350,6 +362,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return myDisplayName; } + @Override public boolean contains(VirtualFile file) { return myScope1.contains(file) || myScope2.contains(file); } @@ -359,6 +372,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return myScope1.isSearchOutsideRootModel() || myScope2.isSearchOutsideRootModel(); } + @Override public int compare(VirtualFile file1, VirtualFile file2) { int res1 = myScope1.contains(file1) && myScope1.contains(file2) ? myScope1.compare(file1, file2) : 0; int res2 = myScope2.contains(file1) && myScope2.contains(file2) ? myScope2.compare(file1, file2) : 0; @@ -373,14 +387,17 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return myScope1.isSearchInModuleContent(aModule) || myScope2.isSearchInModuleContent(aModule); } + @Override public boolean isSearchInModuleContent(@NotNull final Module aModule, final boolean testSources) { return myScope1.isSearchInModuleContent(aModule, testSources) || myScope2.isSearchInModuleContent(aModule, testSources); } + @Override public boolean isSearchInLibraries() { return myScope1.isSearchInLibraries() || myScope2.isSearchInLibraries(); } @@ -418,6 +435,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw myFileTypes = fileTypes; } + @Override public boolean contains(VirtualFile file) { if (!super.contains(file)) return false; @@ -476,27 +494,33 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw } private static class EmptyScope extends GlobalSearchScope { + @Override public boolean contains(VirtualFile file) { return false; } + @Override public int compare(VirtualFile file1, VirtualFile file2) { return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return false; } + @Override public boolean isSearchInLibraries() { return false; } + @Override @NotNull public GlobalSearchScope intersectWith(@NotNull final GlobalSearchScope scope) { return this; } + @Override @NotNull public GlobalSearchScope uniteWith(@NotNull final GlobalSearchScope scope) { return scope; @@ -516,18 +540,22 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw myModule = myVirtualFile != null ? fileIndex.getModuleForFile(myVirtualFile) : null; } + @Override public boolean contains(VirtualFile file) { return Comparing.equal(myVirtualFile, file); } + @Override public int compare(VirtualFile file1, VirtualFile file2) { return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return aModule == myModule; } + @Override public boolean isSearchInLibraries() { return myModule == null; } diff --git a/platform/core-api/src/com/intellij/psi/search/LocalSearchScope.java b/platform/core-api/src/com/intellij/psi/search/LocalSearchScope.java index a05cfcee9b9a..562c2b617f85 100644 --- a/platform/core-api/src/com/intellij/psi/search/LocalSearchScope.java +++ b/platform/core-api/src/com/intellij/psi/search/LocalSearchScope.java @@ -79,6 +79,7 @@ public class LocalSearchScope extends SearchScope { return myIgnoreInjectedPsi; } + @Override public String getDisplayName() { return myDisplayName == null ? super.getDisplayName() : myDisplayName; } @@ -166,6 +167,7 @@ public class LocalSearchScope extends SearchScope { return "LocalSearchScope:" + result; } + @Override @NotNull public SearchScope union(@NotNull SearchScope scope) { if (scope instanceof LocalSearchScope) return union((LocalSearchScope)scope); diff --git a/platform/core-api/src/com/intellij/psi/search/PsiElementProcessor.java b/platform/core-api/src/com/intellij/psi/search/PsiElementProcessor.java index 31a065bd0f71..03ac22074d58 100644 --- a/platform/core-api/src/com/intellij/psi/search/PsiElementProcessor.java +++ b/platform/core-api/src/com/intellij/psi/search/PsiElementProcessor.java @@ -61,6 +61,7 @@ public interface PsiElementProcessor { return myCollection.toArray(array); } + @Override public boolean execute(@NotNull T element) { myCollection.add(element); return true; @@ -79,6 +80,7 @@ public interface PsiElementProcessor { myFilter = filter; } + @Override public boolean execute(@NotNull T element) { return !myFilter.isAccepted(element) || super.execute(element); } @@ -98,6 +100,7 @@ public interface PsiElementProcessor { myLimit = limit; } + @Override public boolean execute(@NotNull T element) { if (myCount.get() == myLimit){ myOverflow = true; @@ -128,6 +131,7 @@ public interface PsiElementProcessor { return false; } + @Override public boolean execute(@NotNull T element) { return setFound(element); } @@ -140,6 +144,7 @@ public interface PsiElementProcessor { myFilter = filter; } + @Override public boolean execute(@NotNull T element) { return !myFilter.isAccepted(element) || super.execute(element); } diff --git a/platform/core-api/src/com/intellij/psi/search/searches/ExtensibleQueryFactory.java b/platform/core-api/src/com/intellij/psi/search/searches/ExtensibleQueryFactory.java index 2a61b6285ea9..05757309227d 100644 --- a/platform/core-api/src/com/intellij/psi/search/searches/ExtensibleQueryFactory.java +++ b/platform/core-api/src/com/intellij/psi/search/searches/ExtensibleQueryFactory.java @@ -43,9 +43,11 @@ public class ExtensibleQueryFactory extends QueryFactory>>() { + @Override @NotNull protected SimpleSmartExtensionPoint> compute() { return new SimpleSmartExtensionPoint>(new SmartList>()){ + @Override @NotNull protected ExtensionPoint> getExtensionPoint() { @NonNls String epName = ExtensibleQueryFactory.this.getClass().getName(); @@ -64,16 +66,19 @@ public class ExtensibleQueryFactory extends QueryFactory queryExecutor, Disposable parentDisposable) { registerExecutor(queryExecutor); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { unregisterExecutor(queryExecutor); } }); } + @Override public void registerExecutor(@NotNull final QueryExecutor queryExecutor) { myPoint.getValue().addExplicitExtension(queryExecutor); } + @Override public void unregisterExecutor(@NotNull final QueryExecutor queryExecutor) { myPoint.getValue().removeExplicitExtension(queryExecutor); } diff --git a/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java b/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java index a22f13351f35..248095e839eb 100644 --- a/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java +++ b/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java @@ -32,6 +32,7 @@ import org.jetbrains.annotations.Nullable; public class DefaultStubBuilder implements StubBuilder { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.stubs.DefaultStubBuilder"); + @Override public StubElement buildStubTree(@NotNull PsiFile file) { return buildStubTreeFor(file, createStubForFile(file)); } diff --git a/platform/core-api/src/com/intellij/psi/stubs/PsiFileStubImpl.java b/platform/core-api/src/com/intellij/psi/stubs/PsiFileStubImpl.java index 96f60c106519..5ecb40a1e5bd 100644 --- a/platform/core-api/src/com/intellij/psi/stubs/PsiFileStubImpl.java +++ b/platform/core-api/src/com/intellij/psi/stubs/PsiFileStubImpl.java @@ -32,18 +32,22 @@ public class PsiFileStubImpl extends StubBase implements P myFile = file; } + @Override public T getPsi() { return myFile; } + @Override public void setPsi(final T psi) { myFile = psi; } + @Override public IStubElementType getStubType() { return null; } + @Override public IStubFileElementType getType() { return TYPE; } diff --git a/platform/core-api/src/com/intellij/psi/stubs/StubBase.java b/platform/core-api/src/com/intellij/psi/stubs/StubBase.java index 8a5255bd0c22..c48c6c812e8f 100644 --- a/platform/core-api/src/com/intellij/psi/stubs/StubBase.java +++ b/platform/core-api/src/com/intellij/psi/stubs/StubBase.java @@ -47,14 +47,17 @@ public abstract class StubBase extends UserDataHolderBase } } + @Override public StubElement getParentStub() { return myParent; } + @Override public List getChildrenStubs() { return myChildren; } + @Override @Nullable public

StubElement

findChildStubByType(final IStubElementType elementType) { final List childrenStubs = getChildrenStubs(); @@ -77,6 +80,7 @@ public abstract class StubBase extends UserDataHolderBase return myPsi; } + @Override public T getPsi() { T psi = myPsi; if (psi != null) return psi; @@ -92,6 +96,7 @@ public abstract class StubBase extends UserDataHolderBase } + @Override public E[] getChildrenByType(final IElementType elementType, E[] array) { final int count = countChildren(elementType); @@ -102,6 +107,7 @@ public abstract class StubBase extends UserDataHolderBase return array; } + @Override public E[] getChildrenByType(final TokenSet filter, E[] array) { final int count = countChildren(filter); @@ -112,6 +118,7 @@ public abstract class StubBase extends UserDataHolderBase return array; } + @Override public E[] getChildrenByType(final IElementType elementType, final ArrayFactory f) { int count = countChildren(elementType); @@ -167,6 +174,7 @@ public abstract class StubBase extends UserDataHolderBase assert count == result.length; } + @Override public E[] getChildrenByType(final TokenSet filter, final ArrayFactory f) { final int count = countChildren(filter); @@ -178,6 +186,7 @@ public abstract class StubBase extends UserDataHolderBase return array; } + @Override @Nullable public E getParentStubOfType(final Class parentClass) { StubElement parent = myParent; @@ -192,6 +201,7 @@ public abstract class StubBase extends UserDataHolderBase return null; } + @Override public IStubElementType getStubType() { return myElementType; } diff --git a/platform/core-api/src/com/intellij/psi/tree/IElementType.java b/platform/core-api/src/com/intellij/psi/tree/IElementType.java index 3815860c1331..dfa362120971 100644 --- a/platform/core-api/src/com/intellij/psi/tree/IElementType.java +++ b/platform/core-api/src/com/intellij/psi/tree/IElementType.java @@ -48,6 +48,7 @@ public class IElementType { * @see #enumerate(Predicate) */ public static final Predicate TRUE = new Predicate() { + @Override public boolean matches(IElementType type) { return true; } diff --git a/platform/core-api/src/com/intellij/psi/tree/IFileElementType.java b/platform/core-api/src/com/intellij/psi/tree/IFileElementType.java index 85c85b1100b3..d0f0fa53bfe2 100644 --- a/platform/core-api/src/com/intellij/psi/tree/IFileElementType.java +++ b/platform/core-api/src/com/intellij/psi/tree/IFileElementType.java @@ -31,6 +31,7 @@ public class IFileElementType extends ILazyParseableElementType { super(debugName, language); } + @Override public ASTNode parseContents(final ASTNode chameleon) { final PsiElement psi = chameleon.getPsi(); assert psi != null : "Bad chameleon: " + chameleon; diff --git a/platform/core-api/src/com/intellij/psi/tree/IStubFileElementType.java b/platform/core-api/src/com/intellij/psi/tree/IStubFileElementType.java index d1b695075bd4..76741fc419db 100644 --- a/platform/core-api/src/com/intellij/psi/tree/IStubFileElementType.java +++ b/platform/core-api/src/com/intellij/psi/tree/IStubFileElementType.java @@ -44,17 +44,21 @@ public class IStubFileElementType extends IFileElementTyp return new DefaultStubBuilder(); } + @Override public String getExternalId() { return "psi.file"; } + @Override public void serialize(final T stub, final StubOutputStream dataStream) throws IOException { } + @Override public T deserialize(final StubInputStream dataStream, final StubElement parentStub) throws IOException { return (T)new PsiFileStubImpl(null); } + @Override public void indexStub(final PsiFileStub stub, final IndexSink sink) { } diff --git a/platform/core-api/src/com/intellij/psi/util/PsiModificationTracker.java b/platform/core-api/src/com/intellij/psi/util/PsiModificationTracker.java index a3d72a9d48ab..c5fa9d6cd8db 100644 --- a/platform/core-api/src/com/intellij/psi/util/PsiModificationTracker.java +++ b/platform/core-api/src/com/intellij/psi/util/PsiModificationTracker.java @@ -55,6 +55,7 @@ public interface PsiModificationTracker extends ModificationTracker { * Tracks any PSI modification. * @return current counter value. */ + @Override long getModificationCount(); long getOutOfCodeBlockModificationCount(); diff --git a/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java b/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java index 61a462856a33..50e7b40006d1 100644 --- a/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java +++ b/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java @@ -40,189 +40,233 @@ import java.util.Collection; public class PsiUtilCore { @SuppressWarnings("ConstantConditions") public static final PsiElement NULL_PSI_ELEMENT = new PsiElement() { + @Override @NotNull public Project getProject() { throw new PsiInvalidElementAccessException(this); } + @Override @NotNull public Language getLanguage() { throw new IllegalAccessError(this.toString()); } + @Override public PsiManager getManager() { return null; } + @Override @NotNull public PsiElement[] getChildren() { return new PsiElement[0]; } + @Override public PsiElement getParent() { return null; } + @Override @Nullable public PsiElement getFirstChild() { return null; } + @Override @Nullable public PsiElement getLastChild() { return null; } + @Override @Nullable public PsiElement getNextSibling() { return null; } + @Override @Nullable public PsiElement getPrevSibling() { return null; } + @Override public PsiFile getContainingFile() { throw new PsiInvalidElementAccessException(this); } + @Override public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return 0; } + @Override public int getTextLength() { return 0; } + @Override public PsiElement findElementAt(int offset) { return null; } + @Override @Nullable public PsiReference findReferenceAt(int offset) { return null; } + @Override public int getTextOffset() { return 0; } + @Override public String getText() { return null; } + @Override @NotNull public char[] textToCharArray() { return new char[0]; } + @Override public PsiElement getNavigationElement() { return null; } + @Override public PsiElement getOriginalElement() { return null; } + @Override public boolean textMatches(@NotNull CharSequence text) { return false; } + @Override public boolean textMatches(@NotNull PsiElement element) { return false; } + @Override public boolean textContains(char c) { return false; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { } + @Override public PsiElement copy() { return null; } + @Override public PsiElement add(@NotNull PsiElement element) { return null; } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) { return null; } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) { return null; } + @Override public void checkAdd(@NotNull PsiElement element) { } + @Override public PsiElement addRange(PsiElement first, PsiElement last) { return null; } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) { return null; } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) { return null; } + @Override public void delete() { } + @Override public void checkDelete() { } + @Override public void deleteChildRange(PsiElement first, PsiElement last) { } + @Override public PsiElement replace(@NotNull PsiElement newElement) { return null; } + @Override public boolean isValid() { return false; } + @Override public boolean isWritable() { return false; } + @Override @Nullable public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return new PsiReference[0]; } + @Override public T getCopyableUserData(Key key) { return null; } + @Override public void putCopyableUserData(Key key, T value) { } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -230,40 +274,49 @@ public class PsiUtilCore { return false; } + @Override public PsiElement getContext() { return null; } + @Override public boolean isPhysical() { return false; } + @Override @NotNull public GlobalSearchScope getResolveScope() { return GlobalSearchScope.EMPTY_SCOPE; } + @Override @NotNull public SearchScope getUseScope() { return GlobalSearchScope.EMPTY_SCOPE; } + @Override public ASTNode getNode() { return null; } + @Override public T getUserData(@NotNull Key key) { return null; } + @Override public void putUserData(@NotNull Key key, T value) { } + @Override public Icon getIcon(int flags) { return null; } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } diff --git a/platform/core-api/src/com/intellij/testFramework/LightVirtualFile.java b/platform/core-api/src/com/intellij/testFramework/LightVirtualFile.java index bc1c23bb7f04..d9d63d180c76 100644 --- a/platform/core-api/src/com/intellij/testFramework/LightVirtualFile.java +++ b/platform/core-api/src/com/intellij/testFramework/LightVirtualFile.java @@ -123,41 +123,51 @@ public class LightVirtualFile extends VirtualFile { private static class MyVirtualFileSystem extends DeprecatedVirtualFileSystem { @NonNls private static final String PROTOCOL = "mock"; + @Override @NotNull public String getProtocol() { return PROTOCOL; } + @Override @Nullable public VirtualFile findFileByPath(@NotNull String path) { return null; } + @Override public void refresh(boolean asynchronous) { } + @Override @Nullable public VirtualFile refreshAndFindFileByPath(@NotNull String path) { return null; } + @Override public void deleteFile(Object requestor, @NotNull VirtualFile vFile) throws IOException { } + @Override public void moveFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent) throws IOException { } + @Override public VirtualFile copyFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent, @NotNull final String copyName) throws IOException { throw new IOException("Cannot copy files"); } + @Override public void renameFile(Object requestor, @NotNull VirtualFile vFile, @NotNull String newName) throws IOException { } + @Override public VirtualFile createChildFile(Object requestor, @NotNull VirtualFile vDir, @NotNull String fileName) throws IOException { throw new IOException("Cannot create files"); } + @Override @NotNull public VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile vDir, @NotNull String dirName) throws IOException { throw new IOException("Cannot create directories"); @@ -166,6 +176,7 @@ public class LightVirtualFile extends VirtualFile { private static final MyVirtualFileSystem ourFileSystem = new MyVirtualFileSystem(); + @Override @NotNull public VirtualFileSystem getFileSystem() { return ourFileSystem; @@ -176,23 +187,28 @@ public class LightVirtualFile extends VirtualFile { return myFileType; } + @Override public String getPath() { return "/" + getName(); } + @Override @NotNull public String getName() { return myName; } + @Override public boolean isWritable() { return myIsWritable; } + @Override public boolean isDirectory() { return false; } + @Override public boolean isValid() { return myValid; } @@ -201,21 +217,26 @@ public class LightVirtualFile extends VirtualFile { myValid = valid; } + @Override public VirtualFile getParent() { return null; } + @Override public VirtualFile[] getChildren() { return EMPTY_ARRAY; } + @Override public InputStream getInputStream() throws IOException { return VfsUtilCore.byteStreamSkippingBOM(contentsToByteArray(), this); } + @Override @NotNull public OutputStream getOutputStream(Object requestor, final long newModificationStamp, long newTimeStamp) throws IOException { return VfsUtilCore.outputStreamAddingBOM(new ByteArrayOutputStream() { + @Override public void close() { myModStamp = newModificationStamp; setContent(toString()); @@ -223,6 +244,7 @@ public class LightVirtualFile extends VirtualFile { },this); } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { final Charset charset = getCharset(); @@ -230,14 +252,17 @@ public class LightVirtualFile extends VirtualFile { return charset != null ? s.getBytes(charset.name()) : s.getBytes(); } + @Override public long getModificationStamp() { return myModStamp; } + @Override public long getTimeStamp() { return 0; // todo[max] : Add UnsupporedOperationException at better times. } + @Override public long getLength() { try { return contentsToByteArray().length; @@ -249,6 +274,7 @@ public class LightVirtualFile extends VirtualFile { } } + @Override public void refresh(boolean asynchronous, boolean recursive, Runnable postRunnable) { } @@ -261,6 +287,7 @@ public class LightVirtualFile extends VirtualFile { myIsWritable = b; } + @Override public void rename(Object requestor, @NotNull String newName) throws IOException { myName = newName; } diff --git a/platform/core-api/src/com/intellij/ui/LayeredIcon.java b/platform/core-api/src/com/intellij/ui/LayeredIcon.java index 14e252db2776..75ce269adda3 100644 --- a/platform/core-api/src/com/intellij/ui/LayeredIcon.java +++ b/platform/core-api/src/com/intellij/ui/LayeredIcon.java @@ -97,6 +97,7 @@ public class LayeredIcon implements Icon { } } + @Override public void paintIcon(Component c, Graphics g, int x, int y) { for(int i = 0; i < myIcons.length; i++){ Icon icon = myIcons[i]; @@ -113,10 +114,12 @@ public class LayeredIcon implements Icon { myDisabledLayers[layer] = !enabled; } + @Override public int getIconWidth() { return myWidth; } + @Override public int getIconHeight() { return myHeight; } diff --git a/platform/core-api/src/com/intellij/ui/RowIcon.java b/platform/core-api/src/com/intellij/ui/RowIcon.java index c48f0c1144bb..a9669f3f444e 100644 --- a/platform/core-api/src/com/intellij/ui/RowIcon.java +++ b/platform/core-api/src/com/intellij/ui/RowIcon.java @@ -53,6 +53,7 @@ public class RowIcon implements Icon { return myIcons[index]; } + @Override public void paintIcon(Component c, Graphics g, int x, int y) { int _x = x; for (Icon icon : myIcons) { @@ -63,10 +64,12 @@ public class RowIcon implements Icon { } } + @Override public int getIconWidth() { return myWidth; } + @Override public int getIconHeight() { return myHeight; } diff --git a/platform/core-api/src/com/intellij/util/IconUtil.java b/platform/core-api/src/com/intellij/util/IconUtil.java index 67cda7202ec3..b5e8538caee1 100644 --- a/platform/core-api/src/com/intellij/util/IconUtil.java +++ b/platform/core-api/src/com/intellij/util/IconUtil.java @@ -111,6 +111,7 @@ public class IconUtil { return IconDeferrer.getInstance() .defer(lastIcon != null ? lastIcon : VirtualFilePresentation.getIcon(file), new FileIconKey(file, project, flags), new Function() { + @Override public Icon fun(final FileIconKey key) { VirtualFile file = key.getFile(); int flags = key.getFlags(); diff --git a/platform/core-api/src/com/intellij/util/indexing/ID.java b/platform/core-api/src/com/intellij/util/indexing/ID.java index 463fcaee4276..66c5cdfdbe79 100644 --- a/platform/core-api/src/com/intellij/util/indexing/ID.java +++ b/platform/core-api/src/com/intellij/util/indexing/ID.java @@ -95,6 +95,7 @@ public class ID { final String[] names = new String[ourNameToIdRegistry.size()]; ourNameToIdRegistry.forEachEntry(new TObjectIntProcedure() { + @Override public boolean execute(final String key, final int value) { names[value - 1] = key; return true; diff --git a/platform/core-impl/src/com/intellij/extapi/psi/ASTDelegatePsiElement.java b/platform/core-impl/src/com/intellij/extapi/psi/ASTDelegatePsiElement.java index 06672d2c538b..c15da56a4c64 100644 --- a/platform/core-impl/src/com/intellij/extapi/psi/ASTDelegatePsiElement.java +++ b/platform/core-impl/src/com/intellij/extapi/psi/ASTDelegatePsiElement.java @@ -54,12 +54,14 @@ public abstract class ASTDelegatePsiElement extends PsiElementBase { private static final List EMPTY = Collections.emptyList(); + @Override public PsiManagerEx getManager() { final PsiElement parent = getParent(); if (parent == null) throw new PsiInvalidElementAccessException(this); return (PsiManagerEx)parent.getManager(); } + @Override @NotNull public PsiElement[] getChildren() { PsiElement psiChild = getFirstChild(); @@ -75,70 +77,86 @@ public abstract class ASTDelegatePsiElement extends PsiElementBase { return PsiUtilCore.toPsiElementArray(result); } + @Override public PsiElement getFirstChild() { return SharedImplUtil.getFirstChild(getNode()); } + @Override public PsiElement getLastChild() { return SharedImplUtil.getLastChild(getNode()); } + @Override public PsiElement getNextSibling() { return SharedImplUtil.getNextSibling(getNode()); } + @Override public PsiElement getPrevSibling() { return SharedImplUtil.getPrevSibling(getNode()); } + @Override public TextRange getTextRange() { return getNode().getTextRange(); } + @Override public int getStartOffsetInParent() { return getNode().getStartOffset() - getNode().getTreeParent().getStartOffset(); } + @Override public int getTextLength() { return getNode().getTextLength(); } + @Override public PsiElement findElementAt(int offset) { ASTNode treeElement = getNode().findLeafElementAt(offset); return SourceTreeToPsiMap.treeElementToPsi(treeElement); } + @Override public int getTextOffset() { return getNode().getStartOffset(); } + @Override public String getText() { return getNode().getText(); } + @Override @NotNull public char[] textToCharArray() { return getNode().getText().toCharArray(); } + @Override public boolean textContains(char c) { return getNode().textContains(c); } + @Override public T getCopyableUserData(Key key) { return getNode().getCopyableUserData(key); } + @Override public void putCopyableUserData(Key key, T value) { getNode().putCopyableUserData(key, value); } + @Override @NotNull public abstract ASTNode getNode(); public void subtreeChanged() { } + @Override @NotNull public Language getLanguage() { return getNode().getElementType().getLanguage(); @@ -193,6 +211,7 @@ public abstract class ASTDelegatePsiElement extends PsiElementBase { protected T[] findChildrenByType(IElementType elementType, Class arrayClass) { return ContainerUtil.map2Array(SharedImplUtil.getChildrenOfType(getNode(), elementType), arrayClass, new Function() { + @Override public T fun(final ASTNode s) { return (T)s.getPsi(); } @@ -232,20 +251,24 @@ public abstract class ASTDelegatePsiElement extends PsiElementBase { protected T[] findChildrenByType(TokenSet elementType, Class arrayClass) { return (T[])ContainerUtil.map2Array(getNode().getChildren(elementType), arrayClass, new Function() { + @Override public PsiElement fun(final ASTNode s) { return s.getPsi(); } }); } + @Override public PsiElement copy() { return getNode().copyElement().getPsi(); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { return addInnerBefore(element, null); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { return addInnerBefore(element, anchor); } @@ -263,6 +286,7 @@ public abstract class ASTDelegatePsiElement extends PsiElementBase { throw new IncorrectOperationException("Element cannot be added"); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); diff --git a/platform/core-impl/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java b/platform/core-impl/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java index 58233c7f4961..2948cb4bcb1d 100644 --- a/platform/core-impl/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java +++ b/platform/core-impl/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java @@ -31,10 +31,12 @@ public class ASTWrapperPsiElement extends ASTDelegatePsiElement { myNode = node; } + @Override public PsiElement getParent() { return SharedImplUtil.getParent(getNode()); } + @Override @NotNull public ASTNode getNode() { return myNode; diff --git a/platform/core-impl/src/com/intellij/extapi/psi/PsiFileBase.java b/platform/core-impl/src/com/intellij/extapi/psi/PsiFileBase.java index 153a089bee01..337d70825a22 100644 --- a/platform/core-impl/src/com/intellij/extapi/psi/PsiFileBase.java +++ b/platform/core-impl/src/com/intellij/extapi/psi/PsiFileBase.java @@ -59,11 +59,13 @@ public abstract class PsiFileBase extends PsiFileImpl { "Language " + baseLanguage + " doesn't participate in view provider " + viewProvider + ": " + new ArrayList(languages)); } + @Override @NotNull public final Language getLanguage() { return myLanguage; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitFile(this); } diff --git a/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java b/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java index 1e2f64c823df..3f05755e0b84 100644 --- a/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java +++ b/platform/core-impl/src/com/intellij/extapi/psi/StubBasedPsiElementBase.java @@ -59,6 +59,7 @@ public class StubBasedPsiElementBase extends ASTDelegateP myElementType = node.getElementType(); } + @Override @NotNull public ASTNode getNode() { ASTNode node = myNode; @@ -111,6 +112,7 @@ public class StubBasedPsiElementBase extends ASTDelegateP return myElementType.getLanguage(); } + @Override public PsiFile getContainingFile() { StubElement stub = myStub; if (stub != null) { @@ -123,10 +125,12 @@ public class StubBasedPsiElementBase extends ASTDelegateP return super.getContainingFile(); } + @Override public boolean isWritable() { return getContainingFile().isWritable(); } + @Override public boolean isValid() { T stub = myStub; if (stub != null) { @@ -140,19 +144,23 @@ public class StubBasedPsiElementBase extends ASTDelegateP return super.isValid(); } + @Override public PsiManagerEx getManager() { return (PsiManagerEx)getContainingFile().getManager(); } + @Override @NotNull public Project getProject() { return getContainingFile().getProject(); } + @Override public boolean isPhysical() { return getContainingFile().isPhysical(); } + @Override public PsiElement getContext() { T stub = myStub; if (stub != null) { @@ -172,6 +180,7 @@ public class StubBasedPsiElementBase extends ASTDelegateP return SharedImplUtil.getParent(getNode()); } + @Override public void subtreeChanged() { super.subtreeChanged(); setStub(null); @@ -181,6 +190,7 @@ public class StubBasedPsiElementBase extends ASTDelegateP return SharedImplUtil.getParent(getNode()); } + @Override public PsiElement getParent() { return getParentByTree(); } @@ -302,6 +312,7 @@ public class StubBasedPsiElementBase extends ASTDelegateP return PsiTreeUtil.getParentOfType(this, parentClass); } + @Override protected Object clone() { final StubBasedPsiElementBase stubbless = (StubBasedPsiElementBase)super.clone(); stubbless.myStub = null; diff --git a/platform/core-impl/src/com/intellij/lang/ForeignLeafType.java b/platform/core-impl/src/com/intellij/lang/ForeignLeafType.java index 553b4778a65e..bc114917769d 100644 --- a/platform/core-impl/src/com/intellij/lang/ForeignLeafType.java +++ b/platform/core-impl/src/com/intellij/lang/ForeignLeafType.java @@ -29,6 +29,7 @@ public class ForeignLeafType extends TokenWrapper implements ILeafElementType { super(delegate, value); } + @Override @NotNull public ASTNode createLeafNode(CharSequence leafText) { return new ForeignLeafPsiElement(getDelegate(), getValue()); diff --git a/platform/core-impl/src/com/intellij/lang/LanguageTokenSeparatorGenerators.java b/platform/core-impl/src/com/intellij/lang/LanguageTokenSeparatorGenerators.java index bcb9f30ab746..843924443d7d 100644 --- a/platform/core-impl/src/com/intellij/lang/LanguageTokenSeparatorGenerators.java +++ b/platform/core-impl/src/com/intellij/lang/LanguageTokenSeparatorGenerators.java @@ -28,6 +28,7 @@ public class LanguageTokenSeparatorGenerators extends LanguageExtension myUserData = null; private final LimitedPool START_MARKERS = new LimitedPool(2000, new LimitedPool.ObjectFactory() { + @Override public StartMarker create() { return new StartMarker(); } + @Override public void cleanup(final StartMarker startMarker) { startMarker.clean(); } }); private final LimitedPool DONE_MARKERS = new LimitedPool(2000, new LimitedPool.ObjectFactory() { + @Override public DoneMarker create() { return new DoneMarker(); } + @Override public void cleanup(final DoneMarker doneMarker) { doneMarker.clean(); } }); private static final WhitespacesAndCommentsBinder DEFAULT_LEFT_EDGE_TOKEN_BINDER = new WhitespacesAndCommentsBinder() { + @Override public int getEdgePosition(final List tokens, final boolean atStreamEdge, final TokenTextGetter getter) { return tokens.size(); } }; private static final WhitespacesAndCommentsBinder DEFAULT_RIGHT_EDGE_TOKEN_BINDER = new WhitespacesAndCommentsBinder() { + @Override public int getEdgePosition(final List tokens, final boolean atStreamEdge, final TokenTextGetter getter) { return 0; } @@ -228,14 +234,17 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myLexemeCount = i; } + @Override public Project getProject() { return myProject; } + @Override public void enforceCommentTokens(TokenSet tokens) { myComments = tokens; } + @Override @Nullable public LighterASTNode getLatestDoneMarker() { int index = myProduction.size() - 1; @@ -276,6 +285,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myEdgeTokenBinder = DEFAULT_LEFT_EDGE_TOKEN_BINDER; } + @Override public void clean() { super.clean(); myBuilder = null; @@ -287,6 +297,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myEdgeTokenBinder = DEFAULT_LEFT_EDGE_TOKEN_BINDER; } + @Override public int hc() { if (myHC == -1) { PsiBuilderImpl builder = myBuilder; @@ -319,10 +330,12 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return myHC; } + @Override public int getStartOffset() { return myBuilder.myLexStarts[myLexemeIndex]; } + @Override public int getEndOffset() { return myBuilder.myLexStarts[myDoneMarker.myLexemeIndex]; } @@ -338,33 +351,40 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { } } + @Override public Marker precede() { return myBuilder.precede(this); } + @Override public void drop() { myBuilder.drop(this); } + @Override public void rollbackTo() { myBuilder.rollbackTo(this); } + @Override public void done(IElementType type) { myType = type; myBuilder.done(this); } + @Override public void collapse(IElementType type) { myType = type; myBuilder.collapse(this); } + @Override public void doneBefore(IElementType type, Marker before) { myType = type; myBuilder.doneBefore(this, before); } + @Override public void doneBefore(final IElementType type, final Marker before, final String errorMessage) { final StartMarker marker = (StartMarker)before; myBuilder.myProduction.add(myBuilder.myProduction.lastIndexOf(marker), @@ -372,20 +392,24 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { doneBefore(type, before); } + @Override public void error(String message) { myType = TokenType.ERROR_ELEMENT; myBuilder.error(this, message); } + @Override public void errorBefore(final String message, final Marker before) { myType = TokenType.ERROR_ELEMENT; myBuilder.errorBefore(this, message, before); } + @Override public IElementType getTokenType() { return myType; } + @Override public void setCustomEdgeTokenBinders(final WhitespacesAndCommentsBinder left, final WhitespacesAndCommentsBinder right) { if (left != null) { myEdgeTokenBinder = left; @@ -420,6 +444,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myHC = -1; } + @Override public int hc() { if (myHC == -1) { int hc = 0; @@ -446,10 +471,12 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return myHC; } + @Override public int getEndOffset() { return myTokenEnd; } + @Override public int getStartOffset() { return myTokenStart; } @@ -462,6 +489,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return myBuilder.myText.subSequence(myTokenStart, myTokenEnd); } + @Override public IElementType getTokenType() { return myTokenType; } @@ -474,16 +502,19 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { private MyTreeStructure myParent; private FlyweightCapableTreeStructure myParsed; + @Override public void clean() { super.clean(); myParent = null; myParsed = null; } + @Override public PsiFile getContainingFile() { return myBuilder.myFile; } + @Override public CharTable getCharTable() { return myBuilder.myCharTable; } @@ -510,24 +541,29 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myStart = marker; } + @Override public void clean() { super.clean(); myStart = null; myEdgeTokenBinder = DEFAULT_RIGHT_EDGE_TOKEN_BINDER; } + @Override public int hc() { throw new UnsupportedOperationException("Shall not be called on this kind of markers"); } + @Override public IElementType getTokenType() { throw new UnsupportedOperationException("Shall not be called on this kind of markers"); } + @Override public int getEndOffset() { throw new UnsupportedOperationException("Shall not be called on this kind of markers"); } + @Override public int getStartOffset() { throw new UnsupportedOperationException("Shall not be called on this kind of markers"); } @@ -541,6 +577,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myMessage = message; } + @Override public void clean() { super.clean(); myMessage = null; @@ -558,32 +595,39 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myEdgeTokenBinder = DEFAULT_RIGHT_EDGE_TOKEN_BINDER; } + @Override public void clean() { super.clean(); myMessage = null; } + @Override public int hc() { return 0; } + @Override public int getEndOffset() { return myBuilder.myLexStarts[myLexemeIndex]; } + @Override public int getStartOffset() { return myBuilder.myLexStarts[myLexemeIndex]; } + @Override public IElementType getTokenType() { return TokenType.ERROR_ELEMENT; } } + @Override public CharSequence getOriginalText() { return myText; } + @Override public IElementType getTokenType() { if (eof()) return null; @@ -596,6 +640,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return myLexTypes[myCurrentLexeme]; } + @Override public void setTokenTypeRemapper(final ITokenTypeRemapper remapper) { myRemapper = remapper; } @@ -644,6 +689,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myWhitespaceSkippedCallback = callback; } + @Override public void advanceLexer() { if (eof()) return; @@ -668,11 +714,13 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { } } + @Override public int getCurrentOffset() { if (eof()) return getOriginalText().length(); return myLexStarts[myCurrentLexeme]; } + @Override @Nullable public String getTokenText() { if (eof()) return null; @@ -698,6 +746,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return myWhitespaces.contains(token) || myComments.contains(token); } + @Override public Marker mark() { if (!myProduction.isEmpty()) { skipWhitespace(); @@ -719,6 +768,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return marker; } + @Override public final boolean eof() { if (!markTokenTypeChecked()) { skipWhitespace(); @@ -871,6 +921,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { } } + @Override public void error(String messageText) { final ProductionMarker lastMarker = myProduction.get(myProduction.size() - 1); if (lastMarker instanceof ErrorItem && lastMarker.myLexemeIndex == myCurrentLexeme) { @@ -879,6 +930,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myProduction.add(new ErrorItem(this, messageText, myCurrentLexeme)); } + @Override public ASTNode getTreeBuilt() { try { return buildTree(); @@ -916,6 +968,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return rootNode; } + @Override public FlyweightCapableTreeStructure getLightTree() { final StartMarker rootMarker = prepareLightTree(); return new MyTreeStructure(rootMarker, myParentLightTree); @@ -943,14 +996,17 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myConverter = new ASTConverter(rootNode); } + @Override public void nodeDeleted(@NotNull final ASTNode oldParent, @NotNull final ASTNode oldNode) { myDelegate.nodeDeleted(oldParent, oldNode); } + @Override public void nodeInserted(@NotNull final ASTNode oldParent, @NotNull final LighterASTNode newNode, final int pos) { myDelegate.nodeInserted(oldParent, myConverter.convert((Node)newNode), pos); } + @Override public void nodeReplaced(@NotNull final ASTNode oldChild, @NotNull final LighterASTNode newChild) { ASTNode converted = myConverter.convert((Node)newChild); myDelegate.nodeReplaced(oldChild, converted); @@ -1060,6 +1116,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { final List wsTokens = CollectionFactory.arrayList(myLexTypes, wsStartIndex, wsEndIndex); final boolean atEnd = wsStartIndex == 0 || wsEndIndex == myLexemeCount; final WhitespacesAndCommentsBinder.TokenTextGetter getter = new WhitespacesAndCommentsBinder.TokenTextGetter() { + @Override public CharSequence get(final int i) { return myText.subSequence(myLexStarts[wsStartIndex + i], myLexStarts[wsStartIndex + i + 1]); } @@ -1185,6 +1242,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myTreeStructure = treeStructure; } + @Override public ThreeState deepEqual(final ASTNode oldNode, final LighterASTNode newNode) { ProgressIndicatorProvider.checkCanceled(); @@ -1236,6 +1294,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return ThreeState.UNSURE; } + @Override public boolean typesEqual(final ASTNode n1, final LighterASTNode n2) { if (n1 instanceof PsiWhiteSpaceImpl) { return ourAnyLanguageWhitespaceTokens.contains(n2.getTokenType()) || @@ -1252,6 +1311,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return probablyWrapper; } + @Override public boolean hashCodesEqual(final ASTNode n1, final LighterASTNode n2) { if (n1 instanceof LeafElement && n2 instanceof Token) { boolean isForeign1 = n1 instanceof ForeignLeafPsiElement; @@ -1282,19 +1342,23 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { public MyTreeStructure(@NotNull StartMarker root, @Nullable final MyTreeStructure parentTree) { if (parentTree == null) { myPool = new LimitedPool(1000, new LimitedPool.ObjectFactory() { + @Override public void cleanup(final Token token) { token.clean(); } + @Override public Token create() { return new TokenNode(); } }); myLazyPool = new LimitedPool(200, new LimitedPool.ObjectFactory() { + @Override public void cleanup(final LazyParseableToken token) { token.clean(); } + @Override public LazyParseableToken create() { return new LazyParseableToken(); } @@ -1433,6 +1497,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { myRoot = root; } + @Override public ASTNode convert(final Node n) { if (n instanceof Token) { final Token token = (Token)n; @@ -1451,6 +1516,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { } } + @Override public void setDebugMode(boolean dbgMode) { myDebugMode = dbgMode; } @@ -1499,6 +1565,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { private Object[] cachedElementData; + @Override public void removeRange(final int fromIndex, final int toIndex) { super.removeRange(fromIndex, toIndex); } @@ -1507,6 +1574,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { super(256); } + @Override public int lastIndexOf(final Object o) { if (cachedElementData == null) return super.lastIndexOf(o); for (int i = size() - 1; i >= 0; i--) { @@ -1515,6 +1583,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { return -1; } + @Override public void ensureCapacity(final int minCapacity) { if (cachedElementData == null || minCapacity >= cachedElementData.length) { super.ensureCapacity(minCapacity); diff --git a/platform/core-impl/src/com/intellij/mock/MockProject.java b/platform/core-impl/src/com/intellij/mock/MockProject.java index 18f6d407fe4c..86d618118281 100644 --- a/platform/core-impl/src/com/intellij/mock/MockProject.java +++ b/platform/core-impl/src/com/intellij/mock/MockProject.java @@ -121,6 +121,7 @@ public class MockProject extends MockComponentManager implements Project { public void save() { } + @Override public T[] getExtensions(final ExtensionPointName extensionPointName) { return Extensions.getArea(this).getExtensionPoint(extensionPointName).getExtensions(); } diff --git a/platform/core-impl/src/com/intellij/openapi/components/impl/CachingComponentAdapter.java b/platform/core-impl/src/com/intellij/openapi/components/impl/CachingComponentAdapter.java index db025b32d4bc..e761340446fd 100644 --- a/platform/core-impl/src/com/intellij/openapi/components/impl/CachingComponentAdapter.java +++ b/platform/core-impl/src/com/intellij/openapi/components/impl/CachingComponentAdapter.java @@ -42,6 +42,7 @@ public class CachingComponentAdapter extends DecoratingComponentAdapter { delegate instanceof LifecycleStrategy && ((LifecycleStrategy)delegate).hasLifecycle(delegate.getComponentImplementation()); } + @Override public Object getComponentInstance(PicoContainer container) throws PicoInitializationException, PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException { @@ -60,6 +61,7 @@ public class CachingComponentAdapter extends DecoratingComponentAdapter { * Starts the cached component instance * {@inheritDoc} */ + @Override public void start(PicoContainer container) { if (delegateHasLifecylce) { if (disposed) throw new IllegalStateException("Already disposed"); @@ -73,6 +75,7 @@ public class CachingComponentAdapter extends DecoratingComponentAdapter { * Stops the cached component instance * {@inheritDoc} */ + @Override public void stop(PicoContainer container) { if (delegateHasLifecylce) { if (disposed) throw new IllegalStateException("Already disposed"); @@ -86,6 +89,7 @@ public class CachingComponentAdapter extends DecoratingComponentAdapter { * Disposes the cached component instance * {@inheritDoc} */ + @Override public void dispose(PicoContainer container) { if (delegateHasLifecylce) { if (disposed) throw new IllegalStateException("Already disposed"); @@ -94,6 +98,7 @@ public class CachingComponentAdapter extends DecoratingComponentAdapter { } } + @Override public boolean hasLifecycle() { return delegateHasLifecylce; } diff --git a/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java b/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java index 2823b63471e4..236ec3f4b68d 100644 --- a/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java @@ -69,6 +69,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements private Boolean myHeadless; protected ComponentsRegistry myComponentsRegistry = new ComponentsRegistry(); private final Condition myDisposedCondition = new Condition() { + @Override public boolean value(final Object o) { return isDisposed(); } @@ -84,6 +85,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements initComponents(); } + @Override public MessageBus getMessageBus() { assert !myDisposeCompleted && !myDisposed : "Already disposed"; assert myMessageBus != null : "Not initialized yet"; @@ -188,11 +190,13 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements } } + @Override public T getComponent(Class interfaceClass) { assert !myDisposeCompleted : "Already disposed: "+this; return getComponent(interfaceClass, null); } + @Override public T getComponent(Class interfaceClass, T defaultImplementation) { final T fromContainer = getComponentFromContainer(interfaceClass); if (fromContainer != null) return fromContainer; @@ -229,6 +233,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements return progressManager != null ? progressManager.getProgressIndicator() : null; } + @Override public void initializeComponent(Object component, boolean service) { } @@ -237,6 +242,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements LOG.error(ex); } + @Override @SuppressWarnings({"NonPrivateFieldAccessedInSynchronizedContext"}) public synchronized void registerComponent(final ComponentConfig config, final PluginDescriptor pluginDescriptor) { if (!config.prepareClasses(isHeadless())) return; @@ -250,6 +256,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements myInitializedComponents.remove(componentKey); } + @Override public synchronized boolean hasComponent(@NotNull Class interfaceClass) { return myComponentsRegistry.containsInterface(interfaceClass); } @@ -265,12 +272,14 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements return ArrayUtil.toObjectArray(components); } + @Override @SuppressWarnings({"unchecked"}) @NotNull public synchronized T[] getComponents(Class baseClass) { return myComponentsRegistry.getComponentsByType(baseClass); } + @Override @NotNull public MutablePicoContainer getPicoContainer() { assert !myDisposeCompleted : "Already disposed"; @@ -290,6 +299,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements return result; } + @Override public synchronized BaseComponent getComponent(String name) { return myComponentsRegistry.getComponentByName(name); } @@ -302,6 +312,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements return options != null && options.containsKey(option) && Boolean.valueOf(options.get(option)).booleanValue(); } + @Override public synchronized void dispose() { ApplicationManager.getApplication().assertIsDispatchThread(); myDisposeCompleted = true; @@ -316,6 +327,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements myPicoContainer = null; } + @Override public boolean isDisposed() { return myDisposed || temporarilyDisposed; } @@ -364,6 +376,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements } + @Override public void registerComponent(final ComponentConfig config) { registerComponent(config, null); } @@ -382,6 +395,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements return myComponentsRegistry.getConfig(componentImplementation); } + @Override @NotNull public Condition getDisposed() { return myDisposedCondition; @@ -549,22 +563,27 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements myConfig = config; } + @Override public Object getComponentKey() { return myConfig.getInterfaceClass(); } + @Override public Class getComponentImplementation() { return getDelegate().getComponentImplementation(); } + @Override public Object getComponentInstance(final PicoContainer container) throws PicoInitializationException, PicoIntrospectionException { return getDelegate().getComponentInstance(container); } + @Override public void verify(final PicoContainer container) throws PicoIntrospectionException { getDelegate().verify(container); } + @Override public void accept(final PicoVisitor visitor) { visitor.visitComponentAdapter(this); getDelegate().accept(visitor); @@ -603,6 +622,7 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements assert implementationClass != null; myDelegate = new CachingComponentAdapter(new ConstructorInjectionComponentAdapter(componentKey, implementationClass, null, true)) { + @Override public Object getComponentInstance(PicoContainer picoContainer) throws PicoInitializationException, PicoIntrospectionException { Object componentInstance = null; try { diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java index f380a2453e6c..72a53cbe6e08 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java @@ -29,7 +29,9 @@ public interface DocumentBulkUpdateListener { void updateFinished(Document doc); abstract class Adapter implements DocumentBulkUpdateListener { + @Override public void updateFinished(final Document doc) {} + @Override public void updateStarted(final Document doc) {} } } \ No newline at end of file diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java index 615a1424616d..087340cbacc3 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java @@ -35,6 +35,7 @@ public interface PrioritizedDocumentListener extends DocumentListener { * */ Comparator COMPARATOR = new Comparator() { + @Override public int compare(Object o1, Object o2) { return getPriority(o1) - getPriority(o2); } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java index 547bbb6f6701..b7b4ccbf0a90 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/util/SegmentArrayWithData.java @@ -37,6 +37,7 @@ public class SegmentArrayWithData extends SegmentArray { myData[i] = (short)data; } + @Override public void remove(int startIndex, int endIndex) { myData = remove(myData, startIndex, endIndex); super.remove(startIndex, endIndex); diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/CharArray.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/CharArray.java index be8c5fa66b71..03256074f77e 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/CharArray.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/CharArray.java @@ -336,6 +336,7 @@ abstract class CharArray implements CharSequenceBackedByArray { return str; } + @Override public final int length() { final int result = myCount + myDeferredShift; if (myDebugDeferredProcessing && isDeferredChangeMode()) { @@ -347,6 +348,7 @@ abstract class CharArray implements CharSequenceBackedByArray { return result; } + @Override public final char charAt(int i) { if (i < 0 || i >= length()) { throw new IndexOutOfBoundsException("Wrong offset: " + i + "; count:" + length()); @@ -379,6 +381,7 @@ abstract class CharArray implements CharSequenceBackedByArray { return result; } + @Override public CharSequence subSequence(int start, int end) { if (start == 0 && end == length()) return this; if (myOriginalSequence != null) { @@ -412,6 +415,7 @@ abstract class CharArray implements CharSequenceBackedByArray { return myEnd >= 0; } + @Override public char[] getChars() { if (myOriginalSequence != null) { if (myArray == null) { @@ -431,6 +435,7 @@ abstract class CharArray implements CharSequenceBackedByArray { return myArray; } + @Override public void getChars(final char[] dst, final int dstOffset) { flushDeferredChanged(myDeferredChangesStorage.get()); if (myOriginalSequence != null) { diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java index 2011fa9d712e..2e9512bd9ef1 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java @@ -110,11 +110,13 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return myText.getChars(); } + @Override @NotNull public char[] getChars() { return CharArrayUtil.fromSequence(getCharsSequence()); } + @Override public void setStripTrailingSpacesEnabled(boolean isEnabled) { isStripTrailingSpacesEnabled = isEnabled; } @@ -162,8 +164,10 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { else { final int finalStart = whiteSpaceStart; ApplicationManager.getApplication().runWriteAction(new DocumentRunnable(this, project) { + @Override public void run() { CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { + @Override public void run() { deleteString(finalStart, lineEnd); } @@ -180,6 +184,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return markAsNeedsStrippingLater; } + @Override public void setReadOnly(boolean isReadOnly) { if (myIsReadOnly != isReadOnly) { myIsReadOnly = isReadOnly; @@ -195,10 +200,12 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { myReadonlyFragmentModificationHandler = readonlyFragmentModificationHandler; } + @Override public boolean isWritable() { return !myIsReadOnly; } + @Override public boolean removeRangeMarker(@NotNull RangeMarkerEx rangeMarker) { return myRangeMarkers.removeInterval(rangeMarker); } @@ -216,6 +223,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return myRangeMarkers.nodeSize(); } + @Override @NotNull public RangeMarker createGuardedBlock(int startOffset, int endOffset) { LOG.assertTrue(startOffset <= endOffset, "Should be startOffset <= endOffset"); @@ -224,15 +232,18 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return block; } + @Override public void removeGuardedBlock(@NotNull RangeMarker block) { myGuardedBlocks.remove(block); } + @Override @NotNull public List getGuardedBlocks() { return myGuardedBlocks; } + @Override @SuppressWarnings({"ForLoopReplaceableByForEach"}) // Way too many garbage is produced otherwise in AbstractList.iterator() public RangeMarker getOffsetGuard(int offset) { for (int i = 0; i < myGuardedBlocks.size(); i++) { @@ -243,6 +254,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return null; } + @Override public RangeMarker getRangeGuard(int start, int end) { for (RangeMarker block : myGuardedBlocks) { if (rangesIntersect(start, true, block.getStartOffset(), block.isGreedyToLeft(), end, true, block.getEndOffset(), block.isGreedyToRight())) { @@ -253,10 +265,12 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return null; } + @Override public void startGuardedBlockChecking() { myCheckGuardedBlocks++; } + @Override public void stopGuardedBlockChecking() { LOG.assertTrue(myCheckGuardedBlocks > 0, "Unpaired start/stopGuardedBlockChecking"); myCheckGuardedBlocks--; @@ -277,11 +291,13 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return end0 > start1; } + @Override @NotNull public RangeMarker createRangeMarker(int startOffset, int endOffset) { return createRangeMarker(startOffset, endOffset, false); } + @Override @NotNull public RangeMarker createRangeMarker(int startOffset, int endOffset, boolean surviveOnExternalChange) { if (!(0 <= startOffset && startOffset <= endOffset && endOffset <= getTextLength())) { @@ -292,23 +308,28 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { : new RangeMarkerImpl(this, startOffset, endOffset,true); } + @Override public long getModificationStamp() { return myModificationStamp; } + @Override public void setModificationStamp(long modificationStamp) { myModificationStamp = modificationStamp; } + @Override public void replaceText(@NotNull CharSequence chars, long newModificationStamp) { replaceString(0, getTextLength(), chars, newModificationStamp, true); //TODO: optimization!!! clearLineModificationFlags(); } + @Override public int getListenersCount() { return myDocumentListeners.size(); } + @Override public void insertString(int offset, @NotNull CharSequence s) { if (offset < 0) throw new IndexOutOfBoundsException("Wrong offset: " + offset); if (offset > getTextLength()) { @@ -331,6 +352,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { myText.insert(this, s, offset); } + @Override public void deleteString(int startOffset, int endOffset) { assertBounds(startOffset, endOffset); @@ -349,6 +371,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { myText.remove(this, startOffset, endOffset, sToDelete); } + @Override public void replaceString(int startOffset, int endOffset, @NotNull CharSequence s) { replaceString(startOffset, endOffset, s, LocalTimeCounter.currentTime(), startOffset == 0 && endOffset == getTextLength()); } @@ -460,18 +483,22 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { } } + @Override public void suppressGuardedExceptions() { myGuardsSuppressed = true; } + @Override public void unSuppressGuardedExceptions() { myGuardsSuppressed = false; } + @Override public boolean isInEventsHandling() { return myEventsHandling; } + @Override public void clearLineModificationFlags() { myLineSet.clearModificationFlags(); } @@ -544,6 +571,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { } } + @Override public String getText() { assertReadAccessToDocumentsAllowed(); return myText.toString(); @@ -556,6 +584,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return myText.substring(range.getStartOffset(), range.getEndOffset()).toString(); } + @Override public int getTextLength() { assertReadAccessToDocumentsAllowed(); return myText.length(); @@ -581,6 +610,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return myText.getCharArray(); } + @Override @NotNull public CharSequence getCharsSequence() { assertReadAccessToDocumentsAllowed(); @@ -588,21 +618,25 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { } + @Override public void addDocumentListener(@NotNull DocumentListener listener) { myCachedDocumentListeners = null; boolean added = myDocumentListeners.addIfAbsent(listener); LOG.assertTrue(added, listener); } + @Override public void addDocumentListener(@NotNull final DocumentListener listener, @NotNull Disposable parentDisposable) { addDocumentListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeDocumentListener(listener); } }); } + @Override public void removeDocumentListener(@NotNull DocumentListener listener) { myCachedDocumentListeners = null; boolean success = myDocumentListeners.remove(listener); @@ -611,6 +645,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { } } + @Override public int getLineNumber(int offset) { assertReadAccessToDocumentsAllowed(); int lineIndex = myLineSet.findLineIndex(offset); @@ -618,11 +653,13 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return lineIndex; } + @Override @NotNull public LineIterator createLineIterator() { return myLineSet.createIterator(); } + @Override public final int getLineStartOffset(int line) { assertReadAccessToDocumentsAllowed(); if (line == 0) return 0; // otherwise it crashed for zero-length document @@ -631,6 +668,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return lineStart; } + @Override public final int getLineEndOffset(int line) { if (getTextLength() == 0 && line == 0) return 0; int result = myLineSet.getLineEnd(line) - getLineSeparatorLength(line); @@ -638,12 +676,14 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return result; } + @Override public final int getLineSeparatorLength(int line) { int separatorLength = myLineSet.getSeparatorLength(line); assert separatorLength >= 0; return separatorLength; } + @Override public final int getLineCount() { int lineCount = myLineSet.getLineCount(); assert lineCount >= 0; @@ -662,35 +702,43 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return cachedListeners; } + @Override public void fireReadOnlyModificationAttempt() { for (EditReadOnlyListener listener : myReadOnlyListeners) { listener.readOnlyModificationAttempt(this); } } + @Override public void addEditReadOnlyListener(@NotNull EditReadOnlyListener listener) { myReadOnlyListeners.add(listener); } + @Override public void removeEditReadOnlyListener(@NotNull EditReadOnlyListener listener) { myReadOnlyListeners.remove(listener); } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeSupport.addPropertyChangeListener(listener); } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeSupport.removePropertyChangeListener(listener); } + @Override public void setCyclicBufferSize(int bufferSize) { myText.setBufferSize(bufferSize); } + @Override public void setText(@NotNull final CharSequence text) { Runnable runnable = new Runnable() { + @Override public void run() { replaceString(0, getTextLength(), text, LocalTimeCounter.currentTime(), true); } @@ -705,15 +753,18 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { clearLineModificationFlags(); } + @Override @NotNull public RangeMarker createRangeMarker(@NotNull final TextRange textRange) { return createRangeMarker(textRange.getStartOffset(), textRange.getEndOffset()); } + @Override public final boolean isInBulkUpdate() { return myDoingBulkUpdate; } + @Override public final void setInBulkUpdate(boolean value) { myDoingBulkUpdate = value; myText.setDeferredChangeMode(value); @@ -734,10 +785,12 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return DocumentBulkUpdateListenerHolder.ourBulkChangePublisher; } + @Override public boolean processRangeMarkers(@NotNull Processor processor) { return myRangeMarkers.process(processor); } + @Override public boolean processRangeMarkersOverlappingWith(int start, int end, @NotNull Processor processor) { return myRangeMarkers.processOverlappingWith(start, end, processor); } @@ -747,6 +800,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { super(0); } + @Override @NotNull protected DocumentEvent beforeChangedUpdate(DocumentImpl subj, int offset, @@ -756,6 +810,7 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { return subj.beforeChangedUpdate(offset, oldString, newString, wholeTextReplaced); } + @Override protected void afterChangedUpdate(@NotNull DocumentEvent event, long newModificationStamp) { ((DocumentImpl)event.getDocument()).changedUpdate(event, newModificationStamp); } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/IntervalTreeImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/IntervalTreeImpl.java index f2a7917e51ac..a898dd337a11 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/IntervalTreeImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/IntervalTreeImpl.java @@ -93,6 +93,7 @@ public abstract class IntervalTreeImpl extends RedBla return true; } + @Override public boolean hasAliveKey(boolean purgeDead) { boolean hasAliveInterval = false; for (int i = intervals.size() - 1; i >= 0; i--) { @@ -341,6 +342,7 @@ public abstract class IntervalTreeImpl extends RedBla return (IntervalNode)root; } + @Override public boolean process(@NotNull Processor processor) { try { l.readLock().lock(); @@ -366,6 +368,7 @@ public abstract class IntervalTreeImpl extends RedBla }); } + @Override public boolean processOverlappingWith(int start, int end, @NotNull Processor processor) { try { l.readLock().lock(); @@ -449,6 +452,7 @@ public abstract class IntervalTreeImpl extends RedBla } + @Override public boolean processContaining(int offset, @NotNull Processor processor) { try { l.readLock().lock(); diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/LineIteratorImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/LineIteratorImpl.java index 45efc5541d97..222840a1e720 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/LineIteratorImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/LineIteratorImpl.java @@ -25,30 +25,37 @@ public class LineIteratorImpl implements LineIterator { myLineSet = lineSet; } + @Override public void start(int startOffset) { myLineIndex = myLineSet.findLineIndex(startOffset); } + @Override public int getStart() { return myLineSet.getLineStart(myLineIndex); } + @Override public int getEnd() { return myLineSet.getLineEnd(myLineIndex); } + @Override public int getSeparatorLength() { return myLineSet.getSeparatorLength(myLineIndex); } + @Override public int getLineNumber() { return myLineIndex; } + @Override public void advance() { myLineIndex++; } + @Override public boolean atEnd() { return myLineIndex >= myLineSet.getLineCount() || myLineIndex < 0; } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerImpl.java index c836ea0f4f07..b8761a7894ec 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerImpl.java @@ -67,6 +67,7 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx return b; } + @Override public long getId() { return myId; } @@ -78,11 +79,13 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx } } + @Override public int getStartOffset() { RangeMarkerTree.RMNode node = myNode; return intervalStart() + (node == null ? 0 : node.computeDeltaUpToRoot()); } + @Override public int getEndOffset() { RangeMarkerTree.RMNode node = myNode; return intervalEnd() + (node == null ? 0 : node.computeDeltaUpToRoot()); @@ -103,6 +106,7 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx } } + @Override @NotNull public DocumentEx getDocument() { return myDocument; @@ -113,27 +117,32 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx return 0; } + @Override public void setGreedyToLeft(final boolean greedy) { if (!isValid() || greedy == isGreedyToLeft()) return; myNode.getTree().changeData(this, getStartOffset(), getEndOffset(), greedy, isGreedyToRight(), getLayer()); } + @Override public void setGreedyToRight(final boolean greedy) { if (!isValid() || greedy == isGreedyToRight()) return; myNode.getTree().changeData(this, getStartOffset(), getEndOffset(), isGreedyToLeft(), greedy, getLayer()); } + @Override public boolean isGreedyToLeft() { RangeMarkerTree.RMNode node = myNode; return node != null && node.isGreedyToLeft(); } + @Override public boolean isGreedyToRight() { RangeMarkerTree.RMNode node = myNode; return node != null && node.isGreedyToRight(); } + @Override public final void documentChanged(DocumentEvent e) { int oldStart = intervalStart(); int oldEnd = intervalEnd(); @@ -254,6 +263,7 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx public void trackInvalidation(boolean track) { putUserData(TRACK_INVALIDATION_KEY, track ? Boolean.TRUE : null); } + @Override public boolean isTrackInvalidation() { return getUserData(TRACK_INVALIDATION_KEY) == Boolean.TRUE; } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerTree.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerTree.java index fa5e1a02f81c..f4e47cf8437e 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerTree.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/RangeMarkerTree.java @@ -44,12 +44,15 @@ public class RangeMarkerTree extends IntervalTreeImpl extends IntervalTreeImpl boolean sweep(@NotNull Generator generator, @NotNull final SweepProcessor sweepProcessor) { final Queue ends = new PriorityQueue(5, new Comparator() { + @Override public int compare(T o1, T o2) { return o1.getEndOffset() - o2.getEndOffset(); } }); final List starts = new ArrayList(); if (!generator.generate(new Processor() { + @Override public boolean process(T marker) { // decide whether previous marker ends here or new marker begins int start = marker.getStartOffset(); diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/TextChangeImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/TextChangeImpl.java index 5514c62b2db2..7b8a98f9b37e 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/TextChangeImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/TextChangeImpl.java @@ -75,6 +75,7 @@ public class TextChangeImpl implements TextChange { /** * @return start index (inclusive) of text range affected by the change encapsulated at the current object */ + @Override public int getStart() { return myStart; } @@ -86,6 +87,7 @@ public class TextChangeImpl implements TextChange { /** * @return end index (exclusive) of text range affected by the change encapsulated at the current object */ + @Override public int getEnd() { return myEnd; } @@ -99,6 +101,7 @@ public class TextChangeImpl implements TextChange { * * @return text related to the change encapsulated by the current object */ + @Override @NotNull public CharSequence getText() { return myText; @@ -114,6 +117,7 @@ public class TextChangeImpl implements TextChange { * * @return stored change text as a char array */ + @Override @NotNull public char[] getChars() { if (myChars == null) { diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/TextRangeInterval.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/TextRangeInterval.java index 1999a600d9c7..27d950cefe0f 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/TextRangeInterval.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/TextRangeInterval.java @@ -24,10 +24,12 @@ public class TextRangeInterval extends ProperTextRange implements Interval{ public TextRangeInterval(int startOffset, int endOffset) { super(startOffset, endOffset); } + @Override public int intervalStart() { return getStartOffset(); } + @Override public int intervalEnd() { return getEndOffset(); } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/event/DocumentEventImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/event/DocumentEventImpl.java index 13b36d84f9a3..1bd95fca7b5c 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/event/DocumentEventImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/event/DocumentEventImpl.java @@ -68,26 +68,32 @@ public class DocumentEventImpl extends DocumentEvent { } } + @Override public int getOffset() { return myOffset; } + @Override public int getOldLength() { return myOldLength; } + @Override public int getNewLength() { return myNewLength; } + @Override public CharSequence getOldFragment() { return myOldString; } + @Override public CharSequence getNewFragment() { return myNewString; } + @Override @NotNull public Document getDocument() { return (Document) getSource(); @@ -125,6 +131,7 @@ public class DocumentEventImpl extends DocumentEvent { return isOnlyOneLineChanged; } + @Override public long getOldTimeStamp() { return myOldTimeStamp; } diff --git a/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextFileType.java b/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextFileType.java index ffe83d563a89..2e74df7b20bf 100644 --- a/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextFileType.java +++ b/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextFileType.java @@ -28,21 +28,25 @@ public class PlainTextFileType extends LanguageFileType { super(PlainTextLanguage.INSTANCE); } + @Override @NotNull public String getName() { return "PLAIN_TEXT"; } + @Override @NotNull public String getDescription() { return FileTypesBundle.message("filetype.plaintext.description"); } + @Override @NotNull public String getDefaultExtension() { return "txt"; } + @Override public Icon getIcon() { return ICON; } diff --git a/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextLanguage.java b/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextLanguage.java index 4b32fa0826b8..8496804ec81d 100644 --- a/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextLanguage.java +++ b/platform/core-impl/src/com/intellij/openapi/fileTypes/PlainTextLanguage.java @@ -29,6 +29,7 @@ public class PlainTextLanguage extends Language { super("TEXT", "text/plain"); } + @Override public String getDisplayName() { return "Plain text"; } diff --git a/platform/core-impl/src/com/intellij/openapi/vfs/impl/BulkVirtualFileListenerAdapter.java b/platform/core-impl/src/com/intellij/openapi/vfs/impl/BulkVirtualFileListenerAdapter.java index 31b3d04dc6a9..2326634ae4c2 100644 --- a/platform/core-impl/src/com/intellij/openapi/vfs/impl/BulkVirtualFileListenerAdapter.java +++ b/platform/core-impl/src/com/intellij/openapi/vfs/impl/BulkVirtualFileListenerAdapter.java @@ -32,12 +32,14 @@ public class BulkVirtualFileListenerAdapter implements BulkFileListener { myAdaptee = adaptee; } + @Override public void before(final List events) { for (VFileEvent event : events) { fireBefore(event); } } + @Override public void after(final List events) { for (VFileEvent event : events) { fireAfter(event); diff --git a/platform/core-impl/src/com/intellij/openapi/vfs/impl/VirtualFileManagerImpl.java b/platform/core-impl/src/com/intellij/openapi/vfs/impl/VirtualFileManagerImpl.java index d3bcf602bfae..cff648ff5360 100644 --- a/platform/core-impl/src/com/intellij/openapi/vfs/impl/VirtualFileManagerImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/vfs/impl/VirtualFileManagerImpl.java @@ -85,6 +85,7 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { myPhysicalFileSystems.remove(fileSystem); } + @Override @Nullable public VirtualFileSystem getFileSystem(@Nullable String protocol) { if (protocol == null) return null; @@ -94,10 +95,12 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { return systems.get(0); } + @Override public void refresh(boolean asynchronous) { refresh(asynchronous, null); } + @Override public void refreshWithoutFileWatcher(final boolean asynchronous) { if (!asynchronous) { ApplicationManager.getApplication().assertIsDispatchThread(); @@ -113,6 +116,7 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { } } + @Override public void refresh(boolean asynchronous, @Nullable final Runnable postAction) { refresh(asynchronous, postAction, ModalityState.NON_MODAL); } @@ -142,12 +146,14 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { return myPhysicalFileSystems; } + @Override public VirtualFile findFileByUrl(@NotNull String url) { VirtualFileSystem fileSystem = getFileSystemForUrl(url); if (fileSystem == null) return null; return fileSystem.findFileByPath(extractPath(url)); } + @Override public VirtualFile refreshAndFindFileByUrl(@NotNull String url) { VirtualFileSystem fileSystem = getFileSystemForUrl(url); if (fileSystem == null) return null; @@ -161,18 +167,22 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { return getFileSystem(protocol); } + @Override public void addVirtualFileListener(@NotNull VirtualFileListener listener) { myVirtualFileListenerMulticaster.addListener(listener); } + @Override public void addVirtualFileListener(@NotNull VirtualFileListener listener, @NotNull Disposable parentDisposable) { myVirtualFileListenerMulticaster.addListener(listener, parentDisposable); } + @Override public void removeVirtualFileListener(@NotNull VirtualFileListener listener) { myVirtualFileListenerMulticaster.removeListener(listener); } + @Override public void addVirtualFileManagerListener(@NotNull VirtualFileManagerListener listener) { myVirtualFileManagerListeners.add(listener); } @@ -188,6 +198,7 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { }); } + @Override public void removeVirtualFileManagerListener(@NotNull VirtualFileManagerListener listener) { myVirtualFileManagerListeners.remove(listener); } @@ -196,9 +207,11 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { public void notifyPropertyChanged(final VirtualFile virtualFile, final String property, final Object oldValue, final Object newValue) { final Application application = ApplicationManager.getApplication(); final Runnable runnable = new Runnable() { + @Override public void run() { if (virtualFile.isValid() && !application.isDisposed()) { application.runWriteAction(new Runnable() { + @Override public void run() { List events = Collections .singletonList(new VFilePropertyChangeEvent(this, virtualFile, property, oldValue, newValue, false)); @@ -213,6 +226,7 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { application.invokeLater(runnable, ModalityState.NON_MODAL); } + @Override public void fireBeforeRefreshStart(boolean asynchronous) { if (myRefreshCount++ == 0) { for (final VirtualFileManagerListener listener : myVirtualFileManagerListeners) { @@ -226,6 +240,7 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { } } + @Override public void fireAfterRefreshFinish(boolean asynchronous) { if (--myRefreshCount == 0) { for (final VirtualFileManagerListener listener : myVirtualFileManagerListeners) { @@ -240,56 +255,67 @@ public class VirtualFileManagerImpl extends VirtualFileManagerEx { } private static class LoggingListener implements VirtualFileListener { + @Override public void propertyChanged(VirtualFilePropertyEvent event) { LOG.debug("propertyChanged: file = " + event.getFile().getUrl() + ", propertyName = " + event.getPropertyName() + ", oldValue = " + event.getOldValue() + ", newValue = " + event.getNewValue() + ", requestor = " + event.getRequestor()); } + @Override public void contentsChanged(VirtualFileEvent event) { LOG.debug("contentsChanged: file = " + event.getFile().getUrl() + ", requestor = " + event.getRequestor()); } + @Override public void fileCreated(VirtualFileEvent event) { LOG.debug("fileCreated: file = " + event.getFile().getUrl() + ", requestor = " + event.getRequestor()); } + @Override public void fileDeleted(VirtualFileEvent event) { final VirtualFile parent = event.getParent(); LOG.debug("fileDeleted: file = " + event.getFile().getName() + ", parent = " + (parent != null ? parent.getUrl() : null) + ", requestor = " + event.getRequestor()); } + @Override public void fileMoved(VirtualFileMoveEvent event) { LOG.debug("fileMoved: file = " + event.getFile().getUrl() + ", oldParent = " + event.getOldParent() + ", newParent = " + event.getNewParent() + ", requestor = " + event.getRequestor()); } + @Override public void fileCopied(VirtualFileCopyEvent event) { LOG.debug("fileCopied: file = " + event.getFile().getUrl() + "originalFile = " + event.getOriginalFile().getUrl() + ", requestor = " + event.getRequestor()); } + @Override public void beforeContentsChange(VirtualFileEvent event) { LOG.debug("beforeContentsChange: file = " + event.getFile().getUrl() + ", requestor = " + event.getRequestor()); } + @Override public void beforePropertyChange(VirtualFilePropertyEvent event) { LOG.debug("beforePropertyChange: file = " + event.getFile().getUrl() + ", propertyName = " + event.getPropertyName() + ", oldValue = " + event.getOldValue() + ", newValue = " + event.getNewValue() + ", requestor = " + event.getRequestor()); } + @Override public void beforeFileDeletion(VirtualFileEvent event) { LOG.debug("beforeFileDeletion: file = " + event.getFile().getUrl() + ", requestor = " + event.getRequestor()); LOG.assertTrue(event.getFile().isValid()); } + @Override public void beforeFileMovement(VirtualFileMoveEvent event) { LOG.debug("beforeFileMovement: file = " + event.getFile().getUrl() + ", oldParent = " + event.getOldParent() + ", newParent = " + event.getNewParent() + ", requestor = " + event.getRequestor()); } } + @Override public long getModificationCount() { return myPersistence.getCheapFileSystemModificationCount(); } diff --git a/platform/core-impl/src/com/intellij/pom/tree/TreeAspect.java b/platform/core-impl/src/com/intellij/pom/tree/TreeAspect.java index f5378aeef17b..02ad39ead706 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/TreeAspect.java +++ b/platform/core-impl/src/com/intellij/pom/tree/TreeAspect.java @@ -27,5 +27,6 @@ public class TreeAspect implements PomModelAspect { model.registerAspect(TreeAspect.class, this, Collections.emptySet()); } + @Override public void update(PomModelEvent event) {} } diff --git a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java index eed88e76f408..7142e57569d3 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java +++ b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java @@ -41,6 +41,7 @@ public class ChangeInfoImpl implements ChangeInfo { myOldLength = type != ADD ? ((TreeElement)changed).getNotCachedLength() : 0; } + @Override public int getChangeType(){ return type; } @@ -75,6 +76,7 @@ public class ChangeInfoImpl implements ChangeInfo { } } + @Override public int getOldLength(){ return myOldLength; } diff --git a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ReplaceChangeInfoImpl.java b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ReplaceChangeInfoImpl.java index 6b9b675289e7..a12c802938fe 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ReplaceChangeInfoImpl.java +++ b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ReplaceChangeInfoImpl.java @@ -32,6 +32,7 @@ public class ReplaceChangeInfoImpl extends ChangeInfoImpl implements ReplaceChan myNewNode = newNode; } + @Override public ASTNode getReplaced(){ return myOldNode; } diff --git a/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeEventImpl.java b/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeEventImpl.java index f93004c3a6f3..713b31197028 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeEventImpl.java +++ b/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeEventImpl.java @@ -49,11 +49,13 @@ public class TreeChangeEventImpl implements TreeChangeEvent{ myFileElement = treeElement; } + @Override @NotNull public FileElement getRootElement() { return myFileElement; } + @Override @NotNull public ASTNode[] getChangedElements() { if (myChangedInOrder == null) { @@ -76,6 +78,7 @@ public class TreeChangeEventImpl implements TreeChangeEvent{ return myChangedInOrder.toArray(new ASTNode[myChangedInOrder.size()]); } + @Override public TreeChange getChangesByElement(@NotNull ASTNode element) { LOG.assertTrue(isAncestor(element, myFileElement), element); return myChangedElements.get(element); @@ -88,6 +91,7 @@ public class TreeChangeEventImpl implements TreeChangeEvent{ return element == fileElement; } + @Override public void addElementaryChange(@NotNull ASTNode element, @NotNull ChangeInfo change) { LOG.assertTrue(isAncestor(element, myFileElement), element); final ASTNode parent = element.getTreeParent(); @@ -124,6 +128,7 @@ public class TreeChangeEventImpl implements TreeChangeEvent{ return depth; } + @Override public void clear() { myChangedInOrder = null; myChangedElements.clear(); @@ -252,11 +257,13 @@ public class TreeChangeEventImpl implements TreeChangeEvent{ return -1; } + @Override @NotNull public PomModelAspect getAspect() { return myAspect; } + @Override public void merge(@NotNull PomChangeSet blocked) { if(!(blocked instanceof TreeChangeEventImpl)) return; final TreeChangeEventImpl blockedTreeChange = (TreeChangeEventImpl)blocked; diff --git a/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeImpl.java b/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeImpl.java index c2a29076dfaa..3ca90e23576a 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeImpl.java +++ b/platform/core-impl/src/com/intellij/pom/tree/events/impl/TreeChangeImpl.java @@ -39,6 +39,7 @@ public class TreeChangeImpl implements TreeChange { myParent = parent; } + @Override public void addChange(ASTNode child, @NotNull ChangeInfo changeInfo) { LOG.assertTrue(child.getTreeParent() == myParent); @@ -168,6 +169,7 @@ public class TreeChangeImpl implements TreeChange { return false; } + @Override @NotNull public TreeElement[] getAffectedChildren() { final TreeElement[] treeElements = new TreeElement[myChanges.size()]; @@ -178,15 +180,18 @@ public class TreeChangeImpl implements TreeChange { return treeElements; } + @Override public ChangeInfo getChangeByChild(ASTNode child) { return myChanges.get(child); } + @Override public int getChildOffsetInNewTree(@NotNull ASTNode child) { return myParent.getStartOffset() + getNewOffset(child); } + @Override public void composite(@NotNull TreeChange treeChange) { final TreeChangeImpl change = (TreeChangeImpl)treeChange; final Set> entries = change.myChanges.entrySet(); @@ -195,14 +200,17 @@ public class TreeChangeImpl implements TreeChange { } } + @Override public boolean isEmpty() { return false; } + @Override public void removeChange(ASTNode beforeEqualDepth) { removeChangeInternal(beforeEqualDepth); } + @Override public void add(@NotNull final TreeChange value) { final TreeChangeImpl impl = (TreeChangeImpl)value; LOG.assertTrue(impl.myParent == myParent); @@ -265,6 +273,7 @@ public class TreeChangeImpl implements TreeChange { } } + @Override public int getOldLength() { int oldLength = ((TreeElement)myParent).getNotCachedLength(); for (final Map.Entry entry : myChanges.entrySet()) { diff --git a/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java b/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java index d69f7cf9e47d..5642d183c4d8 100644 --- a/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java @@ -45,66 +45,81 @@ public class DummyHolderViewProvider extends UserDataHolderBase implements FileV myModificationStamp = LocalTimeCounter.currentTime(); } + @Override @NotNull public PsiManager getManager() { return myManager; } + @Override @Nullable public Document getDocument() { return FileDocumentManager.getInstance().getDocument(getVirtualFile()); } + @Override @NotNull public CharSequence getContents() { return myHolder != null ? myHolder.getNode().getText() : ""; } + @Override @NotNull public VirtualFile getVirtualFile() { return myLightVirtualFile; } + @Override @NotNull public Language getBaseLanguage() { return myHolder.getLanguage(); } + @Override @NotNull public Set getLanguages() { return Collections.singleton(getBaseLanguage()); } + @Override public PsiFile getPsi(@NotNull Language target) { ((PsiManagerEx)myManager).getFileManager().setViewProvider(getVirtualFile(), this); return target == getBaseLanguage() ? myHolder : null; } + @Override @NotNull public List getAllFiles() { return Collections.singletonList(getPsi(getBaseLanguage())); } + @Override public void beforeContentsSynchronized() {} + @Override public void contentsSynchronized() {} + @Override public boolean isEventSystemEnabled() { return false; } + @Override public boolean isPhysical() { return false; } + @Override public long getModificationStamp() { return myModificationStamp; } + @Override public boolean supportsIncrementalReparse(final Language rootLanguage) { return true; } + @Override public void rootChanged(PsiFile psiFile) { } @@ -113,25 +128,30 @@ public class DummyHolderViewProvider extends UserDataHolderBase implements FileV //myLightVirtualFile.setContent(null, getContents(), false); } + @Override public FileViewProvider clone(){ throw new RuntimeException("Clone is not supported for DummyHolderProviders. Use DummyHolder clone directly."); } + @Override public PsiReference findReferenceAt(final int offset) { return SharedPsiElementImplUtil.findReferenceAt(getPsi(getBaseLanguage()), offset); } + @Override @Nullable public PsiElement findElementAt(final int offset, final Language language) { return language == getBaseLanguage() ? findElementAt(offset) : null; } + @Override public PsiElement findElementAt(int offset, Class lang) { if (!lang.isAssignableFrom(getBaseLanguage().getClass())) return null; return findElementAt(offset); } + @Override public PsiReference findReferenceAt(final int offsetInElement, @NotNull final Language language) { return language == getBaseLanguage() ? findReferenceAt(offsetInElement) : null; } @@ -142,6 +162,7 @@ public class DummyHolderViewProvider extends UserDataHolderBase implements FileV throw new RuntimeException("Clone is not supported for DummyHolderProviders. Use DummyHolder clone directly."); } + @Override public PsiElement findElementAt(final int offset) { final LeafElement element = ((PsiFileImpl)getPsi(getBaseLanguage())).calcTreeElement().findLeafElementAt(offset); return element != null ? element.getPsi() : null; diff --git a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java index 6ac5e7aa8282..3a138dedd67b 100644 --- a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java @@ -85,6 +85,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi myExclusionManager = ProjectFileExclusionManager.SERVICE.getInstance(manager.getProject()); } + @Override @NotNull public Language getBaseLanguage() { return myBaseLanguage; @@ -115,11 +116,13 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return PlainTextLanguage.INSTANCE; } + @Override @NotNull public Set getLanguages() { return Collections.singleton(getBaseLanguage()); } + @Override @Nullable public final PsiFile getPsi(@NotNull Language target) { if (!isPhysical()) { @@ -128,6 +131,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return getPsiInner(target); } + @Override @NotNull public List getAllFiles() { return Collections.singletonList(getPsi(getBaseLanguage())); @@ -149,10 +153,12 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return psiFile; } + @Override public void beforeContentsSynchronized() { unsetPsiContent(); } + @Override public void contentsSynchronized() { unsetPsiContent(); } @@ -170,24 +176,29 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi } } + @Override public void rootChanged(PsiFile psiFile) { if (((PsiFileEx)psiFile).isContentsLoaded()) { setContent(new PsiFileContent((PsiFileImpl)psiFile, LocalTimeCounter.currentTime())); } } + @Override public boolean isEventSystemEnabled() { return myEventSystemEnabled; } + @Override public boolean isPhysical() { return myPhysical; } + @Override public long getModificationStamp() { return getContent().getModificationStamp(); } + @Override public boolean supportsIncrementalReparse(final Language rootLanguage) { return true; } @@ -288,16 +299,19 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return null; } + @Override @NotNull public PsiManager getManager() { return myManager; } + @Override @NotNull public CharSequence getContents() { return getContent().getText(); } + @Override @NotNull public VirtualFile getVirtualFile() { return myVirtualFile; @@ -310,6 +324,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return FileDocumentManager.getInstance().getCachedDocument(getVirtualFile()); } + @Override public Document getDocument() { Document document = myDocument != null ? myDocument.get() : null; if (document == null/* TODO[ik] make this change && isEventSystemEnabled()*/) { @@ -322,6 +337,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return document; } + @Override public FileViewProvider clone() { final VirtualFile origFile = getVirtualFile(); LightVirtualFile copy = new LightVirtualFile(origFile.getName(), origFile.getFileType(), getContents(), origFile.getCharset(), getModificationStamp()); @@ -337,16 +353,19 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return new SingleRootFileViewProvider(getManager(), copy, false, myBaseLanguage); } + @Override public PsiReference findReferenceAt(final int offset) { final PsiFileImpl psiFile = (PsiFileImpl)getPsi(getBaseLanguage()); return findReferenceAt(psiFile, offset); } + @Override public PsiElement findElementAt(final int offset, final Language language) { final PsiFile psiFile = getPsi(language); return psiFile != null ? findElementAt(psiFile, offset) : null; } + @Override @Nullable public PsiReference findReferenceAt(final int offset, @NotNull final Language language) { final PsiFile psiFile = getPsi(language); @@ -370,11 +389,13 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return null; } + @Override public PsiElement findElementAt(final int offset) { return findElementAt(getPsi(getBaseLanguage()), offset); } + @Override public PsiElement findElementAt(int offset, Class lang) { if (!ReflectionCache.isAssignable(lang, getBaseLanguage().getClass())) return null; return findElementAt(offset); @@ -417,6 +438,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi } private class VirtualFileContent implements Content { + @Override public CharSequence getText() { final VirtualFile virtualFile = getVirtualFile(); if (virtualFile instanceof LightVirtualFile) { @@ -434,18 +456,21 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi } } + @Override public long getModificationStamp() { return getVirtualFile().getModificationStamp(); } } private class DocumentContent implements Content { + @Override public CharSequence getText() { final Document document = getDocument(); assert document != null; return document.getCharsSequence(); } + @Override public long getModificationStamp() { Document document = myDocument == null ? null : myDocument.get(); if (document != null) return document.getModificationStamp(); @@ -463,6 +488,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi myModificationStamp = modificationStamp; } + @Override public CharSequence getText() { if (!myFile.isContentsLoaded()) { unsetPsiContent(); @@ -472,6 +498,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi return myContent = myFile.calcTreeElement().getText(); } + @Override public long getModificationStamp() { if (!myFile.isContentsLoaded()) { unsetPsiContent(); diff --git a/platform/core-impl/src/com/intellij/psi/filters/AndFilter.java b/platform/core-impl/src/com/intellij/psi/filters/AndFilter.java index 16e7f55312ac..a4b7bd921dea 100644 --- a/platform/core-impl/src/com/intellij/psi/filters/AndFilter.java +++ b/platform/core-impl/src/com/intellij/psi/filters/AndFilter.java @@ -46,6 +46,7 @@ public class AndFilter implements ElementFilter{ myFilters.add(filter); } + @Override public boolean isAcceptable(Object element, PsiElement context){ for (ElementFilter elementFilter : myFilters) { if (!elementFilter.isAcceptable(element, context)) { @@ -55,6 +56,7 @@ public class AndFilter implements ElementFilter{ return true; } + @Override public boolean isClassAcceptable(Class elementClass){ for (Object myFilter : myFilters) { final ElementFilter elementFilter = (ElementFilter)myFilter; diff --git a/platform/core-impl/src/com/intellij/psi/filters/ClassFilter.java b/platform/core-impl/src/com/intellij/psi/filters/ClassFilter.java index a31f9e0dc3bd..413020bdbea3 100644 --- a/platform/core-impl/src/com/intellij/psi/filters/ClassFilter.java +++ b/platform/core-impl/src/com/intellij/psi/filters/ClassFilter.java @@ -40,6 +40,7 @@ public class ClassFilter implements ElementFilter{ myAcceptableFlag = acceptableFlag; } + @Override public boolean isClassAcceptable(Class hintClass){ return myAcceptableFlag ? filterMatches(hintClass) : !filterMatches(hintClass); } @@ -48,6 +49,7 @@ public class ClassFilter implements ElementFilter{ return ReflectionCache.isAssignable(myFilter, hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element == null){ return false; diff --git a/platform/core-impl/src/com/intellij/psi/filters/NotFilter.java b/platform/core-impl/src/com/intellij/psi/filters/NotFilter.java index 86865888a951..9f9ee8f433bf 100644 --- a/platform/core-impl/src/com/intellij/psi/filters/NotFilter.java +++ b/platform/core-impl/src/com/intellij/psi/filters/NotFilter.java @@ -43,10 +43,12 @@ public class NotFilter return myFilter; } + @Override public boolean isClassAcceptable(Class hintClass){ return myFilter.isClassAcceptable(hintClass); } + @Override public boolean isAcceptable(Object element, PsiElement context){ return !myFilter.isAcceptable(element, context); } diff --git a/platform/core-impl/src/com/intellij/psi/filters/OrFilter.java b/platform/core-impl/src/com/intellij/psi/filters/OrFilter.java index 81643d70ce95..54533a5f9f38 100644 --- a/platform/core-impl/src/com/intellij/psi/filters/OrFilter.java +++ b/platform/core-impl/src/com/intellij/psi/filters/OrFilter.java @@ -49,6 +49,7 @@ public class OrFilter implements ElementFilter{ return myFilters; } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (myFilters.isEmpty()) return true; for (ElementFilter elementFilter : myFilters) { @@ -59,6 +60,7 @@ public class OrFilter implements ElementFilter{ return false; } + @Override public boolean isClassAcceptable(Class elementClass){ if (myFilters.isEmpty()) return true; for (ElementFilter elementFilter : myFilters) { diff --git a/platform/core-impl/src/com/intellij/psi/impl/EmptyFileManager.java b/platform/core-impl/src/com/intellij/psi/impl/EmptyFileManager.java index 6d2958416414..998d917388e9 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/EmptyFileManager.java +++ b/platform/core-impl/src/com/intellij/psi/impl/EmptyFileManager.java @@ -39,24 +39,29 @@ class EmptyFileManager implements FileManager { myManager = manager; } + @Override public void dispose() { } public void runStartupActivity() { } + @Override public PsiFile findFile(@NotNull VirtualFile vFile) { return null; } + @Override public PsiDirectory findDirectory(@NotNull VirtualFile vFile) { return null; } + @Override public void reloadFromDisk(@NotNull PsiFile file) { } + @Override public PsiFile getCachedPsiFile(@NotNull VirtualFile vFile) { return null; } @@ -71,22 +76,27 @@ class EmptyFileManager implements FileManager { return GlobalSearchScope.EMPTY_SCOPE; } + @Override public void cleanupForNextTest() { } + @Override public FileViewProvider findViewProvider(@NotNull VirtualFile file) { return myVFileToViewProviderMap.get(file); } + @Override public FileViewProvider findCachedViewProvider(@NotNull VirtualFile file) { return myVFileToViewProviderMap.get(file); } + @Override @NotNull public FileViewProvider createFileViewProvider(@NotNull final VirtualFile file, final boolean physical) { return new SingleRootFileViewProvider(myManager, file, physical); } + @Override public void setViewProvider(@NotNull final VirtualFile virtualFile, final FileViewProvider singleRootFileViewProvider) { if (!(virtualFile instanceof VirtualFileWindow)) { if (singleRootFileViewProvider == null) { @@ -98,6 +108,7 @@ class EmptyFileManager implements FileManager { } } + @Override public List getAllCachedFiles() { return Collections.emptyList(); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/GeneratedMarkerVisitor.java b/platform/core-impl/src/com/intellij/psi/impl/GeneratedMarkerVisitor.java index 5964e280d9c4..462ffc2ac349 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/GeneratedMarkerVisitor.java +++ b/platform/core-impl/src/com/intellij/psi/impl/GeneratedMarkerVisitor.java @@ -22,6 +22,7 @@ import com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor; import com.intellij.psi.impl.source.tree.TreeElement; public class GeneratedMarkerVisitor extends RecursiveTreeElementWalkingVisitor { + @Override protected void visitNode(TreeElement element) { CodeEditUtil.setNodeGenerated(element, true); super.visitNode(element); diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValueImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValueImpl.java index 2cfcdcfec9ca..f854f72da6ee 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValueImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValueImpl.java @@ -31,11 +31,13 @@ public class PsiCachedValueImpl extends PsiCachedValue implements CachedVa super(manager); myProvider = provider; } + @Override @Nullable public T getValue() { return getValueWithLock(null); } + @Override public CachedValueProvider getValueProvider() { return myProvider; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValuesFactory.java b/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValuesFactory.java index 00924cb57fcb..5c86add38cd0 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValuesFactory.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiCachedValuesFactory.java @@ -38,6 +38,7 @@ public class PsiCachedValuesFactory implements CachedValuesFactory { myProject = manager.getProject(); } + @Override public CachedValue createCachedValue(@NotNull CachedValueProvider provider, boolean trackValue) { return trackValue ? new PsiCachedValueImpl(myManager, provider) { @Override @@ -47,6 +48,7 @@ public class PsiCachedValuesFactory implements CachedValuesFactory { } : new PsiCachedValueImpl(myManager, provider); } + @Override public ParameterizedCachedValue createParameterizedCachedValue(@NotNull ParameterizedCachedValueProvider provider, boolean trackValue) { return trackValue ? new PsiParameterizedCachedValue(myManager, provider) { diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiElementBase.java b/platform/core-impl/src/com/intellij/psi/impl/PsiElementBase.java index e3858a44e795..a02707fdd3c4 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiElementBase.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiElementBase.java @@ -39,26 +39,31 @@ import java.util.List; public abstract class PsiElementBase extends ElementBase implements NavigatablePsiElement { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.PsiElementBase"); + @Override public PsiElement getFirstChild() { PsiElement[] children = getChildren(); if (children.length == 0) return null; return children[0]; } + @Override public PsiElement getLastChild() { PsiElement[] children = getChildren(); if (children.length == 0) return null; return children[children.length - 1]; } + @Override public PsiElement getNextSibling() { return SharedPsiElementImplUtil.getNextSibling(this); } + @Override public PsiElement getPrevSibling() { return SharedPsiElementImplUtil.getPrevSibling(this); } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { PsiElement child = getFirstChild(); while (child != null) { @@ -67,41 +72,50 @@ public abstract class PsiElementBase extends ElementBase implements NavigatableP } } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public PsiReference findReferenceAt(int offset) { return SharedPsiElementImplUtil.findReferenceAt(this, offset); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException("Operation not supported in: " + getClass()); } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Operation not supported in: " + getClass()); } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Operation not supported in: " + getClass()); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException("Operation not supported in: " + getClass()); } + @Override public boolean textContains(char c) { return getText().indexOf(c) >= 0; } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -109,29 +123,35 @@ public abstract class PsiElementBase extends ElementBase implements NavigatableP return true; } + @Override public PsiElement getContext() { return getParent(); } + @Override @NotNull public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } + @Override @NotNull public GlobalSearchScope getResolveScope() { return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override public void navigate(boolean requestFocus) { final Navigatable descriptor = PsiNavigationSupport.getInstance().getDescriptor(this); if (descriptor != null) { @@ -139,14 +159,17 @@ public abstract class PsiElementBase extends ElementBase implements NavigatableP } } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -158,48 +181,58 @@ public abstract class PsiElementBase extends ElementBase implements NavigatableP } //default implementations of methods from NavigationItem + @Override public ItemPresentation getPresentation() { return null; } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } + @Override public PsiFile getContainingFile() { final PsiElement parent = getParent(); if (parent == null) throw new PsiInvalidElementAccessException(this); return parent.getContainingFile(); } + @Override public boolean isPhysical() { final PsiElement parent = getParent(); return parent != null && parent.isPhysical(); } + @Override public boolean isWritable() { final PsiElement parent = getParent(); return parent != null && parent.isWritable(); } + @Override public boolean isValid() { final PsiElement parent = getParent(); return parent != null && parent.isValid(); } //Q: get rid of these methods? + @Override public boolean textMatches(@NotNull CharSequence text) { return Comparing.equal(getText(), text, true); } + @Override public boolean textMatches(@NotNull PsiElement element) { return getText().equals(element.getText()); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitElement(this); } + @Override public String getName() { return null; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiFileFactoryImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiFileFactoryImpl.java index d84e8c7f776f..8d5ada92706c 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiFileFactoryImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiFileFactoryImpl.java @@ -48,16 +48,19 @@ public class PsiFileFactoryImpl extends PsiFileFactory { myManager = manager; } + @Override @NotNull public PsiFile createFileFromText(@NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text, long modificationStamp, final boolean physical) { return createFileFromText(name, fileType, text, modificationStamp, physical, true); } + @Override public PsiFile createFileFromText(@NotNull String name, @NotNull Language language, @NotNull CharSequence text) { return createFileFromText(name, language, text, true, true); } + @Override public PsiFile createFileFromText(@NotNull String name, @NotNull Language language, @NotNull CharSequence text, boolean physical, final boolean markAsCopy) { return createFileFromText(name, language, text, physical, markAsCopy, false); @@ -77,6 +80,7 @@ public class PsiFileFactoryImpl extends PsiFileFactory { return trySetupPsiForFile(virtualFile, language, physical, markAsCopy); } + @Override @NotNull public PsiFile createFileFromText(@NotNull String name, @NotNull FileType fileType, @@ -149,11 +153,13 @@ public class PsiFileFactoryImpl extends PsiFileFactory { return plainTextFile; } + @Override @NotNull public PsiFile createFileFromText(@NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text) { return createFileFromText(name, fileType, text, LocalTimeCounter.currentTime(), false); } + @Override @NotNull public PsiFile createFileFromText(@NotNull String name, @NotNull String text){ FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(name); @@ -164,6 +170,7 @@ public class PsiFileFactoryImpl extends PsiFileFactory { return createFileFromText(name, type, text); } + @Override public PsiFile createFileFromText(FileType fileType, final String fileName, CharSequence chars, int startOffset, int endOffset) { LOG.assertTrue(!fileType.isBinary()); final CharSequence text = startOffset == 0 && endOffset == chars.length()?chars:new CharSequenceSubSequence(chars, startOffset, endOffset); diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java index 80d968e1852e..c6b1fb79edd6 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiManagerImpl.java @@ -97,16 +97,19 @@ public class PsiManagerImpl extends PsiManagerEx { }); } + @Override public boolean isDisposed() { return myIsDisposed; } + @Override public void dropResolveCaches() { ((FileManagerImpl)myFileManager).processQueue(); beforeChange(true); beforeChange(false); } + @Override public boolean isInProject(@NotNull PsiElement element) { PsiFile file = element.getContainingFile(); if (file instanceof PsiFileImpl && file.isPhysical() && file.getViewProvider().getVirtualFile() instanceof LightVirtualFile) return true; @@ -138,20 +141,24 @@ public class PsiManagerImpl extends PsiManagerEx { myAssertOnFileLoadingFilter = filter; } + @Override public boolean isAssertOnFileLoading(@NotNull VirtualFile file) { return myAssertOnFileLoadingFilter.accept(file); } + @Override @NotNull public Project getProject() { return myProject; } + @Override @NotNull public FileManager getFileManager() { return myFileManager; } + @Override public boolean areElementsEquivalent(PsiElement element1, PsiElement element2) { ProgressIndicatorProvider.checkCanceled(); // We hope this method is being called often enough to cancel daemon processes smoothly @@ -163,10 +170,12 @@ public class PsiManagerImpl extends PsiManagerEx { return element1.equals(element2) || element1.isEquivalentTo(element2) || element2.isEquivalentTo(element1); } + @Override public PsiFile findFile(@NotNull VirtualFile file) { return myFileManager.findFile(file); } + @Override @Nullable public FileViewProvider findViewProvider(@NotNull VirtualFile file) { return myFileManager.findViewProvider(file); @@ -197,29 +206,35 @@ public class PsiManagerImpl extends PsiManagerEx { return psiFile; } + @Override public PsiDirectory findDirectory(@NotNull VirtualFile file) { ProgressIndicatorProvider.checkCanceled(); return myFileManager.findDirectory(file); } + @Override public void reloadFromDisk(@NotNull PsiFile file) { myFileManager.reloadFromDisk(file); } + @Override public void addPsiTreeChangeListener(@NotNull PsiTreeChangeListener listener) { myTreeChangeListeners.add(listener); } + @Override public void addPsiTreeChangeListener(@NotNull final PsiTreeChangeListener listener, Disposable parentDisposable) { addPsiTreeChangeListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removePsiTreeChangeListener(listener); } }); } + @Override public void removePsiTreeChangeListener(@NotNull PsiTreeChangeListener listener) { myTreeChangeListeners.remove(listener); } @@ -236,6 +251,7 @@ public class PsiManagerImpl extends PsiManagerEx { fireEvent(event); } + @Override public void beforeChildRemoval(@NotNull PsiTreeChangeEventImpl event) { beforeChange(true); event.setCode(PsiTreeChangeEventImpl.PsiEventType.BEFORE_CHILD_REMOVAL); @@ -248,6 +264,7 @@ public class PsiManagerImpl extends PsiManagerEx { fireEvent(event); } + @Override public void beforeChildReplacement(@NotNull PsiTreeChangeEventImpl event) { beforeChange(true); event.setCode(PsiTreeChangeEventImpl.PsiEventType.BEFORE_CHILD_REPLACEMENT); @@ -454,6 +471,7 @@ public class PsiManagerImpl extends PsiManagerEx { } } + @Override public void registerRunnableToRunOnChange(@NotNull final Runnable runnable) { myMessageBus.connect().subscribe(ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener() { @Override @@ -467,6 +485,7 @@ public class PsiManagerImpl extends PsiManagerEx { }); } + @Override public void registerRunnableToRunOnAnyChange(@NotNull final Runnable runnable) { // includes non-physical changes myMessageBus.connect().subscribe(ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener() { @Override @@ -480,6 +499,7 @@ public class PsiManagerImpl extends PsiManagerEx { }); } + @Override public void registerRunnableToRunAfterAnyChange(@NotNull final Runnable runnable) { // includes non-physical changes myMessageBus.connect().subscribe(ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener() { @Override @@ -503,20 +523,24 @@ public class PsiManagerImpl extends PsiManagerEx { myMessageBus.syncPublisher(ANY_PSI_CHANGE_TOPIC).afterPsiChanged(isPhysical); } + @Override @NotNull public PsiModificationTracker getModificationTracker() { return PsiModificationTracker.SERVICE.getInstance(myProject); } + @Override public void startBatchFilesProcessingMode() { myBatchFilesProcessingModeCount.incrementAndGet(); } + @Override public void finishBatchFilesProcessingMode() { myBatchFilesProcessingModeCount.decrementAndGet(); LOG.assertTrue(myBatchFilesProcessingModeCount.get() >= 0); } + @Override public boolean isBatchFilesProcessingMode() { return myBatchFilesProcessingModeCount.get() > 0; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java index df2022afaa19..360720da51a6 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java @@ -39,14 +39,17 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr myPublisher = bus.syncPublisher(TOPIC); bus.connect().subscribe(DumbService.DUMB_MODE, new DumbService.DumbModeListener() { + @Override public void enteredDumbMode() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { incCounter(); } }); } + @Override public void exitDumbMode() { enteredDumbMode(); } @@ -64,6 +67,7 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr myPublisher.modificationCountChanged(); } + @Override public void treeChanged(PsiTreeChangeEventImpl event) { myModificationCount.getAndIncrement(); if (event.getParent() instanceof PsiDirectory) { @@ -73,14 +77,17 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr myPublisher.modificationCountChanged(); } + @Override public long getModificationCount() { return myModificationCount.get(); } + @Override public long getOutOfCodeBlockModificationCount() { return myOutOfCodeBlockModificationCount.get(); } + @Override public long getJavaStructureModificationCount() { return myJavaStructureModificationCount.get(); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiParameterizedCachedValue.java b/platform/core-impl/src/com/intellij/psi/impl/PsiParameterizedCachedValue.java index 82ef5f7d3e4a..cd45b49d65d2 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiParameterizedCachedValue.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiParameterizedCachedValue.java @@ -43,6 +43,7 @@ public abstract class PsiParameterizedCachedValue extends PsiCachedValue return getValueWithLock(param); } + @Override public ParameterizedCachedValueProvider getValueProvider() { return myProvider; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/TextBlock.java b/platform/core-impl/src/com/intellij/psi/impl/TextBlock.java index 7cbd385678bd..a96eb4d606d3 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/TextBlock.java +++ b/platform/core-impl/src/com/intellij/psi/impl/TextBlock.java @@ -67,6 +67,7 @@ public class TextBlock extends DocumentAdapter { return myPsiEndOffset; } + @Override public void documentChanged(DocumentEvent e) { myDocument = e.getDocument(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/file/PsiBinaryFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/file/PsiBinaryFileImpl.java index 8889970b3aba..3cac0a42fa82 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/file/PsiBinaryFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/file/PsiBinaryFileImpl.java @@ -53,11 +53,13 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, myFileType = viewProvider.getVirtualFile().getFileType(); } + @Override @NotNull public VirtualFile getVirtualFile() { return myViewProvider.getVirtualFile(); } + @Override public boolean processChildren(final PsiElementProcessor processor) { return true; } @@ -66,11 +68,13 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return myContents; } + @Override @NotNull public String getName() { return !isCopy() ? getVirtualFile().getName() : myName; } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { checkSetName(name); @@ -82,15 +86,18 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return PsiFileImplUtil.setName(this, name); } + @Override public void checkSetName(String name) throws IncorrectOperationException { if (isCopy()) return; PsiFileImplUtil.checkSetName(this, name); } + @Override public boolean isDirectory() { return false; } + @Override public PsiDirectory getContainingDirectory() { VirtualFile parentFile = getVirtualFile().getParent(); if (parentFile == null) return null; @@ -102,73 +109,90 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return getContainingDirectory(); } + @Override public long getModificationStamp() { return myModificationStamp; } + @Override @NotNull public Language getLanguage() { return Language.ANY; } + @Override public PsiManager getManager() { return myManager; } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiDirectory getParent() { return getContainingDirectory(); } + @Override public PsiFile getContainingFile() { return this; } + @Override public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return -1; } + @Override public int getTextLength() { return -1; } + @Override public PsiElement findElementAt(int offset) { return null; } + @Override public int getTextOffset() { return -1; } + @Override public String getText() { return ""; // TODO[max] throw new UnsupportedOperationException() } + @Override @NotNull public char[] textToCharArray() { return ArrayUtil.EMPTY_CHAR_ARRAY; // TODO[max] throw new UnsupportedOperationException() } + @Override public boolean textMatches(@NotNull CharSequence text) { return false; } + @Override public boolean textMatches(@NotNull PsiElement element) { return false; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitBinaryFile(this); } + @Override public PsiElement copy() { PsiBinaryFileImpl clone = (PsiBinaryFileImpl)clone(); clone.myName = getName(); @@ -184,27 +208,33 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return myName != null; } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException{ checkDelete(); PsiFileImplUtil.doDelete(this); } + @Override public void checkDelete() throws IncorrectOperationException{ if (isCopy()){ throw new IncorrectOperationException(); @@ -212,23 +242,28 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, CheckUtil.checkWritable(this); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { return null; } + @Override public boolean isValid() { if (isCopy()) return true; // "dummy" file return getVirtualFile().isValid() && !myManager.getProject().isDisposed() && myManager.getFileManager().findFile(getVirtualFile()) == this; } + @Override public boolean isWritable() { return isCopy() || getVirtualFile().isWritable(); } + @Override public boolean isPhysical() { return !isCopy(); } + @Override @NotNull public PsiFile getOriginalFile() { return this; @@ -239,25 +274,30 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return "PsiBinaryFile:" + getName(); } + @Override @NotNull public FileType getFileType() { return myFileType; } + @Override @NotNull public PsiFile[] getPsiRoots() { return new PsiFile[]{this}; } + @Override @NotNull public FileViewProvider getViewProvider() { return myViewProvider; } + @Override public FileASTNode getNode() { return null; // TODO[max] throw new UnsupportedOperationException() } + @Override public void subtreeChanged() { } @@ -266,6 +306,7 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, return FileContextUtil.getFileContext(this); } + @Override public void putInfo(Map info) { info.put("fileName", getName()); info.put("fileType", getFileType().getName()); diff --git a/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryFactoryImpl.java b/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryFactoryImpl.java index 0c9c696d5cee..ddbf1efd5bf0 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryFactoryImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryFactoryImpl.java @@ -32,10 +32,12 @@ public class PsiDirectoryFactoryImpl extends PsiDirectoryFactory { public PsiDirectoryFactoryImpl(final PsiManagerImpl manager) { myManager = manager; } + @Override public PsiDirectory createDirectory(@NotNull final VirtualFile file) { return new PsiDirectoryImpl(myManager, file); } + @Override @NotNull public String getQualifiedName(@NotNull final PsiDirectory directory, final boolean presentable) { if (presentable) { @@ -54,6 +56,7 @@ public class PsiDirectoryFactoryImpl extends PsiDirectoryFactory { return false; } + @Override public boolean isValidPackageName(String name) { return true; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java b/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java index b9f8bd2a312b..051dd1d5990e 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java @@ -68,33 +68,40 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu myFile = file; } + @Override @NotNull public VirtualFile getVirtualFile() { return myFile; } + @Override public boolean isDirectory() { return true; } + @Override public boolean isValid() { return myFile.isValid(); } + @Override @NotNull public Language getLanguage() { return Language.ANY; } + @Override public PsiManager getManager() { return myManager; } + @Override @NotNull public String getName() { return myFile.getName(); } + @Override @NotNull public PsiElement setName(@NotNull String name) throws IncorrectOperationException { checkSetName(name); @@ -138,6 +145,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return this; } + @Override public void checkSetName(String name) throws IncorrectOperationException { //CheckUtil.checkIsIdentifier(name); CheckUtil.checkWritable(this); @@ -151,12 +159,14 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public PsiDirectory getParentDirectory() { VirtualFile parentFile = myFile.getParent(); if (parentFile == null) return null; return myManager.findDirectory(parentFile); } + @Override @NotNull public PsiDirectory[] getSubdirectories() { VirtualFile[] files = myFile.getChildren(); @@ -170,6 +180,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return dirs.toArray(new PsiDirectory[dirs.size()]); } + @Override @NotNull public PsiFile[] getFiles() { LOG.assertTrue(myFile.isValid()); @@ -184,18 +195,21 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return PsiUtilCore.toPsiFileArray(psiFiles); } + @Override public PsiDirectory findSubdirectory(@NotNull String name) { VirtualFile childVFile = myFile.findChild(name); if (childVFile == null) return null; return myManager.findDirectory(childVFile); } + @Override public PsiFile findFile(@NotNull String name) { VirtualFile childVFile = myFile.findChild(name); if (childVFile == null) return null; return myManager.findFile(childVFile); } + @Override public boolean processChildren(PsiElementProcessor processor) { checkValid(); ProgressIndicatorProvider.checkCanceled(); @@ -221,6 +235,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return true; } + @Override @NotNull public PsiElement[] getChildren() { checkValid(); @@ -228,6 +243,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu VirtualFile[] files = myFile.getChildren(); final ArrayList children = new ArrayList(files.length); processChildren(new PsiElementProcessor() { + @Override public boolean execute(@NotNull final PsiFileSystemItem element) { children.add(element); return true; @@ -243,55 +259,68 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public PsiDirectory getParent() { return getParentDirectory(); } + @Override public PsiFile getContainingFile() { return null; } + @Override public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return -1; } + @Override public int getTextLength() { return -1; } + @Override public PsiElement findElementAt(int offset) { return null; } + @Override public int getTextOffset() { return -1; } + @Override public String getText() { return ""; // TODO throw new InsupportedOperationException() } + @Override @NotNull public char[] textToCharArray() { return ArrayUtil.EMPTY_CHAR_ARRAY; // TODO throw new InsupportedOperationException() } + @Override public boolean textMatches(@NotNull CharSequence text) { return false; } + @Override public boolean textMatches(@NotNull PsiElement element) { return false; } + @Override public final boolean isWritable() { return myFile.isWritable(); } + @Override public boolean isPhysical() { return !(myFile.getFileSystem() instanceof NonPhysicalFileSystem) && !(myFile.getFileSystem().getProtocol().equals("temp")); } @@ -299,12 +328,14 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu /** * @not_implemented */ + @Override public PsiElement copy() { LOG.error("not implemented"); return null; } + @Override @NotNull public PsiDirectory createSubdirectory(@NotNull String name) throws IncorrectOperationException { checkCreateSubdirectory(name); @@ -320,6 +351,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public void checkCreateSubdirectory(@NotNull String name) throws IncorrectOperationException { // TODO : another check? //CheckUtil.checkIsIdentifier(name); @@ -330,6 +362,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu CheckUtil.checkWritable(this); } + @Override @NotNull public PsiFile createFile(@NotNull String name) throws IncorrectOperationException { checkCreateFile(name); @@ -343,6 +376,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override @NotNull public PsiFile copyFileFrom(@NotNull String newName, @NotNull PsiFile originalFile) throws IncorrectOperationException { checkCreateFile(newName); @@ -389,6 +423,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public void checkCreateFile(@NotNull String name) throws IncorrectOperationException { VirtualFile existingFile = getVirtualFile().findChild(name); if (existingFile != null) { @@ -398,6 +433,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { checkAdd(element); if (element instanceof PsiDirectory) { @@ -462,6 +498,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); if (element instanceof PsiDirectory) { @@ -487,14 +524,17 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu } } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { checkDelete(); //PsiDirectory parent = getParentDirectory(); @@ -523,6 +563,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu */ } + @Override public void checkDelete() throws IncorrectOperationException { CheckUtil.checkDelete(myFile); } @@ -530,11 +571,13 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu /** * @not_implemented */ + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { LOG.error("not implemented"); return null; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitDirectory(this); } @@ -543,10 +586,12 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return "PsiDirectory:" + myFile.getPresentableUrl(); } + @Override public ASTNode getNode() { return null; } + @Override public boolean canNavigateToSource() { return false; } @@ -556,14 +601,17 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu return ItemPresentationProviders.getItemPresentation(this); } + @Override public void navigate(boolean requestFocus) { PsiNavigationSupport.getInstance().navigateToDirectory(this, requestFocus); } + @Override protected Icon getElementIcon(final int flags) { return PlatformIcons.DIRECTORY_CLOSED_ICON; } + @Override public void putInfo(Map info) { info.put("fileName", getName()); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/file/PsiPackageBase.java b/platform/core-impl/src/com/intellij/psi/impl/file/PsiPackageBase.java index cfa80e56c849..276ef9cbef08 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/file/PsiPackageBase.java +++ b/platform/core-impl/src/com/intellij/psi/impl/file/PsiPackageBase.java @@ -70,12 +70,14 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect return myQualifiedName; } + @Override @NotNull public PsiDirectory[] getDirectories() { final Collection collection = getAllDirectories(); return ContainerUtil.toArray(collection, new PsiDirectory[collection.size()]); } + @Override @NotNull public PsiDirectory[] getDirectories(@NotNull GlobalSearchScope scope) { List result = null; @@ -89,10 +91,12 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect return result == null ? PsiDirectory.EMPTY_ARRAY : result.toArray(new PsiDirectory[result.size()]); } + @Override public RowIcon getElementIcon(final int elementFlags) { return createLayeredIcon(this, PlatformIcons.PACKAGE_ICON, elementFlags); } + @Override public String getName() { if (DebugUtil.CHECK_INSIDE_ATOMIC_ACTION_ENABLED) { ApplicationManager.getApplication().assertReadAccessAllowed(); @@ -107,6 +111,7 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect } } + @Override @Nullable public PsiElement setName(@NotNull String name) throws IncorrectOperationException { checkSetName(name); @@ -136,86 +141,105 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect } } + @Override public PsiManager getManager() { return myManager; } + @Override @NotNull public PsiElement[] getChildren() { LOG.error("method not implemented"); return PsiElement.EMPTY_ARRAY; } + @Override @Nullable public PsiElement getParent() { return getParentPackage(); } + @Override @Nullable public PsiFile getContainingFile() { return null; } + @Override @Nullable public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return -1; } + @Override public int getTextLength() { return -1; } + @Override public PsiElement findElementAt(int offset) { return null; } + @Override public int getTextOffset() { return -1; } + @Override @Nullable public String getText() { return null; } + @Override @NotNull public char[] textToCharArray() { return ArrayUtil.EMPTY_CHAR_ARRAY; // TODO throw new InsupportedOperationException() } + @Override public boolean textMatches(@NotNull CharSequence text) { return false; } + @Override public boolean textMatches(@NotNull PsiElement element) { return false; } + @Override public PsiElement copy() { LOG.error("method not implemented"); return null; } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { checkDelete(); PsiDirectory[] dirs = getDirectories(); @@ -224,16 +248,19 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect } } + @Override public void checkDelete() throws IncorrectOperationException { for (PsiDirectory dir : getDirectories()) { dir.checkDelete(); } } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public boolean isWritable() { PsiDirectory[] dirs = getDirectories(); for (PsiDirectory dir : dirs) { @@ -242,6 +269,7 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect return true; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitElement(this); } @@ -250,22 +278,27 @@ public abstract class PsiPackageBase extends PsiElementBase implements PsiDirect return "PsiPackageBase:" + getQualifiedName(); } + @Override public boolean canNavigate() { return isValid(); } + @Override public boolean canNavigateToSource() { return false; } + @Override public boolean isPhysical() { return true; } + @Override public ASTNode getNode() { return null; } + @Override public void putInfo(Map info) { info.put("packageName", getName()); info.put("packageQualifiedName", getQualifiedName()); diff --git a/platform/core-impl/src/com/intellij/psi/impl/file/impl/FileManagerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/file/impl/FileManagerImpl.java index f864b59870f7..bb2321d73708 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/file/impl/FileManagerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/file/impl/FileManagerImpl.java @@ -78,10 +78,12 @@ public class FileManagerImpl implements FileManager { myConnection.subscribe(DumbService.DUMB_MODE, new DumbService.DumbModeListener() { + @Override public void enteredDumbMode() { recalcAllViewProviders(); } + @Override public void exitDumbMode() { recalcAllViewProviders(); } @@ -100,6 +102,7 @@ public class FileManagerImpl implements FileManager { private void recalcAllViewProviders() { handleFileTypesChange(new FileTypesChanged() { + @Override protected void updateMaps() { for (final FileViewProvider provider : myVFileToViewProviderMap.values()) { if (!provider.getVirtualFile().isValid()) { @@ -118,6 +121,7 @@ public class FileManagerImpl implements FileManager { }); } + @Override public void dispose() { if (myInitialized) { myConnection.disconnect(); @@ -125,6 +129,7 @@ public class FileManagerImpl implements FileManager { myDisposed = true; } + @Override @TestOnly public void cleanupForNextTest() { myVFileToViewProviderMap.clear(); @@ -132,6 +137,7 @@ public class FileManagerImpl implements FileManager { processQueue(); } + @Override @NotNull public FileViewProvider findViewProvider(@NotNull final VirtualFile file) { FileViewProvider viewProvider = getFromInjected(file); @@ -143,6 +149,7 @@ public class FileManagerImpl implements FileManager { return viewProvider; } + @Override public FileViewProvider findCachedViewProvider(@NotNull final VirtualFile file) { FileViewProvider viewProvider = getFromInjected(file); if (viewProvider != null) return viewProvider; @@ -160,6 +167,7 @@ public class FileManagerImpl implements FileManager { return null; } + @Override public void setViewProvider(@NotNull final VirtualFile virtualFile, final FileViewProvider fileViewProvider) { if (!(virtualFile instanceof VirtualFileWindow)) { if (fileViewProvider == null) { @@ -171,6 +179,7 @@ public class FileManagerImpl implements FileManager { } } + @Override @NotNull public FileViewProvider createFileViewProvider(@NotNull final VirtualFile file, boolean physical) { Language language = getLanguage(file); @@ -213,6 +222,7 @@ public class FileManagerImpl implements FileManager { void processFileTypesChanged() { handleFileTypesChange(new FileTypesChanged() { + @Override protected void updateMaps() { removeInvalidFilesAndDirs(true); } @@ -222,6 +232,7 @@ public class FileManagerImpl implements FileManager { private abstract class FileTypesChanged implements Runnable { protected abstract void updateMaps(); + @Override public void run() { PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(myManager); event.setPropertyName(PsiTreeChangeEvent.PROP_FILE_TYPES); @@ -289,6 +300,7 @@ public class FileManagerImpl implements FileManager { } } + @Override @Nullable public PsiFile findFile(@NotNull VirtualFile vFile) { if (vFile.isDirectory()) return null; @@ -306,6 +318,7 @@ public class FileManagerImpl implements FileManager { return viewProvider.getPsi(viewProvider.getBaseLanguage()); } + @Override @Nullable public PsiFile getCachedPsiFile(@NotNull VirtualFile vFile) { ApplicationManager.getApplication().assertReadAccessAllowed(); @@ -320,6 +333,7 @@ public class FileManagerImpl implements FileManager { return getCachedPsiFileInner(vFile); } + @Override @Nullable public PsiDirectory findDirectory(@NotNull VirtualFile vFile) { LOG.assertTrue(myInitialized, "Access to psi files should be performed only after startup activity"); @@ -385,6 +399,7 @@ public class FileManagerImpl implements FileManager { ? ((SingleRootFileViewProvider)fileViewProvider).getCachedPsi(fileViewProvider.getBaseLanguage()) : null; } + @Override public List getAllCachedFiles() { List files = new ArrayList(); for (FileViewProvider provider : myVFileToViewProviderMap.values()) { @@ -455,6 +470,7 @@ public class FileManagerImpl implements FileManager { myVFileToViewProviderMap.putAll(fileToPsiFileMap); } + @Override public void reloadFromDisk(@NotNull PsiFile file) { reloadFromDisk(file, false); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/light/LightElement.java b/platform/core-impl/src/com/intellij/psi/impl/light/LightElement.java index cd950cebf1d7..d3d85827f895 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/light/LightElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/light/LightElement.java @@ -37,62 +37,76 @@ public abstract class LightElement extends PsiElementBase { myLanguage = language; } + @Override @NotNull public Language getLanguage() { return myLanguage; } + @Override public PsiManager getManager() { return myManager; } + @Override public PsiElement getParent() { return null; } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiFile getContainingFile() { return null; } + @Override public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return -1; } + @Override public final int getTextLength() { String text = getText(); return text != null ? text.length() : 0; } + @Override @NotNull public char[] textToCharArray() { return getText().toCharArray(); } + @Override public boolean textMatches(@NotNull CharSequence text) { return getText().equals(text.toString()); } + @Override public boolean textMatches(@NotNull PsiElement element) { return getText().equals(element.getText()); } + @Override public PsiElement findElementAt(int offset) { return null; } + @Override public int getTextOffset() { return -1; } + @Override public boolean isValid() { final PsiElement navElement = getNavigationElement(); if (navElement != this) { @@ -102,44 +116,54 @@ public abstract class LightElement extends PsiElementBase { return true; } + @Override public boolean isWritable() { return false; } + @Override public boolean isPhysical() { return false; } public abstract String toString(); + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkDelete() throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public ASTNode getNode() { return null; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/meta/MetaRegistry.java b/platform/core-impl/src/com/intellij/psi/impl/meta/MetaRegistry.java index c37e8f660291..baad23e413b6 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/meta/MetaRegistry.java +++ b/platform/core-impl/src/com/intellij/psi/impl/meta/MetaRegistry.java @@ -53,6 +53,7 @@ public class MetaRegistry extends MetaDataRegistrar { public static void bindDataToElement(final PsiElement element, final PsiMetaData data) { CachedValue value = CachedValuesManager.getManager(element.getProject()).createCachedValue(new CachedValueProvider() { + @Override public Result compute() { data.init(element); return new Result(data, data.getDependences()); @@ -68,8 +69,10 @@ public class MetaRegistry extends MetaDataRegistrar { private static final UserDataCache, PsiElement, Object> ourCachedMetaCache = new UserDataCache, PsiElement, Object>() { + @Override protected CachedValue compute(final PsiElement element, Object p) { return CachedValuesManager.getManager(element.getProject()).createCachedValue(new CachedValueProvider() { + @Override public Result compute() { ensureContributorsLoaded(); for (final MyBinding binding : ourBindings) { @@ -121,6 +124,7 @@ public class MetaRegistry extends MetaDataRegistrar { final MyBinding binding = new MyBinding(filter, aMetadataClass); addBinding(binding); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { ourBindings.remove(binding); } @@ -139,6 +143,7 @@ public class MetaRegistry extends MetaDataRegistrar { ourBindings.add(0, binding); } + @Override public void registerMetaData(ElementFilter filter, Class metadataDescriptorClass) { addMetadataBinding(filter, metadataDescriptorClass); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/CharTableImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/CharTableImpl.java index 73209ef430c2..d06a6067afa2 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/CharTableImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/CharTableImpl.java @@ -32,6 +32,7 @@ public class CharTableImpl implements CharTable { private final OpenTHashSet entries = new OpenTHashSet(10, 0.9f, HASHER); + @Override public CharSequence intern(final CharSequence text) { if (text.length() > INTERN_THRESHOLD) return createSequence(text); @@ -55,6 +56,7 @@ public class CharTableImpl implements CharTable { } } + @Override public CharSequence intern(final CharSequence baseText, final int startOffset, final int endOffset) { if (endOffset - startOffset == baseText.length()) return baseText.toString(); return intern(baseText.subSequence(startOffset, endOffset)); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolder.java b/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolder.java index 84a715ae729c..761b999fc0cb 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolder.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolder.java @@ -79,15 +79,18 @@ public class DummyHolder extends PsiFileImpl { this(manager, null, context, null, null, language); } + @Override public PsiElement getContext() { return myContext; } + @Override public boolean isValid() { if (myExplicitlyValid != null) return myExplicitlyValid.booleanValue(); return super.isValid() && !(myContext != null && !myContext.isValid()); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitFile(this); } @@ -97,6 +100,7 @@ public class DummyHolder extends PsiFileImpl { return "DummyHolder"; } + @Override @NotNull public FileType getFileType() { if (myContext != null) { @@ -107,6 +111,7 @@ public class DummyHolder extends PsiFileImpl { return fileType != null ? fileType : PlainTextFileType.INSTANCE; } + @Override public FileElement getTreeElement() { if (myFileElement != null) return myFileElement; @@ -115,6 +120,7 @@ public class DummyHolder extends PsiFileImpl { } } + @Override public FileElement getTreeElementNoLock() { if (myFileElement == null) { myFileElement = new FileElement(TokenType.DUMMY_HOLDER, null); @@ -125,11 +131,13 @@ public class DummyHolder extends PsiFileImpl { return myFileElement; } + @Override @NotNull public Language getLanguage() { return myLanguage; } + @Override @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"}) protected PsiFileImpl clone() { final PsiFileImpl psiFile = cloneImpl(myFileElement); @@ -146,6 +154,7 @@ public class DummyHolder extends PsiFileImpl { private FileViewProvider myViewProvider = null; + @Override @NotNull public FileViewProvider getViewProvider() { if(myViewProvider != null) return myViewProvider; diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolderFactory.java b/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolderFactory.java index 7821acd076cb..45844340f6fc 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolderFactory.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/DummyHolderFactory.java @@ -64,30 +64,37 @@ public class DummyHolderFactory { } private static class DefaultFactory implements HolderFactory { + @Override public DummyHolder createHolder(@NotNull PsiManager manager, TreeElement contentElement, PsiElement context) { return new DummyHolder(manager, contentElement, context); } + @Override public DummyHolder createHolder(@NotNull PsiManager manager, CharTable table, boolean validity) { return new DummyHolder(manager, table, validity); } + @Override public DummyHolder createHolder(@NotNull PsiManager manager, PsiElement context) { return new DummyHolder(manager, context); } + @Override public DummyHolder createHolder(@NotNull final PsiManager manager, final Language language, final PsiElement context) { return new DummyHolder(manager, language, context); } + @Override public DummyHolder createHolder(@NotNull PsiManager manager, TreeElement contentElement, PsiElement context, CharTable table) { return new DummyHolder(manager, contentElement, context, table); } + @Override public DummyHolder createHolder(@NotNull PsiManager manager, PsiElement context, CharTable table) { return new DummyHolder(manager, context, table); } + @Override public DummyHolder createHolder(@NotNull PsiManager manager, final CharTable table, final Language language) { return new DummyHolder(manager, table, language); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/IdentityCharTable.java b/platform/core-impl/src/com/intellij/psi/impl/source/IdentityCharTable.java index bbf00944a908..5864a34a19dd 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/IdentityCharTable.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/IdentityCharTable.java @@ -27,10 +27,12 @@ public class IdentityCharTable implements CharTable { public static final IdentityCharTable INSTANCE = new IdentityCharTable(); + @Override public CharSequence intern(final CharSequence text) { return text; } + @Override public CharSequence intern(CharSequence baseText, int startOffset, int endOffset) { if (endOffset - startOffset == baseText.length()) return baseText.toString(); return baseText.subSequence(startOffset, endOffset); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiElementArrayConstructor.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiElementArrayConstructor.java index 15cf2a089342..c145880d6b5b 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiElementArrayConstructor.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiElementArrayConstructor.java @@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement; public interface PsiElementArrayConstructor { PsiElementArrayConstructor PSI_ELEMENT_ARRAY_CONSTRUCTOR = new PsiElementArrayConstructor() { + @Override public PsiElement[] newPsiElementArray(int length) { return length == 0 ? PsiElement.EMPTY_ARRAY : new PsiElement[length]; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java index d153179d0f10..6384366287eb 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java @@ -111,6 +111,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return ASTFactory.leaf(myContentElementType, leafText); } + @Override public boolean isDirectory() { return false; } @@ -154,14 +155,17 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return null; } + @Override public VirtualFile getVirtualFile() { return getViewProvider().isEventSystemEnabled() ? getViewProvider().getVirtualFile() : null; } + @Override public boolean processChildren(final PsiElementProcessor processor) { return true; } + @Override public boolean isValid() { final VirtualFile vFile = getViewProvider().getVirtualFile(); if (!vFile.isValid()) return false; @@ -182,6 +186,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return provider.getPsi(getLanguage()) == this || provider.getPsi(provider.getBaseLanguage()) == this; } + @Override public boolean isContentsLoaded() { return _getTreeElement() != null; } @@ -233,6 +238,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return treeElement; } + @Override public ASTNode findTreeForStub(StubTree tree, StubElement stub) { final Iterator> stubs = tree.getPlainList().iterator(); final StubElement root = stubs.next(); @@ -340,10 +346,12 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF public void clearCaches() {} + @Override public String getText() { return getViewProvider().getContents().toString(); } + @Override public int getTextLength() { final ASTNode tree = _getTreeElement(); if (tree != null) return tree.getTextLength(); @@ -351,22 +359,27 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return getViewProvider().getContents().length(); } + @Override public TextRange getTextRange() { return new TextRange(0, getTextLength()); } + @Override public PsiElement getNextSibling() { return SharedPsiElementImplUtil.getNextSibling(this); } + @Override public PsiElement getPrevSibling() { return SharedPsiElementImplUtil.getPrevSibling(this); } + @Override public long getModificationStamp() { return getViewProvider().getModificationStamp(); } + @Override public void subtreeChanged() { doClearCaches(); getViewProvider().rootChanged(this); @@ -389,6 +402,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF clearCaches(); } + @Override @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException", "CloneDoesntCallSuperClone"}) protected PsiFileImpl clone() { FileViewProvider viewProvider = getViewProvider(); @@ -420,29 +434,35 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return clone; } + @Override @NotNull public String getName() { return getViewProvider().getVirtualFile().getName(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { checkSetName(name); doClearCaches(); return PsiFileImplUtil.setName(this, name); } + @Override public void checkSetName(String name) throws IncorrectOperationException { if (!getViewProvider().isEventSystemEnabled()) return; PsiFileImplUtil.checkSetName(this, name); } + @Override public boolean isWritable() { return getViewProvider().getVirtualFile().isWritable() && !CacheUtil.isCopy(this); } + @Override public PsiDirectory getParent() { return getContainingDirectory(); } + @Override @Nullable public PsiDirectory getContainingDirectory() { final VirtualFile parentFile = getViewProvider().getVirtualFile().getParent(); @@ -450,16 +470,19 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return getManager().findDirectory(parentFile); } + @Override @NotNull public PsiFile getContainingFile() { return this; } + @Override public void delete() throws IncorrectOperationException { checkDelete(); PsiFileImplUtil.doDelete(this); } + @Override public void checkDelete() throws IncorrectOperationException { if (!getViewProvider().isEventSystemEnabled()) { throw new IncorrectOperationException(); @@ -467,6 +490,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF CheckUtil.checkWritable(this); } + @Override @NotNull public PsiFile getOriginalFile() { return myOriginalFile == null ? this : myOriginalFile; @@ -476,6 +500,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF myOriginalFile = originalFile.getOriginalFile(); } + @Override @NotNull public PsiFile[] getPsiRoots() { final FileViewProvider viewProvider = getViewProvider(); @@ -492,16 +517,19 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return roots; } + @Override public boolean isPhysical() { // TODO[ik] remove this shit with dummy file system return getViewProvider().isEventSystemEnabled(); } + @Override @NotNull public Language getLanguage() { return myElementType.getLanguage(); } + @Override @NotNull public FileViewProvider getViewProvider() { return myViewProvider; @@ -511,14 +539,17 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF myTreeElementPointer = element; } + @Override public PsiElement findElementAt(int offset) { return getViewProvider().findElementAt(offset); } + @Override public PsiReference findReferenceAt(int offset) { return getViewProvider().findReferenceAt(offset); } + @Override @NotNull public char[] textToCharArray() { return CharArrayUtil.fromSequenceStrict(getViewProvider().getContents()); @@ -545,10 +576,12 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return false; } + @Override public PsiElement getContext() { return FileContextUtil.getFileContext(this); } + @Override public void onContentReload() { subtreeChanged(); // important! otherwise cached information is not released if (isContentsLoaded()) { @@ -556,6 +589,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF } } + @Override public PsiFile cacheCopy(final FileContent content) { if (isContentsLoaded()) { return this; @@ -587,6 +621,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return stubHolder != null ? stubHolder.getRoot() : null; } + @Override @Nullable public StubTree getStubTree() { ApplicationManager.getApplication().assertReadAccessAllowed(); @@ -669,14 +704,17 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return myStubLock; } + @Override public PsiManager getManager() { return myManager; } + @Override public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } @@ -694,46 +732,57 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF } } + @Override @NotNull public PsiElement[] getChildren() { return calcTreeElement().getChildrenAsPsiElements(null, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); } + @Override public PsiElement getFirstChild() { return SharedImplUtil.getFirstChild(calcTreeElement()); } + @Override public PsiElement getLastChild() { return SharedImplUtil.getLastChild(calcTreeElement()); } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { SharedImplUtil.acceptChildren(visitor, calcTreeElement()); } + @Override public int getStartOffsetInParent() { return calcTreeElement().getStartOffsetInParent(); } + @Override public int getTextOffset() { return calcTreeElement().getTextOffset(); } + @Override public boolean textMatches(@NotNull CharSequence text) { return calcTreeElement().textMatches(text); } + @Override public boolean textMatches(@NotNull PsiElement element) { return calcTreeElement().textMatches(element); } + @Override public boolean textContains(char c) { return calcTreeElement().textContains(c); } + @Override public final PsiElement copy() { return clone(); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -742,6 +791,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -750,6 +800,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -758,24 +809,29 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public final void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, null, null); } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.TRUE); } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.FALSE); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { CheckUtil.checkWritable(this); if (first == null) { @@ -790,20 +846,24 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF CodeEditUtil.removeChildren(treeElement, firstElement, lastElement); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { CompositeElement treeElement = calcTreeElement(); return SharedImplUtil.doReplace(this, treeElement, newElement); } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -811,22 +871,27 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return true; } + @Override @NotNull public GlobalSearchScope getResolveScope() { return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override public ItemPresentation getPresentation() { return new ItemPresentation() { + @Override public String getPresentableText() { return getName(); } + @Override public String getLocationString() { final PsiDirectory psiDirectory = getParent(); if (psiDirectory != null) { @@ -835,24 +900,29 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return null; } + @Override public Icon getIcon(final boolean open) { return PsiFileImpl.this.getIcon(open ? ICON_FLAG_OPEN : ICON_FLAG_CLOSED); } }; } + @Override public void navigate(boolean requestFocus) { PsiNavigationSupport.getInstance().getDescriptor(this).navigate(requestFocus); } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -861,10 +931,12 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF return manager.getProject(); } + @Override public FileASTNode getNode() { return calcTreeElement(); } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } @@ -939,6 +1011,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF if (vFile != null && vFile.isValid()) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { final Document doc = FileDocumentManager.getInstance().getCachedDocument(vFile); if (doc != null) { @@ -951,6 +1024,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF } } + @Override public void putInfo(Map info) { putInfo(this, info); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiPlainTextFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiPlainTextFileImpl.java index ad9546eb94ff..caf0130e9e8e 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiPlainTextFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiPlainTextFileImpl.java @@ -31,6 +31,7 @@ public class PsiPlainTextFileImpl extends PsiFileImpl implements PsiPlainTextFil myFileType = viewProvider.getBaseLanguage() != PlainTextLanguage.INSTANCE ? PlainTextFileType.INSTANCE : viewProvider.getVirtualFile().getFileType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ visitor.visitPlainTextFile(this); } @@ -39,11 +40,13 @@ public class PsiPlainTextFileImpl extends PsiFileImpl implements PsiPlainTextFil return "PsiFile(plain text):" + getName(); } + @Override @NotNull public FileType getFileType() { return myFileType; } + @Override @NotNull public PsiReference[] getReferences() { return ReferenceProvidersRegistry.getReferencesFromProviders(this,PsiPlainTextFile.class); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/codeStyle/CodeEditUtil.java b/platform/core-impl/src/com/intellij/psi/impl/source/codeStyle/CodeEditUtil.java index 7cd25132badc..21eb2ff933df 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/codeStyle/CodeEditUtil.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/codeStyle/CodeEditUtil.java @@ -382,6 +382,7 @@ public class CodeEditUtil { public static void enablePostponedFormattingInTree(@NotNull ASTNode root) { ((TreeElement)root).acceptTree(new RecursiveTreeElementVisitor() { + @Override protected boolean visitNode(TreeElement element) { element.putUserData(DISABLE_POSTPONED_REFORMAT_KEY, null); return true; diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java b/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java index 616a969dd061..1434ed5c2fd4 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java @@ -35,6 +35,7 @@ import java.util.*; public class PsiMultiReference implements PsiPolyVariantReference { public static final Comparator COMPARATOR = new Comparator() { + @Override public int compare(final PsiReference ref1, final PsiReference ref2) { if (ref1.isSoft() && !ref2.isSoft()) return 1; if (!ref1.isSoft() && ref2.isSoft()) return -1; @@ -81,10 +82,12 @@ public class PsiMultiReference implements PsiPolyVariantReference { return myReferences[0]; } + @Override public PsiElement getElement(){ return myElement; } + @Override public TextRange getRangeInElement(){ final PsiReference chosenRef = chooseReference(); TextRange rangeInElement = chosenRef.getRangeInElement(); @@ -97,6 +100,7 @@ public class PsiMultiReference implements PsiPolyVariantReference { return rangeInElement; } + @Override public PsiElement resolve(){ final PsiReference reference = chooseReference(); if (cannotChoose()) { @@ -110,19 +114,23 @@ public class PsiMultiReference implements PsiPolyVariantReference { return myReferences.length > 1 && COMPARATOR.compare(myReferences[0], myReferences[1]) == 0; } + @Override @NotNull public String getCanonicalText(){ return chooseReference().getCanonicalText(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException{ return chooseReference().handleElementRename(newElementName); } + @Override public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException{ return chooseReference().bindToElement(element); } + @Override public boolean isReferenceTo(PsiElement element){ for (PsiReference reference : myReferences) { if (reference.isReferenceTo(element)) return true; @@ -130,6 +138,7 @@ public class PsiMultiReference implements PsiPolyVariantReference { return false; } + @Override @NotNull public Object[] getVariants() { Set variants = new HashSet(); @@ -140,6 +149,7 @@ public class PsiMultiReference implements PsiPolyVariantReference { return variants.toArray(); } + @Override public boolean isSoft(){ for (PsiReference reference : getReferences()) { if (!reference.isSoft()) { @@ -149,6 +159,7 @@ public class PsiMultiReference implements PsiPolyVariantReference { return true; } + @Override @NotNull public ResolveResult[] multiResolve(final boolean incompleteCode) { final PsiReference[] refs = getReferences(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiPolyVariantCachingReference.java b/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiPolyVariantCachingReference.java index bd1af3514479..87928ad43a17 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiPolyVariantCachingReference.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiPolyVariantCachingReference.java @@ -24,11 +24,13 @@ import org.jetbrains.annotations.Nullable; * @author peter */ public abstract class PsiPolyVariantCachingReference implements PsiPolyVariantReference { + @Override @NotNull public final ResolveResult[] multiResolve(boolean incompleteCode) { return ResolveCache.getInstance(getElement().getProject()).resolveWithCaching(this, MyResolver.INSTANCE, true, incompleteCode); } + @Override public PsiElement resolve() { ResolveResult[] results = multiResolve(false); return results.length == 1 ? results[0].getElement() : null; @@ -37,10 +39,12 @@ public abstract class PsiPolyVariantCachingReference implements PsiPolyVariantRe @NotNull protected abstract ResolveResult[] resolveInner(boolean incompleteCode); + @Override public boolean isReferenceTo(final PsiElement element) { return getElement().getManager().areElementsEquivalent(resolve(), element); } + @Override public boolean isSoft(){ return false; } @@ -53,6 +57,7 @@ public abstract class PsiPolyVariantCachingReference implements PsiPolyVariantRe private static class MyResolver implements ResolveCache.PolyVariantResolver { private static final MyResolver INSTANCE = new MyResolver(); + @Override public ResolveResult[] resolve(PsiPolyVariantReference reference, boolean incompleteCode) { return ((PsiPolyVariantCachingReference)reference).resolveInner(incompleteCode); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/text/ASTDiffBuilder.java b/platform/core-impl/src/com/intellij/psi/impl/source/text/ASTDiffBuilder.java index 70d342d6bb16..bc307d2e31b2 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/text/ASTDiffBuilder.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/text/ASTDiffBuilder.java @@ -39,6 +39,7 @@ public class ASTDiffBuilder implements DiffTreeChangeBuilder { myEvent = new TreeChangeEventImpl(modelAspect, fileImpl.getTreeElement()); } + @Override public void nodeReplaced(@NotNull ASTNode oldNode, @NotNull ASTNode newNode) { if (oldNode instanceof FileElement && newNode instanceof FileElement) { } @@ -50,10 +51,12 @@ public class ASTDiffBuilder implements DiffTreeChangeBuilder { } } + @Override public void nodeDeleted(@NotNull ASTNode parent, @NotNull final ASTNode child) { myEvent.addElementaryChange(child, ChangeInfoImpl.create(ChangeInfo.REMOVED, child)); } + @Override public void nodeInserted(@NotNull final ASTNode oldParent, @NotNull ASTNode newNode, final int pos) { myEvent.addElementaryChange(newNode, ChangeInfoImpl.create(ChangeInfo.ADD, newNode)); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java index f6cd1f19146f..0487c097f82c 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java @@ -54,12 +54,14 @@ public class BlockSupportImpl extends BlockSupport { public BlockSupportImpl(Project project) { project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new DocumentBulkUpdateListener.Adapter() { + @Override public void updateStarted(final Document doc) { doc.putUserData(DO_NOT_REPARSE_INCREMENTALLY, Boolean.TRUE); } }); } + @Override public void reparseRange(PsiFile file, int startOffset, int endOffset, CharSequence newTextS) throws IncorrectOperationException { LOG.assertTrue(file.isValid()); final PsiFileImpl psiFile = (PsiFileImpl)file; @@ -69,6 +71,7 @@ public class BlockSupportImpl extends BlockSupport { PsiDocumentManager.getInstance(psiFile.getProject()).commitDocument(document); } + @Override @NotNull public DiffLog reparseRange(@NotNull final PsiFile file, final int startOffset, diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/ASTShallowComparator.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/ASTShallowComparator.java index b127708113f3..8ed860b46a97 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/ASTShallowComparator.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/ASTShallowComparator.java @@ -34,6 +34,7 @@ public class ASTShallowComparator implements ShallowNodeComparator= 0) return cachedLength; @@ -527,6 +542,7 @@ public class CompositeElement extends TreeElement { } } + @Override public int hc() { int hc = myHC; if (hc == -1) { @@ -541,6 +557,7 @@ public class CompositeElement extends TreeElement { return hc; } + @Override public int getCachedLength() { return myCachedLength; } @@ -606,10 +623,12 @@ public class CompositeElement extends TreeElement { return null; } + @Override public TreeElement getFirstChildNode() { return firstChild; } + @Override public TreeElement getLastChildNode() { return lastChild; } @@ -623,6 +642,7 @@ public class CompositeElement extends TreeElement { this.lastChild = lastChild; } + @Override public void addChild(@NotNull ASTNode child, @Nullable final ASTNode anchorBefore) { LOG.assertTrue(anchorBefore == null || ((TreeElement)anchorBefore).getTreeParent() == this, "anchorBefore == null || anchorBefore.getTreeParent() == parent"); TreeUtil.ensureParsed(getFirstChildNode()); @@ -633,6 +653,7 @@ public class CompositeElement extends TreeElement { removeChildrenInner(first, last); ChangeUtil.prepareAndRunChangeAction(new ChangeUtil.ChangeAction(){ + @Override public void makeChange(TreeChangeEvent destinationTreeChange) { if (anchorBefore != null) { insertBefore(destinationTreeChange, (TreeElement)anchorBefore, first); @@ -644,6 +665,7 @@ public class CompositeElement extends TreeElement { }, this); } + @Override public void addLeaf(@NotNull final IElementType leafType, final CharSequence leafText, final ASTNode anchorBefore) { FileElement holder = new DummyHolder(getManager(), null).getTreeElement(); final LeafElement leaf = ASTFactory.leaf(leafType, holder.getCharTable().intern(leafText)); @@ -653,18 +675,22 @@ public class CompositeElement extends TreeElement { addChild(leaf, anchorBefore); } + @Override public void addChild(@NotNull ASTNode child) { addChild(child, null); } + @Override public void removeChild(@NotNull ASTNode child) { removeChildInner((TreeElement)child); } + @Override public void removeRange(@NotNull ASTNode first, ASTNode firstWhichStayInTree) { removeChildrenInner((TreeElement)first, (TreeElement)firstWhichStayInTree); } + @Override public void replaceChild(@NotNull ASTNode oldChild, @NotNull ASTNode newChild) { LOG.assertTrue(((TreeElement)oldChild).getTreeParent() == this); final TreeElement oldChild1 = (TreeElement)oldChild; @@ -676,6 +702,7 @@ public class CompositeElement extends TreeElement { removeChildrenInner(newChild1, newChildNext); ChangeUtil.prepareAndRunChangeAction(new ChangeUtil.ChangeAction(){ + @Override public void makeChange(TreeChangeEvent destinationTreeChange) { replace(destinationTreeChange, oldChild1, newChild1); repairRemovedElement(CompositeElement.this, oldChild1); @@ -683,11 +710,13 @@ public class CompositeElement extends TreeElement { }, this); } + @Override public void replaceAllChildrenToChildrenOf(final ASTNode anotherParent) { TreeUtil.ensureParsed(getFirstChildNode()); TreeUtil.ensureParsed(anotherParent.getFirstChildNode()); final ASTNode firstChild = anotherParent.getFirstChildNode(); ChangeUtil.prepareAndRunChangeAction(new ChangeUtil.ChangeAction(){ + @Override public void makeChange(TreeChangeEvent destinationTreeChange) { destinationTreeChange.addElementaryChange(anotherParent, ChangeInfoImpl.create(ChangeInfo.CONTENTS_CHANGED, anotherParent)); ((CompositeElement)anotherParent).rawRemoveAllChildren(); @@ -696,6 +725,7 @@ public class CompositeElement extends TreeElement { if (firstChild != null) { ChangeUtil.prepareAndRunChangeAction(new ChangeUtil.ChangeAction(){ + @Override public void makeChange(TreeChangeEvent destinationTreeChange) { if(getTreeParent() != null){ final ChangeInfoImpl changeInfo = ChangeInfoImpl.create(ChangeInfo.CONTENTS_CHANGED, CompositeElement.this); @@ -725,6 +755,7 @@ public class CompositeElement extends TreeElement { } } + @Override public void addChildren(ASTNode firstChild, ASTNode lastChild, ASTNode anchorBefore) { while (firstChild != lastChild) { final ASTNode next1 = firstChild.getTreeNext(); @@ -733,6 +764,7 @@ public class CompositeElement extends TreeElement { } } + @Override public final PsiElement getPsi() { ProgressIndicatorProvider.checkCanceled(); // We hope this method is being called often enough to cancel daemon processes smoothly @@ -891,6 +923,7 @@ public class CompositeElement extends TreeElement { final FileElement fileElement = TreeUtil.getFileElement(first); if (fileElement != null) { ChangeUtil.prepareAndRunChangeAction(new ChangeUtil.ChangeAction() { + @Override public void makeChange(TreeChangeEvent destinationTreeChange) { remove(destinationTreeChange, first, last); repairRemovedElement(fileElement, first); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositePsiElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositePsiElement.java index 591a5fc5a76c..cf1132ab2ec5 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositePsiElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositePsiElement.java @@ -53,21 +53,25 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps return clone; } + @Override @NotNull public PsiElement[] getChildren() { return getChildrenAsPsiElements(null, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); } + @Override public PsiElement getFirstChild() { ASTNode node = getFirstChildNode(); return node != null ? node.getPsi() : null; } + @Override public PsiElement getLastChild() { ASTNode node = getLastChildNode(); return node != null ? node.getPsi() : null; } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { PsiElement child = getFirstChild(); while (child != null) { @@ -76,66 +80,80 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps } } + @Override public PsiElement getParent() { final CompositeElement parentNode = getTreeParent(); return parentNode != null ? parentNode.getPsi() : null; } + @Override public PsiElement getNextSibling() { ASTNode node = getTreeNext(); return node != null ? node.getPsi() : null; } + @Override public PsiElement getPrevSibling() { ASTNode node = getTreePrev(); return node != null ? node.getPsi() : null; } + @Override public PsiFile getContainingFile() { PsiFile file = SharedImplUtil.getContainingFile(this); if (file == null) throw new PsiInvalidElementAccessException(this); return file; } + @Override public PsiElement findElementAt(int offset) { ASTNode leaf = findLeafElementAt(offset); return SourceTreeToPsiMap.treeElementToPsi(leaf); } + @Override public PsiReference findReferenceAt(int offset) { return SharedPsiElementImplUtil.findReferenceAt(this, offset); } + @Override public PsiElement copy() { ASTNode elementCopy = copyElement(); return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public boolean isValid() { return SharedImplUtil.isValid(this); } + @Override public boolean isWritable() { return SharedImplUtil.isWritable(this); } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { return addInnerBefore(element, null); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { return addInnerBefore(element, anchor); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -144,24 +162,29 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps } + @Override public final void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public final PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, null, null); } + @Override public final PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.TRUE); } + @Override public final PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.FALSE); } + @Override public void delete() throws IncorrectOperationException { LOG.assertTrue(getTreeParent() != null, "Parent not found for " + this); CheckUtil.checkWritable(this); @@ -169,10 +192,12 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps invalidate(); } + @Override public void checkDelete() throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { CheckUtil.checkWritable(this); ASTNode firstElement = SourceTreeToPsiMap.psiElementToTree(first); @@ -182,14 +207,17 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps CodeEditUtil.removeChildren(this, firstElement, lastElement); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { return SharedImplUtil.doReplace(this, this, newElement); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { //TODO: remove this method!! visitor.visitElement(this); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -201,54 +229,66 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps return "PsiElement" + "(" + getElementType().toString() + ")"; } + @Override public PsiElement getContext() { return getParent(); } + @Override @NotNull public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public boolean isPhysical() { PsiFile file = getContainingFile(); return file != null && file.isPhysical(); } + @Override @NotNull public GlobalSearchScope getResolveScope() { return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override public ItemPresentation getPresentation() { return null; } + @Override public String getName() { return null; } + @Override public void navigate(boolean requestFocus) { PsiNavigationSupport.getInstance().getDescriptor(this).navigate(requestFocus); } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -257,11 +297,13 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps return manager.getProject(); } + @Override @NotNull public Language getLanguage() { return getElementType().getLanguage(); } + @Override @NotNull public ASTNode getNode() { return this; @@ -275,6 +317,7 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps throw new IncorrectOperationException("Element cannot be added"); } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/FileElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/FileElement.java index 5515cb1a8bde..26cb9d5161a8 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/FileElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/FileElement.java @@ -28,6 +28,7 @@ import org.jetbrains.annotations.NotNull; public class FileElement extends LazyParseableElement implements FileASTNode { private volatile CharTable myCharTable = new CharTableImpl(); + @Override @NotNull public CharTable getCharTable() { return myCharTable; @@ -42,11 +43,13 @@ public class FileElement extends LazyParseableElement implements FileASTNode { super(type, null); } + @Override public PsiManagerEx getManager() { if (getTreeParent() != null) return getTreeParent().getManager(); return (PsiManagerEx)getPsi().getManager(); //TODO: cache? } + @Override public ASTNode copyElement() { PsiFileImpl psiElement = (PsiFileImpl)getPsi(); PsiFileImpl psiElementCopy = (PsiFileImpl)psiElement.copy(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/ForeignLeafPsiElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/ForeignLeafPsiElement.java index 4f3000511fb7..ca7daa06f801 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/ForeignLeafPsiElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/ForeignLeafPsiElement.java @@ -28,6 +28,7 @@ public class ForeignLeafPsiElement extends LeafPsiElement { super(type, text); } + @Override public LeafElement findLeafElementAt(int offset) { return null; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseableElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseableElement.java index 973a9a6dff20..d2968ebcfea5 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseableElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseableElement.java @@ -77,6 +77,7 @@ public class LazyParseableElement extends CompositeElement { return super.getText(); } + @Override @NotNull public CharSequence getChars() { CharSequence text = myText(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseablePsiElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseablePsiElement.java index c8db37f41cd4..03744cbb2a4c 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseablePsiElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LazyParseablePsiElement.java @@ -61,6 +61,7 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi return clone; } + @Override @NotNull public PsiElement[] getChildren() { return getChildrenAsPsiElements(null, PsiElementArrayConstructor.PSI_ELEMENT_ARRAY_CONSTRUCTOR); @@ -83,18 +84,21 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi return result.toArray((T[])Array.newInstance(aClass, result.size())); } + @Override public PsiElement getFirstChild() { TreeElement child = getFirstChildNode(); if (child == null) return null; return child.getPsi(); } + @Override public PsiElement getLastChild() { TreeElement child = getLastChildNode(); if (child == null) return null; return child.getPsi(); } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { PsiElement child = getFirstChild(); while (child != null) { @@ -103,6 +107,7 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi } } + @Override public PsiElement getParent() { final CompositeElement treeParent = getTreeParent(); if (treeParent == null) return null; @@ -110,59 +115,72 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi return treeParent.getPsi(); } + @Override public PsiElement getNextSibling() { return SharedImplUtil.getNextSibling(this); } + @Override public PsiElement getPrevSibling() { return SharedImplUtil.getPrevSibling(this); } + @Override public PsiFile getContainingFile() { PsiFile file = SharedImplUtil.getContainingFile(this); if (file == null) throw new PsiInvalidElementAccessException(this); return file; } + @Override public PsiElement findElementAt(int offset) { ASTNode leaf = findLeafElementAt(offset); return SourceTreeToPsiMap.treeElementToPsi(leaf); } + @Override public PsiReference findReferenceAt(int offset) { return SharedPsiElementImplUtil.findReferenceAt(this, offset); } + @Override public PsiElement copy() { ASTNode elementCopy = copyElement(); return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public boolean isValid() { return SharedImplUtil.isValid(this); } + @Override public boolean isWritable() { return SharedImplUtil.isWritable(this); } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { return addInnerBefore(element, null); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { return addInnerBefore(element, anchor); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { CheckUtil.checkWritable(this); TreeElement elementCopy = ChangeUtil.copyToElement(element); @@ -171,24 +189,29 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi } + @Override public final void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public final PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, null, null); } + @Override public final PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.TRUE); } + @Override public final PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { return SharedImplUtil.addRange(this, first, last, SourceTreeToPsiMap.psiElementToTree(anchor), Boolean.FALSE); } + @Override public void delete() throws IncorrectOperationException { LOG.assertTrue(getTreeParent() != null, "Parent not found for " + this); CheckUtil.checkWritable(this); @@ -196,10 +219,12 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi invalidate(); } + @Override public void checkDelete() throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { CheckUtil.checkWritable(this); ASTNode firstElement = SourceTreeToPsiMap.psiElementToTree(first); @@ -209,14 +234,17 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi CodeEditUtil.removeChildren(this, firstElement, lastElement); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { return SharedImplUtil.doReplace(this, this, newElement); } + @Override public void accept(@NotNull PsiElementVisitor visitor) { //TODO: remove this method!! visitor.visitElement(this); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -228,55 +256,67 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi return "PsiElement" + "(" + getElementType().toString() + ")"; } + @Override public PsiElement getContext() { return getParent(); } + @Override @NotNull public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public boolean isPhysical() { PsiFile file = getContainingFile(); return file != null && file.isPhysical(); } + @Override @NotNull public GlobalSearchScope getResolveScope() { assert isValid(); return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override public ItemPresentation getPresentation() { return null; } + @Override public String getName() { return null; } + @Override public void navigate(boolean requestFocus) { PsiNavigationSupport.getInstance().getDescriptor(this).navigate(requestFocus); } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -285,11 +325,13 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi return manager.getProject(); } + @Override @NotNull public Language getLanguage() { return getElementType().getLanguage(); } + @Override @NotNull public ASTNode getNode() { return this; @@ -303,6 +345,7 @@ public class LazyParseablePsiElement extends LazyParseableElement implements Psi throw new IncorrectOperationException("Element cannot be added"); } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafElement.java index 315b202cbbfa..2cac9a5b2c65 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafElement.java @@ -46,14 +46,17 @@ public abstract class LeafElement extends TreeElement { return clone; } + @Override public int getTextLength() { return myText.length(); } + @Override public CharSequence getChars() { return myText; } + @Override public String getText() { return myText.toString(); } @@ -70,6 +73,7 @@ public abstract class LeafElement extends TreeElement { return start + length; } + @Override @NotNull public char[] textToCharArray() { final char[] buffer = new char[myText.length()]; @@ -77,6 +81,7 @@ public abstract class LeafElement extends TreeElement { return buffer; } + @Override public boolean textContains(char c) { CharSequence text = myText; for (int i = 0; i < text.length(); i++) { @@ -86,6 +91,7 @@ public abstract class LeafElement extends TreeElement { return false; } + @Override protected int textMatches(@NotNull CharSequence buffer, int start) { assert start >= 0 : start; final CharSequence text = myText; @@ -121,10 +127,12 @@ public abstract class LeafElement extends TreeElement { return newLeaf; } + @Override public LeafElement findLeafElementAt(int offset) { return this; } + @Override @SuppressWarnings({"MethodOverloadsMethodOfSuperclass"}) public boolean textMatches(@NotNull final CharSequence buf, int start, int end) { final CharSequence text = getChars(); @@ -144,24 +152,29 @@ public abstract class LeafElement extends TreeElement { return true; } + @Override public void acceptTree(TreeElementVisitor visitor) { visitor.visitLeaf(this); } + @Override public ASTNode findChildByType(IElementType type) { return null; } + @Override @Nullable public ASTNode findChildByType(@NotNull TokenSet typesSet) { return null; } + @Override @Nullable public ASTNode findChildByType(@NotNull TokenSet typesSet, @Nullable ASTNode anchor) { return null; } + @Override public int hc() { return leafHC(getChars()); } @@ -177,10 +190,12 @@ public abstract class LeafElement extends TreeElement { return hc; } + @Override public TreeElement getFirstChildNode() { return null; } + @Override public TreeElement getLastChildNode() { return null; } @@ -190,46 +205,57 @@ public abstract class LeafElement extends TreeElement { return myText.length(); } + @Override public int getCachedLength() { return getNotCachedLength(); } + @Override public ASTNode[] getChildren(TokenSet filter) { return EMPTY_ARRAY; } + @Override public void addChild(@NotNull ASTNode child, ASTNode anchorBefore) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void addLeaf(@NotNull final IElementType leafType, final CharSequence leafText, final ASTNode anchorBefore) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void addChild(@NotNull ASTNode child) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void removeChild(@NotNull ASTNode child) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void replaceChild(@NotNull ASTNode oldChild, @NotNull ASTNode newChild) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void replaceAllChildrenToChildrenOf(ASTNode anotherParent) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void removeRange(@NotNull ASTNode first, ASTNode firstWhichStayInTree) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public void addChildren(ASTNode firstChild, ASTNode lastChild, ASTNode anchorBefore) { throw new RuntimeException(new IncorrectOperationException("Leaf elements cannot have children.")); } + @Override public PsiElement getPsi() { return null; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafPsiElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafPsiElement.java index e10ae3f6cdae..4391df4c6823 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafPsiElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/LeafPsiElement.java @@ -50,34 +50,42 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio super(type, table.intern(buffer, startOffset, endOffset)); } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiElement getFirstChild() { return null; } + @Override public PsiElement getLastChild() { return null; } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { } + @Override public PsiElement getParent() { return SharedImplUtil.getParent(this); } + @Override public PsiElement getNextSibling() { return SharedImplUtil.getNextSibling(this); } + @Override public PsiElement getPrevSibling() { return SharedImplUtil.getPrevSibling(this); } + @Override public PsiFile getContainingFile() { final PsiFile file = SharedImplUtil.getContainingFile(this); if (file == null || !file.isValid()) invalid(); @@ -99,66 +107,81 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio throw new PsiInvalidElementAccessException(this, builder.toString()); } + @Override public PsiElement findElementAt(int offset) { return this; } + @Override public PsiReference findReferenceAt(int offset) { return SharedPsiElementImplUtil.findReferenceAt(this, offset); } + @Override public PsiElement copy() { ASTNode elementCopy = copyElement(); return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public boolean isValid() { return SharedImplUtil.isValid(this); } + @Override public boolean isWritable() { return SharedImplUtil.isWritable(this); } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { LOG.assertTrue(getTreeParent() != null); CheckUtil.checkWritable(this); @@ -166,14 +189,17 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio invalidate(); } + @Override public void checkDelete() throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { return SharedImplUtil.doReplace(this, this, newElement); } @@ -182,10 +208,12 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio return "PsiElement" + "(" + getElementType().toString() + ")"; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitElement(this); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -193,33 +221,40 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio return true; } + @Override public PsiElement getContext() { return getParent(); } + @Override public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public boolean isPhysical() { PsiFile file = getContainingFile(); return file != null && file.isPhysical(); } + @Override @NotNull public GlobalSearchScope getResolveScope() { return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -228,27 +263,33 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio return manager.getProject(); } + @Override @NotNull public Language getLanguage() { return getElementType().getLanguage(); } + @Override public ASTNode getNode() { return this; } + @Override public PsiElement getPsi() { return this; } + @Override public ItemPresentation getPresentation() { return null; } + @Override public String getName() { return null; } + @Override public void navigate(boolean requestFocus) { final Navigatable descriptor = PsiNavigationSupport.getInstance().getDescriptor(this); if (descriptor != null) { @@ -256,14 +297,17 @@ public class LeafPsiElement extends LeafElement implements PsiElement, Navigatio } } + @Override public boolean canNavigate() { return PsiNavigationSupport.getInstance().canNavigate(this); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiErrorElementImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiErrorElementImpl.java index 84958afe4c1d..8ab77db694df 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiErrorElementImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiErrorElementImpl.java @@ -30,10 +30,12 @@ public class PsiErrorElementImpl extends CompositePsiElement implements PsiError myErrorDescription = errorDescription; } + @Override public String getErrorDescription() { return myErrorDescription; } + @Override public void accept(@NotNull PsiElementVisitor visitor){ visitor.visitErrorElement(this); } @@ -42,6 +44,7 @@ public class PsiErrorElementImpl extends CompositePsiElement implements PsiError return "PsiErrorElement:" + getErrorDescription(); } + @Override @NotNull public Language getLanguage() { PsiElement master = this; diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiWhiteSpaceImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiWhiteSpaceImpl.java index 77689141d3f7..a13ccd96802b 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiWhiteSpaceImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/PsiWhiteSpaceImpl.java @@ -29,6 +29,7 @@ public class PsiWhiteSpaceImpl extends LeafPsiElement implements PsiWhiteSpace { super(TokenType.WHITE_SPACE, text); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ visitor.visitWhiteSpace(this); } @@ -37,6 +38,7 @@ public class PsiWhiteSpaceImpl extends LeafPsiElement implements PsiWhiteSpace { return "PsiWhiteSpace"; } + @Override @NotNull public Language getLanguage() { PsiElement master = getNextSibling(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/RecursiveTreeElementWalkingVisitor.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/RecursiveTreeElementWalkingVisitor.java index 9eae91cd6e3e..bfc81688d8df 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/RecursiveTreeElementWalkingVisitor.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/RecursiveTreeElementWalkingVisitor.java @@ -32,18 +32,22 @@ public abstract class RecursiveTreeElementWalkingVisitor extends TreeElementVisi } private static class ASTTreeGuide implements WalkingState.TreeGuide { + @Override public ASTNode getNextSibling(@NotNull ASTNode element) { return element.getTreeNext(); } + @Override public ASTNode getPrevSibling(@NotNull ASTNode element) { return element.getTreePrev(); } + @Override public ASTNode getFirstChild(@NotNull ASTNode element) { return element.getFirstChildNode(); } + @Override public ASTNode getParent(@NotNull ASTNode element) { return element.getTreeParent(); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/TreeElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/TreeElement.java index 499c9cc0b3b2..a7a8a275b951 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/TreeElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/TreeElement.java @@ -44,6 +44,7 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea myType = type; } + @Override public Object clone() { TreeElement clone = (TreeElement)super.clone(); synchronized (PsiLock.LOCK) { @@ -56,6 +57,7 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea return clone; } + @Override public ASTNode copyElement() { CharTable table = SharedImplUtil.findCharTableByTree(this); return ChangeUtil.copyElement(this, table); @@ -77,24 +79,29 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea } } + @Override public abstract LeafElement findLeafElementAt(int offset); @NotNull public abstract char[] textToCharArray(); + @Override public abstract TreeElement getFirstChildNode(); + @Override public abstract TreeElement getLastChildNode(); public abstract int getNotCachedLength(); public abstract int getCachedLength(); + @Override public TextRange getTextRange() { int start = getStartOffset(); return new TextRange(start, start + getTextLength()); } + @Override public int getStartOffset() { int result = 0; TreeElement current = this; @@ -163,10 +170,12 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea return "Element" + "(" + getElementType().toString() + ")"; } + @Override public final CompositeElement getTreeParent() { return myParent; } + @Override public final TreeElement getTreePrev() { return myPrevSibling; } @@ -180,6 +189,7 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea clearRelativeOffsets(this); } + @Override public final TreeElement getTreeNext() { return myNextSibling; } @@ -375,6 +385,7 @@ public abstract class TreeElement extends ElementBase implements ASTNode, Clonea DebugUtil.checkTreeStructure(this); } + @Override public IElementType getElementType() { return myType; } diff --git a/platform/core-impl/src/com/intellij/psi/scope/BaseScopeProcessor.java b/platform/core-impl/src/com/intellij/psi/scope/BaseScopeProcessor.java index 8244528eafae..4e35c078f27b 100644 --- a/platform/core-impl/src/com/intellij/psi/scope/BaseScopeProcessor.java +++ b/platform/core-impl/src/com/intellij/psi/scope/BaseScopeProcessor.java @@ -18,10 +18,12 @@ package com.intellij.psi.scope; import com.intellij.openapi.util.Key; public abstract class BaseScopeProcessor implements PsiScopeProcessor { + @Override public T getHint(Key hintKey) { return null; } + @Override public void handleEvent(Event event, Object associated) { } } diff --git a/platform/core-impl/src/com/intellij/psi/search/ProjectScopeImpl.java b/platform/core-impl/src/com/intellij/psi/search/ProjectScopeImpl.java index 45a520997775..1b45424b150e 100644 --- a/platform/core-impl/src/com/intellij/psi/search/ProjectScopeImpl.java +++ b/platform/core-impl/src/com/intellij/psi/search/ProjectScopeImpl.java @@ -31,6 +31,7 @@ public class ProjectScopeImpl extends GlobalSearchScope { myFileIndex = fileIndex; } + @Override public boolean contains(VirtualFile file) { if (file instanceof VirtualFileWindow) return true; @@ -39,18 +40,22 @@ public class ProjectScopeImpl extends GlobalSearchScope { return myFileIndex.isInContent(file); } + @Override public int compare(VirtualFile file1, VirtualFile file2) { return 0; } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return true; } + @Override public boolean isSearchInLibraries() { return false; } + @Override public String getDisplayName() { return PsiBundle.message("psi.search.scope.project"); } diff --git a/platform/core-impl/src/com/intellij/psi/stubs/StubTree.java b/platform/core-impl/src/com/intellij/psi/stubs/StubTree.java index 5f559cdd6693..1b02ab6a5730 100644 --- a/platform/core-impl/src/com/intellij/psi/stubs/StubTree.java +++ b/platform/core-impl/src/com/intellij/psi/stubs/StubTree.java @@ -63,6 +63,7 @@ public class StubTree { final int stubIdx = i; //noinspection unchecked serializer.indexStub(stub, new IndexSink() { + @Override public void occurrence(@NotNull final StubIndexKey indexKey, @NotNull final Object value) { Map map = result.get(indexKey); if (map == null) { diff --git a/platform/core-impl/src/com/intellij/psi/text/BlockSupport.java b/platform/core-impl/src/com/intellij/psi/text/BlockSupport.java index 32ff3fbb8a22..55a7b00ad537 100644 --- a/platform/core-impl/src/com/intellij/psi/text/BlockSupport.java +++ b/platform/core-impl/src/com/intellij/psi/text/BlockSupport.java @@ -59,6 +59,7 @@ public abstract class BlockSupport { return myDiffLog; } + @Override public synchronized Throwable fillInStackTrace() { return this; } diff --git a/platform/core-impl/src/com/intellij/psi/tree/IErrorCounterReparseableElementType.java b/platform/core-impl/src/com/intellij/psi/tree/IErrorCounterReparseableElementType.java index d7c6a599201d..40524866aaea 100644 --- a/platform/core-impl/src/com/intellij/psi/tree/IErrorCounterReparseableElementType.java +++ b/platform/core-impl/src/com/intellij/psi/tree/IErrorCounterReparseableElementType.java @@ -30,6 +30,7 @@ public abstract class IErrorCounterReparseableElementType extends IReparseableEl public abstract int getErrorsCount(CharSequence seq, Project project); + @Override public boolean isParsable(CharSequence buffer, final Project project) { return getErrorsCount(buffer, project) == NO_ERRORS; } diff --git a/platform/core-impl/src/com/intellij/util/CachedValueBase.java b/platform/core-impl/src/com/intellij/util/CachedValueBase.java index c7d5c36b3505..d6befd8e6564 100644 --- a/platform/core-impl/src/com/intellij/util/CachedValueBase.java +++ b/platform/core-impl/src/com/intellij/util/CachedValueBase.java @@ -179,6 +179,7 @@ public abstract class CachedValueBase { myTimeStamps = timeStamps; } + @Override public void dispose() { if (myValue instanceof Disposable) { Disposer.dispose((Disposable)myValue); diff --git a/platform/core-impl/src/com/intellij/util/CachedValueImpl.java b/platform/core-impl/src/com/intellij/util/CachedValueImpl.java index 3da4f1fe8fcb..4345ccd48253 100644 --- a/platform/core-impl/src/com/intellij/util/CachedValueImpl.java +++ b/platform/core-impl/src/com/intellij/util/CachedValueImpl.java @@ -40,6 +40,7 @@ public abstract class CachedValueImpl extends CachedValueBase implements C return myProvider.compute(); } + @Override public CachedValueProvider getValueProvider() { return myProvider; } diff --git a/platform/core-impl/src/com/intellij/util/CachedValuesManagerImpl.java b/platform/core-impl/src/com/intellij/util/CachedValuesManagerImpl.java index 8349991ae65b..c92f03f502ee 100644 --- a/platform/core-impl/src/com/intellij/util/CachedValuesManagerImpl.java +++ b/platform/core-impl/src/com/intellij/util/CachedValuesManagerImpl.java @@ -36,10 +36,12 @@ public class CachedValuesManagerImpl extends CachedValuesManager { myFactory = factory == null ? new DefaultCachedValuesFactory(project) : factory; } + @Override public CachedValue createCachedValue(@NotNull CachedValueProvider provider, boolean trackValue) { return myFactory.createCachedValue(provider, trackValue); } + @Override public ParameterizedCachedValue createParameterizedCachedValue(@NotNull ParameterizedCachedValueProvider provider, boolean trackValue) { return myFactory.createParameterizedCachedValue(provider, trackValue); } diff --git a/platform/core-impl/src/com/intellij/util/DefaultCachedValuesFactory.java b/platform/core-impl/src/com/intellij/util/DefaultCachedValuesFactory.java index e37cb10813f9..61e0215760be 100644 --- a/platform/core-impl/src/com/intellij/util/DefaultCachedValuesFactory.java +++ b/platform/core-impl/src/com/intellij/util/DefaultCachedValuesFactory.java @@ -32,6 +32,7 @@ public class DefaultCachedValuesFactory implements CachedValuesFactory { myProject = project; } + @Override public CachedValue createCachedValue(@NotNull CachedValueProvider provider, boolean trackValue) { return trackValue ? new CachedValueImpl(provider) { @Override @@ -52,6 +53,7 @@ public class DefaultCachedValuesFactory implements CachedValuesFactory { }; } + @Override public ParameterizedCachedValue createParameterizedCachedValue(@NotNull ParameterizedCachedValueProvider provider, boolean trackValue) { return trackValue ? new ParameterizedCachedValueImpl(provider) { diff --git a/platform/core-impl/src/com/intellij/util/ParameterizedCachedValueImpl.java b/platform/core-impl/src/com/intellij/util/ParameterizedCachedValueImpl.java index 23ab426a7a54..4a0a12a2eea9 100644 --- a/platform/core-impl/src/com/intellij/util/ParameterizedCachedValueImpl.java +++ b/platform/core-impl/src/com/intellij/util/ParameterizedCachedValueImpl.java @@ -36,10 +36,12 @@ public abstract class ParameterizedCachedValueImpl extends CachedValueBase< myProvider = provider; } + @Override public T getValue(P param) { return getValueWithLock(param); } + @Override public ParameterizedCachedValueProvider getValueProvider() { return myProvider; } diff --git a/platform/core-impl/src/com/intellij/util/PatchedWeakReference.java b/platform/core-impl/src/com/intellij/util/PatchedWeakReference.java index 1401cbda83ee..9a4fb1792b1f 100644 --- a/platform/core-impl/src/com/intellij/util/PatchedWeakReference.java +++ b/platform/core-impl/src/com/intellij/util/PatchedWeakReference.java @@ -33,6 +33,7 @@ public class PatchedWeakReference extends WeakReference{ static { JobScheduler.getScheduler().scheduleAtFixedRate(new Runnable() { + @Override public void run() { processQueue(); } diff --git a/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java b/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java index 68405a760786..3d3e5be5db99 100644 --- a/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java +++ b/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java @@ -45,6 +45,7 @@ public final class FileContentImpl extends UserDataHolderBase implements FileCon private byte[] myContent; private CharSequence myContentAsText; + @Override public Project getProject() { return getUserData(IndexingDataKeys.PROJECT); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java b/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java index 3ec9c294ac02..0f9b3f49b3cc 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java @@ -28,6 +28,7 @@ public abstract class AbstractExtensionPointBean implements PluginAware { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.extensions.AbstractExtensionPointBean"); protected PluginDescriptor myPluginDescriptor; + @Override public final void setPluginDescriptor(PluginDescriptor pluginDescriptor) { myPluginDescriptor = pluginDescriptor; } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/DefaultPluginDescriptor.java b/platform/extensions/src/com/intellij/openapi/extensions/DefaultPluginDescriptor.java index af541a35e383..761f28898b4e 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/DefaultPluginDescriptor.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/DefaultPluginDescriptor.java @@ -35,10 +35,12 @@ public class DefaultPluginDescriptor implements PluginDescriptor { myPluginClassLoader = pluginClassLoader; } + @Override public PluginId getPluginId() { return myPluginId; } + @Override public ClassLoader getPluginClassLoader() { return myPluginClassLoader; } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java b/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java index 8907d7c9573c..0f446a487d7d 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/EPAvailabilityListenerExtension.java @@ -49,6 +49,7 @@ public class EPAvailabilityListenerExtension implements PluginAware { myListenerClass = listenerClass; } + @Override public void setPluginDescriptor(PluginDescriptor pluginDescriptor) { myPluginDescriptor = pluginDescriptor; } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java index 8d419de54bb8..6f833f46e71c 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java @@ -71,6 +71,7 @@ public class Extensions { ourRootArea = newArea; oldRootArea.notifyAreaReplaced(); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { ourRootArea = oldRootArea; newArea.notifyAreaReplaced(); @@ -218,28 +219,34 @@ public class Extensions { } public static class SimpleLogProvider implements LogProvider { + @Override public void error(String message) { new Throwable(message).printStackTrace(); } + @Override public void error(String message, Throwable t) { System.err.println(message); t.printStackTrace(); } + @Override public void error(Throwable t) { t.printStackTrace(); } + @Override public void warn(String message) { System.err.println(message); } + @Override public void warn(String message, Throwable t) { System.err.println(message); t.printStackTrace(); } + @Override public void warn(Throwable t) { t.printStackTrace(); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/LoadingOrder.java b/platform/extensions/src/com/intellij/openapi/extensions/LoadingOrder.java index 629c98c6cf17..d9fd69d1afe8 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/LoadingOrder.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/LoadingOrder.java @@ -133,12 +133,14 @@ public class LoadingOrder { } DFSTBuilder builder = new DFSTBuilder(new GraphGenerator(new CachingSemiGraph(new GraphGenerator.SemiGraph() { + @Override public Collection getNodes() { final ArrayList list = new ArrayList(Arrays.asList(orderables)); Collections.reverse(list); return list; } + @Override public Iterator getIn(final Orderable n) { final LoadingOrder order = cachedMap.get(n); diff --git a/platform/extensions/src/com/intellij/openapi/extensions/SimpleSmartExtensionPoint.java b/platform/extensions/src/com/intellij/openapi/extensions/SimpleSmartExtensionPoint.java index 193a66f4d7f2..b9140f172c37 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/SimpleSmartExtensionPoint.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/SimpleSmartExtensionPoint.java @@ -28,6 +28,7 @@ public abstract class SimpleSmartExtensionPoint extends SmartExtensionPoint implements ExtensionPoint myExtensionPoint.addExtensionPointListener(this); myCache = new ArrayList(myExplicitExtensions); myCache.addAll(ContainerUtil.mapNotNull(myExtensionPoint.getExtensions(), new NullableFunction() { + @Override @Nullable public V fun(final Extension extension) { return getExtension(extension); @@ -74,6 +75,7 @@ public abstract class SmartExtensionPoint implements ExtensionPoint } } + @Override public final void extensionAdded(@NotNull final Extension extension, @Nullable final PluginDescriptor pluginDescriptor) { dropCache(); } @@ -88,10 +90,12 @@ public abstract class SmartExtensionPoint implements ExtensionPoint } } + @Override public final void extensionRemoved(@NotNull final Extension extension, @Nullable final PluginDescriptor pluginDescriptor) { dropCache(); } + @Override public void areaReplaced(final ExtensionsArea area) { dropCache(); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/SortingException.java b/platform/extensions/src/com/intellij/openapi/extensions/SortingException.java index 690aea1b5e5f..b7e2c01f9a7f 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/SortingException.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/SortingException.java @@ -27,6 +27,7 @@ public class SortingException extends RuntimeException { public SortingException(String message, Element[] conflictingElements) { super(message + ": " + StringUtil.join(conflictingElements, new Function() { + @Override public String fun(Element element) { return element.getAttributeValue("id") + "(" + element.getAttributeValue("order") + ")"; } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/AreaPicoContainerImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/AreaPicoContainerImpl.java index f1a92ea742f9..14e81e91e081 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/AreaPicoContainerImpl.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/AreaPicoContainerImpl.java @@ -40,6 +40,7 @@ class AreaPicoContainerImpl extends AbstractDelegatingMutablePicoContainer imple picoContainer.setWrapperContainer(this); } + @Override public MutablePicoContainer makeChildContainer() { throw new UnsupportedOperationException("Method makeChildContainer() is not implemented"); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ElementConverter.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ElementConverter.java index fce43cd95442..9730c6df7904 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ElementConverter.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ElementConverter.java @@ -26,14 +26,17 @@ import org.jdom.Element; * @author Alexander Kireyev */ class ElementConverter implements Converter { + @Override public boolean canConvert(Class aClass) { return Element.class.isAssignableFrom(aClass); } + @Override public void marshal(Object object, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) { throw new UnsupportedOperationException("This method is not yet implemented"); } + @Override public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) { //return hierarchicalStreamReader.peekUnderlyingNode(); throw new UnsupportedOperationException("This method is not yet implemented"); diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionComponentAdapter.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionComponentAdapter.java index 52840826766c..e4a6bd3616fa 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionComponentAdapter.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionComponentAdapter.java @@ -53,14 +53,17 @@ public class ExtensionComponentAdapter implements LoadingOrder.Orderable, Assign myDeserializeInstance = deserializeInstance; } + @Override public Object getComponentKey() { return this; } + @Override public Class getComponentImplementation() { return loadClass(myImplementationClassName); } + @Override public Object getComponentInstance(final PicoContainer container) throws PicoInitializationException, PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException { //assert myContainer == container : "Different containers: " + myContainer + " - " + container; if (myComponentInstance == null) { @@ -94,10 +97,12 @@ public class ExtensionComponentAdapter implements LoadingOrder.Orderable, Assign return myComponentInstance; } + @Override public void verify(PicoContainer container) throws PicoIntrospectionException { throw new UnsupportedOperationException("Method verify is not supported in " + getClass()); } + @Override public void accept(PicoVisitor visitor) { throw new UnsupportedOperationException("Method accept is not supported in " + getClass()); } @@ -106,10 +111,12 @@ public class ExtensionComponentAdapter implements LoadingOrder.Orderable, Assign return getComponentInstance(myContainer); } + @Override public LoadingOrder getOrder() { return LoadingOrder.readOrder(myExtensionElement.getAttributeValue("order")); } + @Override public String getOrderId() { return myExtensionElement.getAttributeValue("id"); } @@ -118,6 +125,7 @@ public class ExtensionComponentAdapter implements LoadingOrder.Orderable, Assign return myExtensionElement; } + @Override public Element getDescribingElement() { return getExtensionElement(); } @@ -154,10 +162,12 @@ public class ExtensionComponentAdapter implements LoadingOrder.Orderable, Assign return myDelegate; } + @Override public boolean isAssignableTo(Class aClass) { return aClass.getName().equals(myImplementationClassName); } + @Override public String getAssignableToClassName() { return myImplementationClassName; } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java index 1dd9db0c7bd2..a3489c92c53c 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java @@ -72,14 +72,17 @@ public class ExtensionPointImpl implements ExtensionPoint { myDescriptor = descriptor; } + @Override public String getName() { return myName; } + @Override public AreaInstance getArea() { return myArea; } + @Override public String getBeanClassName() { return myClassName; } @@ -94,6 +97,7 @@ public class ExtensionPointImpl implements ExtensionPoint { return myKind; } + @Override public void registerExtension(@NotNull T extension) { registerExtension(extension, LoadingOrder.ANY); } @@ -102,6 +106,7 @@ public class ExtensionPointImpl implements ExtensionPoint { return myDescriptor; } + @Override public synchronized void registerExtension(@NotNull T extension, @NotNull LoadingOrder order) { assert myExtensions.size() == myLoadedAdapters.size(); @@ -155,6 +160,7 @@ public class ExtensionPointImpl implements ExtensionPoint { } } + @Override @NotNull public T[] getExtensions() { T[] result = myExtensionsCache; @@ -191,6 +197,7 @@ public class ExtensionPointImpl implements ExtensionPoint { return result; } + @Override public boolean hasAnyExtensions() { final T[] cache = myExtensionsCache; if (cache != null) { @@ -222,6 +229,7 @@ public class ExtensionPointImpl implements ExtensionPoint { } } + @Override @Nullable public T getExtension() { T[] extensions = getExtensions(); @@ -230,11 +238,13 @@ public class ExtensionPointImpl implements ExtensionPoint { return extensions[0]; } + @Override public synchronized boolean hasExtension(@NotNull T extension) { processAdapters(); return myExtensions.contains(extension); } + @Override public synchronized void unregisterExtension(@NotNull final T extension) { final int index = getExtensionIndex(extension); final ExtensionComponentAdapter adapter = myLoadedAdapters.get(index); @@ -300,6 +310,7 @@ public class ExtensionPointImpl implements ExtensionPoint { }); } + @Override public synchronized void addExtensionPointListener(@NotNull ExtensionPointListener listener) { processAdapters(); if (myEPListeners.add(listener)) { @@ -314,6 +325,7 @@ public class ExtensionPointImpl implements ExtensionPoint { } } + @Override public synchronized void removeExtensionPointListener(@NotNull ExtensionPointListener listener) { for (ExtensionComponentAdapter componentAdapter : myLoadedAdapters.toArray(new ExtensionComponentAdapter[myLoadedAdapters.size()])) { try { @@ -329,6 +341,7 @@ public class ExtensionPointImpl implements ExtensionPoint { assert success; } + @Override public synchronized void reset() { myOwner.removeAllComponents(myExtensionAdapters); myExtensionAdapters.clear(); @@ -337,6 +350,7 @@ public class ExtensionPointImpl implements ExtensionPoint { } } + @Override public Class getExtensionClass() { // racy single-check: we don't care whether the access to 'myExtensionClass' is thread-safe // but initial store in a local variable is crucial to prevent instruction reordering @@ -413,19 +427,23 @@ public class ExtensionPointImpl implements ExtensionPoint { myLoadingOrder = loadingOrder; } + @Override public Object getExtension() { return myExtension; } + @Override public LoadingOrder getOrder() { return myLoadingOrder; } + @Override @Nullable public String getOrderId() { return null; } + @Override @NonNls public Element getDescribingElement() { return new Element("RuntimeExtension: " + myExtension); diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java index 451a49752c8b..792a57ad9aa8 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java @@ -86,6 +86,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } } + @Override public AreaPicoContainer getPicoContainer() { return myPicoContainer; } @@ -94,14 +95,17 @@ public class ExtensionsAreaImpl implements ExtensionsArea { return myPicoContainer; } + @Override public String getAreaClass() { return myAreaClass; } + @Override public void registerExtensionPoint(String pluginName, Element extensionPointElement) { registerExtensionPoint(new DefaultPluginDescriptor(PluginId.getId(pluginName)), extensionPointElement); } + @Override public void registerExtensionPoint(PluginDescriptor pluginDescriptor, Element extensionPointElement) { assert pluginDescriptor.getPluginId() != null; final String pluginId = pluginDescriptor.getPluginId().getIdString(); @@ -136,10 +140,12 @@ public class ExtensionsAreaImpl implements ExtensionsArea { registerExtensionPoint(epName, className, pluginDescriptor, kind); } + @Override public void registerExtension(final String pluginName, final Element extensionElement) { registerExtension(new DefaultPluginDescriptor(PluginId.getId(pluginName)), extensionElement); } + @Override public void registerExtension(final PluginDescriptor pluginDescriptor, final Element extensionElement) { final PluginId pluginId = pluginDescriptor.getPluginId(); @@ -193,6 +199,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { return epName; } + @Override public PicoContainer getPluginContainer(String pluginName) { return internalGetPluginContainer(); } @@ -208,12 +215,14 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } } + @Override public void unregisterExtensionPoint(String pluginName, Element extensionPointElement) { assert pluginName != null; String epName = pluginName + '.' + extensionPointElement.getAttributeValue("name"); unregisterExtensionPoint(epName); } + @Override public void unregisterExtension(String pluginName, Element extensionElement) { String epName = extractEPName(extensionElement); if (!myExtensionElement2extension.containsKey(extensionElement)) { @@ -249,6 +258,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } getExtensionPoint(EPAvailabilityListenerExtension.EXTENSION_POINT_NAME).addExtensionPointListener(new ExtensionPointListener() { + @Override @SuppressWarnings({"unchecked"}) public void extensionRemoved(@NotNull Object extension, final PluginDescriptor pluginDescriptor) { EPAvailabilityListenerExtension epListenerExtension = (EPAvailabilityListenerExtension) extension; @@ -263,6 +273,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { myLogger.warn("Failed to find EP availability listener: " + epListenerExtension.getListenerClass()); } + @Override public void extensionAdded(@NotNull Object extension, final PluginDescriptor pluginDescriptor) { EPAvailabilityListenerExtension epListenerExtension = (EPAvailabilityListenerExtension) extension; try { @@ -290,6 +301,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { return myCreationTrace; } + @Override public void addAvailabilityListener(String epName, ExtensionPointAvailabilityListener listener) { myAvailabilityListeners.putValue(epName, listener); if (hasExtensionPoint(epName)) { @@ -297,6 +309,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } } + @Override public void registerExtensionPoint(final String extensionPointName, String extensionPointBeanClass) { registerExtensionPoint(extensionPointName, extensionPointBeanClass, ExtensionPoint.Kind.INTERFACE); } @@ -306,6 +319,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { registerExtensionPoint(extensionPointName, extensionPointBeanClass, new UndefinedPluginDescriptor(), kind); } + @Override public void registerExtensionPoint(final String extensionPointName, String extensionPointBeanClass, PluginDescriptor descriptor) { registerExtensionPoint(extensionPointName, extensionPointBeanClass, descriptor, ExtensionPoint.Kind.INTERFACE); } @@ -336,6 +350,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } } + @Override public void registerAreaExtensionsAndPoints(final PluginDescriptor pluginDescriptor, final List extensionsPoints, final List extensions) { @@ -374,6 +389,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { private void notifyAvailableListener(final ExtensionPointAvailabilityListener listener, final ExtensionPoint extensionPoint) { queueNotificationAction(new Runnable() { + @Override public void run() { listener.extensionPointRegistered(extensionPoint); } @@ -389,6 +405,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { } } + @Override @NotNull public ExtensionPointImpl getExtensionPoint(String extensionPointName) { ExtensionPointImpl extensionPoint = myExtensionPoints.get(extensionPointName); @@ -398,15 +415,18 @@ public class ExtensionsAreaImpl implements ExtensionsArea { return extensionPoint; } + @Override @SuppressWarnings({"unchecked"}) public ExtensionPoint getExtensionPoint(ExtensionPointName extensionPointName) { return getExtensionPoint(extensionPointName.getName()); } + @Override public ExtensionPoint[] getExtensionPoints() { return myExtensionPoints.values().toArray(new ExtensionPoint[myExtensionPoints.size()]); } + @Override public void unregisterExtensionPoint(final String extensionPointName) { ExtensionPoint extensionPoint = myExtensionPoints.get(extensionPointName); if (extensionPoint != null) { @@ -426,20 +446,24 @@ public class ExtensionsAreaImpl implements ExtensionsArea { private void notifyUnavailableListener(final ExtensionPoint extensionPoint, final ExtensionPointAvailabilityListener listener) { queueNotificationAction(new Runnable() { + @Override public void run() { listener.extensionPointRemoved(extensionPoint); } }); } + @Override public boolean hasExtensionPoint(String extensionPointName) { return myExtensionPoints.containsKey(extensionPointName); } + @Override public void suspendInteractions() { myAvailabilityNotificationsActive = false; } + @Override public void resumeInteractions() { myAvailabilityNotificationsActive = true; ExtensionPoint[] extensionPoints = getExtensionPoints(); @@ -457,6 +481,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { mySuspendedListenerActions.clear(); } + @Override public void killPendingInteractions() { mySuspendedListenerActions.clear(); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/UndefinedPluginDescriptor.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/UndefinedPluginDescriptor.java index 5e19779db2a9..4ab748c1d551 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/UndefinedPluginDescriptor.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/UndefinedPluginDescriptor.java @@ -22,10 +22,12 @@ import com.intellij.openapi.extensions.PluginId; * @author Alexander Kireyev */ class UndefinedPluginDescriptor implements PluginDescriptor { + @Override public PluginId getPluginId() { throw new UnsupportedOperationException("This method should not be called on this object"); } + @Override public ClassLoader getPluginClassLoader() { return null; } diff --git a/platform/lang-impl/src/com/intellij/analysis/AnalysisUIOptions.java b/platform/lang-impl/src/com/intellij/analysis/AnalysisUIOptions.java index 23c472d1fd71..481c424727f5 100644 --- a/platform/lang-impl/src/com/intellij/analysis/AnalysisUIOptions.java +++ b/platform/lang-impl/src/com/intellij/analysis/AnalysisUIOptions.java @@ -63,10 +63,12 @@ public class AnalysisUIOptions implements PersistentStateComponent>() { + @Override public int compare(Pair o1, Pair o2) { return o1.getFirst().getStartOffset() - o2.getFirst().getStartOffset(); } @@ -578,8 +581,10 @@ public class FindUtil { } final int finalCaretOffset = caretOffset; CommandProcessor.getInstance().executeCommand(project, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { document.setText(newText); editor.getCaretModel().moveToOffset(finalCaretOffset); @@ -640,6 +645,7 @@ public class FindUtil { scrollingModel.scrollToCaret(scrollType); scrollingModel.runActionOnScrollingFinished( new Runnable() { + @Override public void run() { scrollingModel.scrollTo(editor.offsetToLogicalPosition(result.getStartOffset()), scrollType); scrollingModel.scrollTo(editor.offsetToLogicalPosition(result.getEndOffset()), scrollType); @@ -682,6 +688,7 @@ public class FindUtil { mySegmentHighlighter = segmentHighlighter; } + @Override public void caretPositionChanged(CaretEvent e) { removeAll(); } @@ -739,6 +746,7 @@ public class FindUtil { } } CaretListener listener = new CaretListener() { + @Override public void caretPositionChanged(CaretEvent e) { editor.putUserData(KEY, null); editor.getCaretModel().removeCaretListener(this); @@ -805,8 +813,10 @@ public class FindUtil { final String stringToReplace) { final String converted = StringUtil.convertLineSeparators(stringToReplace); CommandProcessor.getInstance().executeCommand(project, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { //[ven] I doubt converting is a good solution to SCR 21224 document.replaceString(startOffset, endOffset, converted); diff --git a/platform/lang-impl/src/com/intellij/find/actions/FindInPathAction.java b/platform/lang-impl/src/com/intellij/find/actions/FindInPathAction.java index cc80af1b62df..0da8d30e4b3f 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/FindInPathAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/FindInPathAction.java @@ -23,6 +23,7 @@ import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; public class FindInPathAction extends AnAction implements DumbAware { + @Override public void actionPerformed(AnActionEvent e) { DataContext dataContext = e.getDataContext(); Project project = e.getData(PlatformDataKeys.PROJECT); @@ -30,6 +31,7 @@ public class FindInPathAction extends AnAction implements DumbAware { FindInProjectManager.getInstance(project).findInProject(dataContext); } + @Override public void update(AnActionEvent e){ Presentation presentation = e.getPresentation(); Project project = e.getData(PlatformDataKeys.PROJECT); diff --git a/platform/lang-impl/src/com/intellij/find/actions/FindUsagesAction.java b/platform/lang-impl/src/com/intellij/find/actions/FindUsagesAction.java index 8b4e9df053b7..45879f36df2b 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/FindUsagesAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/FindUsagesAction.java @@ -40,6 +40,7 @@ public class FindUsagesAction extends AnAction { setInjectedContext(true); } + @Override public void actionPerformed(AnActionEvent e) { final Project project = e.getData(PlatformDataKeys.PROJECT); if (project == null) { @@ -55,6 +56,7 @@ public class FindUsagesAction extends AnAction { final Editor editor = e.getData(PlatformDataKeys.EDITOR); chooseAmbiguousTargetAndPerform(project, editor, new PsiElementProcessor() { + @Override public boolean execute(@NotNull final PsiElement element) { new PsiElement2UsageTargetAdapter(element).findUsages(); return false; @@ -62,6 +64,7 @@ public class FindUsagesAction extends AnAction { }); } + @Override public void update(AnActionEvent event){ FindUsagesInFileAction.updateFindUsagesAction(event); } diff --git a/platform/lang-impl/src/com/intellij/find/actions/FindUsagesInFileAction.java b/platform/lang-impl/src/com/intellij/find/actions/FindUsagesInFileAction.java index 18e0a0c3071d..907aa7508698 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/FindUsagesInFileAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/FindUsagesInFileAction.java @@ -37,6 +37,7 @@ public class FindUsagesInFileAction extends AnAction { setInjectedContext(true); } + @Override public void actionPerformed(AnActionEvent e) { DataContext dataContext = e.getDataContext(); final Project project = PlatformDataKeys.PROJECT.getData(dataContext); @@ -64,6 +65,7 @@ public class FindUsagesInFileAction extends AnAction { } } + @Override public void update(AnActionEvent event){ updateFindUsagesAction(event); } diff --git a/platform/lang-impl/src/com/intellij/find/actions/ReplaceInPathAction.java b/platform/lang-impl/src/com/intellij/find/actions/ReplaceInPathAction.java index 44c2519a52b4..9e98a01c057f 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/ReplaceInPathAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/ReplaceInPathAction.java @@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.project.Project; public class ReplaceInPathAction extends AnAction { + @Override public void actionPerformed(AnActionEvent e) { DataContext dataContext = e.getDataContext(); Project project = PlatformDataKeys.PROJECT.getData(dataContext); @@ -29,6 +30,7 @@ public class ReplaceInPathAction extends AnAction { ReplaceInProjectManager.getInstance(project).replaceInProject(dataContext); } + @Override public void update(AnActionEvent event){ Presentation presentation = event.getPresentation(); Project project = PlatformDataKeys.PROJECT.getData(event.getDataContext()); diff --git a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java index 496b1c8321ba..50f2ec168c7a 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java @@ -79,6 +79,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { private static final int USAGES_PAGE_SIZE = 100; private static final Comparator USAGE_COMPARATOR = new Comparator() { + @Override public int compare(Object c1, Object c2) { if (!(c1 instanceof UsageNode)) return 1; if (!(c2 instanceof UsageNode)) return -1; @@ -104,6 +105,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { } }; private static final Runnable HIDE_HINTS_ACTION = new Runnable() { + @Override public void run() { hideHints(); } @@ -136,6 +138,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { } } + @Override public void actionPerformed(AnActionEvent e) { final Project project = e.getData(PlatformDataKeys.PROJECT); if (project == null) return; @@ -149,6 +152,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { final Editor editor = e.getData(PlatformDataKeys.EDITOR); if (usageTargets == null) { FindUsagesAction.chooseAmbiguousTargetAndPerform(project, editor, new PsiElementProcessor() { + @Override public boolean execute(@NotNull final PsiElement element) { startFindUsages(element, popupPosition, editor, USAGES_PAGE_SIZE); return false; @@ -193,6 +197,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { final UsageViewImpl usageView = (UsageViewImpl)manager.createUsageView(UsageTarget.EMPTY_ARRAY, Usage.EMPTY_ARRAY, presentation, null); Disposer.register(usageView, new Disposable() { + @Override public void dispose() { myUsageViewSettings.loadState(usageViewSettings); usageViewSettings.loadState(savedGlobalSettings); @@ -203,6 +208,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { final Set visibleNodes = new LinkedHashSet(); Processor collect = new Processor() { private final UsageTarget[] myUsageTarget = {new PsiElement2UsageTargetAdapter(handler.getPsiElement())}; + @Override public boolean process(@NotNull Usage usage) { synchronized (usages) { if (visibleNodes.size() > maxUsages) return false; @@ -276,8 +282,10 @@ public class ShowUsagesAction extends AnAction implements PopupAction { shortcutText = "(" + KeymapUtil.getShortcutText(shortcut) + ")"; } return new InplaceButton("Options..." + shortcutText, IconLoader.getIcon("/general/ideOptions.png"), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { showDialogAndFindUsages(handler, popupPosition, editor, maxUsages); } @@ -355,6 +363,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { setModel(table, visibleNodes, usageView, data, filtered); final Runnable navigateRunnable = new Runnable() { + @Override public void run() { int[] selected = table.getSelectedRows(); for (int i : selected) { @@ -372,6 +381,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { }; SpeedSearchBase speedSearch = new SpeedSearchBase(table) { + @Override protected int getSelectedIndex() { return table.getSelectedRow(); } @@ -381,10 +391,12 @@ public class ShowUsagesAction extends AnAction implements PopupAction { return table.convertRowIndexToModel(viewIndex); } + @Override protected Object[] getAllElements() { return ArrayUtil.toObjectArray(data); } + @Override protected String getElementText(Object element) { if (!(element instanceof UsageNode)) return element.toString(); UsageNode node = (UsageNode)element; @@ -394,6 +406,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { return usage.getPresentation().getPlainText() + group.toString(); } + @Override protected void selectElement(Object element, String selectedText) { int i = data.indexOf(element); if (i == -1) return; @@ -419,9 +432,11 @@ public class ShowUsagesAction extends AnAction implements PopupAction { builder.setItemChoosenCallback(navigateRunnable); final JBPopup[] popup = new JBPopup[1]; ActionListener editSettings = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { popup[0].cancel(); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { showDialogAndFindUsages(handler, popupPosition, editor, maxUsages); } @@ -435,6 +450,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { } InplaceButton button = createSettingsButton(handler, popupPosition, editor, maxUsages, new Runnable() { + @Override public void run() { popup[0].cancel(); } @@ -478,6 +494,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { final MessageBusConnection messageBusConnection = project.getMessageBus().connect(usageView); messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, new Runnable() { + @Override public void run() { rebuildPopup(usageView, usages, table, popup[0]); } @@ -528,14 +545,17 @@ public class ShowUsagesAction extends AnAction implements PopupAction { data.addAll(visibleNodes); Collections.sort(data, USAGE_COMPARATOR); AbstractTableModel model = new AbstractTableModel() { + @Override public int getRowCount() { return data.size(); } + @Override public int getColumnCount() { return !data.isEmpty() && data.get(0) instanceof UsageNode ? 3 : 1; } + @Override public Object getValueAt(int rowIndex, int columnIndex) { return data.get(rowIndex); } @@ -596,6 +616,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { private int myWidth; private void rebuildPopup(final UsageViewImpl usageView, final List usages, final JTable table, final JBPopup popup) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JComponent content = popup.getContent(); Window window = SwingUtilities.windowForComponent(content); @@ -644,6 +665,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { } } + @Override public void update(AnActionEvent e){ FindUsagesInFileAction.updateFindUsagesAction(e); } @@ -658,11 +680,14 @@ public class ShowUsagesAction extends AnAction implements PopupAction { final Project project = handler.getProject(); //opening editor is performing in invokeLater IdeFocusManager.getInstance(project).doWhenFocusSettlesDown(new Runnable() { + @Override public void run() { newEditor.getScrollingModel().runActionOnScrollingFinished(new Runnable() { + @Override public void run() { // after new editor created, some editor resizing events are still bubbling. To prevent hiding hint, invokeLater this IdeFocusManager.getInstance(project).doWhenFocusSettlesDown(new Runnable() { + @Override public void run() { if (newEditor.getComponent().isShowing()) { showHint(hint, newEditor, popupPosition, handler, maxUsages); @@ -687,6 +712,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { return true; } + @Override public Object getData(@NonNls String dataId) { if (LangDataKeys.PSI_ELEMENT.is(dataId)) { final int[] selected = getSelectedRows(); diff --git a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesTableCellRenderer.java b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesTableCellRenderer.java index 4eb93a10718c..f55d694b47b2 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesTableCellRenderer.java +++ b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesTableCellRenderer.java @@ -49,6 +49,7 @@ class ShowUsagesTableCellRenderer implements TableCellRenderer { myUsageView = usageView; } + @Override public Component getTableCellRendererComponent(JTable list, Object value, boolean isSelected, boolean hasFocus, int row, int column) { UsageNode usageNode = value instanceof UsageNode ? (UsageNode)value : null; diff --git a/platform/lang-impl/src/com/intellij/find/actions/UsageListCellRenderer.java b/platform/lang-impl/src/com/intellij/find/actions/UsageListCellRenderer.java index caf99b9fb0f2..dc9360143a82 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/UsageListCellRenderer.java +++ b/platform/lang-impl/src/com/intellij/find/actions/UsageListCellRenderer.java @@ -44,6 +44,7 @@ public class UsageListCellRenderer extends ColoredListCellRenderer { myProject = project; } + @Override protected void customizeCellRenderer(final JList list, final Object value, final int index, diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/CloseOnESCAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/CloseOnESCAction.java index 5097f2114351..7b2d3c28b2b8 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/CloseOnESCAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/CloseOnESCAction.java @@ -23,6 +23,7 @@ public class CloseOnESCAction extends EditorHeaderAction implements DumbAware { if (KeymapUtil.isEmacsKeymap()) { shortcuts.add(new KeyboardShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK), null)); textField.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { CloseOnESCAction.this.actionPerformed(null); } diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/FindAllAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/FindAllAction.java index 672f64438c19..345a23f07743 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/FindAllAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/FindAllAction.java @@ -31,6 +31,7 @@ public class FindAllAction extends EditorHeaderAction implements DumbAware { editorSearchComponent.getSearchField()); } + @Override public void update(final AnActionEvent e) { super.update(e); Editor editor = getEditorSearchComponent().getEditor(); @@ -41,6 +42,7 @@ public class FindAllAction extends EditorHeaderAction implements DumbAware { } } + @Override public void actionPerformed(final AnActionEvent e) { Editor editor = getEditorSearchComponent().getEditor(); Project project = editor.getProject(); diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/NextOccurrenceAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/NextOccurrenceAction.java index cdf08e98b892..512d16f05155 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/NextOccurrenceAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/NextOccurrenceAction.java @@ -34,10 +34,12 @@ public class NextOccurrenceAction extends EditorHeaderAction implements DumbAwar registerShortcutsForComponent(shortcuts, editorTextField.get(), this); } + @Override public void actionPerformed(final AnActionEvent e) { getEditorSearchComponent().searchForward(); } + @Override public void update(final AnActionEvent e) { e.getPresentation().setEnabled(getEditorSearchComponent().hasMatches()); } diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/PrevOccurrenceAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/PrevOccurrenceAction.java index 72b49e617675..f5a2d3911b43 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/PrevOccurrenceAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/PrevOccurrenceAction.java @@ -37,10 +37,12 @@ public class PrevOccurrenceAction extends EditorHeaderAction implements DumbAwar registerShortcutsForComponent(shortcuts, editorTextField.get(), this); } + @Override public void actionPerformed(final AnActionEvent e) { getEditorSearchComponent().searchBackward(); } + @Override public void update(final AnActionEvent e) { e.getPresentation().setEnabled(getEditorSearchComponent().hasMatches()); } diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ShowHistoryAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ShowHistoryAction.java index 3b465907c77d..38a5a2eef6c1 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ShowHistoryAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/ShowHistoryAction.java @@ -54,6 +54,7 @@ public class ShowHistoryAction extends EditorHeaderAction implements DumbAware { } } + @Override public void actionPerformed(final AnActionEvent e) { getEditorSearchComponent().showHistory(e.getInputEvent() instanceof MouseEvent, getTextField()); } diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/Utils.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/Utils.java index 3e22b142e47c..daf9da823fa9 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/Utils.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/Utils.java @@ -24,6 +24,7 @@ public class Utils { final JTextComponent textField) { final Runnable callback = new Runnable() { + @Override public void run() { String selectedValue = (String)list.getSelectedValue(); if (selectedValue != null) { diff --git a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/VariantsCompletionAction.java b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/VariantsCompletionAction.java index 39d8e113350e..096684535b06 100644 --- a/platform/lang-impl/src/com/intellij/find/editorHeaderActions/VariantsCompletionAction.java +++ b/platform/lang-impl/src/com/intellij/find/editorHeaderActions/VariantsCompletionAction.java @@ -44,6 +44,7 @@ public class VariantsCompletionAction extends AnAction { } } + @Override public void actionPerformed(final AnActionEvent e) { final String prefix = getPrefix(); if (StringUtil.isEmpty(prefix)) return; @@ -57,6 +58,7 @@ public class VariantsCompletionAction extends AnAction { FeatureUsageTracker.getInstance().triggerFeatureUsed("find.completion"); final JList list = new JBList(array) { + @Override protected void paintComponent(final Graphics g) { UISettings.setupAntialiasing(g); super.paintComponent(g); @@ -96,6 +98,7 @@ public class VariantsCompletionAction extends AnAction { CharSequence chars = editor.getDocument().getCharsSequence(); IdTableBuilding.scanWords(new IdTableBuilding.ScanWordProcessor() { + @Override public void run(final CharSequence chars, final int start, final int end) { final String word = chars.subSequence(start, end).toString(); if (matcher.matches(word)) { diff --git a/platform/lang-impl/src/com/intellij/find/findInProject/FindInProjectManager.java b/platform/lang-impl/src/com/intellij/find/findInProject/FindInProjectManager.java index 79807868ff23..0d84b620ac85 100644 --- a/platform/lang-impl/src/com/intellij/find/findInProject/FindInProjectManager.java +++ b/platform/lang-impl/src/com/intellij/find/findInProject/FindInProjectManager.java @@ -75,6 +75,7 @@ public class FindInProjectManager { findManager.showFindDialog(findModel, new Runnable() { + @Override public void run() { findModel.setOpenInNewTabVisible(false); final PsiDirectory psiDirectory = FindInProjectUtil.getPsiDirectory(findModel, myProject); @@ -98,8 +99,10 @@ public class FindInProjectManager { manager.searchAndShowUsages( new UsageTarget[] { new FindInProjectUtil.StringUsageTarget(findModel.getStringToFind())}, new Factory() { + @Override public UsageSearcher create() { return new UsageSearcher() { + @Override public void generate(final Processor processor) { myIsFindInProgress = true; diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/AbstractFindUsagesDialog.java b/platform/lang-impl/src/com/intellij/find/findUsages/AbstractFindUsagesDialog.java index 5d6232441fa0..06f08c07f2cb 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/AbstractFindUsagesDialog.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/AbstractFindUsagesDialog.java @@ -77,6 +77,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { mySearchInLibrariesAvailable = searchInLibrariesAvailable; myUpdateAction = new ActionListener() { + @Override public void actionPerformed(ActionEvent event) { update(); } @@ -88,6 +89,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { setTitle(isSingleFile ? FindBundle.message("find.usages.in.file.dialog.title") : FindBundle.message("find.usages.dialog.title")); } + @Override protected Action[] createActions() { return new Action[]{getOKAction(), getCancelAction(), getHelpAction()}; } @@ -96,6 +98,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { return !myIsShowInNewTabVisible; } + @Override protected JComponent createNorthPanel() { JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints gbConstraints = new GridBagConstraints(); @@ -116,6 +119,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { public abstract void configureLabelComponent(final SimpleColoredComponent coloredComponent); + @Override protected JComponent createCenterPanel() { JPanel panel = new JPanel(new GridBagLayout()); @@ -143,6 +147,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { return myFindUsagesOptions; } + @Override protected void init() { super.init(); update(); @@ -165,6 +170,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { return myCbToSkipResultsWhenOneUsage != null && myCbToSkipResultsWhenOneUsage.isSelected(); } + @Override protected void doOKAction() { if (!shouldDoOkAction()) return; @@ -283,6 +289,7 @@ public abstract class AbstractFindUsagesDialog extends DialogWrapper { return null; } + @Override public JComponent getPreferredFocusedComponent() { if (myScopeCombo != null) { return myScopeCombo.getComboBox(); diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/CommonFindUsagesDialog.java b/platform/lang-impl/src/com/intellij/find/findUsages/CommonFindUsagesDialog.java index b46be8cf1102..141e997b8458 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/CommonFindUsagesDialog.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/CommonFindUsagesDialog.java @@ -55,10 +55,12 @@ public class CommonFindUsagesDialog extends AbstractFindUsagesDialog { myPsiElement != null && PsiSearchHelper.SERVICE.getInstance(myPsiElement.getProject()).getUseScope(myPsiElement)instanceof LocalSearchScope; } + @Override protected JPanel createFindWhatPanel() { return null; } + @Override public void configureLabelComponent(final SimpleColoredComponent coloredComponent) { coloredComponent.append(StringUtil.capitalize(UsageViewUtil.getType(myPsiElement))); coloredComponent.append(" "); diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/DefaultFindUsagesHandlerFactory.java b/platform/lang-impl/src/com/intellij/find/findUsages/DefaultFindUsagesHandlerFactory.java index a1d95014a254..c03006a1c303 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/DefaultFindUsagesHandlerFactory.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/DefaultFindUsagesHandlerFactory.java @@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull; * @author peter */ public final class DefaultFindUsagesHandlerFactory extends FindUsagesHandlerFactory { + @Override public boolean canFindUsages(@NotNull final PsiElement element) { if (element instanceof PsiFile) { if (((PsiFile)element).getVirtualFile() == null) return false; @@ -34,6 +35,7 @@ public final class DefaultFindUsagesHandlerFactory extends FindUsagesHandlerFact return element.isValid(); } + @Override public FindUsagesHandler createFindUsagesHandler(@NotNull final PsiElement element, final boolean forHighlightUsages) { if (canFindUsages(element)) { return new FindUsagesHandler(element){}; diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/DefaultUsageTargetProvider.java b/platform/lang-impl/src/com/intellij/find/findUsages/DefaultUsageTargetProvider.java index 097b702f1fdd..7c6af0860ce9 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/DefaultUsageTargetProvider.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/DefaultUsageTargetProvider.java @@ -25,10 +25,12 @@ import com.intellij.usages.UsageTarget; import com.intellij.usages.UsageTargetProvider; public class DefaultUsageTargetProvider implements UsageTargetProvider { + @Override public UsageTarget[] getTargets(Editor editor, PsiFile file) { return null; } + @Override public UsageTarget[] getTargets(PsiElement psiElement) { if (psiElement instanceof NavigationItem) { if (FindManager.getInstance(psiElement.getProject()).canFindUsages(psiElement)) { diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java index 3c493af64bbe..61bbb35716d1 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesHandler.java @@ -93,6 +93,7 @@ public abstract class FindUsagesHandler { public void processElementUsages(@NotNull final PsiElement element, @NotNull final Processor processor, @NotNull final FindUsagesOptions options) { final ReadActionProcessor refProcessor = new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference ref) { TextRange rangeInElement = ref.getRangeInElement(); return processor.process(new UsageInfo(ref.getElement(), rangeInElement.getStartOffset(), rangeInElement.getEndOffset(), false)); @@ -110,6 +111,7 @@ public abstract class FindUsagesHandler { if (searchText) { if (options.fastTrack != null) { options.fastTrack.searchCustom(new Processor>() { + @Override public boolean process(Processor consumer) { processUsagesInText(element, processor, (GlobalSearchScope)scope); return true; @@ -127,12 +129,14 @@ public abstract class FindUsagesHandler { Collection stringToSearch = getStringsToSearch(element); if (stringToSearch == null) return; final TextRange elementTextRange = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public TextRange compute() { if (!element.isValid()) return null; return element.getTextRange(); } }); TextOccurrencesUtil.UsageInfoFactory factory = new TextOccurrencesUtil.UsageInfoFactory() { + @Override public UsageInfo createUsageInfo(@NotNull PsiElement usage, int startOffset, int endOffset) { if (elementTextRange != null && usage.getContainingFile() == element.getContainingFile() diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesManager.java b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesManager.java index 178712eb4c24..42d8b8588bbc 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesManager.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesManager.java @@ -169,10 +169,12 @@ public class FindUsagesManager implements JDOMExternalizable { return findUsageInFile(editor, FileSearchScope.BEFORE_CARET); } + @Override public void readExternal(Element element) throws InvalidDataException { myToOpenInNewTab = JDOMExternalizer.readBoolean(element, "OPEN_NEW_TAB"); } + @Override public void writeExternal(Element element) throws WriteExternalException { JDOMExternalizer.write(element, "OPEN_NEW_TAB", myToOpenInNewTab); } @@ -315,6 +317,7 @@ public class FindUsagesManager implements JDOMExternalizable { UsageSearcher usageSearcher = createUsageSearcher(descriptor, handler, findUsagesOptions, null); final AtomicBoolean used = new AtomicBoolean(); usageSearcher.generate(new Processor() { + @Override public boolean process(final Usage usage) { used.set(true); return false; @@ -340,8 +343,10 @@ public class FindUsagesManager implements JDOMExternalizable { final boolean[] canceled = {false}; final AtomicInteger usageCount = new AtomicInteger(); Task task = new Task.Modal(myProject, UsageViewManagerImpl.getProgressTitle(presentation), true) { + @Override public void run(@NotNull final ProgressIndicator indicator) { usageSearcher.generate(new Processor() { + @Override public boolean process(final Usage usage) { usageCount.incrementAndGet(); return processor.process(usage); @@ -349,11 +354,13 @@ public class FindUsagesManager implements JDOMExternalizable { }); } + @Override @Nullable public NotificationInfo getNotificationInfo() { return new NotificationInfo("Find Usages", "Find Usages Finished", usageCount.get() + " Usage(s) Found"); } + @Override public void onCancel() { canceled[0] = true; } @@ -385,17 +392,20 @@ public class FindUsagesManager implements JDOMExternalizable { final PsiFile scopeFile) { return new UsageSearcher() { + @Override public void generate(@NotNull final Processor processor) { if (scopeFile != null) { options.searchScope = new LocalSearchScope(scopeFile); } final Processor usageInfoProcessor = new CommonProcessors.UniqueProcessor(new Processor() { + @Override public boolean process(UsageInfo usageInfo) { return processor.process(UsageInfoToUsageConverter.convert(descriptor, usageInfo)); } }); final List elements = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public List compute() { return descriptor.getAllElements(); } @@ -406,6 +416,7 @@ public class FindUsagesManager implements JDOMExternalizable { try { for (final PsiElement element : elements) { ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { LOG.assertTrue(element.isValid()); } @@ -422,12 +433,14 @@ public class FindUsagesManager implements JDOMExternalizable { } Project project = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Project compute() { return scopeFile != null ? scopeFile.getProject() : !elements.isEmpty() ? elements.get(0).getProject() : handler.getProject(); } }); PsiSearchHelper.SERVICE.getInstance(project) .processRequests(options.fastTrack, new ReadActionProcessor() { + @Override public boolean processInReadAction(final PsiReference ref) { return usageInfoProcessor.process(new UsageInfo(ref)); } @@ -458,6 +471,7 @@ public class FindUsagesManager implements JDOMExternalizable { List elements = descriptor.getAllElements(); final UsageTarget[] targets = convertToUsageTargets(elements); myAnotherManager.searchAndShowUsages(targets, new Factory() { + @Override public UsageSearcher create() { return createUsageSearcher(descriptor, handler, findUsagesOptions, null); } @@ -579,6 +593,7 @@ public class FindUsagesManager implements JDOMExternalizable { usageViewManager.setCurrentSearchCancelled(false); final Usage[] foundUsage = {null}; usageSearcher.generate(new Processor() { + @Override public boolean process(Usage usage) { if (usageViewManager.searchHasBeenCancelled()) return false; diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesOptions.java b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesOptions.java index ed7648585898..335da99e5fda 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesOptions.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/FindUsagesOptions.java @@ -61,6 +61,7 @@ public class FindUsagesOptions extends UserDataHolderBase implements Cloneable { this.searchScope = searchScope; } + @Override public FindUsagesOptions clone() { return (FindUsagesOptions)super.clone(); } diff --git a/platform/lang-impl/src/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java b/platform/lang-impl/src/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java index acb34e4bf76c..c54c95f76d0a 100644 --- a/platform/lang-impl/src/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java +++ b/platform/lang-impl/src/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java @@ -64,23 +64,28 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ myPresentation = new MyItemPresentation(); } + @Override public String getName() { return getNavigationItem().getName(); } + @Override public ItemPresentation getPresentation() { return myPresentation; } + @Override public void navigate(boolean requestFocus) { if (!canNavigate()) return; getNavigationItem().navigate(requestFocus); } + @Override public boolean canNavigate() { return isValid() && getNavigationItem().canNavigate(); } + @Override public boolean canNavigateToSource() { return isValid() && getNavigationItem().canNavigateToSource(); } @@ -98,20 +103,24 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ return myPresentation.getPresentableText(); } + @Override public void findUsages() { PsiElement element = getElement(); FindManager.getInstance(element.getProject()).findUsages(element); } + @Override public PsiElement getElement() { return myPointer.getElement(); } + @Override public void findUsagesInEditor(@NotNull FileEditor editor) { PsiElement element = getElement(); FindManager.getInstance(element.getProject()).findUsagesInEditor(element, editor); } + @Override public void highlightUsages(PsiFile file, Editor editor, boolean clearHighlights) { PsiElement target = getElement(); @@ -139,14 +148,17 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ clearHighlights).run(); } + @Override public boolean isValid() { return getElement() != null; } + @Override public boolean isReadOnly() { return isValid() && !getElement().isWritable(); } + @Override public VirtualFile[] getFiles() { if (!isValid()) return null; @@ -157,6 +169,7 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ return virtualFile == null ? null : new VirtualFile[]{virtualFile}; } + @Override public void update() { myPresentation.update(); } @@ -170,6 +183,7 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ return targets; } + @Override public void calcData(final DataKey key, final DataSink sink) { if (key == UsageView.USAGE_INFO_KEY) { PsiElement element = getElement(); @@ -217,14 +231,17 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ } } + @Override public String getPresentableText() { return myPresentableText; } + @Override public String getLocationString() { return null; } + @Override public Icon getIcon(boolean open) { final ComputableIcon computableIcon = open ? myIconOpen : myIconClosed; return computableIcon == null? null : computableIcon.getIcon(); diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java b/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java index df0857e54a3d..8e292d8e7475 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java @@ -150,10 +150,12 @@ public class FindDialog extends DialogWrapper { super.dispose(); } + @Override public JComponent getPreferredFocusedComponent() { return myInputComboBox; } + @Override protected String getDimensionServiceKey() { return myModel.isReplaceState() ? "replaceTextDialog" : "findTextDialog"; } @@ -168,12 +170,14 @@ public class FindDialog extends DialogWrapper { private Action getFindAllAction() { return myFindAllAction = new AbstractAction(FindBundle.message("find.all.button")) { + @Override public void actionPerformed(ActionEvent e) { doOKAction(true); } }; } + @Override public JComponent createNorthPanel() { JPanel panel = new JPanel(new GridBagLayout()); @@ -192,6 +196,7 @@ public class FindDialog extends DialogWrapper { final Component editorComponent = myReplaceComboBox.getEditor().getEditorComponent(); editorComponent.addFocusListener( new FocusAdapter() { + @Override public void focusGained(FocusEvent e) { myReplaceComboBox.getEditor().selectAll(); editorComponent.removeFocusListener(this); @@ -226,6 +231,7 @@ public class FindDialog extends DialogWrapper { comboBox.setMaximumRowCount(8); comboBox.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { validateFindButton(); } @@ -237,6 +243,7 @@ public class FindDialog extends DialogWrapper { final EditorTextField etf = (EditorTextField) editorComponent; DocumentAdapter listener = new DocumentAdapter() { + @Override public void documentChanged(final DocumentEvent e) { handleComboBoxValueChanged(comboBox); } @@ -247,6 +254,7 @@ public class FindDialog extends DialogWrapper { else { editorComponent.addKeyListener( new KeyAdapter() { + @Override public void keyReleased(KeyEvent e) { handleComboBoxValueChanged(comboBox); } @@ -320,6 +328,7 @@ public class FindDialog extends DialogWrapper { } } + @Override public JComponent createCenterPanel() { JPanel optionsPanel = new JPanel(); optionsPanel.setLayout(new GridBagLayout()); @@ -406,6 +415,7 @@ public class FindDialog extends DialogWrapper { useFileFilter.addActionListener( new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (!useFileFilter.isSelected()) { fileFilter.setEnabled(false); @@ -420,6 +430,7 @@ public class FindDialog extends DialogWrapper { ); } + @Override public void doOKAction() { doOKAction(false); } @@ -552,6 +563,7 @@ public class FindDialog extends DialogWrapper { return result; } + @Override public void doHelpAction() { String id = myModel.isReplaceState() ? myModel.isMultipleFiles() ? HelpID.REPLACE_IN_PATH : HelpID.REPLACE_OPTIONS @@ -587,6 +599,7 @@ public class FindDialog extends DialogWrapper { regExPanel.add(myCbRegularExpressions); regExPanel.add(new LinkLabel("[Help]", null, new LinkListener() { + @Override public void linkSelected(LinkLabel aSource, Object aLinkData) { try { final JBPopup helpPopup = RegExHelpPopup.createRegExHelpPopup(); @@ -609,12 +622,14 @@ public class FindDialog extends DialogWrapper { } ActionListener actionListener = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { updateControls(); } }; myCbRegularExpressions.addActionListener(actionListener); myCbRegularExpressions.addItemListener(new ItemListener() { + @Override public void itemStateChanged(final ItemEvent e) { setupRegExpSetting(); } @@ -798,12 +813,14 @@ public class FindDialog extends DialogWrapper { bgScope.add(myRbCustomScope); myRbProject.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { validateScopeControls(); validateFindButton(); } }); myRbCustomScope.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { validateScopeControls(); validateFindButton(); @@ -811,6 +828,7 @@ public class FindDialog extends DialogWrapper { }); myRbDirectory.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { validateScopeControls(); validateFindButton(); @@ -819,6 +837,7 @@ public class FindDialog extends DialogWrapper { }); myRbModule.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { validateScopeControls(); validateFindButton(); @@ -827,6 +846,7 @@ public class FindDialog extends DialogWrapper { }); mySelectDirectoryButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); FileChooser.chooseFilesWithSlideEffect(descriptor, myProject, null, new Consumer() { @@ -884,6 +904,7 @@ public class FindDialog extends DialogWrapper { bgScope.add(myRbSelectedText); ActionListener actionListener = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { updateControls(); } diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java index f86a4f6bc541..819b3a441e4d 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java @@ -190,6 +190,7 @@ public class FindInProjectUtil { } else { pattern = StringUtil.join(strings, new Function() { + @Override public String fun(String s) { return "(" + PatternUtil.convertToRegex(s.trim()) + ")"; } @@ -277,6 +278,7 @@ public class FindInProjectUtil { final String finalMessage = message; ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { ToolWindowManager.getInstance(project).notifyByBalloon(ToolWindowId.FIND, MessageType.WARNING, finalMessage); } @@ -327,6 +329,7 @@ public class FindInProjectUtil { private static String getPresentablePath(final VirtualFile virtualFile) { return "'" + ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public String compute() { return virtualFile.getPresentableUrl(); } @@ -341,6 +344,7 @@ public class FindInProjectUtil { private static long getFileLength(final VirtualFile virtualFile) { final long[] length = {-1L}; ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (!virtualFile.isValid()) return; if (virtualFile.getFileType().isBinary()) return; @@ -352,6 +356,7 @@ public class FindInProjectUtil { private static Collection getFilesToSearchIn(final FindModel findModel, final Project project, final PsiDirectory psiDirectory) { return ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public Collection compute() { return getFilesToSearchInReadAction(findModel, project, psiDirectory); } @@ -378,6 +383,7 @@ public class FindInProjectUtil { final List myFiles = new ArrayList(filesForFastWordSearch); final PsiManager psiManager = PsiManager.getInstance(project); + @Override public boolean processFile(VirtualFile virtualFile) { if (!virtualFile.isDirectory() && (fileMaskRegExp == null || fileMaskRegExp.matcher(virtualFile.getName()).matches()) && (!(customScope instanceof GlobalSearchScope) || ((GlobalSearchScope)customScope).contains(virtualFile))) { final PsiFile psiFile = psiManager.findFile(virtualFile); @@ -421,6 +427,7 @@ public class FindInProjectUtil { private static boolean iterateAll(VirtualFile[] files, final GlobalSearchScope searchScope, final ContentIterator iterator) { final FileTypeManager fileTypeManager = FileTypeManager.getInstance(); final VirtualFileFilter contentFilter = new VirtualFileFilter() { + @Override public boolean accept(final VirtualFile file) { return file.isDirectory() || !fileTypeManager.isFileIgnored(file) && !file.getFileType().isBinary() && searchScope.contains(file); @@ -487,6 +494,7 @@ public class FindInProjectUtil { // hope long words are rare Collections.sort(words, new Comparator() { + @Override public int compare(final String o1, final String o2) { return o2.length() - o1.length(); } @@ -643,6 +651,7 @@ public class FindInProjectUtil { processPresentation.setShowPanelIfOnlyOneUsage(showPanelIfOnlyOneUsage); processPresentation.setProgressIndicatorFactory( new Factory() { + @Override public ProgressIndicator create() { return new FindProgressIndicator(project, presentation.getScopeText()); } @@ -655,14 +664,17 @@ public class FindInProjectUtil { private final String myStringToFind; private final ItemPresentation myItemPresentation = new ItemPresentation() { + @Override public String getPresentableText() { return FindBundle.message("find.usage.target.string.text", myStringToFind); } + @Override public String getLocationString() { return myStringToFind + "!!"; } + @Override public Icon getIcon(boolean open) { return null; } @@ -672,42 +684,54 @@ public class FindInProjectUtil { myStringToFind = _stringToFind; } + @Override public void findUsages() {} + @Override public void findUsagesInEditor(@NotNull FileEditor editor) {} + @Override public void highlightUsages(PsiFile file, Editor editor, boolean clearHighlights) {} + @Override public boolean isValid() { return true; } + @Override public boolean isReadOnly() { return true; } + @Override @Nullable public VirtualFile[] getFiles() { return null; } + @Override public void update() { } + @Override public String getName() { return myStringToFind; } + @Override public ItemPresentation getPresentation() { return myItemPresentation; } + @Override public void navigate(boolean requestFocus) { throw new UnsupportedOperationException(); } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return false; } diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java b/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java index 2a5d75e38389..4d2da027a50e 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java @@ -122,6 +122,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return model; } + @Override public Element getState() { Element element = new Element("FindManager"); final Element findUsages = new Element(FIND_USAGES_MANAGER_ELEMENT); @@ -135,6 +136,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return element; } + @Override public void loadState(final Element state) { final Element findUsages = state.getChild(FIND_USAGES_MANAGER_ELEMENT); if (findUsages != null) { @@ -147,8 +149,10 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo } } + @Override public int showPromptDialog(final FindModel model, String title) { ReplacePromptDialog replacePromptDialog = new ReplacePromptDialog(model.isMultipleFiles(), title, myProject) { + @Override @Nullable public Point getInitialLocation() { if (model.isMultipleFiles() && myReplaceInProjectPromptPos.x >= 0 && myReplaceInProjectPromptPos.y >= 0){ @@ -172,9 +176,11 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return replacePromptDialog.getExitCode(); } + @Override public void showFindDialog(@NotNull final FindModel model, @NotNull final Runnable okHandler) { if(myFindDialog==null || Disposer.isDisposed(myFindDialog.getDisposable())){ myFindDialog = new FindDialog(myProject, model, new Runnable(){ + @Override public void run() { String stringToFind = model.getStringToFind(); if (stringToFind.length() == 0){ @@ -208,11 +214,13 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo myFindDialog.show(); } + @Override @NotNull public FindModel getFindInFileModel() { return myFindInFileModel; } + @Override @NotNull public FindModel getFindInProjectModel() { myFindInProjectModel.setFromCursor(false); @@ -221,19 +229,23 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return myFindInProjectModel; } + @Override public boolean findWasPerformed() { return isFindWasPerformed; } + @Override public void setFindWasPerformed() { isFindWasPerformed = true; myFindUsagesManager.clearFindingNextUsageInFile(); } + @Override public FindModel getFindNextModel() { return myFindNextModel; } + @Override public FindModel getFindNextModel(@NotNull final Editor editor) { if (myFindNextModel == null) return null; @@ -252,11 +264,13 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return myFindNextModel; } + @Override public void setFindNextModel(FindModel findNextModel) { myFindNextModel = findNextModel; myBus.syncPublisher(FIND_MODEL_TOPIC).findNextModelChanged(); } + @Override @NotNull public FindResult findString(@NotNull CharSequence text, int offset, @NotNull FindModel model){ return findString(text, offset, model, null); @@ -388,6 +402,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo TokenSet tokensOfInterest = TokenSet.EMPTY; final Language finalLang = lang; Set relevantLanguages = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override public Set compute() { THashSet result = new THashSet(); @@ -535,6 +550,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return pattern == null ? null : pattern.matcher(text); } + @Override public String getStringToReplace(@NotNull String foundString, @NotNull FindModel model) throws MalformedReplacementStringException { String toReplace = model.getStringToReplace(); if (model.isRegularExpressions()) { @@ -660,14 +676,17 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return buffer.toString(); } + @Override public boolean canFindUsages(@NotNull PsiElement element) { return element.isValid() && myFindUsagesManager.canFindUsages(element); } + @Override public void findUsages(@NotNull PsiElement element) { myFindUsagesManager.findUsages(element, null, null); } + @Override public void findUsagesInEditor(@NotNull PsiElement element, @NotNull FileEditor fileEditor) { if (fileEditor instanceof TextEditor) { TextEditor textEditor = (TextEditor)fileEditor; @@ -694,6 +713,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return false; } + @Override public boolean findNextUsageInEditor(@NotNull FileEditor fileEditor) { if (fileEditor instanceof TextEditor) { TextEditor textEditor = (TextEditor)fileEditor; @@ -713,6 +733,7 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo return myFindUsagesManager.findNextUsageInFile(fileEditor); } + @Override public boolean findPreviousUsageInEditor(@NotNull FileEditor fileEditor) { if (fileEditor instanceof TextEditor) { TextEditor textEditor = (TextEditor)fileEditor; diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindResultImpl.java b/platform/lang-impl/src/com/intellij/find/impl/FindResultImpl.java index 5a1dedeb2dfe..c338914227f2 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindResultImpl.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindResultImpl.java @@ -31,6 +31,7 @@ public class FindResultImpl extends FindResult { isStringFound = false; } + @Override public boolean isStringFound() { return isStringFound; } diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindSettingsImpl.java b/platform/lang-impl/src/com/intellij/find/impl/FindSettingsImpl.java index 9780a81ce23e..2bc4c7b773e8 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindSettingsImpl.java @@ -55,10 +55,12 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom private static final int MAX_RECENT_SIZE = 30; + @Override public boolean isSearchOverloadedMethods() { return SEARCH_OVERLOADED_METHODS; } + @Override public void setSearchOverloadedMethods(boolean search) { SEARCH_OVERLOADED_METHODS = search; } @@ -92,6 +94,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom @SuppressWarnings({"WeakerAccess"}) @NonNls public JDOMExternalizableStringList RECENT_FILE_MASKS = new JDOMExternalizableStringList(); + @Override public void loadState(final Element state) { try { DefaultJDOMExternalizer.readExternal(this, state); @@ -115,6 +118,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom } } + @Override public Element getState() { Element element = new Element("state"); try { @@ -126,90 +130,112 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom return element; } + @Override public boolean isSkipResultsWithOneUsage(){ return SKIP_RESULTS_WHEN_ONE_USAGE; } + @Override public void setSkipResultsWithOneUsage(boolean skip){ SKIP_RESULTS_WHEN_ONE_USAGE = skip; } + @Override public String getDefaultScopeName() { return SEARCH_SCOPE; } + @Override public void setDefaultScopeName(String scope) { SEARCH_SCOPE = scope; } + @Override public boolean isForward(){ return FIND_DIRECTION_FORWARD.equals(FIND_DIRECTION); } + @Override public void setForward(boolean findDirectionForward){ FIND_DIRECTION = findDirectionForward ? FIND_DIRECTION_FORWARD : FIND_DIRECTION_BACKWARD; } + @Override public boolean isFromCursor(){ return FIND_ORIGIN_FROM_CURSOR.equals(FIND_ORIGIN); } + @Override public void setFromCursor(boolean findFromCursor){ FIND_ORIGIN = findFromCursor ? FIND_ORIGIN_FROM_CURSOR : FIND_ORIGIN_ENTIRE_SCOPE; } + @Override public boolean isGlobal(){ return FIND_SCOPE_GLOBAL.equals(FIND_SCOPE); } + @Override public void setGlobal(boolean findGlobalScope){ FIND_SCOPE = findGlobalScope ? FIND_SCOPE_GLOBAL : FIND_SCOPE_SELECTED; } + @Override public boolean isCaseSensitive(){ return CASE_SENSITIVE_SEARCH; } + @Override public void setCaseSensitive(boolean caseSensitiveSearch){ CASE_SENSITIVE_SEARCH = caseSensitiveSearch; } + @Override public boolean isLocalCaseSensitive() { return LOCAL_CASE_SENSITIVE_SEARCH; } + @Override public boolean isLocalWholeWordsOnly() { return LOCAL_WHOLE_WORDS_ONLY; } + @Override public void setLocalCaseSensitive(final boolean caseSensitiveSearch) { LOCAL_CASE_SENSITIVE_SEARCH = caseSensitiveSearch; } + @Override public void setLocalWholeWordsOnly(final boolean wholeWordsOnly) { LOCAL_WHOLE_WORDS_ONLY = wholeWordsOnly; } + @Override public boolean isPreserveCase() { return PRESERVE_CASE_REPLACE; } + @Override public void setPreserveCase(boolean preserveCase) { PRESERVE_CASE_REPLACE = preserveCase; } + @Override public boolean isWholeWordsOnly(){ return WHOLE_WORDS_ONLY; } + @Override public void setWholeWordsOnly(boolean wholeWordsOnly){ WHOLE_WORDS_ONLY = wholeWordsOnly; } + @Override public boolean isRegularExpressions(){ return REGULAR_EXPRESSIONS; } + @Override public void setRegularExpressions(boolean regularExpressions){ REGULAR_EXPRESSIONS = regularExpressions; } @@ -224,6 +250,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom LOCAL_REGULAR_EXPRESSIONS = regularExpressions; } + @Override public void setWithSubdirectories(boolean b){ WITH_SUBDIRECTORIES = b; } @@ -232,6 +259,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom return WITH_SUBDIRECTORIES; } + @Override public void initModelBySetings(FindModel model){ model.setCaseSensitive(isCaseSensitive()); model.setForward(isForward()); @@ -257,6 +285,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom } } + @Override public void addStringToFind(String s){ if (s == null || s.indexOf('\r') >= 0 || s.indexOf('\n') >= 0){ return; @@ -264,6 +293,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom addStringToList(s, RECENT_FIND_STRINGS, MAX_RECENT_SIZE); } + @Override public void addStringToReplace(String s) { if (s == null || s.indexOf('\r') >= 0 || s.indexOf('\n') >= 0){ return; @@ -271,6 +301,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom addStringToList(s, RECENT_REPLACE_STRINGS, MAX_RECENT_SIZE); } + @Override public void addDirectory(String s) { if (s == null || s.length() == 0){ return; @@ -278,26 +309,32 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom addStringToList(s, RECENT_DIR_STRINGS, MAX_RECENT_SIZE); } + @Override public String[] getRecentFindStrings(){ return ArrayUtil.toStringArray(RECENT_FIND_STRINGS); } + @Override public String[] getRecentReplaceStrings(){ return ArrayUtil.toStringArray(RECENT_REPLACE_STRINGS); } + @Override public String[] getRecentFileMasks() { return ArrayUtil.toStringArray(RECENT_FILE_MASKS); } + @Override public ArrayList getRecentDirectories(){ return new ArrayList(RECENT_DIR_STRINGS); } + @Override public String getFileMask() { return FILE_MASK; } + @Override public void setFileMask(String _fileMask) { FILE_MASK = _fileMask; if (_fileMask != null && _fileMask.length() > 0) { @@ -305,6 +342,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom } } + @Override public String getCustomScope() { return SEARCH_SCOPE; } @@ -329,6 +367,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom STRING_LITERALS_ONLY = selected; } + @Override public void setCustomScope(final String SEARCH_SCOPE) { this.SEARCH_SCOPE = SEARCH_SCOPE; } diff --git a/platform/lang-impl/src/com/intellij/find/impl/RegExHelpPopup.java b/platform/lang-impl/src/com/intellij/find/impl/RegExHelpPopup.java index e2f001e46943..e6044fee7b4c 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/RegExHelpPopup.java +++ b/platform/lang-impl/src/com/intellij/find/impl/RegExHelpPopup.java @@ -314,6 +314,7 @@ public class RegExHelpPopup extends JPanel { myEditorPane.addHyperlinkListener(new HyperlinkListener() { + @Override public void hyperlinkUpdate(HyperlinkEvent e) { if (HyperlinkEvent.EventType.ACTIVATED == e.getEventType()) BrowserUtil.launchBrowser(e.getURL().toString()); } diff --git a/platform/lang-impl/src/com/intellij/find/impl/RevealingSpaceComboboxEditor.java b/platform/lang-impl/src/com/intellij/find/impl/RevealingSpaceComboboxEditor.java index 537a316810d8..3298b66ab74b 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/RevealingSpaceComboboxEditor.java +++ b/platform/lang-impl/src/com/intellij/find/impl/RevealingSpaceComboboxEditor.java @@ -35,6 +35,7 @@ public class RevealingSpaceComboboxEditor extends StringComboboxEditor { super(project, FileTypes.PLAIN_TEXT, comboBox); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { Editor editor = getEditor(); if (editor != null) { @@ -44,6 +45,7 @@ public class RevealingSpaceComboboxEditor extends StringComboboxEditor { }); } + @Override public void setItem(Object anObject) { super.setItem(anObject); Editor editor = getEditor(); diff --git a/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesAction.java b/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesAction.java index c629df97427f..d43daf9bc660 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesAction.java +++ b/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesAction.java @@ -46,12 +46,14 @@ import java.util.List; * @author cdr */ public class ShowRecentFindUsagesAction extends AnAction { + @Override public void update(final AnActionEvent e) { UsageView usageView = e.getData(UsageView.USAGE_VIEW_KEY); Project project = e.getData(PlatformDataKeys.PROJECT); e.getPresentation().setEnabled(usageView != null && project != null); } + @Override public void actionPerformed(AnActionEvent e) { UsageView usageView = e.getData(UsageView.USAGE_VIEW_KEY); Project project = e.getData(PlatformDataKeys.PROJECT); @@ -69,6 +71,7 @@ public class ShowRecentFindUsagesAction extends AnAction { BaseListPopupStep step = new BaseListPopupStep(FindBundle.message("recent.find.usages.action.title"), history) { + @Override public Icon getIconFor(final FindUsagesManager.SearchData data) { if (data.myElements == null) { return null; @@ -78,6 +81,7 @@ public class ShowRecentFindUsagesAction extends AnAction { return psiElement.getIcon(0); } + @Override @NotNull public String getTextFor(final FindUsagesManager.SearchData data) { if (data.myElements == null) { @@ -92,8 +96,10 @@ public class ShowRecentFindUsagesAction extends AnAction { scopeString == null ? ProjectScope.getAllScope(psiElement.getProject()).getDisplayName() : scopeString); } + @Override public PopupStep onChosen(final FindUsagesManager.SearchData selectedValue, final boolean finalChoice) { return doFinalStep(new Runnable() { + @Override public void run() { if (selectedValue.myElements != null) { findUsagesManager.rerunAndRecallFromHistory(selectedValue); diff --git a/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java b/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java index b87b994a937d..8c5a7d4a6e48 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java +++ b/platform/lang-impl/src/com/intellij/find/impl/ShowRecentFindUsagesGroup.java @@ -37,12 +37,14 @@ import java.util.List; * @author cdr */ public class ShowRecentFindUsagesGroup extends ActionGroup { + @Override public void update(final AnActionEvent e) { Project project = e.getData(PlatformDataKeys.PROJECT); e.getPresentation().setEnabled(project != null); e.getPresentation().setVisible(project != null); } + @Override @NotNull public AnAction[] getChildren(@Nullable final AnActionEvent e) { if (e == null) return EMPTY_ARRAY; @@ -67,6 +69,7 @@ public class ShowRecentFindUsagesGroup extends ActionGroup { UsageViewUtil.getDescriptiveName(psiElement), scopeString == null ? ProjectScope.getAllScope(psiElement.getProject()).getDisplayName() : scopeString); AnAction action = new AnAction(text, description, psiElement.getIcon(0)) { + @Override public void actionPerformed(final AnActionEvent e) { findUsagesManager.rerunAndRecallFromHistory(data); } diff --git a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java index 51bbb248e56c..d2b2a96aa13d 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java +++ b/platform/lang-impl/src/com/intellij/find/impl/livePreview/LivePreview.java @@ -123,10 +123,12 @@ public class LivePreview extends DocumentAdapter implements ReplacementView.Dele myDelegate.performReplaceAll(mySearchResults.getEditor()); } + @Override public boolean isExcluded(LiveOccurrence occurrence) { return mySearchResults.isExcluded(occurrence); } + @Override public void exclude(LiveOccurrence occurrence) { mySearchResults.exclude(occurrence); myDelegate.getFocusBack(); @@ -180,6 +182,7 @@ public class LivePreview extends DocumentAdapter implements ReplacementView.Dele updateCursorHighlighting(toChangeSelection); } + @Override public void editorChanged(SearchResults sr, Editor oldEditor) { removeFromEditor(); oldEditor.getDocument().removeDocumentListener(this); diff --git a/platform/lang-impl/src/com/intellij/find/ngrams/TrigramIndex.java b/platform/lang-impl/src/com/intellij/find/ngrams/TrigramIndex.java index 9fc580f9bffa..ba6a97d45fc0 100644 --- a/platform/lang-impl/src/com/intellij/find/ngrams/TrigramIndex.java +++ b/platform/lang-impl/src/com/intellij/find/ngrams/TrigramIndex.java @@ -37,27 +37,33 @@ public class TrigramIndex extends ScalarIndexExtension { public static final ID INDEX_ID = ID.create("Trigram.Index"); private static final FileBasedIndex.InputFilter INPUT_FILTER = new FileBasedIndex.InputFilter() { + @Override public boolean acceptInput(VirtualFile file) { return !file.getFileType().isBinary(); } }; private static final FileBasedIndex.InputFilter NO_FILES = new FileBasedIndex.InputFilter() { + @Override public boolean acceptInput(VirtualFile file) { return false; } }; + @Override public ID getName() { return INDEX_ID; } + @Override public DataIndexer getIndexer() { return new DataIndexer() { + @Override @NotNull public Map map(FileContent inputData) { final Map result = new THashMap(); TIntHashSet built = TrigramBuilder.buildTrigram(inputData.getContentAsText()); built.forEach(new TIntProcedure() { + @Override public boolean execute(int value) { result.put(value, null); return true; @@ -68,10 +74,12 @@ public class TrigramIndex extends ScalarIndexExtension { }; } + @Override public KeyDescriptor getKeyDescriptor() { return new EnumeratorIntegerDescriptor(); } + @Override public FileBasedIndex.InputFilter getInputFilter() { if (ENABLED) { return INPUT_FILTER; @@ -81,10 +89,12 @@ public class TrigramIndex extends ScalarIndexExtension { } } + @Override public boolean dependsOnFileContent() { return true; } + @Override public int getVersion() { return ENABLED ? 2 : 1; } diff --git a/platform/lang-impl/src/com/intellij/find/replaceInProject/ReplaceInProjectManager.java b/platform/lang-impl/src/com/intellij/find/replaceInProject/ReplaceInProjectManager.java index 5d7121fe3392..25c05915747e 100644 --- a/platform/lang-impl/src/com/intellij/find/replaceInProject/ReplaceInProjectManager.java +++ b/platform/lang-impl/src/com/intellij/find/replaceInProject/ReplaceInProjectManager.java @@ -108,6 +108,7 @@ public class ReplaceInProjectManager { FindUtil.initStringToFindWithSelection(findModel, editor); findManager.showFindDialog(findModel, new Runnable() { + @Override public void run() { final PsiDirectory psiDirectory = FindInProjectUtil.getPsiDirectory(findModel, myProject); if (!findModel.isProjectScope() && @@ -148,14 +149,17 @@ public class ReplaceInProjectManager { manager.searchAndShowUsages(new UsageTarget[]{new FindInProjectUtil.StringUsageTarget(findModelCopy.getStringToFind())}, usageSearcherFactory, processPresentation, presentation, new UsageViewManager.UsageViewStateListener() { + @Override public void usageViewCreated(UsageView usageView) { context[0] = new ReplaceContext(usageView, findModelCopy); addReplaceActions(context[0]); } + @Override public void findingUsagesFinished(final UsageView usageView) { if (context[0] != null && findManager.getFindInProjectModel().isPromptOnReplace()) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { replaceWithPrompt(context[0]); } @@ -187,10 +191,12 @@ public class ReplaceInProjectManager { if (!psiFile.isWritable()) continue; Runnable selectOnEditorRunnable = new Runnable() { + @Override public void run() { final VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile != null && ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { return virtualFile.isValid() ? Boolean.TRUE : Boolean.FALSE; } @@ -219,6 +225,7 @@ public class ReplaceInProjectManager { final int currentNumber = i; if (result == FindManager.PromptResult.OK) { Runnable runnable = new Runnable() { + @Override public void run() { doReplace(usage, replaceContext.getFindModel(), replaceContext.getExcludedSet()); replaceContext.getUsageView().removeUsage(usage); @@ -235,6 +242,7 @@ public class ReplaceInProjectManager { final int[] nextNumber = new int[1]; Runnable runnable = new Runnable() { + @Override public void run() { int j = currentNumber; @@ -266,6 +274,7 @@ public class ReplaceInProjectManager { if (result == FindManager.PromptResult.ALL_FILES) { CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { + @Override public void run() { doReplace(replaceContext, _usages); replaceContext.getUsageView().close(); @@ -278,6 +287,7 @@ public class ReplaceInProjectManager { private void addReplaceActions(final ReplaceContext replaceContext) { final Runnable replaceRunnable = new Runnable() { + @Override public void run() { doReplace(replaceContext, replaceContext.getUsageView().getUsages()); } @@ -286,6 +296,7 @@ public class ReplaceInProjectManager { FindBundle.message("find.replace.all.action.description")); final Runnable replaceSelectedRunnable = new Runnable() { + @Override public void run() { doReplaceSelected(replaceContext); } @@ -309,6 +320,7 @@ public class ReplaceInProjectManager { public void doReplace(@NotNull final Usage usage, @NotNull final FindModel findModel, @NotNull final Set excludedSet) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { if (excludedSet.contains(usage)) { return; @@ -383,6 +395,7 @@ public class ReplaceInProjectManager { } CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { + @Override public void run() { doReplace(replaceContext, selectedUsages); for (final Usage selectedUsage : selectedUsages) { @@ -415,9 +428,11 @@ public class ReplaceInProjectManager { myPsiDirectory = psiDirectory; } + @Override public UsageSearcher create() { return new UsageSearcher() { + @Override public void generate(final Processor processor) { try { myIsFindInProgress = true; diff --git a/platform/lang-impl/src/com/intellij/injected/editor/CaretModelWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/CaretModelWindow.java index 391fa5baddb6..9d3465052151 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/CaretModelWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/CaretModelWindow.java @@ -39,6 +39,7 @@ public class CaretModelWindow implements CaretModel { myEditorWindow = editorWindow; } + @Override public void moveCaretRelatively(final int columnShift, final int lineShift, final boolean withSelection, @@ -47,11 +48,13 @@ public class CaretModelWindow implements CaretModel { myDelegate.moveCaretRelatively(columnShift, lineShift, withSelection, blockSelection, scrollToCaret); } + @Override public void moveToLogicalPosition(@NotNull final LogicalPosition pos) { LogicalPosition hostPos = myEditorWindow.injectedToHost(pos); myDelegate.moveToLogicalPosition(hostPos); } + @Override public void moveToVisualPosition(@NotNull final VisualPosition pos) { LogicalPosition hostPos = myEditorWindow.injectedToHost(myEditorWindow.visualToLogicalPosition(pos)); myDelegate.moveToLogicalPosition(hostPos); @@ -62,23 +65,27 @@ public class CaretModelWindow implements CaretModel { moveToOffset(offset, false); } + @Override public void moveToOffset(final int offset, boolean locateBeforeSoftWrap) { int hostOffset = myEditorWindow.getDocument().injectedToHost(offset); myDelegate.moveToOffset(hostOffset, locateBeforeSoftWrap); } + @Override @NotNull public LogicalPosition getLogicalPosition() { LogicalPosition hostPos = myDelegate.getLogicalPosition(); return myEditorWindow.hostToInjected(hostPos); } + @Override @NotNull public VisualPosition getVisualPosition() { LogicalPosition logicalPosition = getLogicalPosition(); return myEditorWindow.logicalToVisualPosition(logicalPosition); } + @Override public int getOffset() { return myEditorWindow.getDocument().hostToInjected(myDelegate.getOffset()); } @@ -89,8 +96,10 @@ public class CaretModelWindow implements CaretModel { } private final ListenerWrapperMap myCaretListeners = new ListenerWrapperMap(); + @Override public void addCaretListener(@NotNull final CaretListener listener) { CaretListener wrapper = new CaretListener() { + @Override public void caretPositionChanged(CaretEvent e) { CaretEvent event = new CaretEvent(myEditorWindow, myEditorWindow.hostToInjected(e.getOldPosition()), myEditorWindow.hostToInjected(e.getNewPosition())); @@ -101,6 +110,7 @@ public class CaretModelWindow implements CaretModel { myDelegate.addCaretListener(wrapper); } + @Override public void removeCaretListener(@NotNull final CaretListener listener) { CaretListener wrapper = myCaretListeners.removeWrapper(listener); if (wrapper != null) { @@ -115,14 +125,17 @@ public class CaretModelWindow implements CaretModel { myCaretListeners.clear(); } + @Override public int getVisualLineStart() { return myEditorWindow.getDocument().hostToInjected(myDelegate.getVisualLineStart()); } + @Override public int getVisualLineEnd() { return myEditorWindow.getDocument().hostToInjected(myDelegate.getVisualLineEnd()); } + @Override public TextAttributes getTextAttributes() { return myDelegate.getTextAttributes(); } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java b/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java index 14230eb50657..502d13547b56 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java @@ -114,10 +114,12 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable } + @Override public int getLineCount() { return 1 + StringUtil.countNewLines(getText()); } + @Override public int getLineStartOffset(int line) { //int oldso = oldso(line); int newso = newStartOffset(line); @@ -171,12 +173,14 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return new DocumentImpl(getText()).getLineStartOffset(line); } + @Override public int getLineEndOffset(int line) { LOG.assertTrue(line >= 0, line); int startOffsetOfNextLine = getLineStartOffset(line + 1); return startOffsetOfNextLine == 0 || getText().charAt(startOffsetOfNextLine - 1) != '\n' ? startOffsetOfNextLine : startOffsetOfNextLine - 1; } + @Override public String getText() { CachedText cachedText = myCachedText; @@ -208,16 +212,19 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return range.substring(getText()); } + @Override @NotNull public CharSequence getCharsSequence() { return getText(); } + @Override @NotNull public char[] getChars() { return CharArrayUtil.fromSequence(getText()); } + @Override public int getTextLength() { int length = 0; for (PsiLanguageInjectionHost.Shred shred : myShreds) { @@ -229,6 +236,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return length; } + @Override public int getLineNumber(int offset) { int lineNumber = 0; String hostText = myDelegate.getText(); @@ -263,6 +271,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return lineNumber < 0 ? 0 : lineNumber; } + @Override public TextRange getHostRange(int hostOffset) { for (PsiLanguageInjectionHost.Shred shred : myShreds) { RangeMarker currentRange = shred.getHostRangeMarker(); @@ -272,6 +281,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return null; } + @Override public void insertString(final int offset, @NotNull CharSequence s) { LOG.assertTrue(offset >= myShreds.get(0).prefix.length(), myShreds.get(0).prefix); LOG.assertTrue(offset <= getTextLength() - myShreds.get(myShreds.size() - 1).suffix.length(), myShreds.get(myShreds.size() - 1).suffix); @@ -281,6 +291,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable myDelegate.insertString(injectedToHost(offset), s); } + @Override public void deleteString(final int startOffset, final int endOffset) { assert intersectWithEditable(new TextRange(startOffset, startOffset)) != null; assert intersectWithEditable(new TextRange(endOffset, endOffset)) != null; @@ -313,6 +324,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable } } + @Override public void replaceString(int startOffset, int endOffset, @NotNull CharSequence s) { if (isOneLine()) { s = StringUtil.replace(s.toString(), "\n", ""); @@ -370,30 +382,37 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable } } + @Override public boolean isWritable() { return myDelegate.isWritable(); } + @Override public long getModificationStamp() { return isValid() ? myDelegate.getModificationStamp() : -1; } + @Override public void fireReadOnlyModificationAttempt() { myDelegate.fireReadOnlyModificationAttempt(); } + @Override public void addDocumentListener(@NotNull final DocumentListener listener) { myDelegate.addDocumentListener(listener); } + @Override public void addDocumentListener(@NotNull DocumentListener listener, @NotNull Disposable parentDisposable) { myDelegate.addDocumentListener(listener, parentDisposable); } + @Override public void removeDocumentListener(@NotNull final DocumentListener listener) { myDelegate.removeDocumentListener(listener); } + @Override @NotNull public RangeMarker createRangeMarker(final int startOffset, final int endOffset) { ProperTextRange hostRange = injectedToHost(new ProperTextRange(startOffset, endOffset)); @@ -401,6 +420,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return new RangeMarkerWindow(this, (RangeMarkerEx)hostMarker); } + @Override @NotNull public RangeMarker createRangeMarker(final int startOffset, final int endOffset, final boolean surviveOnExternalChange) { if (!surviveOnExternalChange) { @@ -412,50 +432,61 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return new RangeMarkerWindow(this, (RangeMarkerEx)hostMarker); } + @Override public void addPropertyChangeListener(@NotNull final PropertyChangeListener listener) { myDelegate.addPropertyChangeListener(listener); } + @Override public void removePropertyChangeListener(@NotNull final PropertyChangeListener listener) { myDelegate.removePropertyChangeListener(listener); } + @Override public void setReadOnly(final boolean isReadOnly) { myDelegate.setReadOnly(isReadOnly); } + @Override @NotNull public RangeMarker createGuardedBlock(final int startOffset, final int endOffset) { ProperTextRange hostRange = injectedToHost(new ProperTextRange(startOffset, endOffset)); return myDelegate.createGuardedBlock(hostRange.getStartOffset(), hostRange.getEndOffset()); } + @Override public void removeGuardedBlock(@NotNull final RangeMarker block) { myDelegate.removeGuardedBlock(block); } + @Override public RangeMarker getOffsetGuard(final int offset) { return myDelegate.getOffsetGuard(injectedToHost(offset)); } + @Override public RangeMarker getRangeGuard(final int startOffset, final int endOffset) { ProperTextRange hostRange = injectedToHost(new ProperTextRange(startOffset, endOffset)); return myDelegate.getRangeGuard(hostRange.getStartOffset(), hostRange.getEndOffset()); } + @Override public void startGuardedBlockChecking() { myDelegate.startGuardedBlockChecking(); } + @Override public void stopGuardedBlockChecking() { myDelegate.stopGuardedBlockChecking(); } + @Override public void setCyclicBufferSize(final int bufferSize) { myDelegate.setCyclicBufferSize(bufferSize); } + @Override public void setText(@NotNull CharSequence text) { LOG.assertTrue(text.toString().startsWith(myShreds.get(0).prefix)); LOG.assertTrue(text.toString().endsWith(myShreds.get(myShreds.size() - 1).suffix)); @@ -473,6 +504,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable } } + @Override @NotNull public RangeMarker[] getHostRanges() { RangeMarker[] markers = new RangeMarker[myShreds.size()]; @@ -483,6 +515,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return markers; } + @Override @NotNull public RangeMarker createRangeMarker(@NotNull final TextRange textRange) { ProperTextRange hostRange = injectedToHost(new ProperTextRange(textRange)); @@ -490,72 +523,89 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return new RangeMarkerWindow(this, (RangeMarkerEx)hostMarker); } + @Override public void setStripTrailingSpacesEnabled(final boolean isEnabled) { myDelegate.setStripTrailingSpacesEnabled(isEnabled); } + @Override public int getLineSeparatorLength(final int line) { return myDelegate.getLineSeparatorLength(injectedToHostLine(line)); } + @Override @NotNull public LineIterator createLineIterator() { return myDelegate.createLineIterator(); } + @Override public void setModificationStamp(final long modificationStamp) { myDelegate.setModificationStamp(modificationStamp); } + @Override public void addEditReadOnlyListener(@NotNull final EditReadOnlyListener listener) { myDelegate.addEditReadOnlyListener(listener); } + @Override public void removeEditReadOnlyListener(@NotNull final EditReadOnlyListener listener) { myDelegate.removeEditReadOnlyListener(listener); } + @Override public void replaceText(@NotNull final CharSequence chars, final long newModificationStamp) { setText(chars); myDelegate.setModificationStamp(newModificationStamp); } + @Override public int getListenersCount() { return myDelegate.getListenersCount(); } + @Override public void suppressGuardedExceptions() { myDelegate.suppressGuardedExceptions(); } + @Override public void unSuppressGuardedExceptions() { myDelegate.unSuppressGuardedExceptions(); } + @Override public boolean isInEventsHandling() { return myDelegate.isInEventsHandling(); } + @Override public void clearLineModificationFlags() { } + @Override public boolean removeRangeMarker(@NotNull RangeMarkerEx rangeMarker) { return myDelegate.removeRangeMarker(((RangeMarkerWindow)rangeMarker).getDelegate()); } + @Override public boolean isInBulkUpdate() { return false; } + @Override public void setInBulkUpdate(boolean value) { } + @Override @NotNull public DocumentEx getDelegate() { return myDelegate; } //todo use escaper? + @Override public int hostToInjected(int hostOffset) { if (hostOffset < myShreds.get(0).getHostRangeMarker().getStartOffset()) return myShreds.get(0).prefix.length(); int offset = 0; @@ -573,6 +623,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return getTextLength() - myShreds.get(myShreds.size() - 1).suffix.length(); } + @Override public int injectedToHost(int offset) { int offsetInLeftFragment = injectedToHost(offset, true); int offsetInRightFragment = injectedToHost(offset, false); @@ -611,6 +662,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return myShreds.get(myShreds.size() - 1).getHostRangeMarker().getEndOffset(); } + @Override @NotNull public ProperTextRange injectedToHost(@NotNull TextRange injected) { ProperTextRange.assertProperRange(injected); @@ -622,6 +674,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return new ProperTextRange(start, end); } + @Override public int injectedToHostLine(int line) { if (line < myPrefixLineCount) { return myDelegate.getLineNumber(myShreds.get(0).getHostRangeMarker().getStartOffset()); @@ -636,6 +689,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return myDelegate.getLineNumber(hostOffset); } + @Override public boolean containsRange(int start, int end) { if (end - start > myShreds.get(0).getHostRangeMarker().getEndOffset() - myShreds.get(0).getHostRangeMarker().getStartOffset()) return false; for (PsiLanguageInjectionHost.Shred shred : myShreds) { @@ -647,6 +701,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return false; } + @Override @Deprecated @Nullable public TextRange intersectWithEditable(@NotNull TextRange rangeToEdit) { @@ -768,6 +823,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable calculateMinEditSequence(hostText, newText, result, i+1, j-1); } + @Override public boolean areRangesEqual(@NotNull DocumentWindow otherd) { DocumentWindowImpl window = (DocumentWindowImpl)otherd; if (myShreds.size() != window.myShreds.size()) return false; @@ -785,6 +841,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return true; } + @Override public boolean isValid() { return myShreds.isValid(); } @@ -803,6 +860,7 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable return myOneLine; } + @Override public void dispose() { for (PsiLanguageInjectionHost.Shred shred : myShreds) { RangeMarker rangeMarker = shred.getHostRangeMarker(); @@ -814,16 +872,19 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable myShreds = shreds; } + @Override @NotNull public List getGuardedBlocks() { return Collections.emptyList(); } //todo convert injected RMs to host + @Override public boolean processRangeMarkers(@NotNull Processor processor) { return myDelegate.processRangeMarkers(processor); } + @Override public boolean processRangeMarkersOverlappingWith(int start, int end, @NotNull Processor processor) { return myDelegate.processRangeMarkersOverlappingWith(start, end, processor); } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java index 37d9e406a356..68a443e6c32c 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java @@ -185,30 +185,37 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { myDisposed = true; } + @Override public boolean isViewer() { return myDelegate.isViewer(); } + @Override public boolean isRendererMode() { return myDelegate.isRendererMode(); } + @Override public void setRendererMode(final boolean isRendererMode) { myDelegate.setRendererMode(isRendererMode); } + @Override public void setFile(final VirtualFile vFile) { myDelegate.setFile(vFile); } + @Override public void setHeaderComponent(@Nullable JComponent header) { } + @Override public boolean hasHeaderComponent() { return false; } + @Override @Nullable public JComponent getHeaderComponent() { return null; @@ -219,53 +226,64 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.getTextDrawingCallback(); } + @Override @NotNull public SelectionModel getSelectionModel() { return mySelectionModelDelegate; } + @Override @NotNull public MarkupModel getMarkupModel() { return myMarkupModelDelegate; } + @Override @NotNull public FoldingModelEx getFoldingModel() { return myFoldingModelWindow; } + @Override @NotNull public CaretModel getCaretModel() { return myCaretModelDelegate; } + @Override @NotNull public ScrollingModelEx getScrollingModel() { return myDelegate.getScrollingModel(); } + @Override @NotNull public SoftWrapModelEx getSoftWrapModel() { return myDelegate.getSoftWrapModel(); } + @Override @NotNull public EditorSettings getSettings() { return myDelegate.getSettings(); } + @Override public void reinitSettings() { myDelegate.reinitSettings(); } + @Override public void setFontSize(final int fontSize) { myDelegate.setFontSize(fontSize); } + @Override public void setHighlighter(@NotNull final EditorHighlighter highlighter) { myDelegate.setHighlighter(highlighter); } + @Override public EditorHighlighter getHighlighter() { EditorColorsScheme scheme = EditorColorsManager.getInstance().getGlobalScheme(); EditorHighlighter highlighter = HighlighterFactory.createHighlighter(myInjectedFile.getVirtualFile(), scheme, getProject()); @@ -273,54 +291,66 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return highlighter; } + @Override @NotNull public JComponent getContentComponent() { return myDelegate.getContentComponent(); } + @Override public EditorGutterComponentEx getGutterComponentEx() { return myDelegate.getGutterComponentEx(); } + @Override public void addPropertyChangeListener(@NotNull final PropertyChangeListener listener) { myDelegate.addPropertyChangeListener(listener); } + @Override public void removePropertyChangeListener(@NotNull final PropertyChangeListener listener) { myDelegate.removePropertyChangeListener(listener); } + @Override public void setInsertMode(final boolean mode) { myDelegate.setInsertMode(mode); } + @Override public boolean isInsertMode() { return myDelegate.isInsertMode(); } + @Override public void setColumnMode(final boolean mode) { myDelegate.setColumnMode(mode); } + @Override public boolean isColumnMode() { return myDelegate.isColumnMode(); } + @Override @NotNull public VisualPosition xyToVisualPosition(@NotNull final Point p) { return logicalToVisualPosition(xyToLogicalPosition(p)); } + @Override @NotNull public VisualPosition offsetToVisualPosition(final int offset) { return logicalToVisualPosition(offsetToLogicalPosition(offset)); } + @Override @NotNull public LogicalPosition offsetToLogicalPosition(final int offset) { return offsetToLogicalPosition(offset, true); } + @Override @NotNull public LogicalPosition offsetToLogicalPosition(final int offset, boolean softWrapAware) { assert isValid(); @@ -335,6 +365,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.createBoundColorSchemeDelegate(customGlobalScheme); } + @Override @NotNull public LogicalPosition xyToLogicalPosition(@NotNull final Point p) { assert isValid(); @@ -354,53 +385,64 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return pos; } + @Override @NotNull public Point logicalPositionToXY(@NotNull final LogicalPosition pos) { assert isValid(); return myDelegate.logicalPositionToXY(injectedToHost(fitInsideEditor(pos))); } + @Override @NotNull public Point visualPositionToXY(@NotNull final VisualPosition pos) { assert isValid(); return logicalPositionToXY(visualToLogicalPosition(pos)); } + @Override public void repaint(final int startOffset, final int endOffset) { assert isValid(); myDelegate.repaint(myDocumentWindow.injectedToHost(startOffset), myDocumentWindow.injectedToHost(endOffset)); } + @Override @NotNull public DocumentWindowImpl getDocument() { return myDocumentWindow; } + @Override @NotNull public JComponent getComponent() { return myDelegate.getComponent(); } private final ListenerWrapperMap myEditorMouseListeners = new ListenerWrapperMap(); + @Override public void addEditorMouseListener(@NotNull final EditorMouseListener listener) { assert isValid(); EditorMouseListener wrapper = new EditorMouseListener() { + @Override public void mousePressed(EditorMouseEvent e) { listener.mousePressed(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } + @Override public void mouseClicked(EditorMouseEvent e) { listener.mouseClicked(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } + @Override public void mouseReleased(EditorMouseEvent e) { listener.mouseReleased(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } + @Override public void mouseEntered(EditorMouseEvent e) { listener.mouseEntered(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } + @Override public void mouseExited(EditorMouseEvent e) { listener.mouseExited(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } @@ -410,6 +452,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { myDelegate.addEditorMouseListener(wrapper); } + @Override public void removeEditorMouseListener(@NotNull final EditorMouseListener listener) { EditorMouseListener wrapper = myEditorMouseListeners.removeWrapper(listener); // HintManager might have an old editor instance @@ -419,13 +462,16 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { } private final ListenerWrapperMap myEditorMouseMotionListeners = new ListenerWrapperMap(); + @Override public void addEditorMouseMotionListener(@NotNull final EditorMouseMotionListener listener) { assert isValid(); EditorMouseMotionListener wrapper = new EditorMouseMotionListener() { + @Override public void mouseMoved(EditorMouseEvent e) { listener.mouseMoved(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } + @Override public void mouseDragged(EditorMouseEvent e) { listener.mouseDragged(new EditorMouseEvent(EditorWindow.this, e.getMouseEvent(), e.getArea())); } @@ -434,6 +480,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { myDelegate.addEditorMouseMotionListener(wrapper); } + @Override public void removeEditorMouseMotionListener(@NotNull final EditorMouseMotionListener listener) { EditorMouseMotionListener wrapper = myEditorMouseMotionListeners.removeWrapper(listener); if (wrapper != null) { @@ -441,30 +488,37 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { } } + @Override public boolean isDisposed() { return !myDisposed && myDelegate.isDisposed(); } + @Override public void setBackgroundColor(final Color color) { myDelegate.setBackgroundColor(color); } + @Override public Color getBackgroundColor() { return myDelegate.getBackgroundColor(); } + @Override public int getMaxWidthInRange(final int startOffset, final int endOffset) { return myDelegate.getMaxWidthInRange(startOffset, endOffset); } + @Override public int getLineHeight() { return myDelegate.getLineHeight(); } + @Override public Dimension getContentSize() { return myDelegate.getContentSize(); } + @Override public JScrollPane getScrollPane() { return myDelegate.getScrollPane(); } @@ -479,6 +533,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.getInsets(); } + @Override public int logicalPositionToOffset(@NotNull final LogicalPosition pos) { int lineStartOffset = myDocumentWindow.getLineStartOffset(pos.line); return calcOffset(pos.column, pos.line, lineStartOffset); @@ -502,10 +557,12 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return EditorUtil.calcOffset(this, text, lineStartOffset, end, col, EditorUtil.getTabSize(myDelegate)); } + @Override public void setLastColumnNumber(final int val) { myDelegate.setLastColumnNumber(val); } + @Override public int getLastColumnNumber() { return myDelegate.getLastColumnNumber(); } @@ -518,111 +575,137 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { } // assuming there is no folding in injected documents + @Override @NotNull public VisualPosition logicalToVisualPosition(@NotNull final LogicalPosition pos) { return logicalToVisualPosition(pos, false); } + @Override @NotNull public LogicalPosition visualToLogicalPosition(@NotNull final VisualPosition pos) { return visualToLogicalPosition(pos, true); } + @Override @NotNull public LogicalPosition visualToLogicalPosition(@NotNull final VisualPosition pos, boolean softWrapAware) { assert isValid(); return new LogicalPosition(pos.line, pos.column); } + @Override public DataContext getDataContext() { return myDelegate.getDataContext(); } + @Override public EditorMouseEventArea getMouseEventArea(@NotNull final MouseEvent e) { return myDelegate.getMouseEventArea(e); } + @Override public boolean setCaretVisible(final boolean b) { return myDelegate.setCaretVisible(b); } + @Override public boolean setCaretEnabled(boolean enabled) { return myDelegate.setCaretEnabled(enabled); } + @Override public void addFocusListener(@NotNull final FocusChangeListener listener) { myDelegate.addFocusListener(listener); } + @Override public Project getProject() { return myDelegate.getProject(); } + @Override public boolean isOneLineMode() { return myOneLine; } + @Override public void setOneLineMode(final boolean isOneLineMode) { throw new UnsupportedOperationException(); } + @Override public boolean isEmbeddedIntoDialogWrapper() { return myDelegate.isEmbeddedIntoDialogWrapper(); } + @Override public void setEmbeddedIntoDialogWrapper(final boolean b) { myDelegate.setEmbeddedIntoDialogWrapper(b); } + @Override public VirtualFile getVirtualFile() { return myDelegate.getVirtualFile(); } + @Override public void stopOptimizedScrolling() { myDelegate.stopOptimizedScrolling(); } + @Override public CopyProvider getCopyProvider() { return myDelegate.getCopyProvider(); } + @Override public CutProvider getCutProvider() { return myDelegate.getCutProvider(); } + @Override public PasteProvider getPasteProvider() { return myDelegate.getPasteProvider(); } + @Override public DeleteProvider getDeleteProvider() { return myDelegate.getDeleteProvider(); } + @Override public void setColorsScheme(@NotNull final EditorColorsScheme scheme) { myDelegate.setColorsScheme(scheme); } + @Override @NotNull public EditorColorsScheme getColorsScheme() { return myDelegate.getColorsScheme(); } + @Override public void setVerticalScrollbarOrientation(final int type) { myDelegate.setVerticalScrollbarOrientation(type); } + @Override public void setVerticalScrollbarVisible(final boolean b) { myDelegate.setVerticalScrollbarVisible(b); } + @Override public void setHorizontalScrollbarVisible(final boolean b) { myDelegate.setHorizontalScrollbarVisible(b); } + @Override public boolean processKeyTyped(@NotNull final KeyEvent e) { return myDelegate.processKeyTyped(e); } + @Override @NotNull public EditorGutter getGutter() { return myDelegate.getGutter(); @@ -646,16 +729,19 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate; } + @Override public int calcColumnNumber(@NotNull final CharSequence text, final int start, final int offset, final int tabSize) { int hostStart = myDocumentWindow.injectedToHost(start); int hostOffset = myDocumentWindow.injectedToHost(offset); return myDelegate.calcColumnNumber(myDelegate.getDocument().getText(), hostStart, hostOffset, tabSize); } + @Override public int calcColumnNumber(int offset, int lineIndex) { return myDelegate.calcColumnNumber(myDocumentWindow.injectedToHost(offset), myDocumentWindow.injectedToHostLine(lineIndex)); } + @Override public IndentsModel getIndentsModel() { return myDelegate.getIndentsModel(); } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/FoldingModelWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/FoldingModelWindow.java index 0f9735852adc..86a23a17a40e 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/FoldingModelWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/FoldingModelWindow.java @@ -44,24 +44,29 @@ public class FoldingModelWindow implements FoldingModelEx{ myEditorWindow = editorWindow; } + @Override public void setFoldingEnabled(boolean isEnabled) { myDelegate.setFoldingEnabled(isEnabled); } + @Override public boolean isFoldingEnabled() { return myDelegate.isFoldingEnabled(); } + @Override public FoldRegion getFoldingPlaceholderAt(Point p) { return myDelegate.getFoldingPlaceholderAt(p); } + @Override public boolean intersectsRegion(int startOffset, int endOffset) { int hostStart = myDocumentWindow.injectedToHost(startOffset); int hostEnd = myDocumentWindow.injectedToHost(endOffset); return myDelegate.intersectsRegion(hostStart, hostEnd); } + @Override public FoldRegion addFoldRegion(int startOffset, int endOffset, @NotNull String placeholderText) { FoldRegion region = createFoldRegion(startOffset, endOffset, placeholderText, null, false); if (region == null) return null; @@ -73,14 +78,17 @@ public class FoldingModelWindow implements FoldingModelEx{ return region; } + @Override public boolean addFoldRegion(@NotNull final FoldRegion region) { return myDelegate.addFoldRegion(((FoldingRegionWindow)region).getDelegate()); } + @Override public void removeFoldRegion(@NotNull FoldRegion region) { myDelegate.removeFoldRegion(((FoldingRegionWindow)region).getDelegate()); } + @Override @NotNull public FoldRegion[] getAllFoldRegions() { FoldRegion[] all = myDelegate.getAllFoldRegions(); @@ -94,41 +102,50 @@ public class FoldingModelWindow implements FoldingModelEx{ return result.toArray(new FoldRegion[result.size()]); } + @Override public boolean isOffsetCollapsed(int offset) { return myDelegate.isOffsetCollapsed(myDocumentWindow.injectedToHost(offset)); } + @Override public FoldRegion getCollapsedRegionAtOffset(int offset) { FoldRegion host = myDelegate.getCollapsedRegionAtOffset(myDocumentWindow.injectedToHost(offset)); return host; //todo convert to window? } + @Override public void runBatchFoldingOperation(@NotNull Runnable operation) { myDelegate.runBatchFoldingOperation(operation); } + @Override public void runBatchFoldingOperationDoNotCollapseCaret(@NotNull Runnable operation) { myDelegate.runBatchFoldingOperationDoNotCollapseCaret(operation); } + @Override public FoldRegion fetchOutermost(int offset) { FoldRegion host = myDelegate.fetchOutermost(myDocumentWindow.injectedToHost(offset)); return host; //todo convert to window? } + @Override public int getLastCollapsedRegionBefore(int offset) { return -1; //todo implement } + @Override public TextAttributes getPlaceholderAttributes() { return myDelegate.getPlaceholderAttributes(); } + @Override public FoldRegion[] fetchTopLevel() { return FoldRegion.EMPTY_ARRAY; //todo implement } private static final Key FOLD_REGION_WINDOW = Key.create("FOLD_REGION_WINDOW"); + @Override public FoldRegion createFoldRegion(int startOffset, int endOffset, @NotNull String placeholder, FoldingGroup group, boolean neverExpands) { TextRange hostRange = myDocumentWindow.injectedToHost(new TextRange(startOffset, endOffset)); if (hostRange.getLength() < 2) return null; diff --git a/platform/lang-impl/src/com/intellij/injected/editor/FoldingRegionWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/FoldingRegionWindow.java index 41c6994b95fe..69dfe139d711 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/FoldingRegionWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/FoldingRegionWindow.java @@ -35,23 +35,28 @@ public class FoldingRegionWindow extends RangeMarkerWindow implements FoldRegion myHostRegion = hostRegion; } + @Override public boolean isExpanded() { return myHostRegion.isExpanded(); } + @Override public void setExpanded(boolean expanded) { myHostRegion.setExpanded(expanded); } + @Override @NotNull public String getPlaceholderText() { return myHostRegion.getPlaceholderText(); } + @Override public Editor getEditor() { return myEditorWindow; } + @Override public FoldingGroup getGroup() { return myHostRegion.getGroup(); } @@ -61,6 +66,7 @@ public class FoldingRegionWindow extends RangeMarkerWindow implements FoldRegion return false; } + @Override public FoldRegionImpl getDelegate() { return myHostRegion; } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/RangeMarkerWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/RangeMarkerWindow.java index 1bdb50f08bec..3d9f3fe2067a 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/RangeMarkerWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/RangeMarkerWindow.java @@ -37,25 +37,30 @@ public class RangeMarkerWindow implements RangeMarkerEx { myHostMarker = hostMarker; } + @Override @NotNull public Document getDocument() { return myDocumentWindow; } + @Override public int getStartOffset() { int hostOffset = myHostMarker.getStartOffset(); return myDocumentWindow.hostToInjected(hostOffset); } + @Override public int getEndOffset() { int hostOffset = myHostMarker.getEndOffset(); return myDocumentWindow.hostToInjected(hostOffset); } + @Override public boolean isValid() { return myHostMarker.isValid() && myDocumentWindow.isValid(); } + @Override public boolean setValid(boolean value) { return myHostMarker.setValid(value); } @@ -71,25 +76,31 @@ public class RangeMarkerWindow implements RangeMarkerEx { } ////////////////////////////delegates + @Override public void setGreedyToLeft(final boolean greedy) { myHostMarker.setGreedyToLeft(greedy); } + @Override public void setGreedyToRight(final boolean greedy) { myHostMarker.setGreedyToRight(greedy); } + @Override public T getUserData(@NotNull final Key key) { return myHostMarker.getUserData(key); } + @Override public void putUserData(@NotNull final Key key, final T value) { myHostMarker.putUserData(key, value); } + @Override public void documentChanged(final DocumentEvent e) { myHostMarker.documentChanged(e); } + @Override public long getId() { return myHostMarker.getId(); } @@ -98,26 +109,32 @@ public class RangeMarkerWindow implements RangeMarkerEx { return myHostMarker; } + @Override public boolean isGreedyToRight() { return myHostMarker.isGreedyToRight(); } + @Override public boolean isGreedyToLeft() { return myHostMarker.isGreedyToLeft(); } + @Override public int intervalStart() { return getStartOffset(); } + @Override public int intervalEnd() { return getEndOffset(); } + @Override public int setIntervalStart(int start) { throw new IllegalStateException(); } + @Override public int setIntervalEnd(int end) { throw new IllegalStateException(); } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/SelectionModelWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/SelectionModelWindow.java index 6cd3fd69b43c..872d7758aeed 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/SelectionModelWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/SelectionModelWindow.java @@ -42,6 +42,7 @@ public class SelectionModelWindow implements SelectionModel { myHostModel = delegate.getSelectionModel(); } + @Override public int getSelectionStart() { return myDocument.hostToInjected(myHostModel.getSelectionStart()); } @@ -52,6 +53,7 @@ public class SelectionModelWindow implements SelectionModel { return myHostModel.getSelectionStartPosition(); } + @Override public int getSelectionEnd() { return myDocument.hostToInjected(myHostModel.getSelectionEnd()); } @@ -62,10 +64,12 @@ public class SelectionModelWindow implements SelectionModel { return myHostModel.getSelectionEndPosition(); } + @Override public String getSelectedText() { return myHostModel.getSelectedText(); } + @Override public int getLeadSelectionOffset() { return myDocument.hostToInjected(myHostModel.getLeadSelectionOffset()); } @@ -76,10 +80,12 @@ public class SelectionModelWindow implements SelectionModel { return myHostModel.getLeadSelectionPosition(); } + @Override public boolean hasSelection() { return myHostModel.hasSelection(); } + @Override public void setSelection(final int startOffset, final int endOffset) { TextRange hostRange = myDocument.injectedToHost(new ProperTextRange(startOffset, endOffset)); myHostModel.setSelection(hostRange.getStartOffset(), hostRange.getEndOffset()); @@ -97,42 +103,52 @@ public class SelectionModelWindow implements SelectionModel { myHostModel.setSelection(startPosition, hostRange.getStartOffset(), endPosition, hostRange.getEndOffset()); } + @Override public void removeSelection() { myHostModel.removeSelection(); } + @Override public void addSelectionListener(final SelectionListener listener) { myHostModel.addSelectionListener(listener); } + @Override public void removeSelectionListener(final SelectionListener listener) { myHostModel.removeSelectionListener(listener); } + @Override public void selectLineAtCaret() { myHostModel.selectLineAtCaret(); } + @Override public void selectWordAtCaret(final boolean honorCamelWordsSettings) { myHostModel.selectWordAtCaret(honorCamelWordsSettings); } + @Override public void copySelectionToClipboard() { myHostModel.copySelectionToClipboard(); } + @Override public void setBlockSelection(final LogicalPosition blockStart, final LogicalPosition blockEnd) { myHostModel.setBlockSelection(myInjectedEditor.injectedToHost(blockStart), myInjectedEditor.injectedToHost(blockEnd)); } + @Override public void removeBlockSelection() { myHostModel.removeBlockSelection(); } + @Override public boolean hasBlockSelection() { return myHostModel.hasBlockSelection(); } + @Override @NotNull public int[] getBlockSelectionStarts() { int[] result = myHostModel.getBlockSelectionStarts(); @@ -142,6 +158,7 @@ public class SelectionModelWindow implements SelectionModel { return result; } + @Override @NotNull public int[] getBlockSelectionEnds() { int[] result = myHostModel.getBlockSelectionEnds(); @@ -151,24 +168,29 @@ public class SelectionModelWindow implements SelectionModel { return result; } + @Override public LogicalPosition getBlockStart() { LogicalPosition hostBlock = myHostModel.getBlockStart(); return hostBlock == null ? null : myInjectedEditor.hostToInjected(hostBlock); } + @Override public LogicalPosition getBlockEnd() { LogicalPosition hostBlock = myHostModel.getBlockEnd(); return hostBlock == null ? null : myInjectedEditor.hostToInjected(hostBlock); } + @Override public boolean isBlockSelectionGuarded() { return myHostModel.isBlockSelectionGuarded(); } + @Override public RangeMarker getBlockSelectionGuard() { return myHostModel.getBlockSelectionGuard(); } + @Override public TextAttributes getTextAttributes() { return myHostModel.getTextAttributes(); } diff --git a/platform/lang-impl/src/com/intellij/injected/editor/VirtualFileWindowImpl.java b/platform/lang-impl/src/com/intellij/injected/editor/VirtualFileWindowImpl.java index 471f4da6723a..5642a359b8a9 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/VirtualFileWindowImpl.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/VirtualFileWindowImpl.java @@ -37,18 +37,22 @@ public class VirtualFileWindowImpl extends LightVirtualFile implements VirtualFi myDocumentWindow = window; } + @Override public VirtualFile getDelegate() { return myDelegate; } + @Override public DocumentWindowImpl getDocumentWindow() { return myDocumentWindow; } + @Override public boolean isValid() { return myDelegate.isValid(); } + @Override public boolean isWritable() { return getDelegate().isWritable(); } diff --git a/platform/lang-impl/src/com/intellij/internal/DumpConfigurationTypesAction.java b/platform/lang-impl/src/com/intellij/internal/DumpConfigurationTypesAction.java index 56ba924225f8..598742e13bd4 100644 --- a/platform/lang-impl/src/com/intellij/internal/DumpConfigurationTypesAction.java +++ b/platform/lang-impl/src/com/intellij/internal/DumpConfigurationTypesAction.java @@ -33,6 +33,7 @@ public class DumpConfigurationTypesAction extends AnAction implements DumbAware super("Dump Configurations"); } + @Override public void actionPerformed(AnActionEvent e) { final Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext()); final ConfigurationType[] factories = @@ -42,6 +43,7 @@ public class DumpConfigurationTypesAction extends AnAction implements DumbAware } } + @Override public void update(final AnActionEvent e) { e.getPresentation().setEnabled(e.getData(PlatformDataKeys.PROJECT) != null); } diff --git a/platform/lang-impl/src/com/intellij/internal/DumpInspectionDescriptionsAction.java b/platform/lang-impl/src/com/intellij/internal/DumpInspectionDescriptionsAction.java index 279e508fe660..48f4eecddb77 100644 --- a/platform/lang-impl/src/com/intellij/internal/DumpInspectionDescriptionsAction.java +++ b/platform/lang-impl/src/com/intellij/internal/DumpInspectionDescriptionsAction.java @@ -50,6 +50,7 @@ public class DumpInspectionDescriptionsAction extends AnAction implements DumbAw super("Dump inspection descriptions"); } + @Override public void actionPerformed(final AnActionEvent event) { final InspectionProfile profile = (InspectionProfile)InspectionProfileManager.getInstance().getRootProfile(); final InspectionProfileEntry[] tools = profile.getInspectionTools(null); diff --git a/platform/lang-impl/src/com/intellij/internal/DumpIntentionsAction.java b/platform/lang-impl/src/com/intellij/internal/DumpIntentionsAction.java index 5ed1ef54842b..ba8305d1b4c8 100644 --- a/platform/lang-impl/src/com/intellij/internal/DumpIntentionsAction.java +++ b/platform/lang-impl/src/com/intellij/internal/DumpIntentionsAction.java @@ -46,6 +46,7 @@ public class DumpIntentionsAction extends AnAction implements DumbAware { super("Dump Intentions"); } + @Override public void actionPerformed(AnActionEvent e) { final VirtualFile file = FileChooser.chooseFile(e.getData(PlatformDataKeys.PROJECT), FileChooserDescriptorFactory.createSingleFolderDescriptor(), null); @@ -95,6 +96,7 @@ public class DumpIntentionsAction extends AnAction implements DumbAware { return element; } + @Override public void update(final AnActionEvent e) { e.getPresentation().setEnabled(e.getData(PlatformDataKeys.PROJECT) != null); } diff --git a/platform/lang-impl/src/com/intellij/internal/DumpLookupElementWeights.java b/platform/lang-impl/src/com/intellij/internal/DumpLookupElementWeights.java index c44403b43e9f..4d3cf46f6d04 100644 --- a/platform/lang-impl/src/com/intellij/internal/DumpLookupElementWeights.java +++ b/platform/lang-impl/src/com/intellij/internal/DumpLookupElementWeights.java @@ -36,6 +36,7 @@ import java.util.List; public class DumpLookupElementWeights extends AnAction implements DumbAware { private static final Logger LOG = Logger.getInstance("#com.intellij.internal.DumpLookupElementWeights"); + @Override public void actionPerformed(final AnActionEvent e) { final Editor editor = e.getData(PlatformDataKeys.EDITOR); dumpLookupElementWeights((LookupImpl)LookupManager.getActiveLookup(editor)); diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerAction.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerAction.java index 80e5f6d83f3b..bd048887f075 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerAction.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerAction.java @@ -30,6 +30,7 @@ import com.intellij.openapi.project.Project; * @author Konstantin Bulenkov */ public class PsiViewerAction extends AnAction implements DumbAware { + @Override public void actionPerformed(AnActionEvent e) { final Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext()); new PsiViewerDialog(project, false, null, null).show(); diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java index 5cb15e3eef22..c1e6dc79bf21 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java @@ -172,6 +172,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myDefault = aDefault; } + @Override public int compare(final Language o1, final Language o2) { if (myDefault.equals(o1)) return -1; if (myDefault.equals(o2)) return 1; @@ -243,6 +244,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } } + @Override protected void init() { initMnemonics(); @@ -275,6 +277,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myRefs.addMouseListener(listener); myRefs.getSelectionModel().addListSelectionListener(listener); myRefs.setCellRenderer(new DefaultListCellRenderer() { + @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { final Component comp = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (resolve(index) == null) { @@ -411,12 +414,14 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp final ViewerTreeStructure psiTreeStructure = (ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure(); myShowWhiteSpacesBox.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { psiTreeStructure.setShowWhiteSpaces(myShowWhiteSpacesBox.isSelected()); myPsiTreeBuilder.queueUpdate(); } }); myShowTreeNodesCheckBox.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { psiTreeStructure.setShowTreeNodes(myShowTreeNodesCheckBox.isSelected()); myPsiTreeBuilder.queueUpdate(); @@ -429,6 +434,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myShowBlocksCheckBox.setSelected(settings.showBlocks); myBlockStructurePanel.setVisible(settings.showBlocks); myShowBlocksCheckBox.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (!myShowBlocksCheckBox.isSelected()) { settings.blockRefDividerLocation = myBlockRefSplitPane.getDividerLocation(); @@ -480,6 +486,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp new TreeSpeedSearch(tree); } + @Override protected String getDimensionServiceKey() { return "#com.intellij.internal.psiView.PsiViewerDialog"; } @@ -489,6 +496,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp return "reference.psi.viewer"; } + @Override public JComponent getPreferredFocusedComponent() { return myEditor.getContentComponent(); } @@ -497,12 +505,14 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp final int mask = SystemInfo.isMac ? InputEvent.META_DOWN_MASK : InputEvent.ALT_DOWN_MASK; registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { focusEditor(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_T, mask)); registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { focusTree(); } @@ -510,18 +520,21 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { focusBlockTree(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_K, mask)); registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { focusRefs(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_R, mask)); registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (myRefs.isFocusOwner()) { focusBlockTree(); @@ -679,6 +692,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp return extensions; } + @Override protected JComponent createCenterPanel() { return myPanel; } @@ -692,6 +706,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp return null; } + @Override protected void doOKAction() { if (myBlockTreeBuilder != null) { Disposer.dispose(myBlockTreeBuilder); @@ -802,6 +817,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } } + @Override public Object getData(@NonNls String dataId) { if (PlatformDataKeys.NAVIGATABLE.is(dataId)) { String fqn = null; @@ -841,6 +857,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myAttributes.setForegroundColor(Color.white); } + @Override public void valueChanged(TreeSelectionEvent e) { if (!myEditor.getDocument().getText().equals(myLastParsedText) || myBlockTree.hasFocus()) return; TreePath path = myPsiTree.getSelectionPath(); @@ -923,6 +940,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myAttributes.setForegroundColor(Color.white); } + @Override public void valueChanged(TreeSelectionEvent e) { if (myIgnoreBlockTreeSelectionMarker > 0 || myBlockTreeBuilder == null) { return; @@ -996,6 +1014,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } } + @Override public void doCancelAction() { final PsiViewerSettings settings = PsiViewerSettings.getSettings(); final SourceWrapper wrapper = (SourceWrapper)myFileTypeComboBox.getSelectedItem(); @@ -1014,6 +1033,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp super.doCancelAction(); } + @Override public void dispose() { Disposer.dispose(myPsiTreeBuilder); if (myBlockTreeBuilder != null) { @@ -1091,18 +1111,21 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } } + @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { navigate(); } } + @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() > 1) { navigate(); } } + @Override public void valueChanged(ListSelectionEvent e) { clearSelection(); updateDialectsCombo(null); @@ -1140,11 +1163,17 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } } + @Override public void keyTyped(KeyEvent e) {} + @Override public void keyReleased(KeyEvent e) {} + @Override public void mousePressed(MouseEvent e) {} + @Override public void mouseReleased(MouseEvent e) {} + @Override public void mouseEntered(MouseEvent e) {} + @Override public void mouseExited(MouseEvent e) {} } @@ -1170,6 +1199,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } private class EditorListener implements CaretListener, SelectionListener, DocumentListener { + @Override public void caretPositionChanged(CaretEvent e) { if (!available() || myEditor.getSelectionModel().hasSelection()) return; final ViewerTreeStructure treeStructure = (ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure(); @@ -1186,6 +1216,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp myPsiTreeBuilder.select(element); } + @Override public void selectionChanged(SelectionEvent e) { if (!available() || !myEditor.getSelectionModel().hasSelection()) return; final PsiElement rootElement =((ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure()).getRootPsiElement(); @@ -1231,9 +1262,11 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp return root instanceof PsiFile ? (PsiFile)root : null; } + @Override public void beforeDocumentChange(DocumentEvent event) { } + @Override public void documentChanged(DocumentEvent event) { myNewDocumentHashCode = event.getDocument().getText().hashCode(); } diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerSettings.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerSettings.java index d0cce0d4cd9c..7a646480fb31 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerSettings.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerSettings.java @@ -42,10 +42,12 @@ public class PsiViewerSettings implements PersistentStateComponent getAllFiles() { final List roots = new ArrayList(); @@ -69,6 +71,7 @@ public abstract class MultiplePsiFilesPerDocumentFileViewProvider extends Single myRoots.remove(language); } + @Override protected PsiFile getPsiInner(final Language target) { PsiFile file = myRoots.get(target); if (file == null) { @@ -94,10 +97,12 @@ public abstract class MultiplePsiFilesPerDocumentFileViewProvider extends Single } + @Override public PsiFile getCachedPsi(Language target) { return myRoots.get(target); } + @Override public FileElement[] getKnownTreeRoots() { List files = new ArrayList(myRoots.size()); for (PsiFile file : myRoots.values()) { @@ -132,6 +137,7 @@ public abstract class MultiplePsiFilesPerDocumentFileViewProvider extends Single protected abstract MultiplePsiFilesPerDocumentFileViewProvider cloneInner(VirtualFile fileCopy); + @Override @Nullable public PsiElement findElementAt(int offset, Class lang) { final PsiFile mainRoot = getPsi(getBaseLanguage()); @@ -150,11 +156,13 @@ public abstract class MultiplePsiFilesPerDocumentFileViewProvider extends Single return ret; } + @Override @Nullable public PsiElement findElementAt(int offset) { return findElementAt(offset, Language.class); } + @Override @Nullable public PsiReference findReferenceAt(int offset) { TextRange minRange = new TextRange(0, getContents().length()); diff --git a/platform/lang-impl/src/com/intellij/psi/PsiAnchor.java b/platform/lang-impl/src/com/intellij/psi/PsiAnchor.java index 4fb301b7f027..74baa18635d8 100644 --- a/platform/lang-impl/src/com/intellij/psi/PsiAnchor.java +++ b/platform/lang-impl/src/com/intellij/psi/PsiAnchor.java @@ -157,6 +157,7 @@ public abstract class PsiAnchor { myLanguage = language; } + @Override @Nullable public PsiElement retrieve() { PsiFile psiFile = getFile(); @@ -174,14 +175,17 @@ public abstract class PsiAnchor { return element; } + @Override public PsiFile getFile() { return SelfElementInfo.restoreFileFromVirtual(myVirtualFile, myProject); } + @Override public int getStartOffset() { return myStartOffset; } + @Override public int getEndOffset() { return myEndOffset; } @@ -215,18 +219,22 @@ public abstract class PsiAnchor { myElement = element; } + @Override public PsiElement retrieve() { return myElement; } + @Override public PsiFile getFile() { return myElement.getContainingFile(); } + @Override public int getStartOffset() { return myElement.getTextRange().getStartOffset(); } + @Override public int getEndOffset() { return myElement.getTextRange().getEndOffset(); } @@ -255,18 +263,22 @@ public abstract class PsiAnchor { myProject = project; } + @Override public PsiElement retrieve() { return getFile(); } + @Override public PsiFile getFile() { return SelfElementInfo.restoreFileFromVirtual(myFile, myProject); } + @Override public int getStartOffset() { return 0; } + @Override public int getEndOffset() { return (int)myFile.getLength(); } @@ -290,14 +302,17 @@ public abstract class PsiAnchor { assert file.isDirectory() : file; } + @Override public PsiElement retrieve() { return SelfElementInfo.restoreDirectoryFromVirtual(myFile, myProject); } + @Override public PsiFile getFile() { return null; } + @Override public int getEndOffset() { return -1; } @@ -353,6 +368,7 @@ public abstract class PsiAnchor { myIndex = index; } + @Override @Nullable public PsiFile getFile() { if (myProject.isDisposed() || !myVirtualFile.isValid()) { @@ -368,8 +384,10 @@ public abstract class PsiAnchor { return file.getViewProvider().getPsi(myLanguage); } + @Override public PsiElement retrieve() { return ApplicationManager.getApplication().runReadAction(new NullableComputable() { + @Override public PsiElement compute() { return restoreFromStubIndex((PsiFileWithStubSupport)getFile(), myIndex, myElementType); } @@ -406,12 +424,14 @@ public abstract class PsiAnchor { '}'; } + @Override public int getStartOffset() { final PsiElement resolved = retrieve(); if (resolved == null) throw new PsiInvalidElementAccessException(null); return resolved.getTextRange().getStartOffset(); } + @Override public int getEndOffset() { final PsiElement resolved = retrieve(); if (resolved == null) throw new PsiInvalidElementAccessException(null); diff --git a/platform/lang-impl/src/com/intellij/psi/filters/ContentFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/ContentFilter.java index 4acc93fea93c..3a19b598582e 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/ContentFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/ContentFilter.java @@ -31,6 +31,7 @@ public class ContentFilter extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; PsiElement currentChild = ((PsiElement) element).getFirstChild(); diff --git a/platform/lang-impl/src/com/intellij/psi/filters/FalseFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/FalseFilter.java index 7174c45d0470..0be808fb09d6 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/FalseFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/FalseFilter.java @@ -27,10 +27,12 @@ import com.intellij.psi.PsiElement; public class FalseFilter implements ElementFilter{ public static final FalseFilter INSTANCE = new FalseFilter(); + @Override public boolean isClassAcceptable(Class hintClass){ return true; } + @Override public boolean isAcceptable(Object element, PsiElement context){ return false; } diff --git a/platform/lang-impl/src/com/intellij/psi/filters/PlainTextFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/PlainTextFilter.java index 07e7e9ece8d9..4adc4eb5014b 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/PlainTextFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/PlainTextFilter.java @@ -43,10 +43,12 @@ public class PlainTextFilter implements ElementFilter, InitializableFilter { myValue[1] = value2; } + @Override public boolean isClassAcceptable(Class hintClass){ return true; } + @Override public boolean isAcceptable(Object element, PsiElement context){ if(element != null) { for (final String value : myValue) { @@ -78,6 +80,7 @@ public class PlainTextFilter implements ElementFilter, InitializableFilter { return ret; } + @Override public void init(Object[] fromGetter){ try{ myValue = new String[fromGetter.length]; diff --git a/platform/lang-impl/src/com/intellij/psi/filters/ScopeFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/ScopeFilter.java index 8e42ab2d68c7..34abfd7abf03 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/ScopeFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/ScopeFilter.java @@ -33,6 +33,7 @@ public class ScopeFilter extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement context){ return context != null && getFilter().isAcceptable(context, context); } diff --git a/platform/lang-impl/src/com/intellij/psi/filters/TrueFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/TrueFilter.java index 635cec108489..7fdacc885f8f 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/TrueFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/TrueFilter.java @@ -27,10 +27,12 @@ import com.intellij.psi.PsiElement; */ public class TrueFilter implements ElementFilter{ + @Override public boolean isClassAcceptable(Class hintClass){ return true; } + @Override public boolean isAcceptable(Object element, PsiElement context){ return true; } diff --git a/platform/lang-impl/src/com/intellij/psi/filters/position/AfterElement.java b/platform/lang-impl/src/com/intellij/psi/filters/position/AfterElement.java index 233bb683fb79..83d58069c7dc 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/position/AfterElement.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/position/AfterElement.java @@ -29,6 +29,7 @@ public class AfterElement extends PositionElementFilter { setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; final PsiElement previous = FilterPositionUtil.searchNonSpaceNonCommentBack((PsiElement) element, true); diff --git a/platform/lang-impl/src/com/intellij/psi/filters/position/LeftNeighbour.java b/platform/lang-impl/src/com/intellij/psi/filters/position/LeftNeighbour.java index d2a00e8f9816..43d38670668d 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/position/LeftNeighbour.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/position/LeftNeighbour.java @@ -34,6 +34,7 @@ public class LeftNeighbour extends PositionElementFilter{ setFilter(filter); } + @Override public boolean isAcceptable(Object element, PsiElement context){ if (!(element instanceof PsiElement)) return false; final PsiElement previous = FilterPositionUtil.searchNonSpaceNonCommentBack((PsiElement) element); diff --git a/platform/lang-impl/src/com/intellij/psi/filters/position/ParentElementFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/position/ParentElementFilter.java index 664a3df3d26a..cea535ac41cf 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/position/ParentElementFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/position/ParentElementFilter.java @@ -45,6 +45,7 @@ public class ParentElementFilter extends PositionElementFilter{ public ParentElementFilter(){} + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; PsiElement context = (PsiElement)element; diff --git a/platform/lang-impl/src/com/intellij/psi/filters/position/PositionElementFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/position/PositionElementFilter.java index b8a73ddd501d..e78072000c19 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/position/PositionElementFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/position/PositionElementFilter.java @@ -37,6 +37,7 @@ public abstract class PositionElementFilter implements ElementFilter { return myFilter; } + @Override public boolean isClassAcceptable(Class hintClass){ return true; } diff --git a/platform/lang-impl/src/com/intellij/psi/filters/position/SuperParentFilter.java b/platform/lang-impl/src/com/intellij/psi/filters/position/SuperParentFilter.java index d30910a6ea52..c2e8ae87b5aa 100644 --- a/platform/lang-impl/src/com/intellij/psi/filters/position/SuperParentFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/filters/position/SuperParentFilter.java @@ -33,6 +33,7 @@ public class SuperParentFilter extends PositionElementFilter{ public SuperParentFilter(){} + @Override public boolean isAcceptable(Object element, PsiElement scope){ if (!(element instanceof PsiElement)) return false; while((element = ((PsiElement) element).getParent()) != null){ diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/DocumentBasedFormattingModel.java b/platform/lang-impl/src/com/intellij/psi/formatter/DocumentBasedFormattingModel.java index 2c0fc95c4da2..73acc4f69780 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/DocumentBasedFormattingModel.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/DocumentBasedFormattingModel.java @@ -74,16 +74,19 @@ public class DocumentBasedFormattingModel implements FormattingModel { myDocument = myDocumentModel.getDocument(); } + @Override @NotNull public Block getRootBlock() { return myRootBlock; } + @Override @NotNull public FormattingDocumentModel getDocumentModel() { return myDocumentModel; } + @Override public TextRange replaceWhiteSpace(TextRange textRange, String whiteSpace) { boolean removesStartMarker; String marker; @@ -133,11 +136,13 @@ public class DocumentBasedFormattingModel implements FormattingModel { CharArrayUtil.indexOf(whiteSpace, pattern, 0) < 0; } + @Override public TextRange shiftIndentInsideRange(TextRange range, int indent) { final int newLength = shiftIndentInside(range, indent); return new TextRange(range.getStartOffset(), range.getStartOffset() + newLength); } + @Override public void commitChanges() { CodeEditUtil.allowToMarkNodesForPostponedFormatting(false); try { diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/PsiBasedFormattingModel.java b/platform/lang-impl/src/com/intellij/psi/formatter/PsiBasedFormattingModel.java index 80e71c80732b..c318c6ebc5fc 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/PsiBasedFormattingModel.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/PsiBasedFormattingModel.java @@ -52,6 +52,7 @@ public class PsiBasedFormattingModel implements FormattingModel { } + @Override public TextRange replaceWhiteSpace(TextRange textRange, String whiteSpace) { String whiteSpaceToUse = myDocumentModel.adjustWhiteSpaceIfNecessary(whiteSpace, textRange.getStartOffset(), textRange.getEndOffset(), true).toString(); @@ -64,10 +65,12 @@ public class PsiBasedFormattingModel implements FormattingModel { } } + @Override public TextRange shiftIndentInsideRange(TextRange textRange, int shift) { return textRange; // TODO: Remove this method from here... } + @Override public void commitChanges() { } @@ -122,11 +125,13 @@ public class PsiBasedFormattingModel implements FormattingModel { return psiElement.getNode(); } + @Override @NotNull public FormattingDocumentModel getDocumentModel() { return myDocumentModel; } + @Override @NotNull public Block getRootBlock() { return myRootBlock; diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java b/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java index 710009cf5aeb..8a0a6d170abd 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java @@ -42,11 +42,13 @@ public abstract class AbstractBlock implements ASTBlock { myAlignment = alignment; } + @Override @NotNull public TextRange getTextRange() { return myNode.getTextRange(); } + @Override @NotNull public List getSubBlocks() { if (mySubBlocks == null) { @@ -59,22 +61,27 @@ public abstract class AbstractBlock implements ASTBlock { protected abstract List buildChildren(); + @Override public Wrap getWrap() { return myWrap; } + @Override public Indent getIndent() { return null; } + @Override public Alignment getAlignment() { return myAlignment; } + @Override public ASTNode getNode() { return myNode; } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { return new ChildAttributes(getChildIndent(), getFirstChildAlignment()); @@ -97,6 +104,7 @@ public abstract class AbstractBlock implements ASTBlock { return null; } + @Override public boolean isIncomplete() { if (myIncomplete == null) { myIncomplete = FormatterUtil.isIncomplete(getNode()); diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockBuilder.java b/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockBuilder.java index 7368ba518dd8..dc321d1d23cc 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockBuilder.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockBuilder.java @@ -58,6 +58,7 @@ public abstract class InjectedLanguageBlockBuilder { final Ref suffixLength = new Ref(); final PsiLanguageInjectionHost.InjectedPsiVisitor injectedPsiVisitor = new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull final PsiFile injectedPsi, @NotNull final List places) { if (places.size() == 1) { final PsiLanguageInjectionHost.Shred shred = places.get(0); diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockWrapper.java b/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockWrapper.java index be053c2d04b1..3711499e8080 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockWrapper.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/common/InjectedLanguageBlockWrapper.java @@ -50,15 +50,18 @@ public final class InjectedLanguageBlockWrapper implements Block { myIndent = indent; } + @Override public Indent getIndent() { return myIndent != null ? myIndent : myOriginal.getIndent(); } + @Override @Nullable public Alignment getAlignment() { return myOriginal.getAlignment(); } + @Override @NotNull public TextRange getTextRange() { TextRange range = myOriginal.getTextRange(); @@ -70,6 +73,7 @@ public final class InjectedLanguageBlockWrapper implements Block { return TextRange.from(start, range.getLength()); } + @Override @NotNull public List getSubBlocks() { if (myBlocks == null) { @@ -107,11 +111,13 @@ public final class InjectedLanguageBlockWrapper implements Block { } } + @Override @Nullable public Wrap getWrap() { return myOriginal.getWrap(); } + @Override @Nullable public Spacing getSpacing(final Block child1, final Block child2) { int shift = 0; Block child1ToUse = child1; @@ -132,15 +138,18 @@ public final class InjectedLanguageBlockWrapper implements Block { return spacing; } + @Override @NotNull public ChildAttributes getChildAttributes(final int newChildIndex) { return myOriginal.getChildAttributes(newChildIndex); } + @Override public boolean isIncomplete() { return myOriginal.isIncomplete(); } + @Override public boolean isLeaf() { return myOriginal.isLeaf(); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/DefaultPomTargetDescriptionProvider.java b/platform/lang-impl/src/com/intellij/psi/impl/DefaultPomTargetDescriptionProvider.java index 19cdca0f663b..f479be45e193 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/DefaultPomTargetDescriptionProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/DefaultPomTargetDescriptionProvider.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull; * @author peter */ public class DefaultPomTargetDescriptionProvider extends PomDescriptionProvider { + @Override public String getElementDescription(@NotNull PomTarget element, @NotNull ElementDescriptionLocation location) { if (element instanceof PsiElement) return null; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/FakePsiElement.java b/platform/lang-impl/src/com/intellij/psi/impl/FakePsiElement.java index 9ab7c0582264..b89b72571183 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/FakePsiElement.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/FakePsiElement.java @@ -36,104 +36,126 @@ import javax.swing.*; */ public abstract class FakePsiElement extends PsiElementBase implements PsiNamedElement, ItemPresentation { + @Override public ItemPresentation getPresentation() { return this; } + @Override @NotNull public Language getLanguage() { return Language.ANY; } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override @Nullable public PsiElement getFirstChild() { return null; } + @Override @Nullable public PsiElement getLastChild() { return null; } + @Override @Nullable public PsiElement getNextSibling() { return null; } + @Override @Nullable public PsiElement getPrevSibling() { return null; } + @Override @Nullable public TextRange getTextRange() { return null; } + @Override public int getStartOffsetInParent() { return 0; } + @Override public int getTextLength() { return 0; } + @Override @Nullable public PsiElement findElementAt(int offset) { return null; } + @Override public int getTextOffset() { return 0; } + @Override @Nullable @NonNls public String getText() { return null; } + @Override @NotNull public char[] textToCharArray() { return new char[0]; } + @Override public boolean textContains(char c) { return false; } + @Override @Nullable public ASTNode getNode() { return null; } + @Override public String getPresentableText() { return getName(); } + @Override @Nullable public String getLocationString() { return null; } + @Override public final Icon getIcon(final int flags) { return super.getIcon(flags); } + @Override protected final Icon getElementIcon(final int flags) { return super.getElementIcon(flags); } + @Override @Nullable public Icon getIcon(boolean open) { return null; } + @Override public PsiElement setName(@NonNls @NotNull String name) throws IncorrectOperationException { return null; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PomTargetPsiElementImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PomTargetPsiElementImpl.java index 1bd765bb956d..e55733c7a8b2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PomTargetPsiElementImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PomTargetPsiElementImpl.java @@ -46,6 +46,7 @@ public class PomTargetPsiElementImpl extends RenameableFakePsiElement implements myTarget = target; } + @Override @NotNull public PomTarget getTarget() { return myTarget; @@ -67,6 +68,7 @@ public class PomTargetPsiElementImpl extends RenameableFakePsiElement implements return false; } + @Override public String getTypeName() { throw new UnsupportedOperationException("Method getTypeName is not yet implemented for " + myTarget.getClass().getName() + "; see PomDescriptionProvider"); } @@ -80,6 +82,7 @@ public class PomTargetPsiElementImpl extends RenameableFakePsiElement implements return super.getNavigationElement(); } + @Override public Icon getIcon() { for (IconProvider iconProvider : IconProvider.EXTENSION_POINT_NAME.getExtensions()) { if (iconProvider instanceof PomIconProvider) { @@ -145,6 +148,7 @@ public class PomTargetPsiElementImpl extends RenameableFakePsiElement implements return null; } + @Override @Nullable public PsiElement getParent() { return null; @@ -174,6 +178,7 @@ public class PomTargetPsiElementImpl extends RenameableFakePsiElement implements return null; } + @Override @NotNull public Language getLanguage() { if (myTarget instanceof PsiTarget) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java index a6c68ebee7d3..92e00af5c9c1 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java @@ -96,6 +96,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec @Override public void fileContentLoaded(final VirtualFile virtualFile, Document document) { PsiFile psiFile = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiFile compute() { return getCachedPsiFile(virtualFile); } @@ -117,22 +118,28 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec documentCommitThread.enable("project open"); } + @Override public void projectOpened() { } + @Override public void projectClosed() { } + @Override @NotNull public String getComponentName() { return "PsiDocumentManager"; } + @Override public void initComponent() { } + @Override public void disposeComponent() { } + @Override @Nullable public PsiFile getPsiFile(@NotNull Document document) { final PsiFile userData = document.getUserData(HARD_REF_TO_PSI); @@ -160,6 +167,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec public static void cachePsi(@NotNull Document document, @NotNull PsiFile file) { document.putUserData(HARD_REF_TO_PSI, file); } + @Override public PsiFile getCachedPsiFile(@NotNull Document document) { final PsiFile userData = document.getUserData(HARD_REF_TO_PSI); if(userData != null) return userData; @@ -186,6 +194,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec return ((PsiManagerEx)myPsiManager).getFileManager().findFile(virtualFile); } + @Override public Document getDocument(@NotNull PsiFile file) { if (file instanceof PsiBinaryFile) return null; @@ -214,12 +223,14 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec return document; } + @Override public Document getCachedDocument(@NotNull PsiFile file) { if(!file.isPhysical()) return null; VirtualFile vFile = file.getViewProvider().getVirtualFile(); return FileDocumentManager.getInstance().getCachedDocument(vFile); } + @Override public void commitAllDocuments() { ApplicationManager.getApplication().assertIsDispatchThread(); if (myUncommittedDocuments.isEmpty()) return; @@ -309,6 +320,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } } + @Override public void commitDocument(@NotNull final Document doc) { final Document document = doc instanceof DocumentWindow ? ((DocumentWindow)doc).getDelegate() : doc; if (!isCommitted(document)) { @@ -386,6 +398,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec private void doCommit(@NotNull final Document document, final PsiFile excludeFile) { assert !myIsCommitInProgress : "Do not call commitDocument() from inside PSI change listener"; ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { // otherwise there are many clients calling commitAllDocs() on PSI childrenChanged() if (getSynchronizer().isDocumentAffectedByTransactions(document) && excludeFile == null) return; @@ -432,6 +445,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec final FileViewProvider viewProvider = getCachedViewProvider(document); if (viewProvider != null && viewProvider.getAllFiles().size() > 1) { PostprocessReformattingAspect.getInstance(myProject).disablePostprocessFormattingInside(new Runnable() { + @Override public void run() { doCommit(document, psiFile); } @@ -439,9 +453,11 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } } + @Override public T commitAndRunReadAction(@NotNull final Computable computation) { final Ref ref = Ref.create(null); commitAndRunReadAction(new Runnable() { + @Override public void run() { ref.set(computation.compute()); } @@ -449,6 +465,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec return ref.get(); } + @Override public void commitAndRunReadAction(@NotNull final Runnable runnable) { final Application application = ApplicationManager.getApplication(); if (SwingUtilities.isEventDispatchThread()){ @@ -464,6 +481,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec application.runReadAction( new Runnable() { + @Override public void run() { if (myUncommittedDocuments.isEmpty()){ runnable.run(); @@ -473,6 +491,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec s1.down(); s2.down(); final Runnable commitRunnable = new Runnable() { + @Override public void run() { commitAllDocuments(); s1.up(); @@ -495,6 +514,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec s1.waitFor(); application.runReadAction( new Runnable() { + @Override public void run() { s2.up(); runnable.run(); @@ -505,19 +525,23 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } } + @Override public void addListener(@NotNull Listener listener) { myListeners.add(listener); } + @Override public void removeListener(@NotNull Listener listener) { myListeners.remove(listener); } + @Override public boolean isDocumentBlockedByPsi(@NotNull Document doc) { final FileViewProvider viewProvider = getCachedViewProvider(doc); return viewProvider != null && PostprocessReformattingAspect.getInstance(myProject).isViewProviderLocked(viewProvider); } + @Override public void doPostponedOperationsAndUnblockDocument(@NotNull Document doc) { if (doc instanceof DocumentWindow) doc = ((DocumentWindow)doc).getDelegate(); final PostprocessReformattingAspect component = myProject.getComponent(PostprocessReformattingAspect.class); @@ -537,11 +561,13 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } } + @Override @NotNull public Document[] getUncommittedDocuments() { return myUncommittedDocuments.toArray(new Document[myUncommittedDocuments.size()]); } + @Override public boolean isUncommited(@NotNull Document document) { return !isCommitted(document); } @@ -552,6 +578,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec return !((DocumentEx)document).isInEventsHandling() && !myUncommittedDocuments.contains(document); } + @Override public boolean hasUncommitedDocuments() { return !myIsCommitInProgress && !myUncommittedDocuments.isEmpty(); } @@ -561,6 +588,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec document.putUserData(TEMP_TREE_IN_DOCUMENT_KEY, null); } + @Override public void beforeDocumentChange(DocumentEvent event) { final Document document = event.getDocument(); @@ -605,6 +633,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } } + @Override public void documentChanged(DocumentEvent event) { final Document document = event.getDocument(); final FileViewProvider viewProvider = getCachedViewProvider(document); @@ -731,6 +760,7 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec } + @Override public void save() { // Ensure all documents are committed on save so file content dependent indices, that use PSI to build have consistent content. commitAllDocuments(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java index 90dcabddb87b..3c96256f421e 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiParserFacadeImpl.java @@ -41,6 +41,7 @@ public class PsiParserFacadeImpl implements PsiParserFacade { myManager = manager; } + @Override @NotNull public PsiElement createWhiteSpaceFromText(@NotNull @NonNls String text) throws IncorrectOperationException { final FileElement holderElement = DummyHolderFactory.createHolder(myManager, null).getTreeElement(); @@ -50,6 +51,7 @@ public class PsiParserFacadeImpl implements PsiParserFacade { return newElement.getPsi(); } + @Override @NotNull public PsiComment createLineCommentFromText(@NotNull final LanguageFileType fileType, @NotNull final String text) throws IncorrectOperationException { @@ -72,6 +74,7 @@ public class PsiParserFacadeImpl implements PsiParserFacade { throw new IncorrectOperationException("Incorrect comment \"" + text + "\"."); } + @Override @NotNull public PsiComment createLineOrBlockCommentFromText(@NotNull Language lang, @NotNull String text) throws IncorrectOperationException { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java index e2d886d4f7b8..9dc735676b3d 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java @@ -104,32 +104,40 @@ public class PsiToDocumentSynchronizer extends PsiTreeChangeAdapter { } } + @Override public void childAdded(final PsiTreeChangeEvent event) { doSync(event, false, new DocSyncAction() { + @Override public void syncDocument(Document document, PsiTreeChangeEventImpl event) { insertString(document, event.getOffset(), event.getChild().getText()); } }); } + @Override public void childRemoved(final PsiTreeChangeEvent event) { doSync(event, false, new DocSyncAction() { + @Override public void syncDocument(Document document, PsiTreeChangeEventImpl event) { deleteString(document, event.getOffset(), event.getOffset() + event.getOldLength()); } }); } + @Override public void childReplaced(final PsiTreeChangeEvent event) { doSync(event, false, new DocSyncAction() { + @Override public void syncDocument(Document document, PsiTreeChangeEventImpl event) { replaceString(document, event.getOffset(), event.getOffset() + event.getOldLength(), event.getNewChild().getText()); } }); } + @Override public void childrenChanged(final PsiTreeChangeEvent event) { doSync(event, false, new DocSyncAction() { + @Override public void syncDocument(Document document, PsiTreeChangeEventImpl event) { replaceString(document, event.getOffset(), event.getOffset() + event.getOldLength(), event.getParent().getText()); } @@ -188,6 +196,7 @@ public class PsiToDocumentSynchronizer extends PsiTreeChangeAdapter { fakeEvent.setParent(changeScope); fakeEvent.setFile(changeScope.getContainingFile()); doSync(fakeEvent, true, new DocSyncAction() { + @Override public void syncDocument(Document document, PsiTreeChangeEventImpl event) { doCommitTransaction(document, documentChangeTransaction); } @@ -260,6 +269,7 @@ public class PsiToDocumentSynchronizer extends PsiTreeChangeAdapter { public static class DocumentChangeTransaction{ private final Set> myAffectedFragments = new TreeSet>(new Comparator>() { + @Override public int compare(final Pair o1, final Pair o2) { return o1.getFirst().getStartOffset() - o2.getFirst().getStartOffset(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiTreeChangePreprocessorBase.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiTreeChangePreprocessorBase.java index cc17d29e98e1..3e018129246b 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiTreeChangePreprocessorBase.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiTreeChangePreprocessorBase.java @@ -30,6 +30,7 @@ public abstract class PsiTreeChangePreprocessorBase implements PsiTreeChangePrep psiManager.addTreeChangePreprocessor(this); } + @Override public void treeChanged(PsiTreeChangeEventImpl event) { boolean changedInsideCodeBlock = false; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/RenameableFakePsiElement.java b/platform/lang-impl/src/com/intellij/psi/impl/RenameableFakePsiElement.java index 53b96989ccb7..45a2f3b02ff7 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/RenameableFakePsiElement.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/RenameableFakePsiElement.java @@ -46,52 +46,64 @@ public abstract class RenameableFakePsiElement extends FakePsiElement implements return myParent; } + @Override public PsiFile getContainingFile() { return myParent.getContainingFile(); } + @Override public abstract String getName(); + @Override @NotNull public Language getLanguage() { return getContainingFile().getLanguage(); } + @Override @NotNull public Project getProject() { return myParent.getProject(); } + @Override public PsiManager getManager() { return PsiManager.getInstance(getProject()); } + @Override @Nullable public PsiMetaData getMetaData() { return this; } + @Override public PsiElement getDeclaration() { return this; } + @Override @NonNls public String getName(final PsiElement context) { return getName(); } + @Override public void init(final PsiElement element) { } + @Override public Object[] getDependences() { return ArrayUtil.EMPTY_OBJECT_ARRAY; } + @Override @Nullable public final Icon getIcon(final boolean open) { return getIcon(); } + @Override @Nullable public TextRange getTextRange() { return TextRange.from(0, 0); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java index 8f35a4fa834b..c7f5c9fef57a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java @@ -99,6 +99,7 @@ public abstract class BaseFilterLexer extends DelegateLexer implements IdTableBu return todoScanningData; } + @Override public final void run(CharSequence chars, int start, int end) { myOccurrenceConsumer.addOccurrence(chars, start, end, myOccurenceMask); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java index 39cae91de9b9..6c4fc593fedc 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexCacheManagerImpl.java @@ -63,6 +63,7 @@ public class IndexCacheManagerImpl implements CacheManager{ myProject = psiManager.getProject(); } + @Override @NotNull public PsiFile[] getFilesWithWord(@NotNull final String word, final short occurenceMask, @NotNull final GlobalSearchScope scope, final boolean caseSensitively) { if (myProject.isDefault()) { @@ -77,6 +78,7 @@ public class IndexCacheManagerImpl implements CacheManager{ return (scope.isSearchOutsideRootModel() || index.isInContent(virtualFile) || index.isInLibrarySource(virtualFile)) && !virtualFile.getFileType().isBinary(); } + @Override public boolean processFilesWithWord(@NotNull final Processor psiFileProcessor, @NotNull final String word, final short occurrenceMask, @NotNull final GlobalSearchScope scope, final boolean caseSensitively) { if (myProject.isDefault()) { return true; @@ -85,8 +87,10 @@ public class IndexCacheManagerImpl implements CacheManager{ final GlobalSearchScope projectScope = GlobalSearchScope.allScope(myProject).union(scope); try { ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { FileBasedIndex.getInstance().processValues(IdIndex.NAME, new IdIndexEntry(word, caseSensitively), null, new FileBasedIndex.ValueProcessor() { + @Override public boolean process(final VirtualFile file, final Integer value) { ProgressManager.checkCanceled(); final int mask = value.intValue(); @@ -134,6 +138,7 @@ public class IndexCacheManagerImpl implements CacheManager{ return true; } + @Override @NotNull public PsiFile[] getFilesWithTodoItems() { if (myProject.isDefault()) { @@ -147,6 +152,7 @@ public class IndexCacheManagerImpl implements CacheManager{ TodoIndex.NAME, new TodoIndexEntry(indexPattern.getPatternString(), indexPattern.isCaseSensitive()), GlobalSearchScope.allScope(myProject)); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { for (VirtualFile file : files) { if (projectFileIndex.isInContent(file)) { @@ -162,6 +168,7 @@ public class IndexCacheManagerImpl implements CacheManager{ return allFiles.isEmpty() ? PsiFile.EMPTY_ARRAY : PsiUtilCore.toPsiFileArray(allFiles); } + @Override public int getTodoCount(@NotNull final VirtualFile file, final IndexPatternProvider patternProvider) { if (myProject.isDefault()) { return 0; @@ -175,6 +182,7 @@ public class IndexCacheManagerImpl implements CacheManager{ return count; } + @Override public int getTodoCount(@NotNull final VirtualFile file, final IndexPattern pattern) { if (myProject.isDefault()) { return 0; @@ -188,6 +196,7 @@ public class IndexCacheManagerImpl implements CacheManager{ fileBasedIndex.processValues( TodoIndex.NAME, new TodoIndexEntry(indexPattern.getPatternString(), indexPattern.isCaseSensitive()), file, new FileBasedIndex.ValueProcessor() { + @Override public boolean process(final VirtualFile file, final Integer value) { count[0] += value.intValue(); return true; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdIndex.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdIndex.java index 3db3e5528531..0099c9a0a820 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdIndex.java @@ -43,6 +43,7 @@ public class IdIndex extends FileBasedIndexExtension { @NonNls public static final ID NAME = ID.create("IdIndex"); private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() { + @Override public boolean acceptInput(final VirtualFile file) { final FileType fileType = file.getFileType(); return isIndexable(fileType) && !ProjectUtil.isProjectOrWorkspaceFile(file, fileType); @@ -50,26 +51,31 @@ public class IdIndex extends FileBasedIndexExtension { }; private final DataExternalizer myValueExternalizer = new DataExternalizer() { + @Override public void save(final DataOutput out, final Integer value) throws IOException { out.writeByte(value.intValue()); } + @Override public Integer read(final DataInput in) throws IOException { return Integer.valueOf(in.readByte()); } }; private final KeyDescriptor myKeyDescriptor = new InlineKeyDescriptor() { + @Override public IdIndexEntry fromInt(int n) { return new IdIndexEntry(n); } + @Override public int toInt(IdIndexEntry idIndexEntry) { return idIndexEntry.getWordHashCode(); } }; private final DataIndexer myIndexer = new DataIndexer() { + @Override @NotNull public Map map(final FileContent inputData) { final FileTypeIdIndexer indexer = IdTableBuilding.getFileTypeIndexer(inputData.getFileType()); @@ -81,30 +87,37 @@ public class IdIndex extends FileBasedIndexExtension { } }; + @Override public int getVersion() { return 9; // TODO: version should enumerate all word scanner versions and build version upon that set } + @Override public boolean dependsOnFileContent() { return true; } + @Override public ID getName() { return NAME; } + @Override public DataIndexer getIndexer() { return myIndexer; } + @Override public DataExternalizer getValueExternalizer() { return myValueExternalizer; } + @Override public KeyDescriptor getKeyDescriptor() { return myKeyDescriptor; } + @Override public FileBasedIndex.InputFilter getInputFilter() { return myInputFilter; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java index be70933105da..1707de093d4f 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java @@ -68,11 +68,13 @@ public class IdTableBuilding { } public static class PlainTextIndexer extends FileTypeIdIndexer { + @Override @NotNull public Map map(final FileContent inputData) { final IdDataConsumer consumer = new IdDataConsumer(); final CharSequence chars = inputData.getContentAsText(); scanWords(new ScanWordProcessor() { + @Override public void run(final CharSequence chars11, final int start, final int end) { consumer.addOccurrence(chars11, start, end, (int)UsageSearchContext.IN_PLAIN_TEXT); } @@ -82,6 +84,7 @@ public class IdTableBuilding { } public static class PlainTextTodoIndexer implements DataIndexer { + @Override @NotNull public Map map(final FileContent inputData) { final CharSequence chars = inputData.getContentAsText(); @@ -241,12 +244,14 @@ public class IdTableBuilding { myScanner = scanner; } + @Override @NotNull public Map map(final FileContent inputData) { final CharSequence chars = inputData.getContentAsText(); final char[] charsArray = CharArrayUtil.fromSequenceWithoutCopying(chars); final IdDataConsumer consumer = new IdDataConsumer(); myScanner.processWords(chars, new Processor() { + @Override public boolean process(final WordOccurrence t) { if (charsArray != null && t.getBaseText() == chars) { consumer.addOccurrence(charsArray, t.getStart(), t.getEnd(), convertToMask(t.getKind())); @@ -305,6 +310,7 @@ public class IdTableBuilding { myFile = file; } + @Override @NotNull public Map map(final FileContent inputData) { if (IndexPatternUtil.getIndexPatternCount() > 0) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/LexerBasedIdIndexer.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/LexerBasedIdIndexer.java index 8e1ebacf7827..14ca3c9b48cb 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/LexerBasedIdIndexer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/LexerBasedIdIndexer.java @@ -31,6 +31,7 @@ import java.util.Map; */ public abstract class LexerBasedIdIndexer extends FileTypeIdIndexer { + @Override @NotNull public final Map map(final FileContent inputData) { final IdDataConsumer consumer = new IdDataConsumer(); @@ -52,14 +53,17 @@ public abstract class LexerBasedIdIndexer extends FileTypeIdIndexer { myIndexDataConsumer = indexDataConsumer; } + @Override public void addOccurrence(final CharSequence charSequence, final int start, final int end, final int occurrenceMask) { myIndexDataConsumer.addOccurrence(charSequence, start, end, occurrenceMask); } + @Override public void incTodoOccurrence(final IndexPattern pattern) { // empty } + @Override public boolean canConsumeTodoOccurrences() { return false; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/LexerBasedTodoIndexer.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/LexerBasedTodoIndexer.java index 131ba882e564..92957c67ea98 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/LexerBasedTodoIndexer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/LexerBasedTodoIndexer.java @@ -31,6 +31,7 @@ import java.util.Map; * Date: Jan 20, 2008 */ public abstract class LexerBasedTodoIndexer implements DataIndexer { + @Override @NotNull public Map map(final FileContent inputData) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java index 915546308966..a652d9baee97 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java @@ -61,19 +61,23 @@ public class TodoIndex extends FileBasedIndexExtension } private final KeyDescriptor myKeyDescriptor = new KeyDescriptor() { + @Override public int getHashCode(final TodoIndexEntry value) { return value.hashCode(); } + @Override public boolean isEqual(final TodoIndexEntry val1, final TodoIndexEntry val2) { return val1.equals(val2); } + @Override public void save(final DataOutput out, final TodoIndexEntry value) throws IOException { out.writeUTF(value.pattern); out.writeBoolean(value.caseSensitive); } + @Override public TodoIndexEntry read(final DataInput in) throws IOException { final String pattern = in.readUTF(); final boolean caseSensitive = in.readBoolean(); @@ -82,16 +86,19 @@ public class TodoIndex extends FileBasedIndexExtension }; private final DataExternalizer myValueExternalizer = new DataExternalizer() { + @Override public void save(final DataOutput out, final Integer value) throws IOException { out.writeInt(value.intValue()); } + @Override public Integer read(final DataInput in) throws IOException { return Integer.valueOf(in.readInt()); } }; private final DataIndexer myIndexer = new DataIndexer() { + @Override @NotNull public Map map(final FileContent inputData) { final VirtualFile file = inputData.getFile(); @@ -105,6 +112,7 @@ public class TodoIndex extends FileBasedIndexExtension private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() { private final FileTypeManager myFtManager = FileTypeManager.getInstance(); + @Override public boolean acceptInput(final VirtualFile file) { if (!(file.getFileSystem() instanceof LocalFileSystem)) { return false; // do not index TODOs in library sources @@ -127,30 +135,37 @@ public class TodoIndex extends FileBasedIndexExtension } }; + @Override public int getVersion() { return 4; } + @Override public boolean dependsOnFileContent() { return true; } + @Override public ID getName() { return NAME; } + @Override public DataIndexer getIndexer() { return myIndexer; } + @Override public KeyDescriptor getKeyDescriptor() { return myKeyDescriptor; } + @Override public DataExternalizer getValueExternalizer() { return myValueExternalizer; } + @Override public FileBasedIndex.InputFilter getInputFilter() { return myInputFilter; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoOccurrenceConsumer.java b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoOccurrenceConsumer.java index 39f0b9883cee..81a94450d78d 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoOccurrenceConsumer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoOccurrenceConsumer.java @@ -35,14 +35,17 @@ public class TodoOccurrenceConsumer implements BaseFilterLexer.OccurrenceConsume } } + @Override public void addOccurrence(final CharSequence charSequence, final int start, final int end, final int occurrenceMask) { // empty } + @Override public void incTodoOccurrence(final IndexPattern pattern) { myTodoOccurrences.adjustValue(pattern, 1); } + @Override public boolean canConsumeTodoOccurrences() { return true; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/file/DirectoryIconProvider.java b/platform/lang-impl/src/com/intellij/psi/impl/file/DirectoryIconProvider.java index cae9a191276b..9b64e1614d5a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/file/DirectoryIconProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/file/DirectoryIconProvider.java @@ -34,6 +34,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; public class DirectoryIconProvider extends IconProvider implements DumbAware { + @Override public Icon getIcon(@NotNull final PsiElement element, final int flags) { if (element instanceof PsiDirectory) { final PsiDirectory psiDirectory = (PsiDirectory)element; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/file/impl/PsiVFSListener.java b/platform/lang-impl/src/com/intellij/psi/impl/file/impl/PsiVFSListener.java index f1d8ece1290c..cf1ad47c9312 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/file/impl/PsiVFSListener.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/file/impl/PsiVFSListener.java @@ -68,8 +68,10 @@ public class PsiVFSListener extends VirtualFileAdapter { myConnection.subscribe(VirtualFileManager.VFS_CHANGES, new BulkVirtualFileListenerAdapter(PsiVFSListener.this)); myConnection.subscribe(ProjectTopics.PROJECT_ROOTS, new MyModuleRootListener()); myConnection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() { + @Override public void beforeFileTypesChanged(FileTypeEvent event) {} + @Override public void fileTypesChanged(FileTypeEvent e) { myFileManager.processFileTypesChanged(); } @@ -85,15 +87,18 @@ public class PsiVFSListener extends VirtualFileAdapter { return parent == null ? null : myFileManager.getCachedDirectory(parent); } + @Override public void contentsChanged(final VirtualFileEvent event) { // handled by FileDocumentManagerListener } + @Override public void fileCreated(VirtualFileEvent event) { final VirtualFile vFile = event.getFile(); ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { VirtualFile parent = vFile.getParent(); PsiDirectory parentDir = getCachedDirectory(parent); @@ -124,6 +129,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ); } + @Override public void beforeFileDeletion(VirtualFileEvent event) { final VirtualFile vFile = event.getFile(); @@ -133,6 +139,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { if (!vFile.isDirectory()) { PsiFile psiFile = myFileManager.getCachedPsiFile(vFile); @@ -157,6 +164,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ); } + @Override public void fileDeleted(final VirtualFileEvent event) { final VirtualFile vFile = event.getFile(); @@ -169,6 +177,7 @@ public class PsiVFSListener extends VirtualFileAdapter { if (parentDir != null) { ApplicationManager.getApplication().runWriteAction(new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); treeEvent.setParent(parentDir); @@ -185,6 +194,7 @@ public class PsiVFSListener extends VirtualFileAdapter { if (parentDir != null) { ApplicationManager.getApplication().runWriteAction(new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); treeEvent.setParent(parentDir); @@ -197,6 +207,7 @@ public class PsiVFSListener extends VirtualFileAdapter { } } + @Override public void beforePropertyChange(final VirtualFilePropertyEvent event) { final VirtualFile vFile = event.getFile(); final String propertyName = event.getPropertyName(); @@ -207,6 +218,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); treeEvent.setParent(parentDir); @@ -292,6 +304,7 @@ public class PsiVFSListener extends VirtualFileAdapter { return false; } + @Override public void propertyChanged(final VirtualFilePropertyEvent event) { final String propertyName = event.getPropertyName(); final VirtualFile vFile = event.getFile(); @@ -321,6 +334,7 @@ public class PsiVFSListener extends VirtualFileAdapter { } ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); treeEvent.setParent(parentDir); @@ -411,6 +425,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ); } + @Override public void beforeFileMovement(VirtualFileMoveEvent event) { final VirtualFile vFile = event.getFile(); @@ -421,6 +436,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); @@ -462,6 +478,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ); } + @Override public void fileMoved(VirtualFileMoveEvent event) { final VirtualFile vFile = event.getFile(); @@ -489,6 +506,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { PsiTreeChangeEventImpl treeEvent = new PsiTreeChangeEventImpl(myManager); if (oldElement == null) { @@ -550,11 +568,13 @@ public class PsiVFSListener extends VirtualFileAdapter { private class MyModuleRootListener implements ModuleRootListener { private VirtualFile[] myOldContentRoots = null; private volatile int depthCounter = 0; + @Override public void beforeRootsChange(final ModuleRootEvent event) { if (!myFileManager.isInitialized()) return; if (event.isCausedByFileTypesChange()) return; ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { depthCounter++; if (depthCounter > 1) return; @@ -571,6 +591,7 @@ public class PsiVFSListener extends VirtualFileAdapter { ); } + @Override public void rootsChanged(final ModuleRootEvent event) { myFileManager.dispatchPendingEvents(); @@ -578,6 +599,7 @@ public class PsiVFSListener extends VirtualFileAdapter { if (event.isCausedByFileTypesChange()) return; ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { depthCounter--; assert depthCounter >= 0 : depthCounter; @@ -600,11 +622,13 @@ public class PsiVFSListener extends VirtualFileAdapter { } private class MyFileDocumentManagerAdapter extends FileDocumentManagerAdapter { + @Override public void fileWithNoDocumentChanged(VirtualFile file) { final PsiFile psiFile = myFileManager.getCachedPsiFileInner(file); if (psiFile != null) { ApplicationManager.getApplication().runWriteAction( new ExternalChangeAction() { + @Override public void run() { myFileManager.reloadFromDisk(psiFile, true); // important to ignore document which might appear already! } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/include/FileIncludeIndex.java b/platform/lang-impl/src/com/intellij/psi/impl/include/FileIncludeIndex.java index 7caa15f426ff..5940a8b9325c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/include/FileIncludeIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/include/FileIncludeIndex.java @@ -46,6 +46,7 @@ public class FileIncludeIndex extends FileBasedIndexExtension getIncludes(VirtualFile file, GlobalSearchScope scope) { final List result = new ArrayList(); FileBasedIndex.getInstance().processValues(INDEX_ID, new FileKey(file), file, new FileBasedIndex.ValueProcessor>() { + @Override public boolean process(VirtualFile file, List value) { result.addAll(value); return true; @@ -57,6 +58,7 @@ public class FileIncludeIndex extends FileBasedIndexExtension getIncludingFileCandidates(String fileName, GlobalSearchScope scope) { final MultiMap result = new MultiMap(); FileBasedIndex.getInstance().processValues(INDEX_ID, new IncludeKey(fileName), null, new FileBasedIndex.ValueProcessor>() { + @Override public boolean process(VirtualFile file, List value) { result.put(file, value); return true; @@ -65,12 +67,15 @@ public class FileIncludeIndex extends FileBasedIndexExtension> getName() { return INDEX_ID; } + @Override public DataIndexer, FileContent> getIndexer() { return new DataIndexer, FileContent>() { + @Override @NotNull public Map> map(FileContent inputData) { @@ -98,21 +103,26 @@ public class FileIncludeIndex extends FileBasedIndexExtension getKeyDescriptor() { return new KeyDescriptor() { + @Override public int getHashCode(Key value) { return value.hashCode(); } + @Override public boolean isEqual(Key val1, Key val2) { return val1.equals(val2); } + @Override public void save(DataOutput out, Key value) throws IOException { out.writeBoolean(value.isInclude()); value.writeValue(out); } + @Override public Key read(DataInput in) throws IOException { boolean isInclude = in.readBoolean(); return isInclude ? new IncludeKey(in.readUTF()) : new FileKey(in.readInt()); @@ -120,8 +130,10 @@ public class FileIncludeIndex extends FileBasedIndexExtension> getValueExternalizer() { return new DataExternalizer>() { + @Override public void save(DataOutput out, List value) throws IOException { out.writeInt(value.size()); for (FileIncludeInfoImpl info : value) { @@ -132,6 +144,7 @@ public class FileIncludeIndex extends FileBasedIndexExtension read(DataInput in) throws IOException { int size = in.readInt(); ArrayList infos = new ArrayList(size); @@ -143,8 +156,10 @@ public class FileIncludeIndex extends FileBasedIndexExtension> processor) { context = context.getOriginalFile(); VirtualFile contextFile = context.getVirtualFile(); @@ -237,6 +238,7 @@ public class FileIncludeManagerImpl extends FileIncludeManager { protected abstract VirtualFile[] computeFiles(PsiFile file, boolean compileTimeOnly); + @Override public CachedValueProvider.Result compute(PsiFile psiFile) { VirtualFile[] value = computeFiles(psiFile, myRuntimeOnly); // todo: we need "url modification tracker" for VirtualFile diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java index 6f7e9336a357..474de7e3826a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java @@ -38,16 +38,19 @@ class IndexPatternOccurrenceImpl implements IndexPatternOccurrence { myPattern = pattern; } + @Override @NotNull public PsiFile getFile() { return myFile; } + @Override @NotNull public TextRange getTextRange() { return new TextRange(myStartOffset, myEndOffset); } + @Override @NotNull public IndexPattern getPattern() { return myPattern; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearchImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearchImpl.java index a0adea4e09bf..2104ff613b81 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearchImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearchImpl.java @@ -30,12 +30,14 @@ class IndexPatternSearchImpl extends IndexPatternSearch { registerExecutor(new IndexPatternSearcher()); } + @Override protected int getOccurrencesCountImpl(PsiFile file, IndexPatternProvider provider) { int count = CacheManager.SERVICE.getInstance(file.getProject()).getTodoCount(file.getVirtualFile(), provider); if (count != -1) return count; return search(file, provider).findAll().size(); } + @Override protected int getOccurrencesCountImpl(PsiFile file, IndexPattern pattern) { int count = CacheManager.SERVICE.getInstance(file.getProject()).getTodoCount(file.getVirtualFile(), pattern); if (count != -1) return count; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java index bf4686480f5a..ccf0dd904e5e 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java @@ -51,6 +51,7 @@ import java.util.regex.Pattern; * @author yole */ public class IndexPatternSearcher implements QueryExecutor { + @Override public boolean execute(@NotNull final IndexPatternSearch.SearchParameters queryParameters, @NotNull final Processor consumer) { final PsiFile file = queryParameters.getFile(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/PsiSearchHelperImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/search/PsiSearchHelperImpl.java index f96786b5734c..b88a70b51ef6 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/PsiSearchHelperImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/PsiSearchHelperImpl.java @@ -62,6 +62,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { private final PsiManagerEx myManager; private static final TodoItem[] EMPTY_TODO_ITEMS = new TodoItem[0]; + @Override @NotNull public SearchScope getUseScope(@NotNull PsiElement element) { SearchScope scope = element.getUseScope(); @@ -79,16 +80,19 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { myManager = manager; } + @Override @NotNull public PsiFile[] findFilesWithTodoItems() { return CacheManager.SERVICE.getInstance(myManager.getProject()).getFilesWithTodoItems(); } + @Override @NotNull public TodoItem[] findTodoItems(@NotNull PsiFile file) { return findTodoItems(file, 0, file.getTextLength()); } + @Override @NotNull public TodoItem[] findTodoItems(@NotNull PsiFile file, int startOffset, int endOffset) { final Collection occurrences = IndexPatternSearch.search(file, TodoIndexPatternProvider.getInstance()).findAll(); @@ -132,12 +136,14 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { return processTodoOccurences(startOffset, endOffset, occurrences); } + @Override public int getTodoItemsCount(@NotNull PsiFile file) { int count = CacheManager.SERVICE.getInstance(myManager.getProject()).getTodoCount(file.getVirtualFile(), TodoIndexPatternProvider.getInstance()); if (count != -1) return count; return findTodoItems(file).length; } + @Override public int getTodoItemsCount(@NotNull PsiFile file, @NotNull TodoPattern pattern) { int count = CacheManager.SERVICE.getInstance(myManager.getProject()).getTodoCount(file.getVirtualFile(), pattern.getIndexPattern()); if (count != -1) return count; @@ -149,10 +155,12 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { return count; } + @Override @NotNull public PsiElement[] findCommentsContainingIdentifier(@NotNull String identifier, @NotNull SearchScope searchScope) { final ArrayList results = new ArrayList(); processCommentsContainingIdentifier(identifier, searchScope, new Processor() { + @Override public boolean process(PsiElement element) { synchronized (results) { results.add(element); @@ -165,10 +173,12 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } } + @Override public boolean processCommentsContainingIdentifier(@NotNull String identifier, @NotNull SearchScope searchScope, @NotNull final Processor processor) { TextOccurenceProcessor occurrenceProcessor = new TextOccurenceProcessor() { + @Override public boolean execute(PsiElement element, int offsetInElement) { if (CommentUtil.isCommentTextElement(element)) { if (element.findReferenceAt(offsetInElement) == null) { @@ -181,6 +191,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { return processElementsWithWord(occurrenceProcessor, searchScope, identifier, UsageSearchContext.IN_COMMENTS, true); } + @Override public boolean processElementsWithWord(@NotNull final TextOccurenceProcessor processor, @NotNull SearchScope searchScope, @NotNull final String text, @@ -204,6 +215,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final boolean ignoreInjectedPsi = scope.isIgnoreInjectedPsi(); return JobUtil.invokeConcurrentlyUnderProgress(Arrays.asList(scopeElements), progress, false, new Processor() { + @Override public boolean process(PsiElement scopeElement) { return processElementsWithWordInScopeElement(scopeElement, processor, text, caseSensitively, ignoreInjectedPsi, progress); } @@ -218,6 +230,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final boolean ignoreInjectedPsi, final ProgressIndicator progress) { return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { StringSearcher searcher = new StringSearcher(word, caseSensitive, true); @@ -247,6 +260,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { try { return processPsiFileRoots(fileSet, new Processor() { + @Override public boolean process(PsiElement psiRoot) { return LowLevelSearchUtil.processElementsContainingWordInElement(processor, psiRoot, searcher, true, progress); } @@ -270,8 +284,10 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final int size = files.size(); boolean completed = JobUtil.invokeConcurrentlyUnderProgress(files, progress, false, new Processor() { + @Override public boolean process(final VirtualFile vfile) { final PsiFile file = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiFile compute() { return myManager.findFile(vfile); } @@ -279,6 +295,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { if (file != null && !(file instanceof PsiBinaryFile)) { file.getViewProvider().getContents(); // load contents outside readaction ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { try { if (myManager.getProject().isDisposed()) throw new ProcessCanceledException(); @@ -330,6 +347,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { try { final List result = new ArrayList(); boolean success = processFilesWithText(scope, searchContext, caseSensitively, text, new Processor() { + @Override public boolean process(PsiFile file) { result.add(file.getViewProvider().getVirtualFile()); return true; @@ -352,6 +370,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { List words = StringUtil.getWordsIn(text); if (words.isEmpty()) return true; Collections.sort(words, new Comparator() { + @Override public int compare(String o1, String o2) { return o2.length() - o1.length(); } @@ -384,6 +403,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { fileSet = null; } return CacheManager.SERVICE.getInstance(myManager.getProject()).processFilesWithWord(new Processor() { + @Override public boolean process(PsiFile psiFile) { if (fileSet != null && !fileSet.contains(psiFile)) { return true; @@ -393,6 +413,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { }, words.get(words.size() - 1), searchContext, scope, caseSensitively); } + @Override @NotNull public PsiFile[] findFilesWithPlainTextWords(@NotNull String word) { return CacheManager.SERVICE.getInstance(myManager.getProject()).getFilesWithWord(word, @@ -402,12 +423,14 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } + @Override public void processUsagesInNonJavaFiles(@NotNull String qName, @NotNull PsiNonJavaFileReferenceProcessor processor, @NotNull GlobalSearchScope searchScope) { processUsagesInNonJavaFiles(null, qName, processor, searchScope); } + @Override public void processUsagesInNonJavaFiles(@Nullable final PsiElement originalElement, @NotNull String qName, @NotNull final PsiNonJavaFileReferenceProcessor processor, @@ -426,6 +449,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } final GlobalSearchScope theSearchScope = searchScope; PsiFile[] files = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiFile[] compute() { return CacheManager.SERVICE.getInstance(myManager.getProject()).getFilesWithWord(wordToSearch, UsageSearchContext.IN_PLAIN_TEXT, theSearchScope, true); } @@ -439,6 +463,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } final SearchScope useScope = new ReadAction() { + @Override protected void run(final Result result) { if (originalElement != null) { result.setResult(getUseScope(originalElement)); @@ -454,6 +479,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final PsiFile psiFile = files[i]; ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { CharSequence text = psiFile.getViewProvider().getContents(); for (int index = LowLevelSearchUtil.searchWord(text, 0, text.length(), searcher, progress); index >= 0;) { @@ -481,19 +507,23 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } } + @Override public void processAllFilesWithWord(@NotNull String word, @NotNull GlobalSearchScope scope, @NotNull Processor processor, final boolean caseSensitively) { CacheManager.SERVICE.getInstance(myManager.getProject()).processFilesWithWord(processor, word, UsageSearchContext.IN_CODE, scope, caseSensitively); } + @Override public void processAllFilesWithWordInText(@NotNull final String word, @NotNull final GlobalSearchScope scope, @NotNull final Processor processor, final boolean caseSensitively) { CacheManager.SERVICE.getInstance(myManager.getProject()).processFilesWithWord(processor, word, UsageSearchContext.IN_PLAIN_TEXT, scope, caseSensitively); } + @Override public void processAllFilesWithWordInComments(@NotNull String word, @NotNull GlobalSearchScope scope, @NotNull Processor processor) { CacheManager.SERVICE.getInstance(myManager.getProject()).processFilesWithWord(processor, word, UsageSearchContext.IN_COMMENTS, scope, true); } + @Override public void processAllFilesWithWordInLiterals(@NotNull String word, @NotNull GlobalSearchScope scope, @NotNull Processor processor) { CacheManager.SERVICE.getInstance(myManager.getProject()).processFilesWithWord(processor, word, UsageSearchContext.IN_STRINGS, scope, true); } @@ -529,6 +559,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } } + @Override public boolean processRequests(@NotNull SearchRequestCollector collector, @NotNull Processor processor) { Map> collectors = CollectionFactory.hashMap(); collectors.put(collector, processor); @@ -626,6 +657,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { } return processPsiFileRoots(new ArrayList(candidateFiles.keySet()), new Processor() { + @Override public boolean process(PsiElement psiRoot) { final VirtualFile vfile = psiRoot.getContainingFile().getVirtualFile(); for (final RequestWithProcessor singleRequest : candidateFiles.get(vfile)) { @@ -652,6 +684,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final boolean ignoreInjectedPsi = searchScope instanceof LocalSearchScope && ((LocalSearchScope)searchScope).isIgnoreInjectedPsi(); final RequestResultProcessor wrapped = singleRequest.processor; return new TextOccurenceProcessor() { + @Override public boolean execute(PsiElement element, int offsetInElement) { if (ignoreInjectedPsi && element instanceof PsiLanguageInjectionHost) return true; @@ -719,9 +752,11 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { final ProgressIndicator progress) { final MultiMap local = createMultiMap(); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (progress != null) progress.checkCanceled(); FileBasedIndex.getInstance().processValues(IdIndex.NAME, entry, null, new FileBasedIndex.ValueProcessor() { + @Override public boolean process(VirtualFile file, Integer value) { if (progress != null) progress.checkCanceled(); @@ -788,12 +823,14 @@ public class PsiSearchHelperImpl implements PsiSearchHelper { return processElementsWithWord(adaptProcessor(single, consumer), single.searchScope, single.word, single.searchContext, single.caseSensitive); } + @Override public SearchCostResult isCheapEnoughToSearch(@NotNull String name, @NotNull GlobalSearchScope scope, @Nullable final PsiFile fileToIgnoreOccurencesIn, @Nullable ProgressIndicator progress) { final int[] count = {0}; if (!processFilesWithText(scope, UsageSearchContext.ANY, true, name, new Processor() { + @Override public boolean process(PsiFile file) { if (file == fileToIgnoreOccurencesIn) return true; synchronized (count) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java index caf75d337965..1acf527e20ff 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java @@ -35,14 +35,17 @@ public class TodoItemImpl implements TodoItem { myPattern = pattern; } + @Override public PsiFile getFile() { return myFile; } + @Override public TextRange getTextRange() { return new TextRange(myStartOffset, myEndOffset); } + @Override public TodoPattern getPattern() { return myPattern; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/ClsElementInfo.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/ClsElementInfo.java index ac66849c1b88..ad9ba5ef4d60 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/ClsElementInfo.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/ClsElementInfo.java @@ -35,6 +35,7 @@ public class ClsElementInfo implements SmartPointerElementInfo { myStubIndexReference = stubReference; } + @Override public Document getDocumentToSynchronize() { return null; } @@ -50,9 +51,11 @@ public class ClsElementInfo implements SmartPointerElementInfo { } // commit + @Override public void documentAndPsiInSync() { } + @Override public PsiElement restoreElement() { return myStubIndexReference.retrieve(); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/DirElementInfo.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/DirElementInfo.java index 9374e06413b0..ce8ed98851fc 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/DirElementInfo.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/DirElementInfo.java @@ -27,6 +27,7 @@ class DirElementInfo extends FileElementInfo { super(directory.getProject(), directory.getVirtualFile()); } + @Override public PsiElement restoreElement() { return SelfElementInfo.restoreDirectoryFromVirtual(myVirtualFile, myProject); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/FileElementInfo.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/FileElementInfo.java index 55bafb8e67c3..8fd306cb49b1 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/FileElementInfo.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/FileElementInfo.java @@ -41,10 +41,12 @@ class FileElementInfo implements SmartPointerElementInfo { myProject = project; } + @Override public Document getDocumentToSynchronize() { return null; } + @Override public void documentAndPsiInSync() { } @@ -56,6 +58,7 @@ class FileElementInfo implements SmartPointerElementInfo { public void unfastenBelt(int offset) { } + @Override public PsiElement restoreElement() { return SelfElementInfo.restoreFileFromVirtual(myVirtualFile, myProject); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/HardElementInfo.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/HardElementInfo.java index a95eed3a4035..aa3bc6d9a8bb 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/HardElementInfo.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/HardElementInfo.java @@ -37,10 +37,12 @@ class HardElementInfo implements SmartPointerElementInfo { myProject = project; } + @Override public Document getDocumentToSynchronize() { return null; } + @Override public void documentAndPsiInSync() { } @@ -52,6 +54,7 @@ class HardElementInfo implements SmartPointerElementInfo { public void unfastenBelt(int offset) { } + @Override public PsiElement restoreElement() { return myElement; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SelfElementInfo.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SelfElementInfo.java index eda1f29bfe96..931945f3e56c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SelfElementInfo.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SelfElementInfo.java @@ -93,6 +93,7 @@ public class SelfElementInfo implements SmartPointerElementInfo { mySyncEndOffset = range.getEndOffset(); } + @Override public Document getDocumentToSynchronize() { RangeMarker marker = getMarker(); if (marker != null) { @@ -158,9 +159,11 @@ public class SelfElementInfo implements SmartPointerElementInfo { } // commit + @Override public void documentAndPsiInSync() { } + @Override public PsiElement restoreElement() { if (!mySyncMarkerIsValid) return null; PsiFile file = restoreFile(); @@ -213,6 +216,7 @@ public class SelfElementInfo implements SmartPointerElementInfo { if (virtualFile == null) return null; return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiFile compute() { VirtualFile child; if (virtualFile.isValid()) { @@ -237,6 +241,7 @@ public class SelfElementInfo implements SmartPointerElementInfo { if (virtualFile == null) return null; return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public PsiDirectory compute() { VirtualFile child; if (virtualFile.isValid()) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java index 6ea2d3b0f481..6901128bd4ae 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java @@ -151,11 +151,13 @@ public class SmartPointerManagerImpl extends SmartPointerManager { } private static final Key> CACHED_SMART_POINTER_KEY = Key.create("CACHED_SMART_POINTER_KEY"); + @Override @NotNull public SmartPsiElementPointer createSmartPsiElementPointer(@NotNull E element) { PsiFile containingFile = element.getContainingFile(); return createSmartPsiElementPointer(element, containingFile); } + @Override @NotNull public SmartPsiElementPointer createSmartPsiElementPointer(@NotNull E element, PsiFile containingFile) { if (containingFile != null && !containingFile.isValid() || containingFile == null && !element.isValid()) { @@ -214,6 +216,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager { } + @Override @NotNull @Deprecated public SmartPsiElementPointer createLazyPointer(@NotNull E element) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java index 5ae0b0b96a69..1c187172da17 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java @@ -77,11 +77,13 @@ class SmartPsiElementPointerImpl implements SmartPointerEx return myElementInfo.elementHashCode(); } + @Override @NotNull public Project getProject() { return myElementInfo.getProject(); } + @Override @Nullable public E getElement() { E element = getCachedElement(); @@ -109,6 +111,7 @@ class SmartPsiElementPointerImpl implements SmartPointerEx return ref == null ? null : ref.get(); } + @Override public PsiFile getContainingFile() { VirtualFile virtualFile = myElementInfo.getVirtualFile(); if (virtualFile != null && virtualFile.isValid()) { @@ -124,6 +127,7 @@ class SmartPsiElementPointerImpl implements SmartPointerEx return PsiDocumentManager.getInstance(getProject()).getPsiFile(doc); } + @Override public VirtualFile getVirtualFile() { return myElementInfo.getVirtualFile(); } @@ -184,6 +188,7 @@ class SmartPsiElementPointerImpl implements SmartPointerEx return new SelfElementInfo(project, proper, element.getClass(), containingFile, containingFile.getLanguage()); } + @Override public void documentAndPsiInSync() { myElementInfo.documentAndPsiInSync(); } @@ -193,6 +198,7 @@ class SmartPsiElementPointerImpl implements SmartPointerEx myElementInfo.unfastenBelt(offset); } + @Override public void fastenBelt(int offset, @Nullable RangeMarker cachedRangeMarker) { myElementInfo.fastenBelt(offset, cachedRangeMarker); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java index 153401a0b2dd..de7c965e89cf 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/LightPsiFileImpl.java @@ -51,14 +51,17 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile myLanguage = language; } + @Override public VirtualFile getVirtualFile() { return getViewProvider().isEventSystemEnabled() ? getViewProvider().getVirtualFile() : null; } + @Override public boolean processChildren(final PsiElementProcessor processor) { return true; } + @Override public boolean isValid() { if (!getViewProvider().isPhysical() || myExplicitlySetAsValid) return true; // "dummy" file return getViewProvider().getVirtualFile().isValid(); @@ -69,14 +72,17 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile myExplicitlySetAsValid = b; } + @Override public String getText() { return getViewProvider().getContents().toString(); } + @Override public long getModificationStamp() { return getViewProvider().getModificationStamp(); } + @Override public void subtreeChanged() { clearCaches(); getViewProvider().rootChanged(this); @@ -84,6 +90,7 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile public abstract void clearCaches(); + @Override @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"}) protected LightPsiFileImpl clone() { final FileViewProvider provider = getViewProvider().clone(); @@ -100,26 +107,31 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile return clone; } + @Override @NotNull public String getName() { return getViewProvider().getVirtualFile().getName(); } + @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { checkSetName(name); subtreeChanged(); return PsiFileImplUtil.setName(this, name); } + @Override public void checkSetName(String name) throws IncorrectOperationException { if (!getViewProvider().isEventSystemEnabled()) return; PsiFileImplUtil.checkSetName(this, name); } + @Override public PsiDirectory getParent() { return getContainingDirectory(); } + @Override public PsiDirectory getContainingDirectory() { final VirtualFile parentFile = getViewProvider().getVirtualFile().getParent(); if (parentFile == null) return null; @@ -131,14 +143,17 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile return getContainingDirectory(); } + @Override public PsiFile getContainingFile() { return this; } + @Override public void delete() throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public void checkDelete() throws IncorrectOperationException { if (!getViewProvider().isEventSystemEnabled()) { throw new IncorrectOperationException(); @@ -146,6 +161,7 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile CheckUtil.checkWritable(this); } + @Override @NotNull public PsiFile getOriginalFile() { return myOriginalFile == null ? this : myOriginalFile; @@ -155,29 +171,35 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile myOriginalFile = originalFile.getOriginalFile(); } + @Override @NotNull public PsiFile[] getPsiRoots() { return new PsiFile[]{this}; } + @Override public boolean isPhysical() { return getViewProvider().isEventSystemEnabled(); } + @Override @NotNull public Language getLanguage() { return myLanguage; } + @Override @NotNull public FileViewProvider getViewProvider() { return myViewProvider; } + @Override public PsiManager getManager() { return myManager; } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -186,6 +208,7 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile return manager.getProject(); } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { PsiElement child = getFirstChild(); while (child != null) { @@ -195,131 +218,162 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile } } + @Override public final synchronized PsiElement copy() { return clone(); } + @Override public final void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override @NotNull public synchronized PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override public void navigate(boolean requestFocus) { PsiNavigationSupport.getInstance().getDescriptor(this).navigate(requestFocus); } + @Override public synchronized PsiElement findElementAt(int offset) { return getViewProvider().findElementAt(offset); } + @Override public synchronized PsiReference findReferenceAt(int offset) { return getViewProvider().findReferenceAt(offset); } + @Override @NotNull public char[] textToCharArray() { return CharArrayUtil.fromSequenceStrict(getViewProvider().getContents()); } + @Override public boolean isContentsLoaded() { return true; } - public void onContentReload() { + @Override + public void onContentReload() { } + @Override public PsiFile cacheCopy(final FileContent content) { return this; } + @Override public boolean isWritable() { return getViewProvider().getVirtualFile().isWritable(); } + @Override @NotNull public abstract PsiElement[] getChildren(); + @Override public PsiElement getFirstChild() { final PsiElement[] children = getChildren(); return children.length == 0 ? null : children[0]; } + @Override public PsiElement getLastChild() { final PsiElement[] children = getChildren(); return children.length == 0 ? null : children[children.length - 1]; } + @Override public TextRange getTextRange() { return new TextRange(0, getTextLength()); } + @Override public int getStartOffsetInParent() { return 0; } + @Override public int getTextLength() { return getViewProvider().getContents().length(); } + @Override public int getTextOffset() { return 0; } + @Override public boolean textMatches(@NotNull PsiElement element) { return textMatches(element.getText()); } + @Override public boolean textMatches(@NotNull CharSequence text) { return text.equals(getViewProvider().getContents()); } + @Override public boolean textContains(char c) { return getText().indexOf(c) >= 0; } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public final PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public final PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { throw new IncorrectOperationException("Not implemented"); } + @Override public FileASTNode getNode() { return null; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java b/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java index 004e47552257..868b698c5ff2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/PostprocessReformattingAspect.java @@ -69,6 +69,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { .registerAspect(PostprocessReformattingAspect.class, this, Collections.singleton((PomModelAspect)treeAspect)); ApplicationListener applicationListener = new ApplicationAdapter() { + @Override public void writeActionStarted(final Object action) { final CommandProcessor processor = CommandProcessor.getInstance(); if (processor != null) { @@ -79,6 +80,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { } } + @Override public void writeActionFinished(final Object action) { final CommandProcessor processor = CommandProcessor.getInstance(); if (processor != null) { @@ -94,6 +96,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { public void disablePostprocessFormattingInside(final Runnable runnable) { disablePostprocessFormattingInside(new NullableComputable() { + @Override public Object compute() { runnable.run(); return null; @@ -116,6 +119,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { public void postponeFormattingInside(final Runnable runnable) { postponeFormattingInside(new NullableComputable() { + @Override public Object compute() { runnable.run(); return null; @@ -141,6 +145,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { } else { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { doPostponedFormatting(); } @@ -153,8 +158,10 @@ public class PostprocessReformattingAspect implements PomModelAspect { ProgressManager.getInstance().executeNonCancelableSection(r); } + @Override public void update(final PomModelEvent event) { atomic(new Runnable() { + @Override public void run() { if (isDisabled() || myPostponedCounter == 0 && !ApplicationManager.getApplication().isUnitTestMode()) return; final TreeChangeEvent changeSet = (TreeChangeEvent)event.getChangeSet(myTreeAspect); @@ -178,6 +185,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { case ChangeInfo.CONTENTS_CHANGED: if (!CodeEditUtil.isNodeGenerated(affectedChild)) { ((TreeElement)affectedChild).acceptTree(new RecursiveTreeElementWalkingVisitor() { + @Override protected void visitNode(TreeElement element) { if (CodeEditUtil.isNodeGenerated(element) && CodeEditUtil.isSuspendedNodesReformattingAllowed()) { postponeFormatting(viewProvider, element); @@ -197,6 +205,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { public void doPostponedFormatting() { atomic(new Runnable() { + @Override public void run() { if (isDisabled()) return; try { @@ -225,11 +234,13 @@ public class PostprocessReformattingAspect implements PomModelAspect { private void postponedFormattingImpl(final FileViewProvider viewProvider, final boolean check) { atomic(new Runnable() { + @Override public void run() { if (isDisabled() || check && !myUpdatedProviders.contains(viewProvider)) return; try { disablePostprocessFormattingInside(new Runnable() { + @Override public void run() { doPostponedFormattingInner(viewProvider); } @@ -482,6 +493,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { ((TreeElement)node).acceptTree(new RecursiveTreeElementVisitor() { boolean inGeneratedContext = !isGenerated; + @Override protected boolean visitNode(TreeElement element) { if (nodesToProcess.contains(element)) return false; if (CodeEditUtil.isPostponedFormattingDisabled(element)) return false; @@ -528,6 +540,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { } for (final FileElement fileElement : ((SingleRootFileViewProvider)key).getKnownTreeRoots()) { fileElement.acceptTree(new RecursiveTreeElementWalkingVisitor() { + @Override protected void visitNode(TreeElement element) { if (CodeEditUtil.isMarkedToReformatBefore(element)) { CodeEditUtil.markToReformatBefore(element, false); @@ -592,6 +605,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { myRange = rangeMarker; } + @Override public int compareTo(PostprocessFormattingTask o) { RangeMarker o1 = myRange; RangeMarker o2 = o.myRange; @@ -610,10 +624,12 @@ public class PostprocessReformattingAspect implements PomModelAspect { return myRange; } + @Override public int getStartOffset() { return myRange.getStartOffset(); } + @Override public int getEndOffset() { return myRange.getEndOffset(); } @@ -655,6 +671,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { myRanges = ranges; } + @Override public void execute(FileViewProvider viewProvider) { final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider); codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false); @@ -668,6 +685,7 @@ public class PostprocessReformattingAspect implements PomModelAspect { myRangesToReindent.add(new Pair(oldIndent, rangeMarker)); } + @Override public void execute(FileViewProvider viewProvider) { final Document document = viewProvider.getDocument(); final PsiFile psiFile = viewProvider.getPsi(viewProvider.getBaseLanguage()); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java index a8a95525c41d..a9031f3133a3 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java @@ -40,28 +40,34 @@ public class CodeStyleFacadeImpl extends CodeStyleFacade { myProject = project; } + @Override public int getIndentSize(final FileType fileType) { return CodeStyleSettingsManager.getSettings(myProject).getIndentSize(fileType); } + @Override @Nullable public String getLineIndent(@NotNull final Document document, int offset) { if (myProject == null) return null; return CodeStyleManager.getInstance(myProject).getLineIndent(document, offset); } + @Override public String getLineSeparator() { return CodeStyleSettingsManager.getSettings(myProject).getLineSeparator(); } + @Override public boolean projectUsesOwnSettings() { return myProject != null && CodeStyleSettingsManager.getInstance(myProject).USE_PER_PROJECT_SETTINGS; } + @Override public boolean isUnsuitableCodeStyleConfigurable(final Configurable c) { return false; } + @Override public int getRightMargin() { return CodeStyleSettingsManager.getSettings(myProject).RIGHT_MARGIN; } @@ -71,14 +77,17 @@ public class CodeStyleFacadeImpl extends CodeStyleFacade { return CodeStyleSettingsManager.getSettings(myProject).WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN; } + @Override public int getTabSize(final FileType fileType) { return CodeStyleSettingsManager.getSettings(myProject).getTabSize(fileType); } + @Override public boolean isSmartTabs(final FileType fileType) { return CodeStyleSettingsManager.getSettings(myProject).isSmartTabs(fileType); } + @Override public boolean useTabCharacter(final FileType fileType) { return CodeStyleSettingsManager.getSettings(myProject).useTabCharacter(fileType); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java index e2358a48b081..4426aa2acfbf 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java @@ -69,16 +69,19 @@ public class CodeStyleManagerImpl extends CodeStyleManager { myProject = project; } + @Override @NotNull public Project getProject() { return myProject; } + @Override @NotNull public PsiElement reformat(@NotNull PsiElement element) throws IncorrectOperationException { return reformat(element, false); } + @Override @NotNull public PsiElement reformat(@NotNull PsiElement element, boolean canChangeWhiteSpacesOnly) throws IncorrectOperationException { CheckUtil.checkWritable(element); @@ -111,6 +114,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { } } + @Override public PsiElement reformatRange(@NotNull PsiElement element, int startOffset, int endOffset, @@ -118,6 +122,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return reformatRangeImpl(element, startOffset, endOffset, canChangeWhiteSpacesOnly); } + @Override public PsiElement reformatRange(@NotNull PsiElement element, int startOffset, int endOffset) throws IncorrectOperationException { return reformatRangeImpl(element, startOffset, endOffset, false); @@ -130,6 +135,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { } + @Override public void reformatText(@NotNull PsiFile file, int startOffset, int endOffset) throws IncorrectOperationException { ApplicationManager.getApplication().assertWriteAccessAllowed(); PsiDocumentManager.getInstance(getProject()).commitAllDocuments(); @@ -231,6 +237,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { } + @Override public void reformatNewlyAddedElement(@NotNull final ASTNode parent, @NotNull final ASTNode addedElement) throws IncorrectOperationException { LOG.assertTrue(addedElement.getTreeParent() == parent, "addedElement must be added to parent"); @@ -259,8 +266,10 @@ public class CodeStyleManagerImpl extends CodeStyleManager { adjustLineIndent(containingFile, textRange); } + @Override public int adjustLineIndent(@NotNull final PsiFile file, final int offset) throws IncorrectOperationException { return PostprocessReformattingAspect.getInstance(file.getProject()).disablePostprocessFormattingInside(new Computable() { + @Override public Integer compute() { return doAdjustLineIndentByOffset(file, offset); } @@ -282,8 +291,10 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return bottomost; } + @Override public int adjustLineIndent(@NotNull final Document document, final int offset) { return PostprocessReformattingAspect.getInstance(getProject()).disablePostprocessFormattingInside(new Computable() { + @Override public Integer compute() { final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myProject); documentManager.commitDocument(document); @@ -315,6 +326,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { }.perform(file, offset, null, offset); } + @Override public void adjustLineIndent(@NotNull PsiFile file, TextRange rangeToAdjust) throws IncorrectOperationException { new CodeStyleManagerRunnable(this) { @Override @@ -325,6 +337,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { }.perform(file, -1, rangeToAdjust, null); } + @Override @Nullable public String getLineIndent(@NotNull PsiFile file, int offset) { return new CodeStyleManagerRunnable(this) { @@ -340,6 +353,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { }.perform(file, offset, null, null); } + @Override @Nullable public String getLineIndent(@NotNull Document document, int offset) { PsiFile file = PsiDocumentManager.getInstance(myProject).getPsiFile(document); @@ -348,6 +362,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return getLineIndent(file, offset); } + @Override public boolean isLineToBeIndented(@NotNull PsiFile file, int offset) { if (!SourceTreeToPsiMap.hasTreeElement(file)) { return false; @@ -594,6 +609,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return new Pair(elementAt, charTable); } + @Override public Indent getIndent(String text, FileType fileType) { int indent = IndentHelperImpl.getIndent(myProject, fileType, text, true); int indenLevel = indent / IndentHelperImpl.INDENT_FACTOR; @@ -601,6 +617,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return new IndentImpl(getSettings(), indenLevel, spaceCount, fileType); } + @Override public String fillIndent(Indent indent, FileType fileType) { IndentImpl indent1 = (IndentImpl)indent; int indentLevel = indent1.getIndentLevel(); @@ -625,6 +642,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { return IndentHelperImpl.fillIndent(myProject, fileType, indentLevel * IndentHelperImpl.INDENT_FACTOR + spaceCount); } + @Override public Indent zeroIndent() { return new IndentImpl(getSettings(), 0, 0, null); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemeImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemeImpl.java index 501c02840ed1..b358c506ae5b 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemeImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemeImpl.java @@ -97,6 +97,7 @@ public class CodeStyleSchemeImpl implements JDOMExternalizable, CodeStyleScheme, } } + @Override public CodeStyleSettings getCodeStyleSettings(){ return myCodeStyleSettings; } @@ -105,10 +106,12 @@ public class CodeStyleSchemeImpl implements JDOMExternalizable, CodeStyleScheme, myCodeStyleSettings = codeStyleSettings; } + @Override public String getName(){ return myName; } + @Override public boolean isDefault(){ return myIsDefault; } @@ -117,10 +120,12 @@ public class CodeStyleSchemeImpl implements JDOMExternalizable, CodeStyleScheme, return getName(); } + @Override public void writeExternal(Element element) throws WriteExternalException{ myCodeStyleSettings.writeExternal(element); } + @Override public void readExternal(Element element) throws InvalidDataException{ myCodeStyleSettings.readExternal(element); } @@ -163,10 +168,12 @@ public class CodeStyleSchemeImpl implements JDOMExternalizable, CodeStyleScheme, return new Document(newElement); } + @Override public void setName(final String name) { myName = name; } + @Override @NotNull public ExternalInfo getExternalInfo() { return myExternalInfo; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemesImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemesImpl.java index 674d92604578..b55915dbddd8 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemesImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemesImpl.java @@ -58,18 +58,22 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable public CodeStyleSchemesImpl(SchemesManagerFactory schemesManagerFactory) { SchemeProcessor processor = new BaseSchemeProcessor() { + @Override public CodeStyleSchemeImpl readScheme(final Document schemeContent) throws IOException, JDOMException, InvalidDataException { return CodeStyleSchemeImpl.readScheme(schemeContent); } + @Override public Document writeScheme(final CodeStyleSchemeImpl scheme) throws WriteExternalException { return scheme.saveToDocument(); } + @Override public boolean shouldBeSaved(final CodeStyleSchemeImpl scheme) { return !scheme.isDefault(); } + @Override public void initScheme(final CodeStyleSchemeImpl scheme) { scheme.init(CodeStyleSchemesImpl.this); } @@ -82,21 +86,25 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable setCurrentScheme(getDefaultScheme()); } + @Override public CodeStyleScheme[] getSchemes() { final Collection schemes = mySchemesManager.getAllSchemes(); return schemes.toArray(new CodeStyleScheme[schemes.size()]); } + @Override public CodeStyleScheme getCurrentScheme() { return mySchemesManager.getCurrentScheme(); } + @Override public void setCurrentScheme(CodeStyleScheme scheme) { String schemeName = scheme == null ? null : scheme.getName(); mySchemesManager.setCurrentSchemeName(schemeName); CURRENT_SCHEME_NAME = schemeName; } + @Override public CodeStyleScheme createNewScheme(String preferredName, CodeStyleScheme parentScheme) { String name; if (preferredName == null) { @@ -121,6 +129,7 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable return new CodeStyleSchemeImpl(name, false, parentScheme); } + @Override public void deleteScheme(CodeStyleScheme scheme) { if (scheme.isDefault()) { throw new IllegalArgumentException("Unable to delete default scheme!"); @@ -136,14 +145,17 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable mySchemesManager.removeScheme(scheme); } + @Override public CodeStyleScheme getDefaultScheme() { return findSchemeByName(DEFAULT_SCHEME_NAME); } + @Override public CodeStyleScheme findSchemeByName(String name) { return mySchemesManager.findSchemeByName(name); } + @Override public void addScheme(CodeStyleScheme scheme) { mySchemesManager.addNewScheme(scheme, true); } @@ -152,6 +164,7 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable mySchemesManager.removeScheme(scheme); } + @Override public void readExternal(Element element) throws InvalidDataException { init(); DefaultJDOMExternalizer.readExternal(this, element); @@ -167,15 +180,18 @@ public class CodeStyleSchemesImpl extends CodeStyleSchemes implements Exportable mySchemesManager.loadSchemes(); } + @Override public void writeExternal(Element element) throws WriteExternalException { DefaultJDOMExternalizer.writeExternal(this, element); } + @Override @NotNull public File[] getExportFiles() { return new File[]{getDir(true), PathManager.getDefaultOptionsFile()}; } + @Override @NotNull public String getPresentableName() { return PsiBundle.message("codestyle.export.display.name"); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/IndentImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/IndentImpl.java index 8021d831c8a4..18753fcfc96e 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/IndentImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/IndentImpl.java @@ -57,28 +57,34 @@ public class IndentImpl implements Indent{ return myIndentLevel + mySpaceCount; } + @Override public boolean isGreaterThan(Indent indent) { return getSize() > ((IndentImpl)indent).getSize(); } + @Override public Indent min(Indent anotherIndent) { return isGreaterThan(anotherIndent) ? anotherIndent : this; } + @Override public Indent max(Indent anotherIndent) { return isGreaterThan(anotherIndent) ? this : anotherIndent; } + @Override public Indent add(Indent indent) { IndentImpl indent1 = (IndentImpl)indent; return new IndentImpl(mySettings, myIndentLevel + indent1.myIndentLevel, mySpaceCount + indent1.mySpaceCount, myFileType); } + @Override public Indent subtract(Indent indent) { IndentImpl indent1 = (IndentImpl)indent; return new IndentImpl(mySettings, myIndentLevel - indent1.myIndentLevel, mySpaceCount - indent1.mySpaceCount, myFileType); } + @Override public boolean isZero() { return myIndentLevel == 0 && mySpaceCount == 0; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/parsing/DefaultWhiteSpaceTokenProcessorImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/parsing/DefaultWhiteSpaceTokenProcessorImpl.java index fa7e4e578556..fd5ae89002cd 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/parsing/DefaultWhiteSpaceTokenProcessorImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/parsing/DefaultWhiteSpaceTokenProcessorImpl.java @@ -26,10 +26,12 @@ import com.intellij.psi.tree.IElementType; public abstract class DefaultWhiteSpaceTokenProcessorImpl implements TokenProcessor { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.parsing.DefaultWhiteSpaceTokenProcessorImpl"); + @Override public boolean isTokenValid(IElementType tokenType) { return tokenType != null && isInSet(tokenType); } + @Override public TreeElement process(Lexer lexer, ParsingContext context) { TreeElement first = null; TreeElement last = null; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/NamedObjectProviderBinding.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/NamedObjectProviderBinding.java index a29fffaa4a7b..65ce61bc86a4 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/NamedObjectProviderBinding.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/NamedObjectProviderBinding.java @@ -56,6 +56,7 @@ public abstract class NamedObjectProviderBinding implements ProviderBi } } + @Override public void addAcceptableReferenceProviders(@NotNull PsiElement position, @NotNull List list, PsiReferenceService.Hints hints) { String name = getName(position); @@ -65,6 +66,7 @@ public abstract class NamedObjectProviderBinding implements ProviderBi } } + @Override public void unregisterProvider(final Provider provider) { for (final CopyOnWriteArrayList> list : myNamesToProvidersMap.values()) { for (final Trinity trinity : new ArrayList>(list)) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceContributorEP.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceContributorEP.java index 94f91b6f73d6..d472a53a3682 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceContributorEP.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceContributorEP.java @@ -36,6 +36,7 @@ public class PsiReferenceContributorEP extends CustomLoadingExtensionPointBean i public String implementationClass; private final NotNullLazyValue myHandler = new NotNullLazyValue() { + @Override @NotNull protected PsiReferenceContributor compute() { try { @@ -47,10 +48,12 @@ public class PsiReferenceContributorEP extends CustomLoadingExtensionPointBean i } }; + @Override public PsiReferenceContributor getInstance() { return myHandler.getValue(); } + @Override public String getKey() { return language; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceRegistrarImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceRegistrarImpl.java index 2708d916ce97..afd3d3fc7252 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceRegistrarImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/PsiReferenceRegistrarImpl.java @@ -74,6 +74,7 @@ public class PsiReferenceRegistrarImpl extends PsiReferenceRegistrar { registerReferenceProvider(PlatformPatterns.psiElement(scope).and(new FilterPattern(elementFilter)), provider, priority); } + @Override public void registerReferenceProvider(@NotNull ElementPattern pattern, @NotNull PsiReferenceProvider provider, double priority) { @@ -138,6 +139,7 @@ public class PsiReferenceRegistrarImpl extends PsiReferenceRegistrar { if (providerBinding == null) { providerBinding = ConcurrencyUtil.cacheOrGet(myNamedBindingsMap, scopeClass, new NamedObjectProviderBinding() { + @Override protected String getName(final PsiElement position) { return nameCondition.getPropertyValue(position); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/ReferenceProvidersRegistryImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/ReferenceProvidersRegistryImpl.java index 5d8e1195d259..6bb5e41f47a7 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/ReferenceProvidersRegistryImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/ReferenceProvidersRegistryImpl.java @@ -34,6 +34,7 @@ public class ReferenceProvidersRegistryImpl extends ReferenceProvidersRegistry { private static final Comparator> PRIORITY_COMPARATOR = new Comparator>() { + @Override public int compare(final Trinity o1, final Trinity o2) { return o2.getThird().compareTo(o1.getThird()); @@ -76,10 +77,12 @@ public class ReferenceProvidersRegistryImpl extends ReferenceProvidersRegistry { } }; + @Override public synchronized PsiReferenceRegistrarImpl getRegistrar(Language language) { return myRegistrars.get(language); } + @Override protected PsiReference[] doGetReferencesFromProviders(PsiElement context, PsiReferenceService.Hints hints) { List> providersForContextLanguage; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/SimpleProviderBinding.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/SimpleProviderBinding.java index fc4554b48ffc..6d8a18f13b9b 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/SimpleProviderBinding.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/SimpleProviderBinding.java @@ -43,6 +43,7 @@ public class SimpleProviderBinding implements ProviderBinding trinity:myProviderPairs) { @@ -66,6 +67,7 @@ public class SimpleProviderBinding implements ProviderBinding trinity : new ArrayList>(myProviderPairs)) { if (trinity.first.equals(provider)) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/CachingReference.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/CachingReference.java index a0e278224a6a..fa13dc446077 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/CachingReference.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/CachingReference.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable; * @author peter */ public abstract class CachingReference implements PsiReference, EmptyResolveMessageProvider { + @Override public PsiElement resolve(){ return ResolveCache.getInstance(getElement().getProject()).resolveWithCaching(this, MyResolver.INSTANCE, false, false); } @@ -34,10 +35,12 @@ public abstract class CachingReference implements PsiReference, EmptyResolveMess @Nullable public abstract PsiElement resolveInner(); + @Override public boolean isReferenceTo(final PsiElement element) { return getElement().getManager().areElementsEquivalent(resolve(), element); } + @Override public boolean isSoft(){ return false; } @@ -49,6 +52,7 @@ public abstract class CachingReference implements PsiReference, EmptyResolveMess private static class MyResolver implements ResolveCache.Resolver { private static final MyResolver INSTANCE = new MyResolver(); + @Override @Nullable public PsiElement resolve(PsiReference ref, boolean incompleteCode) { return ((CachingReference)ref).resolveInner(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PlainFileManipulator.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PlainFileManipulator.java index 14da8c7d36e2..d5646f683a7d 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PlainFileManipulator.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PlainFileManipulator.java @@ -32,6 +32,7 @@ import com.intellij.util.IncorrectOperationException; * To change this template use Options | File Templates. */ public class PlainFileManipulator extends AbstractElementManipulator { + @Override public PsiPlainTextFile handleContentChange(PsiPlainTextFile file, TextRange range, String newContent) throws IncorrectOperationException { final Document document = FileDocumentManager.getInstance().getDocument(file.getVirtualFile()); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java index 928e200552f5..e16a95c63ab0 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java @@ -29,6 +29,7 @@ import com.intellij.util.IncorrectOperationException; * @author peter */ public class PsiCommentManipulator extends AbstractElementManipulator { + @Override public PsiComment handleContentChange(PsiComment psiComment, TextRange range, String newContent) throws IncorrectOperationException { String oldText = psiComment.getText(); String newText = oldText.substring(0, range.getStartOffset()) + newContent + oldText.substring(range.getEndOffset()); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/CustomizingReferenceProvider.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/CustomizingReferenceProvider.java index ad10402686e8..43758457c270 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/CustomizingReferenceProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/CustomizingReferenceProvider.java @@ -44,6 +44,7 @@ public class CustomizingReferenceProvider extends PsiReferenceProvider implement myOptions.put(key,value); } + @Override @NotNull public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull final ProcessingContext context) { myProvider.setOptions(myOptions); @@ -52,10 +53,12 @@ public class CustomizingReferenceProvider extends PsiReferenceProvider implement return referencesByElement; } + @Override public void setOptions(@Nullable Map options) { myOptions = options; // merge ? } + @Override @Nullable public Map getOptions() { return myOptions; diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileInfoManager.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileInfoManager.java index 26e27a5b2c8f..dba08af5c4eb 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileInfoManager.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileInfoManager.java @@ -104,6 +104,7 @@ public class FileInfoManager implements Disposable { return builder; } + @Override public void dispose() { myFileType2InfoProvider.clear(); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReference.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReference.java index e2cec868744c..2960d58399aa 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReference.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReference.java @@ -79,6 +79,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc }; private static final TObjectHashingStrategy VARIANTS_HASHING_STRATEGY = new TObjectHashingStrategy() { + @Override public int computeHashCode(final PsiElement object) { if (object instanceof PsiNamedElement) { final String name = ((PsiNamedElement)object).getName(); @@ -89,6 +90,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return object.hashCode(); } + @Override public boolean equals(final PsiElement o1, final PsiElement o2) { if (o1 instanceof PsiNamedElement && o2 instanceof PsiNamedElement) { return Comparing.equal(((PsiNamedElement)o1).getName(), ((PsiNamedElement)o2).getName()); @@ -129,6 +131,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return result; } + @Override @NotNull public ResolveResult[] multiResolve(final boolean incompleteCode) { return ResolveCache.getInstance(getElement().getProject()).resolveWithCaching(this, MyResolver.INSTANCE, false, false); @@ -197,10 +200,12 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc } else { processVariants(context, new PsiFileSystemItemProcessor() { + @Override public boolean acceptItem(String name, boolean isDirectory) { return caseSensitive ? decoded.equals(name) : decoded.compareToIgnoreCase(name) == 0; } + @Override public boolean execute(@NotNull PsiFileSystemItem element) { result.add(new PsiElementResolveResult(getOriginalFile(element))); return true; @@ -243,6 +248,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return _text; } + @Override @NotNull public Object[] getVariants() { final String s = getText(); @@ -252,6 +258,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc final CommonProcessors.CollectUniquesProcessor collector = new CommonProcessors.CollectUniquesProcessor(); final PsiElementProcessor processor = new PsiElementProcessor() { + @Override public boolean execute(@NotNull PsiFileSystemItem fileSystemItem) { return new FilteringProcessor(myFileReferenceSet.getReferenceCompletionFilter(), collector).process(getOriginalFile(fileSystemItem)); } @@ -334,10 +341,12 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return myIndex > 0 ? myFileReferenceSet.getReference(myIndex - 1) : null; } + @Override public PsiElement getElement() { return myFileReferenceSet.getElement(); } + @Override public PsiFileSystemItem resolve() { ResolveResult[] resolveResults = multiResolve(false); return resolveResults.length == 1 ? (PsiFileSystemItem)resolveResults[0].getElement() : null; @@ -349,6 +358,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return resolveResults.length == 1 ? (PsiFileSystemItem)resolveResults[0].getElement() : null; } + @Override public boolean isReferenceTo(PsiElement element) { if (!(element instanceof PsiFileSystemItem)) return false; @@ -356,10 +366,12 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return item != null && FileReferenceHelperRegistrar.areElementsEquivalent(item, (PsiFileSystemItem)element); } + @Override public TextRange getRangeInElement() { return myRange; } + @Override @NotNull public String getCanonicalText() { return myText; @@ -369,10 +381,12 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return myText; } + @Override public boolean isSoft() { return myFileReferenceSet.isSoft(); } + @Override public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { final ElementManipulator manipulator = CachingReference.getManipulator(getElement()); if (manipulator != null) { @@ -500,6 +514,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc } /* Happens when it's been moved to another folder */ + @Override public PsiElement bindToElement(@NotNull final PsiElement element) throws IncorrectOperationException { return bindToElement(element, myFileReferenceSet.isAbsolutePathReference()); } @@ -513,6 +528,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return manipulator.handleContentChange(getElement(), range, newName); } + @Override public void registerQuickfix(HighlightInfo info, FileReference reference) { for (final FileReferenceHelper helper : getHelpers()) { helper.registerFixes(info, reference); @@ -527,6 +543,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return myIndex; } + @Override public String getUnresolvedMessagePattern() { return LangBundle.message("error.cannot.resolve") + " " + (isLast() ? LangBundle.message("terms.file") : LangBundle.message("terms.directory")) @@ -542,6 +559,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return myFileReferenceSet; } + @Override public LocalQuickFix[] getQuickFixes() { final List result = new ArrayList(); for (final FileReferenceHelper helper : getHelpers()) { @@ -550,6 +568,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc return result.toArray(new LocalQuickFix[result.size()]); } + @Override public FileReference getLastFileReference() { return myFileReferenceSet.getLastReference(); } @@ -557,6 +576,7 @@ public class FileReference implements FileReferenceOwner, PsiPolyVariantReferenc static class MyResolver implements ResolveCache.PolyVariantResolver { static final MyResolver INSTANCE = new MyResolver(); + @Override public ResolveResult[] resolve(FileReference ref, boolean incompleteCode) { return ref.innerResolve(ref.getFileReferenceSet().isCaseSensitive()); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceCharFilter.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceCharFilter.java index b4de601a0a3f..c1c152f3f326 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceCharFilter.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceCharFilter.java @@ -27,6 +27,7 @@ import com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference; * @author peter */ public class FileReferenceCharFilter extends CharFilter{ + @Override public Result acceptChar(char c, int prefixLength, Lookup lookup) { final PsiFile file = lookup.getPsiFile(); if (file == null) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceHelperRegistrar.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceHelperRegistrar.java index 613ee02c8ffb..6e13d61ee286 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceHelperRegistrar.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceHelperRegistrar.java @@ -57,6 +57,7 @@ public class FileReferenceHelperRegistrar { if (file == null) return null; final Project project = psiFileSystemItem.getProject(); return ContainerUtil.find(getHelpers(), new Condition() { + @Override public boolean value(final FileReferenceHelper fileReferenceHelper) { return fileReferenceHelper.isMine(project, file); } @@ -71,6 +72,7 @@ public class FileReferenceHelperRegistrar { public static final NullFileReferenceHelper INSTANCE = new NullFileReferenceHelper(); + @Override public PsiFileSystemItem findRoot(final Project project, @NotNull final VirtualFile file) { final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex(); VirtualFile contentRootForFile = index.getContentRootForFile(file); @@ -78,15 +80,18 @@ public class FileReferenceHelperRegistrar { return contentRootForFile != null ? PsiManager.getInstance(project).findDirectory(contentRootForFile) : null; } + @Override @NotNull public Collection getRoots(@NotNull final Module module) { return ContainerUtil.map(ModuleRootManager.getInstance(module).getContentRoots(), new Function() { + @Override public PsiFileSystemItem fun(VirtualFile virtualFile) { return PsiManager.getInstance(module.getProject()).findDirectory(virtualFile); } }); } + @Override @NotNull public Collection getContexts(final Project project, final @NotNull VirtualFile file) { final PsiFileSystemItem item = getPsiFileSystemItem(project, file); @@ -99,6 +104,7 @@ public class FileReferenceHelperRegistrar { return Collections.emptyList(); } + @Override public boolean isMine(final Project project, final @NotNull VirtualFile file) { return ProjectRootManager.getInstance(project).getFileIndex().isInContent(file); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceSet.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceSet.java index 654200cbc9e9..12ebbbade27a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceSet.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FileReferenceSet.java @@ -44,6 +44,7 @@ public class FileReferenceSet { public static final CustomizableReferenceProvider.CustomizationKey>> DEFAULT_PATH_EVALUATOR_OPTION = new CustomizableReferenceProvider.CustomizationKey>>(PsiBundle.message("default.path.evaluator.option")); public static final Function> ABSOLUTE_TOP_LEVEL = new Function>() { + @Override @Nullable public Collection fun(final PsiFile file) { return getAbsoluteTopLevelDirLocations(file); @@ -51,12 +52,14 @@ public class FileReferenceSet { }; public static final Condition FILE_FILTER = new Condition() { + @Override public boolean value(final PsiFileSystemItem item) { return item instanceof PsiFile; } }; public static final Condition DIRECTORY_FILTER = new Condition() { + @Override public boolean value(final PsiFileSystemItem item) { return item instanceof PsiDirectory; } @@ -126,10 +129,12 @@ public class FileReferenceSet { } return new FileReferenceSet(text, element, offset, null, true, endingSlashNotAllowed) { + @Override protected boolean isUrlEncoded() { return urlEncoded; } + @Override protected boolean isSoft() { return soft; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JarFileReferenceHelper.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JarFileReferenceHelper.java index fdbe76b19c06..67bc8569606a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JarFileReferenceHelper.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/JarFileReferenceHelper.java @@ -31,24 +31,29 @@ import java.util.Collections; */ public class JarFileReferenceHelper extends FileReferenceHelper { + @Override public PsiFileSystemItem getPsiFileSystemItem(Project project, @NotNull VirtualFile file) { return null; } + @Override public PsiFileSystemItem findRoot(Project project, @NotNull VirtualFile file) { return null; } + @Override @NotNull public Collection getRoots(@NotNull Module module) { return PsiFileReferenceHelper.getContextsForModule(module, "", null); } + @Override @NotNull public Collection getContexts(Project project, @NotNull VirtualFile file) { return Collections.emptyList(); } + @Override public boolean isMine(Project project, @NotNull VirtualFile file) { return ProjectRootManager.getInstance(project).getFileIndex().isInLibraryClasses(file); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiFileReferenceHelper.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiFileReferenceHelper.java index 46a61c1229b7..fb8b400ebbcf 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiFileReferenceHelper.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/PsiFileReferenceHelper.java @@ -38,10 +38,12 @@ import java.util.*; */ public class PsiFileReferenceHelper extends FileReferenceHelper { + @Override public List registerFixes(HighlightInfo info, FileReference reference) { return FileReferenceQuickFixProvider.registerQuickFix(info, reference); } + @Override public PsiFileSystemItem findRoot(final Project project, @NotNull final VirtualFile file) { final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex(); VirtualFile contentRootForFile = index.getSourceRootForFile(file); @@ -53,11 +55,13 @@ public class PsiFileReferenceHelper extends FileReferenceHelper { return null; } + @Override @NotNull public Collection getRoots(@NotNull final Module module) { return getContextsForModule(module, "", module.getModuleWithDependenciesScope()); } + @Override @NotNull public Collection getContexts(final Project project, @NotNull final VirtualFile file) { final PsiFileSystemItem item = getPsiFileSystemItem(project, file); @@ -102,11 +106,13 @@ public class PsiFileReferenceHelper extends FileReferenceHelper { return Collections.emptyList(); } + @Override public boolean isMine(final Project project, @NotNull final VirtualFile file) { final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex(); return index.isInSourceContent(file); } + @Override @NotNull public String trimUrl(@NotNull String url) { return url.trim(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/OwnBufferLeafPsiElement.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/OwnBufferLeafPsiElement.java index 8fc5dab72f04..653a4f418aad 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/OwnBufferLeafPsiElement.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/OwnBufferLeafPsiElement.java @@ -39,100 +39,123 @@ public class OwnBufferLeafPsiElement extends LeafElement implements PsiElement { super(type, text); } + @Override @NotNull public PsiElement[] getChildren() { return PsiElement.EMPTY_ARRAY; } + @Override public PsiElement getFirstChild() { return null; } + @Override public PsiElement getLastChild() { return null; } + @Override public void acceptChildren(@NotNull PsiElementVisitor visitor) { } + @Override public PsiElement getParent() { return SharedImplUtil.getParent(this); } + @Override public PsiElement getNextSibling() { return SharedImplUtil.getNextSibling(this); } + @Override public PsiElement getPrevSibling() { return SharedImplUtil.getPrevSibling(this); } + @Override public PsiFile getContainingFile() { PsiFile file = SharedImplUtil.getContainingFile(this); if (file == null || !file.isValid()) throw new PsiInvalidElementAccessException(this); return file; } + @Override public PsiElement findElementAt(int offset) { return this; } + @Override public PsiReference findReferenceAt(int offset) { return SharedPsiElementImplUtil.findReferenceAt(this, offset); } + @Override public PsiElement copy() { ASTNode elementCopy = copyElement(); return SourceTreeToPsiMap.treeElementToPsi(elementCopy); } + @Override public boolean isValid() { return SharedImplUtil.isValid(this); } + @Override public boolean isWritable() { return SharedImplUtil.isWritable(this); } + @Override public PsiReference getReference() { return null; } + @Override @NotNull public PsiReference[] getReferences() { return SharedPsiElementImplUtil.getReferences(this); } + @Override public PsiElement add(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addBefore(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addAfter(@NotNull PsiElement element, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void checkAdd(@NotNull PsiElement element) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRangeBefore(@NotNull PsiElement first, @NotNull PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement addRangeAfter(PsiElement first, PsiElement last, PsiElement anchor) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public void delete() throws IncorrectOperationException { LOG.assertTrue(getTreeParent() != null); CheckUtil.checkWritable(this); @@ -140,14 +163,17 @@ public class OwnBufferLeafPsiElement extends LeafElement implements PsiElement { this.invalidate(); } + @Override public void checkDelete() throws IncorrectOperationException { CheckUtil.checkWritable(this); } + @Override public void deleteChildRange(PsiElement first, PsiElement last) throws IncorrectOperationException { throw new IncorrectOperationException(); } + @Override public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException { LOG.assertTrue(getTreeParent() != null); CheckUtil.checkWritable(this); @@ -164,10 +190,12 @@ public class OwnBufferLeafPsiElement extends LeafElement implements PsiElement { return "PsiElement" + "(" + getElementType().toString() + ")"; } + @Override public void accept(@NotNull PsiElementVisitor visitor) { visitor.visitElement(this); } + @Override public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @@ -175,33 +203,40 @@ public class OwnBufferLeafPsiElement extends LeafElement implements PsiElement { return true; } + @Override public PsiElement getContext() { return getParent(); } + @Override public PsiElement getNavigationElement() { return this; } + @Override public PsiElement getOriginalElement() { return this; } + @Override public boolean isPhysical() { PsiFile file = getContainingFile(); return file != null && file.isPhysical(); } + @Override @NotNull public GlobalSearchScope getResolveScope() { return ResolveScopeManager.getElementResolveScope(this); } + @Override @NotNull public SearchScope getUseScope() { return ResolveScopeManager.getElementUseScope(this); } + @Override @NotNull public Project getProject() { final PsiManager manager = getManager(); @@ -210,19 +245,23 @@ public class OwnBufferLeafPsiElement extends LeafElement implements PsiElement { return manager.getProject(); } + @Override @NotNull public Language getLanguage() { return getElementType().getLanguage(); } + @Override public ASTNode getNode() { return this; } + @Override public PsiElement getPsi() { return this; } + @Override public boolean isEquivalentTo(final PsiElement another) { return this == another; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PlainTextASTFactory.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PlainTextASTFactory.java index 9c385cfe10ff..ac2350550de7 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PlainTextASTFactory.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PlainTextASTFactory.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; public class PlainTextASTFactory extends ASTFactory { + @Override @Nullable public LeafElement createLeaf(final IElementType type, CharSequence text) { if (type == PlainTextTokenTypes.PLAIN_TEXT) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiCommentImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiCommentImpl.java index 01ecc78bf08f..d91cf7a37333 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiCommentImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiCommentImpl.java @@ -27,10 +27,12 @@ public class PsiCommentImpl extends LeafPsiElement implements PsiComment, PsiLan super(type, text); } + @Override public IElementType getTokenType() { return getElementType(); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ visitor.visitComment(this); } @@ -44,15 +46,18 @@ public class PsiCommentImpl extends LeafPsiElement implements PsiComment, PsiLan return true; } + @Override public PsiLanguageInjectionHost updateText(@NotNull final String text) { return (PsiCommentImpl)replaceWithText(text); } + @Override @NotNull public PsiReference[] getReferences() { return ReferenceProvidersRegistry.getReferencesFromProviders(this, PsiComment.class); } + @Override @NotNull public LiteralTextEscaper createLiteralTextEscaper() { return new CommentLiteralEscaper(this); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiPlainTextImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiPlainTextImpl.java index d939365f5db5..4bb8c6214cd6 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiPlainTextImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/PsiPlainTextImpl.java @@ -26,6 +26,7 @@ public class PsiPlainTextImpl extends OwnBufferLeafPsiElement implements PsiPlai super(PlainTextTokenTypes.PLAIN_TEXT, text); } + @Override public void accept(@NotNull PsiElementVisitor visitor){ visitor.visitPlainText(this); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/CommentLiteralEscaper.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/CommentLiteralEscaper.java index e9ae8835bace..c6399e30b5f6 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/CommentLiteralEscaper.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/CommentLiteralEscaper.java @@ -33,12 +33,14 @@ public class CommentLiteralEscaper extends LiteralTextEscaper { super(host); } + @Override public boolean decode(@NotNull final TextRange rangeInsideHost, @NotNull StringBuilder outChars) { ProperTextRange.assertProperRange(rangeInsideHost); outChars.append(myHost.getText(), rangeInsideHost.getStartOffset(), rangeInsideHost.getEndOffset()); return true; } + @Override public int getOffsetInHost(int offsetInDecoded, @NotNull final TextRange rangeInsideHost) { int offset = offsetInDecoded + rangeInsideHost.getStartOffset(); if (offset < rangeInsideHost.getStartOffset()) offset = rangeInsideHost.getStartOffset(); @@ -46,6 +48,7 @@ public class CommentLiteralEscaper extends LiteralTextEscaper { return offset; } + @Override public boolean isOneLine() { final Commenter commenter = LanguageCommenters.INSTANCE.forLanguage(myHost.getLanguage()); if (commenter instanceof CodeDocumentationAwareCommenter) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedFileViewProvider.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedFileViewProvider.java index 01fb429218c7..c45d0534f7d8 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedFileViewProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedFileViewProvider.java @@ -63,6 +63,7 @@ public class InjectedFileViewProvider extends SingleRootFileViewProvider impleme } } + @Override public void rootChanged(PsiFile psiFile) { super.rootChanged(psiFile); if (!isPhysical()) return; // injected PSI change happened inside reparse; ignore @@ -88,6 +89,7 @@ public class InjectedFileViewProvider extends SingleRootFileViewProvider impleme } } + @Override public FileViewProvider clone() { final DocumentWindow oldDocumentWindow = ((VirtualFileWindow)getVirtualFile()).getDocumentWindow(); Document hostDocument = oldDocumentWindow.getDelegate(); @@ -100,6 +102,7 @@ public class InjectedFileViewProvider extends SingleRootFileViewProvider impleme assert elementCopy != null; final Ref provider = new Ref(); InjectedLanguageUtil.enumerate(elementCopy, hostPsiFileCopy, true, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { Document document = documentManager.getCachedDocument(injectedPsi); if (document instanceof DocumentWindowImpl && oldDocumentWindow.areRangesEqual((DocumentWindowImpl)document)) { @@ -110,6 +113,7 @@ public class InjectedFileViewProvider extends SingleRootFileViewProvider impleme return provider.get(); } + @Override @Nullable protected PsiFile getPsiInner(Language target) { // when FileManager rebuilds file map, all files temporarily become invalid, so this check is doomed diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageManagerImpl.java index 24eafd199640..8634e1c2a2ba 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageManagerImpl.java @@ -77,19 +77,23 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme final ExtensionPoint multiPoint = Extensions.getArea(project).getExtensionPoint(MultiHostInjector.MULTIHOST_INJECTOR_EP_NAME); multiPoint.addExtensionPointListener(new ExtensionPointListener() { + @Override public void extensionAdded(@NotNull MultiHostInjector injector, @Nullable PluginDescriptor pluginDescriptor) { registerMultiHostInjector(injector); } + @Override public void extensionRemoved(@NotNull MultiHostInjector injector, @Nullable PluginDescriptor pluginDescriptor) { unregisterMultiHostInjector(injector); } },this); final ExtensionPointListener myListener = new ExtensionPointListener() { + @Override public void extensionAdded(@NotNull LanguageInjector extension, @Nullable PluginDescriptor pluginDescriptor) { psiManagerInjectorsChanged(); } + @Override public void extensionRemoved(@NotNull LanguageInjector extension, @Nullable PluginDescriptor pluginDescriptor) { psiManagerInjectorsChanged(); } @@ -140,6 +144,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme final DocumentWindow[] stillInjectedDocument = {null}; // it is here where the reparse happens and old file contents replaced InjectedLanguageUtil.enumerate(element, hostPsiFile, true, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { stillInjectedDocument[0] = (DocumentWindow)injectedPsi.getViewProvider().getDocument(); PsiDocumentManagerImpl.checkConsistency(injectedPsi, stillInjectedDocument[0]); @@ -178,6 +183,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme @Override public void run() { ApplicationManagerEx.getApplicationEx().tryRunReadAction(new Runnable() { + @Override public void run() { commitRunnable.compute(); } @@ -204,6 +210,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme } } + @Override public PsiLanguageInjectionHost getInjectionHost(@NotNull PsiElement element) { final PsiFile file = element.getContainingFile(); final VirtualFile virtualFile = file == null ? null : file.getVirtualFile(); @@ -216,6 +223,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme return null; } + @Override @NotNull public TextRange injectedToHost(@NotNull PsiElement injectedContext, @NotNull TextRange injectedTextRange) { ProperTextRange.assertProperRange(injectedTextRange); @@ -226,6 +234,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme DocumentWindowImpl documentWindow = (DocumentWindowImpl)document; return documentWindow.injectedToHost(injectedTextRange); } + @Override public int injectedToHost(@NotNull PsiElement element, int offset) { PsiFile file = element.getContainingFile(); if (file == null) return offset; @@ -238,6 +247,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme private final ConcurrentMap injectors = new ConcurrentHashMap(); private final ClassMapCachingNulls cachedInjectors = new ClassMapCachingNulls(injectors, new MultiHostInjector[0]); + @Override public void registerMultiHostInjector(@NotNull MultiHostInjector injector) { for (Class place : injector.elementsToInjectIn()) { LOG.assertTrue(place != null, injector); @@ -255,6 +265,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme cachedInjectors.clearCache(); } + @Override public boolean unregisterMultiHostInjector(@NotNull MultiHostInjector injector) { boolean removed = false; Iterator> iterator = injectors.entrySet().iterator(); @@ -279,6 +290,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme static final Key UNESCAPED_TEXT = Key.create("INJECTED_UNESCAPED_TEXT"); + @Override public String getUnescapedText(@NotNull final PsiElement injectedNode) { final StringBuilder text = new StringBuilder(injectedNode.getTextLength()); // gather text from (patched) leaves @@ -305,6 +317,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme * @param rangeToEdit range in encoded(raw) PSI * @return list of ranges in encoded (raw) PSI */ + @Override @SuppressWarnings({"ConstantConditions", "unchecked"}) @NotNull public List intersectWithAllEditableFragments(@NotNull PsiFile injectedPsi, @NotNull TextRange rangeToEdit) { @@ -349,6 +362,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme return count == 0 ? Collections.emptyList() : count == 1 ? Collections.singletonList((TextRange)result) : (List)result; } + @Override public boolean isInjectedFragment(final PsiFile file) { return file.getViewProvider() instanceof InjectedFileViewProvider; } @@ -411,9 +425,11 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme } private static class PsiManagerRegisteredInjectorsAdapter implements MultiHostInjector { + @Override public void getLanguagesToInject(@NotNull final MultiHostRegistrar injectionPlacesRegistrar, @NotNull PsiElement context) { final PsiLanguageInjectionHost host = (PsiLanguageInjectionHost)context; InjectedLanguagePlaces placesRegistrar = new InjectedLanguagePlaces() { + @Override public void addPlace(@NotNull Language language, @NotNull TextRange rangeInsideHost, @NonNls @Nullable String prefix, @NonNls @Nullable String suffix) { ProperTextRange.assertProperRange(rangeInsideHost); injectionPlacesRegistrar @@ -427,6 +443,7 @@ public class InjectedLanguageManagerImpl extends InjectedLanguageManager impleme } } + @Override @NotNull public List> elementsToInjectIn() { return Arrays.asList(PsiLanguageInjectionHost.class); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageUtil.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageUtil.java index 0c39c169fcb3..f9341ed02c3c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageUtil.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedLanguageUtil.java @@ -52,6 +52,7 @@ public class InjectedLanguageUtil { public static void forceInjectionOnElement(@NotNull PsiElement host) { enumerate(host, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { } }); @@ -83,6 +84,7 @@ public class InjectedLanguageUtil { final PsiElement inTree = loadTree(host, host.getContainingFile()); final List> result = new SmartList>(); enumerate(inTree, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { for (PsiLanguageInjectionHost.Shred place : places) { if (place.host == inTree) { @@ -297,6 +299,7 @@ public class InjectedLanguageUtil { private static PsiElement findInside(@NotNull PsiElement element, @NotNull PsiFile hostFile, final int hostOffset, @NotNull final PsiDocumentManager documentManager) { final Ref out = new Ref(); enumerate(element, hostFile, true, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { for (PsiLanguageInjectionHost.Shred place : places) { TextRange hostRange = place.host.getTextRange(); @@ -347,6 +350,7 @@ public class InjectedLanguageUtil { final DocumentWindow[] stillInjectedDocument = {null}; // it is here where the reparse happens and old file contents replaced enumerate(element, hostPsiFile, true, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull PsiFile injectedPsi, @NotNull List places) { stillInjectedDocument[0] = (DocumentWindow)injectedPsi.getViewProvider().getDocument(); PsiDocumentManagerImpl.checkConsistency(injectedPsi, stillInjectedDocument[0]); @@ -466,6 +470,7 @@ public class InjectedLanguageUtil { if (!host.isPhysical()) return false; final Ref result = Ref.create(false); enumerate(host, new PsiLanguageInjectionHost.InjectedPsiVisitor() { + @Override public void visit(@NotNull final PsiFile injectedPsi, @NotNull final List places) { result.set(true); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedPsiCachedValueProvider.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedPsiCachedValueProvider.java index e36d1e23ea34..9f61eb734d0e 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedPsiCachedValueProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/InjectedPsiCachedValueProvider.java @@ -32,6 +32,7 @@ import org.jetbrains.annotations.Nullable; * @author cdr */ class InjectedPsiCachedValueProvider implements ParameterizedCachedValueProvider { + @Override public CachedValueProvider.Result compute(PsiElement element) { PsiFile hostPsiFile = element.getContainingFile(); if (hostPsiFile == null) return null; @@ -66,6 +67,7 @@ class InjectedPsiCachedValueProvider implements ParameterizedCachedValueProvider myHostPsiFile = hostPsiFile; } + @Override public boolean process(PsiElement element, MultiHostInjector injector) { if (hostRegistrar == null) { hostRegistrar = new MultiHostRegistrarImpl(myProject, myHostPsiFile, element); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/MultiHostRegistrarImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/MultiHostRegistrarImpl.java index a6807878dcef..e7b15846f6ca 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/MultiHostRegistrarImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/tree/injected/MultiHostRegistrarImpl.java @@ -105,6 +105,7 @@ public class MultiHostRegistrarImpl implements MultiHostRegistrar { return myContextElement; } + @Override @NotNull public MultiHostRegistrar startInjecting(@NotNull Language language) { escapers = new SmartList>(); @@ -138,6 +139,7 @@ public class MultiHostRegistrarImpl implements MultiHostRegistrar { cleared = true; } + @Override @NotNull public MultiHostRegistrar addPlace(@NonNls @Nullable String prefix, @NonNls @Nullable String suffix, @@ -191,6 +193,7 @@ public class MultiHostRegistrarImpl implements MultiHostRegistrar { return this; } + @Override public void doneInjecting() { try { if (shreds.isEmpty()) { @@ -419,6 +422,7 @@ public class MultiHostRegistrarImpl implements MultiHostRegistrar { assert shreds.isValid(); oldViewProvider.performNonPhysically(new Runnable() { + @Override public void run() { //todo final DiffLog diffLog = BlockSupportImpl.mergeTrees(oldFile, oldFileNode, injectedNode, new DaemonProgressIndicator()); diff --git a/platform/lang-impl/src/com/intellij/psi/scope/processor/FilterElementProcessor.java b/platform/lang-impl/src/com/intellij/psi/scope/processor/FilterElementProcessor.java index 49bb23831998..f6dbb605e599 100644 --- a/platform/lang-impl/src/com/intellij/psi/scope/processor/FilterElementProcessor.java +++ b/platform/lang-impl/src/com/intellij/psi/scope/processor/FilterElementProcessor.java @@ -56,6 +56,7 @@ public class FilterElementProcessor implements PsiElementProcessor{ this(filter, null, new ArrayList()); } + @Override public boolean execute(@NotNull PsiElement element){ if(myFilter.isClassAcceptable(element.getClass()) && myFilter.isAcceptable(element, element.getParent())){ if(myProcessor != null){ diff --git a/platform/lang-impl/src/com/intellij/psi/search/FilenameIndex.java b/platform/lang-impl/src/com/intellij/psi/search/FilenameIndex.java index 96a70271c728..1ed9076cf70c 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/FilenameIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/search/FilenameIndex.java @@ -39,26 +39,32 @@ public class FilenameIndex extends ScalarIndexExtension { private final MyInputFilter myInputFilter = new MyInputFilter(); private final EnumeratorStringDescriptor myKeyDescriptor = new EnumeratorStringDescriptor(); + @Override public ID getName() { return NAME; } + @Override public DataIndexer getIndexer() { return myDataIndexer; } + @Override public KeyDescriptor getKeyDescriptor() { return myKeyDescriptor; } + @Override public FileBasedIndex.InputFilter getInputFilter() { return myInputFilter; } + @Override public boolean dependsOnFileContent() { return false; } + @Override public int getVersion() { return 0; } @@ -87,6 +93,7 @@ public class FilenameIndex extends ScalarIndexExtension { } private static class MyDataIndexer implements DataIndexer { + @Override @NotNull public Map map(final FileContent inputData) { return Collections.singletonMap(inputData.getFileName(), null); @@ -94,6 +101,7 @@ public class FilenameIndex extends ScalarIndexExtension { } private static class MyInputFilter implements FileBasedIndex.InputFilter { + @Override public boolean acceptInput(final VirtualFile file) { return true; } diff --git a/platform/lang-impl/src/com/intellij/psi/search/ProjectScopeBuilderImpl.java b/platform/lang-impl/src/com/intellij/psi/search/ProjectScopeBuilderImpl.java index 3e4acc6675ae..5369e9b9444c 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/ProjectScopeBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/search/ProjectScopeBuilderImpl.java @@ -59,6 +59,7 @@ public class ProjectScopeBuilderImpl extends ProjectScopeBuilder { final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(myProject); if (projectRootManager == null) { return new EverythingGlobalScope(myProject) { + @Override public boolean isSearchInLibraries() { return false; } diff --git a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/FilePackageSetParserExtension.java b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/FilePackageSetParserExtension.java index 3d1d76512f87..76a8887d309a 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/FilePackageSetParserExtension.java +++ b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/FilePackageSetParserExtension.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable; public class FilePackageSetParserExtension implements PackageSetParserExtension { + @Override @Nullable public String parseScope(Lexer lexer) { if (lexer.getTokenType() != ScopeTokenTypes.IDENTIFIER) return null; @@ -48,6 +49,7 @@ public class FilePackageSetParserExtension implements PackageSetParserExtension return null; } + @Override @Nullable public PackageSet parsePackageSet(final Lexer lexer, final String scope, final String modulePattern) throws ParsingException { if (scope != FilePatternPackageSet.SCOPE_FILE) return null; diff --git a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/PackageSetFactoryImpl.java b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/PackageSetFactoryImpl.java index 3ecaea6e0d90..8f52b76f7ad3 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/PackageSetFactoryImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/PackageSetFactoryImpl.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable; public class PackageSetFactoryImpl extends PackageSetFactory { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.search.scope.packageSet.PackageSetFactoryImpl"); + @Override public PackageSet compile(String text) throws ParsingException { Lexer lexer = new ScopesLexer(); lexer.start(text); diff --git a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java index a1b21a9bc84b..92a2ec839142 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java +++ b/platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.java @@ -346,14 +346,17 @@ class _ScopesLexer implements FlexLexer { return map; } + @Override public final int getTokenStart(){ return zzStartRead; } + @Override public final int getTokenEnd(){ return getTokenStart() + yylength(); } + @Override public void reset(CharSequence buffer, int start, int end,int initialState){ zzBuffer = buffer; zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer); @@ -380,6 +383,7 @@ class _ScopesLexer implements FlexLexer { /** * Returns the current lexical state. */ + @Override public final int yystate() { return zzLexicalState; } @@ -390,6 +394,7 @@ class _ScopesLexer implements FlexLexer { * * @param newState the new lexical state */ + @Override public final void yybegin(int newState) { zzLexicalState = newState; } @@ -489,6 +494,7 @@ class _ScopesLexer implements FlexLexer { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ + @Override public IElementType advance() throws java.io.IOException { int zzInput; int zzAction; diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java index b74449e24e34..6198787963d1 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubIndexImpl.java @@ -132,6 +132,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe } private static class StubIdExternalizer implements DataExternalizer { + @Override public void save(final DataOutput out, final TIntArrayList value) throws IOException { int size = value.size(); if (size == 0) { @@ -148,6 +149,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe } } + @Override public TIntArrayList read(final DataInput in) throws IOException { int size = DataInputOutputUtil.readSINT(in); if (size == Integer.MAX_VALUE) { @@ -168,6 +170,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe } } + @Override public Collection get(@NotNull final StubIndexKey indexKey, @NotNull final Key key, final Project project, final GlobalSearchScope scope) { FileBasedIndex.getInstance().ensureUpToDate(StubUpdatingIndex.INDEX_ID, project, scope); @@ -186,6 +189,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe final ValueContainer container = index.getData(key); container.forEach(new ValueContainer.ContainerAction() { + @Override public void perform(final int id, final TIntArrayList value) { final VirtualFile file = IndexInfrastructure.findFileByIdIfCached(fs, id); if (file != null && (scope == null || scope.contains(file))) { @@ -238,6 +242,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe // requestReindex() may want to acquire write lock (for indices not requiring content loading) // thus, because here we are under read lock, need to use invoke later ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { FileBasedIndex.getInstance().requestReindex(file); } @@ -297,6 +302,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe FileBasedIndex.requestRebuild(StubUpdatingIndex.INDEX_ID); } + @Override public Collection getAllKeys(final StubIndexKey indexKey, @NotNull Project project) { FileBasedIndex.getInstance().ensureUpToDate(StubUpdatingIndex.INDEX_ID, project, GlobalSearchScope.allScope(project)); @@ -317,14 +323,17 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe return Collections.emptyList(); } + @Override @NotNull public String getComponentName() { return "Stub.IndexManager"; } + @Override public void initComponent() { } + @Override public void disposeComponent() { // This index must be disposed only after StubUpdatingIndex is disposed // To ensure this, disposing is done explicitly from StubUpdatingIndex by calling dispose() method @@ -381,10 +390,12 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe } } + @Override public StubIndexState getState() { return new StubIndexState(myIndices.keySet()); } + @Override public void loadState(final StubIndexState state) { myPreviouslyRegistered = state; } @@ -406,6 +417,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe try { final MyIndex index = (MyIndex)myIndices.get(key); index.updateWithMap(fileId, newValues, new Callable>() { + @Override public Collection call() throws Exception { return oldValues.keySet(); } @@ -422,6 +434,7 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe super(null, null, storage); } + @Override public void updateWithMap(final int inputId, final Map newData, Callable> oldKeysGetter) throws StorageException { super.updateWithMap(inputId, newData, oldKeysGetter); } diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java index c77b278d1666..5545685a80a1 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java @@ -36,6 +36,7 @@ import java.util.List; public class StubTreeLoaderImpl extends StubTreeLoader { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.stubs.StubTreeLoaderImpl"); + @Override @Nullable public StubTree readOrBuild(Project project, final VirtualFile vFile) { final StubTree fromIndices = readFromVFile(project, vFile); @@ -62,6 +63,7 @@ public class StubTreeLoaderImpl extends StubTreeLoader { return null; } + @Override @Nullable public StubTree readFromVFile(Project project, final VirtualFile vFile) { if (DumbService.getInstance(project).isDumb()) { @@ -82,6 +84,7 @@ public class StubTreeLoaderImpl extends StubTreeLoader { LOG.error("Twin stubs: " + vFile.getPresentableUrl() + " has " + size + " stub versions. Should only have one. id=" + id); ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { final Document doc = FileDocumentManager.getInstance().getCachedDocument(vFile); if (doc != null) { diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java index 01b8c20fd996..678a97f6315a 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java @@ -51,16 +51,19 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi private static final int VERSION = 20; private static final DataExternalizer KEY_EXTERNALIZER = new DataExternalizer() { + @Override public void save(final DataOutput out, final SerializedStubTree v) throws IOException { v.write(out); } + @Override public SerializedStubTree read(final DataInput in) throws IOException { return new SerializedStubTree(in); } }; private static final FileBasedIndex.InputFilter INPUT_FILTER = new FileBasedIndex.InputFilter() { + @Override public boolean acceptInput(final VirtualFile file) { return canHaveStub(file); } @@ -94,21 +97,26 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi private static final KeyDescriptor DATA_DESCRIPTOR = new IntInlineKeyDescriptor(); + @Override public ID getName() { return INDEX_ID; } + @Override public int getCacheSize() { return 5; // no need to cache many serialized trees } + @Override public DataIndexer getIndexer() { return new DataIndexer() { + @Override @NotNull public Map map(final FileContent inputData) { final Map result = new HashMap(); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { final StubElement rootStub = StubTreeBuilder.buildStubTree(inputData); if (rootStub == null) return; @@ -126,22 +134,27 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi }; } + @Override public KeyDescriptor getKeyDescriptor() { return DATA_DESCRIPTOR; } + @Override public DataExternalizer getValueExternalizer() { return KEY_EXTERNALIZER; } + @Override public FileBasedIndex.InputFilter getInputFilter() { return INPUT_FILTER; } + @Override public boolean dependsOnFileContent() { return true; } + @Override public int getVersion() { return getCumulativeVersion(); } @@ -169,14 +182,17 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi return version; } + @Override public UpdatableIndex createIndexImplementation(final ID indexId, final FileBasedIndex owner, IndexStorage storage) { if (storage instanceof MemoryIndexStorage) { final MemoryIndexStorage memStorage = (MemoryIndexStorage)storage; memStorage.addBufferingStateListsner(new MemoryIndexStorage.BufferingStateListener() { + @Override public void bufferingStateChanged(final boolean newState) { ((StubIndexImpl)StubIndexImpl.getInstance()).setDataBufferingEnabled(newState); } + @Override public void memoryStorageCleared() { ((StubIndexImpl)StubIndexImpl.getInstance()).cleanupMemoryStorage(); } @@ -232,6 +248,7 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi } } + @Override protected void updateWithMap(final int inputId, final Map newData, Callable> oldKeysGetter) throws StorageException { @@ -329,6 +346,7 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi } } + @Override public void clear() throws StorageException { final StubIndexImpl stubIndex = StubIndexImpl.getInstanceOrInvalidate(); try { @@ -353,6 +371,7 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi } } + @Override public void dispose() { try { super.dispose(); diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/ChangeTemplateDataLanguageAction.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/ChangeTemplateDataLanguageAction.java index d9faa258f3b8..0c695c2cbc13 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/ChangeTemplateDataLanguageAction.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/ChangeTemplateDataLanguageAction.java @@ -29,6 +29,7 @@ import com.intellij.lang.LangBundle; * @author peter */ public class ChangeTemplateDataLanguageAction extends AnAction { + @Override public void update(final AnActionEvent e) { e.getPresentation().setVisible(false); @@ -53,6 +54,7 @@ public class ChangeTemplateDataLanguageAction extends AnAction { } + @Override public void actionPerformed(final AnActionEvent e) { Project project = e.getData(PlatformDataKeys.PROJECT); if (project == null) return; @@ -60,6 +62,7 @@ public class ChangeTemplateDataLanguageAction extends AnAction { final VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE); final TemplateDataLanguageConfigurable configurable = new TemplateDataLanguageConfigurable(project); ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() { + @Override public void run() { if (virtualFile != null) { configurable.selectFile(virtualFile); diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/OuterLanguageElementImpl.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/OuterLanguageElementImpl.java index fdaa43d9e99a..099e3655a9ee 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/OuterLanguageElementImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/OuterLanguageElementImpl.java @@ -28,6 +28,7 @@ public class OuterLanguageElementImpl extends LeafPsiElement implements OuterLan super(type, text); } + @Override public void accept(@NotNull final PsiElementVisitor visitor) { visitor.visitOuterLanguageElement(this); } diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTemplateLanguageFormattingModelBuilder.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTemplateLanguageFormattingModelBuilder.java index 891b0d42384c..919f63df02c4 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTemplateLanguageFormattingModelBuilder.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTemplateLanguageFormattingModelBuilder.java @@ -35,6 +35,7 @@ import java.util.List; * @author peter */ public class SimpleTemplateLanguageFormattingModelBuilder implements FormattingModelBuilder{ + @Override @NotNull public FormattingModel createModel(final PsiElement element, final CodeStyleSettings settings) { if (element instanceof PsiFile) { @@ -50,20 +51,24 @@ public class SimpleTemplateLanguageFormattingModelBuilder implements FormattingM final PsiFile file = element.getContainingFile(); return new DocumentBasedFormattingModel(new AbstractBlock(element.getNode(), Wrap.createWrap(WrapType.NONE, false), Alignment.createAlignment()) { + @Override protected List buildChildren() { return Collections.emptyList(); } + @Override public Spacing getSpacing(final Block child1, final Block child2) { return Spacing.getReadOnlySpacing(); } + @Override public boolean isLeaf() { return true; } }, element.getProject(), settings, file.getFileType(), file); } + @Override public TextRange getRangeAffectingIndent(final PsiFile file, final int offset, final ASTNode elementAtOffset) { return null; } diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTreePatcher.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTreePatcher.java index 06aff298ef4d..ac96953dbb7e 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTreePatcher.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/SimpleTreePatcher.java @@ -22,6 +22,7 @@ import com.intellij.psi.impl.source.tree.TreeElement; import com.intellij.util.CharTable; public class SimpleTreePatcher implements TreePatcher { + @Override public void insert(CompositeElement parent, TreeElement anchorBefore, OuterLanguageElement toInsert) { if(anchorBefore != null) { anchorBefore.rawInsertBeforeMe((TreeElement)toInsert); @@ -29,6 +30,7 @@ public class SimpleTreePatcher implements TreePatcher { else parent.rawAddChildren((TreeElement)toInsert); } + @Override public LeafElement split(LeafElement leaf, int offset, final CharTable table) { final CharSequence chars = leaf.getChars(); final LeafElement leftPart = ASTFactory.leaf(leaf.getElementType(), table.intern(chars, 0, offset)); diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java index 67c975e51b12..081e11efbb8c 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java @@ -38,19 +38,23 @@ public class TemplateBlackAndWhiteLexer extends Lexer { myOuterElementType = outerElementType; } + @Override public void start(final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { myBaseLexer.start(buffer, startOffset, endOffset, initialState); setupTemplateToken(); } + @Override public CharSequence getBufferSequence() { return myBaseLexer.getBufferSequence(); } + @Override public int getState() { return myBaseLexer.getState(); } + @Override @Nullable public IElementType getTokenType() { IElementType tokenType = myBaseLexer.getTokenType(); @@ -59,6 +63,7 @@ public class TemplateBlackAndWhiteLexer extends Lexer { return tokenType == myTemplateElementType ? myTemplateElementType : myOuterElementType; } + @Override public int getTokenStart() { IElementType tokenType = myBaseLexer.getTokenType(); if (tokenType == myTemplateElementType) { @@ -69,6 +74,7 @@ public class TemplateBlackAndWhiteLexer extends Lexer { } } + @Override public int getTokenEnd() { IElementType tokenType = myBaseLexer.getTokenType(); if (tokenType == myTemplateElementType) { @@ -79,6 +85,7 @@ public class TemplateBlackAndWhiteLexer extends Lexer { } } + @Override public void advance() { IElementType tokenType = myBaseLexer.getTokenType(); if (tokenType == myTemplateElementType) { @@ -113,6 +120,7 @@ public class TemplateBlackAndWhiteLexer extends Lexer { myBasePosition = jspPosition; } + @Override public int getOffset() { return Math.max(myBasePosition.getOffset(), myTemplatePosition.getOffset()); } @@ -125,15 +133,18 @@ public class TemplateBlackAndWhiteLexer extends Lexer { return myBasePosition; } + @Override public int getState() { throw new UnsupportedOperationException("Method getState is not yet implemented in " + getClass().getName()); } } + @Override public LexerPosition getCurrentPosition() { return new Position(myTemplateLexer.getCurrentPosition(), myBaseLexer.getCurrentPosition()); } + @Override public void restore(LexerPosition position) { final Position p = (Position)position; myBaseLexer.restore(p.getBasePosition()); @@ -146,6 +157,7 @@ public class TemplateBlackAndWhiteLexer extends Lexer { } } + @Override public int getBufferEnd() { return myBaseLexer.getBufferEnd(); } diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataElementType.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataElementType.java index 5a0428af3b14..5ab0e30232e2 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataElementType.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataElementType.java @@ -68,6 +68,7 @@ public class TemplateDataElementType extends IFileElementType implements ITempla return new TemplateFileType(language); } + @Override public ASTNode parseContents(ASTNode chameleon) { final CharTable table = SharedImplUtil.findCharTableByTree(chameleon); final FileElement treeElement = new DummyHolder(((TreeElement)chameleon).getManager(), null, table).getTreeElement(); @@ -180,6 +181,7 @@ public class TemplateDataElementType extends IFileElementType implements ITempla final LightVirtualFile virtualFile = new LightVirtualFile("foo", createTemplateFakeFileType(language), text, LocalTimeCounter.currentTime()); FileViewProvider viewProvider = new SingleRootFileViewProvider(manager, virtualFile, false) { + @Override @NotNull public Language getBaseLanguage() { return language; @@ -197,22 +199,26 @@ public class TemplateDataElementType extends IFileElementType implements ITempla myLanguage = language; } + @Override @NotNull public String getDefaultExtension() { return ""; } + @Override @NotNull @NonNls public String getDescription() { return "fake for language" + myLanguage.getID(); } + @Override @Nullable public Icon getIcon() { return null; } + @Override @NotNull @NonNls public String getName() { diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageConfigurable.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageConfigurable.java index 1a2980cc7e56..fa55a45878af 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageConfigurable.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageConfigurable.java @@ -53,22 +53,26 @@ public class TemplateDataLanguageConfigurable extends LanguagePerFileConfigurabl return false; } + @Override @Nls public String getDisplayName() { return LangBundle.message("template.data.language.configurable"); } + @Override @Nullable public Icon getIcon() { return IconLoader.getIcon("/general/configurableFileTypes.png"); } + @Override @Nullable @NonNls public String getHelpTopic() { return "reference.settingsdialog.project.template.languages"; } + @Override protected String visualize(@NotNull final Language language) { return language.getDisplayName(); } diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageMappings.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageMappings.java index 773276743adb..9fcc6cf9b3cb 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageMappings.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguageMappings.java @@ -50,10 +50,12 @@ public class TemplateDataLanguageMappings extends LanguagePerFileMappings getAvailableValues() { return getTemplateableLanguages(); } @@ -65,6 +67,7 @@ public class TemplateDataLanguageMappings extends LanguagePerFileMappings getTemplateableLanguages() { return ContainerUtil.findAll(Language.getRegisteredLanguages(), new Condition() { + @Override public boolean value(final Language language) { if (language == Language.ANY) return false; if (language instanceof TemplateLanguage || language instanceof DependentLanguage || language instanceof InjectableLanguage) return false; diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguagePatterns.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguagePatterns.java index 84781ed998dc..d0d291b80705 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguagePatterns.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateDataLanguagePatterns.java @@ -60,6 +60,7 @@ public class TemplateDataLanguagePatterns implements PersistentStateComponent(); @@ -81,6 +82,7 @@ public class TemplateDataLanguagePatterns implements PersistentStateComponent() { + @Override public String fun(FileNameMatcher fileNameMatcher) { return fileNameMatcher.getPresentableString(); } diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateLanguageErrorQuickFixProvider.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateLanguageErrorQuickFixProvider.java index a615df118ba6..546ebf8591d5 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateLanguageErrorQuickFixProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateLanguageErrorQuickFixProvider.java @@ -37,6 +37,7 @@ import org.jetbrains.annotations.NotNull; */ public class TemplateLanguageErrorQuickFixProvider implements ErrorQuickFixProvider{ + @Override public void registerErrorQuickFix(final PsiErrorElement errorElement, final HighlightInfo highlightInfo) { final PsiFile psiFile = errorElement.getContainingFile(); final FileViewProvider provider = psiFile.getViewProvider(); @@ -53,23 +54,28 @@ public class TemplateLanguageErrorQuickFixProvider implements ErrorQuickFixProvi final Language language = ((TemplateLanguageFileViewProvider) containingFile.getViewProvider()).getTemplateDataLanguage(); return new IntentionAction() { + @Override @NotNull public String getText() { return LangBundle.message("quickfix.change.template.data.language.text", language.getDisplayName()); } + @Override @NotNull public String getFamilyName() { return getText(); } + @Override public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) { return true; } + @Override public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException { final TemplateDataLanguageConfigurable configurable = new TemplateDataLanguageConfigurable(project); ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() { + @Override public void run() { if (virtualFile != null) { configurable.selectFile(virtualFile); @@ -78,6 +84,7 @@ public class TemplateLanguageErrorQuickFixProvider implements ErrorQuickFixProvi }); } + @Override public boolean startInWriteAction() { return false; } diff --git a/platform/lang-impl/src/com/intellij/psi/tree/DefaultRoleFinder.java b/platform/lang-impl/src/com/intellij/psi/tree/DefaultRoleFinder.java index 3b8192729354..4f0963e52ea7 100644 --- a/platform/lang-impl/src/com/intellij/psi/tree/DefaultRoleFinder.java +++ b/platform/lang-impl/src/com/intellij/psi/tree/DefaultRoleFinder.java @@ -26,6 +26,7 @@ public class DefaultRoleFinder implements RoleFinder{ myElementTypes = elementType; } + @Override public ASTNode findChild(@NotNull ASTNode parent) { ASTNode current = parent.getFirstChildNode(); while(current != null){ diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/OpenedInEditorWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/OpenedInEditorWeigher.java index 9e665dd37e5c..ed851b3cd5e7 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/OpenedInEditorWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/OpenedInEditorWeigher.java @@ -37,6 +37,7 @@ public class OpenedInEditorWeigher extends ProximityWeigher { } }); + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { if (location.getProject() == null){ return null; diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/ProximityWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/ProximityWeigher.java index 81ebdce8e98e..9cba60332df6 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/ProximityWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/ProximityWeigher.java @@ -25,5 +25,6 @@ import org.jetbrains.annotations.NotNull; */ public abstract class ProximityWeigher extends Weigher { + @Override public abstract Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location); } diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/PsiProximityComparator.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/PsiProximityComparator.java index cc9a1bbacff8..c37f418fbc44 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/PsiProximityComparator.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/PsiProximityComparator.java @@ -54,6 +54,7 @@ public class PsiProximityComparator implements Comparator { myContext = context; } + @Override public int compare(final Object o1, final Object o2) { PsiElement element1 = o1 instanceof PsiElement ? (PsiElement)o1 : null; PsiElement element2 = o2 instanceof PsiElement ? (PsiElement)o2 : null; diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameDirectoryWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameDirectoryWeigher.java index 887497524889..eee2ddcc2c89 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameDirectoryWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameDirectoryWeigher.java @@ -37,6 +37,7 @@ public class SameDirectoryWeigher extends ProximityWeigher { } }); + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { if (location.getPosition() == null){ return null; diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameLogicalRootWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameLogicalRootWeigher.java index e8aa4ec891f4..2e251dbebb16 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameLogicalRootWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameLogicalRootWeigher.java @@ -37,6 +37,7 @@ public class SameLogicalRootWeigher extends ProximityWeigher { } }); + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { if (location.getPosition() == null){ return null; diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameModuleWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameModuleWeigher.java index fb6fa977ac7a..b86d2d17fecf 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/SameModuleWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/SameModuleWeigher.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.NotNull; */ public class SameModuleWeigher extends ProximityWeigher { + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { final Module elementModule = ModuleUtil.findModuleForPsiElement(element); if (location.getPositionModule() == elementModule) { diff --git a/platform/lang-impl/src/com/intellij/psi/util/proximity/SdkOrLibraryWeigher.java b/platform/lang-impl/src/com/intellij/psi/util/proximity/SdkOrLibraryWeigher.java index 5a6b7145a9dc..6509028c16c9 100644 --- a/platform/lang-impl/src/com/intellij/psi/util/proximity/SdkOrLibraryWeigher.java +++ b/platform/lang-impl/src/com/intellij/psi/util/proximity/SdkOrLibraryWeigher.java @@ -32,6 +32,7 @@ import java.util.List; */ public class SdkOrLibraryWeigher extends ProximityWeigher { + @Override public Comparable weigh(@NotNull final PsiElement element, @NotNull final ProximityLocation location) { Project project = location.getProject(); return project == null ? null : isJdkElement(element, project); diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewLongNameLocation.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewLongNameLocation.java index a4999ea3e1a0..757c5bc8f14e 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewLongNameLocation.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewLongNameLocation.java @@ -33,11 +33,13 @@ public class UsageViewLongNameLocation extends ElementDescriptionLocation { public static final UsageViewLongNameLocation INSTANCE = new UsageViewLongNameLocation(); + @Override public ElementDescriptionProvider getDefaultProvider() { return DEFAULT_PROVIDER; } private static final ElementDescriptionProvider DEFAULT_PROVIDER = new ElementDescriptionProvider() { + @Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (location instanceof UsageViewLongNameLocation) { if (element instanceof PsiDirectory) { diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewNodeTextLocation.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewNodeTextLocation.java index 5e98a15b3b42..022feaaedec9 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewNodeTextLocation.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewNodeTextLocation.java @@ -36,11 +36,13 @@ public class UsageViewNodeTextLocation extends ElementDescriptionLocation { public static final UsageViewNodeTextLocation INSTANCE = new UsageViewNodeTextLocation(); + @Override public ElementDescriptionProvider getDefaultProvider() { return DEFAULT_PROVIDER; } private static final ElementDescriptionProvider DEFAULT_PROVIDER = new ElementDescriptionProvider() { + @Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewNodeTextLocation)) return null; diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewShortNameLocation.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewShortNameLocation.java index a4efd674dcb8..f28b34e554dd 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewShortNameLocation.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewShortNameLocation.java @@ -33,11 +33,13 @@ public class UsageViewShortNameLocation extends ElementDescriptionLocation { public static final UsageViewShortNameLocation INSTANCE = new UsageViewShortNameLocation(); + @Override public ElementDescriptionProvider getDefaultProvider() { return DEFAULT_PROVIDER; } private static final ElementDescriptionProvider DEFAULT_PROVIDER = new ElementDescriptionProvider() { + @Override public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewShortNameLocation)) return null; diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewTypeLocation.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewTypeLocation.java index 54ae7a3ad7f9..a0efac03877b 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewTypeLocation.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewTypeLocation.java @@ -37,11 +37,13 @@ public class UsageViewTypeLocation extends ElementDescriptionLocation { public static final UsageViewTypeLocation INSTANCE = new UsageViewTypeLocation(); + @Override public ElementDescriptionProvider getDefaultProvider() { return DEFAULT_PROVIDER; } private static final ElementDescriptionProvider DEFAULT_PROVIDER = new ElementDescriptionProvider() { + @Override public String getElementDescription(@NotNull final PsiElement psiElement, @NotNull final ElementDescriptionLocation location) { if (!(location instanceof UsageViewTypeLocation)) return null; diff --git a/platform/lang-impl/src/com/intellij/usageView/impl/SelectInEditorHandler.java b/platform/lang-impl/src/com/intellij/usageView/impl/SelectInEditorHandler.java index 2313ecdec3e7..4da01afa4f82 100644 --- a/platform/lang-impl/src/com/intellij/usageView/impl/SelectInEditorHandler.java +++ b/platform/lang-impl/src/com/intellij/usageView/impl/SelectInEditorHandler.java @@ -28,6 +28,7 @@ import java.awt.event.KeyEvent; public class SelectInEditorHandler { public static void installKeyListener(final JComponent component) { component.addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) selectInEditor(component); } diff --git a/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java b/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java index 9aec16fa7725..42a87106f7e1 100644 --- a/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java @@ -46,6 +46,7 @@ public class UsageViewManagerImpl extends UsageViewManager { toolWindow.setIcon(IconLoader.getIcon("/general/toolWindowFind.png")); myFindContentManager = toolWindow.getContentManager(); myFindContentManager.addContentManagerListener(new ContentManagerAdapter() { + @Override public void contentRemoved(ContentManagerEvent event) { event.getContent().release(); } @@ -53,10 +54,12 @@ public class UsageViewManagerImpl extends UsageViewManager { new ContentManagerWatcher(toolWindow, myFindContentManager); } + @Override public Content addContent(String contentName, boolean reusable, final JComponent component, boolean toOpenInNewTab, boolean isLockable) { return addContent(contentName, null, null, reusable, component, toOpenInNewTab, isLockable); } + @Override public Content addContent(String contentName, String tabName, String toolwindowTitle, boolean reusable, final JComponent component, boolean toOpenInNewTab, boolean isLockable) { Key contentKey = reusable ? REUSABLE_CONTENT_KEY : NOT_REUSABLE_CONTENT_KEY; @@ -90,6 +93,7 @@ public class UsageViewManagerImpl extends UsageViewManager { return content; } + @Override public int getReusableContentsCount() { return getContentCount(true); } @@ -106,16 +110,19 @@ public class UsageViewManagerImpl extends UsageViewManager { return count; } + @Override public Content getSelectedContent(boolean reusable) { Key contentKey = reusable ? REUSABLE_CONTENT_KEY : NOT_REUSABLE_CONTENT_KEY; Content selectedContent = myFindContentManager.getSelectedContent(); return selectedContent == null || selectedContent.getUserData(contentKey) == null ? null : selectedContent; } + @Override public Content getSelectedContent() { return myFindContentManager == null ? null : myFindContentManager.getSelectedContent(); } + @Override public void closeContent(@NotNull Content content) { myFindContentManager.removeContent(content, true); content.release(); diff --git a/platform/lang-impl/src/com/intellij/util/LogicalRootsManagerImpl.java b/platform/lang-impl/src/com/intellij/util/LogicalRootsManagerImpl.java index 6b19daf12a67..6cdc1ba945ac 100644 --- a/platform/lang-impl/src/com/intellij/util/LogicalRootsManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/util/LogicalRootsManagerImpl.java @@ -53,23 +53,28 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { final MessageBusConnection connection = bus.connect(); connection.subscribe(LOGICAL_ROOTS, new LogicalRootListener() { + @Override public void logicalRootsChanged() { clear(); //updateCache(moduleManager); } }); connection.subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootListener() { + @Override public void beforeRootsChange(ModuleRootEvent event) { } + @Override public void rootsChanged(ModuleRootEvent event) { bus.asyncPublisher(LOGICAL_ROOTS).logicalRootsChanged(); } }); registerLogicalRootProvider(LogicalRootType.SOURCE_ROOT, new NotNullFunction>() { + @Override @NotNull public List fun(final Module module) { return ContainerUtil.map2List(ModuleRootManager.getInstance(module).getSourceRoots(), new Function() { + @Override public VirtualFileLogicalRoot fun(final VirtualFile s) { return new VirtualFileLogicalRoot(s); } @@ -102,6 +107,7 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { return myRoots; } + @Override @Nullable public LogicalRoot findLogicalRoot(@NotNull final VirtualFile file) { final Module module = ModuleUtil.findModuleForFile(file, myProject); @@ -120,14 +126,17 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { return result; } + @Override public List getLogicalRoots() { return ContainerUtil.concat(myModuleManager.getModules(), new Function>() { + @Override public Collection fun(final Module module) { return getLogicalRoots(module); } }); } + @Override public List getLogicalRoots(@NotNull final Module module) { final Map> roots = getRoots(myModuleManager); final MultiValuesMap valuesMap = roots.get(module); @@ -137,14 +146,17 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { return new ArrayList(valuesMap.values()); } + @Override public List getLogicalRootsOfType(@NotNull final Module module, @NotNull final LogicalRootType... types) { return ContainerUtil.concat(types, new Function>() { + @Override public Collection fun(final LogicalRootType s) { return getLogicalRootsOfType(module, s); } }); } + @Override public List getLogicalRootsOfType(@NotNull final Module module, @NotNull final LogicalRootType type) { final Map> roots = getRoots(myModuleManager); final MultiValuesMap map = roots.get(module); @@ -157,6 +169,7 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { return new ArrayList((Collection)collection); } + @Override @NotNull public LogicalRootType[] getRootTypes(@NotNull final FileType type) { final Collection rootTypes = myFileTypes2RootTypes.get(type); @@ -167,10 +180,12 @@ public class LogicalRootsManagerImpl extends LogicalRootsManager { return rootTypes.toArray(new LogicalRootType[rootTypes.size()]); } + @Override public void registerRootType(@NotNull final FileType fileType, @NotNull final LogicalRootType... rootTypes) { myFileTypes2RootTypes.putAll(fileType, rootTypes); } + @Override public void registerLogicalRootProvider(@NotNull final LogicalRootType rootType, @NotNull NotNullFunction> provider) { myProviders.put(rootType, provider); clear(); diff --git a/platform/lang-impl/src/com/intellij/util/PatternValuesIndex.java b/platform/lang-impl/src/com/intellij/util/PatternValuesIndex.java index 8a8f6dbc318f..e7121adc3732 100644 --- a/platform/lang-impl/src/com/intellij/util/PatternValuesIndex.java +++ b/platform/lang-impl/src/com/intellij/util/PatternValuesIndex.java @@ -30,6 +30,7 @@ public class PatternValuesIndex { public static Set buildStringIndex(Collection> patterns) { final THashSet result = new THashSet(); processStringValues(patterns, new PairProcessor, Collection>() { + @Override public boolean process(ElementPattern elementPattern, Collection value) { for (Object o : value) { if (o instanceof String) { diff --git a/platform/lang-impl/src/com/intellij/util/download/impl/DownloadableFileServiceImpl.java b/platform/lang-impl/src/com/intellij/util/download/impl/DownloadableFileServiceImpl.java index f2f23b3e878c..3e653aa96420 100644 --- a/platform/lang-impl/src/com/intellij/util/download/impl/DownloadableFileServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/util/download/impl/DownloadableFileServiceImpl.java @@ -56,6 +56,7 @@ public class DownloadableFileServiceImpl extends DownloadableFileService { return createDownloader(description.getFiles(), project, parent, description.getName()); } + @Override @NotNull public FileDownloader createDownloader(final List fileDescriptions, final @Nullable Project project, diff --git a/platform/lang-impl/src/com/intellij/util/download/impl/FileDownloaderImpl.java b/platform/lang-impl/src/com/intellij/util/download/impl/FileDownloaderImpl.java index a9d10e413c3a..76b4f6811259 100644 --- a/platform/lang-impl/src/com/intellij/util/download/impl/FileDownloaderImpl.java +++ b/platform/lang-impl/src/com/intellij/util/download/impl/FileDownloaderImpl.java @@ -114,6 +114,7 @@ public class FileDownloaderImpl implements FileDownloader { final File ioDir = VfsUtil.virtualToIoFile(dir); ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { + @Override public void run() { final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); try { @@ -201,6 +202,7 @@ public class FileDownloaderImpl implements FileDownloader { FileUtil.rename(pair.getSecond(), toFile); } VirtualFile file = new WriteAction() { + @Override protected void run(final Result result) { final String url = VfsUtil.getUrlForLibraryRoot(toFile); LocalFileSystem.getInstance().refreshAndFindFileByIoFile(toFile); @@ -214,6 +216,7 @@ public class FileDownloaderImpl implements FileDownloader { for (final File file : existingFiles) { VirtualFile libraryRootFile = new WriteAction() { + @Override protected void run(final Result result) { final String url = VfsUtil.getUrlForLibraryRoot(file); result.setResult(VirtualFileManager.getInstance().refreshAndFindFileByUrl(url)); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexableFileSet.java b/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexableFileSet.java index 69dc3a4240f1..07e3eecaace6 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexableFileSet.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexableFileSet.java @@ -65,6 +65,7 @@ public class AdditionalIndexableFileSet implements IndexableFileSet { public AdditionalIndexableFileSet() { } + @Override public boolean isInSet(VirtualFile file) { for (final VirtualFile root : getFiles()) { if (VfsUtil.isAncestor(root, file, false)) { @@ -74,6 +75,7 @@ public class AdditionalIndexableFileSet implements IndexableFileSet { return false; } + @Override public void iterateIndexableFilesIn(VirtualFile file, ContentIterator iterator) { if (!isInSet(file)) return; diff --git a/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexedRootsScope.java b/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexedRootsScope.java index d1b142e70b8f..6a347f0dfaec 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexedRootsScope.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/AdditionalIndexedRootsScope.java @@ -41,6 +41,7 @@ public class AdditionalIndexedRootsScope extends GlobalSearchScope { this.myFileSet = myFileSet; } + @Override public boolean contains(VirtualFile file) { return myBaseScope.contains(file) || myFileSet.isInSet(file); } @@ -50,14 +51,17 @@ public class AdditionalIndexedRootsScope extends GlobalSearchScope { return true; } + @Override public int compare(VirtualFile file1, VirtualFile file2) { return myBaseScope.compare(file1, file2); } + @Override public boolean isSearchInModuleContent(@NotNull Module aModule) { return myBaseScope.isSearchInModuleContent(aModule); } + @Override public boolean isSearchInLibraries() { return myBaseScope.isSearchInLibraries(); } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/ChangeTrackingValueContainer.java b/platform/lang-impl/src/com/intellij/util/indexing/ChangeTrackingValueContainer.java index 1e4260582250..c9f257585457 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/ChangeTrackingValueContainer.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/ChangeTrackingValueContainer.java @@ -55,6 +55,7 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer // System.out.println("*[" + (myMerged != null ? myMerged.dumpInputIdMapping() : "null") + "] "); //} + @Override public void addValue(int inputId, Value value) { if (myMerged != null) { myMerged.addValue(inputId, value); @@ -64,6 +65,7 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer } } + @Override public void removeAllValues(int inputId) { if (myMerged != null) { myMerged.removeAllValues(inputId); @@ -73,6 +75,7 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer myInvalidated.add(inputId); } + @Override public boolean removeValue(int inputId, Value value) { if (myMerged != null) { myMerged.removeValue(inputId, value); @@ -85,26 +88,32 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer return true; } + @Override public int size() { return getMergedData().size(); } + @Override public Iterator getValueIterator() { return getMergedData().getValueIterator(); } + @Override public List toValueList() { return getMergedData().toValueList(); } + @Override public int[] getInputIds(final Value value) { return getMergedData().getInputIds(value); } + @Override public boolean isAssociated(final Value value, final int inputId) { return getMergedData().isAssociated(value, inputId); } + @Override public IntIterator getInputIdsIterator(final Value value) { return getMergedData().getInputIdsIterator(value); } @@ -125,11 +134,13 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer final ValueContainer fromDisk = myInitializer.compute(); final ContainerAction addAction = new ContainerAction() { + @Override public void perform(final int id, final Value value) { newMerged.addValue(id, value); } }; final ContainerAction removeAction = new ContainerAction() { + @Override public void perform(final int id, final Value value) { newMerged.removeValue(id, value); } @@ -137,6 +148,7 @@ class ChangeTrackingValueContainer extends UpdatableValueContainer fromDisk.forEach(addAction); myInvalidated.forEach(new TIntProcedure() { + @Override public boolean execute(int inputId) { newMerged.removeAllValues(inputId); return true; diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndex.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndex.java index efb2ba00aff1..c40870ccf91b 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndex.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndex.java @@ -150,6 +150,7 @@ public class FileBasedIndex implements ApplicationComponent { final MessageBusConnection connection = bus.connect(); connection.subscribe(PsiDocumentTransactionListener.TOPIC, new PsiDocumentTransactionListener() { + @Override public void transactionStarted(final Document doc, final PsiFile file) { if (file != null) { synchronized (myTransactionMap) { @@ -159,6 +160,7 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public void transactionCompleted(final Document doc, final PsiFile file) { synchronized (myTransactionMap) { myTransactionMap.remove(doc); @@ -168,6 +170,7 @@ public class FileBasedIndex implements ApplicationComponent { connection.subscribe(FileTypeManager.TOPIC, new FileTypeListener() { private Map> myTypeToExtensionMap; + @Override public void beforeFileTypesChanged(final FileTypeEvent event) { cleanupProcessedFlag(); myTypeToExtensionMap = new HashMap>(); @@ -176,6 +179,7 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public void fileTypesChanged(final FileTypeEvent event) { final Map> oldExtensions = myTypeToExtensionMap; myTypeToExtensionMap = null; @@ -223,6 +227,7 @@ public class FileBasedIndex implements ApplicationComponent { }); connection.subscribe(VirtualFileManager.VFS_CHANGES, new BulkFileListener() { + @Override public void before(List events) { for (VFileEvent event : events) { final Object requestor = event.getRequestor(); @@ -233,21 +238,25 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public void after(List events) { } }); connection.subscribe(AppTopics.FILE_DOCUMENT_SYNC, new FileDocumentManagerAdapter() { + @Override public void fileContentReloaded(VirtualFile file, Document document) { cleanupMemoryStorage(); } + @Override public void unsavedDocumentsDropped() { cleanupMemoryStorage(); } }); ApplicationManager.getApplication().addApplicationListener(new ApplicationAdapter() { + @Override public void writeActionStarted(Object action) { myUpToDateIndices.clear(); } @@ -308,6 +317,7 @@ public class FileBasedIndex implements ApplicationComponent { } finally { ShutDownTracker.getInstance().registerShutdownTask(new Runnable() { + @Override public void run() { performShutdown(); } @@ -316,6 +326,7 @@ public class FileBasedIndex implements ApplicationComponent { saveRegisteredIndices(myIndices.keySet()); myFlushingFuture = FlushingDaemon.everyFiveSeconds(new Runnable() { int lastModCount = 0; + @Override public void run() { if (lastModCount == myLocalModCount) { flushAllIndices(lastModCount); @@ -327,6 +338,7 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public void initComponent() { } @@ -458,6 +470,7 @@ public class FileBasedIndex implements ApplicationComponent { final KeyDescriptor keyDescriptor = extension.getKeyDescriptor(); index.setInputIdToDataKeysIndex(new Factory>>() { + @Override public PersistentHashMap> create() { try { return createIdToDataKeysIndex(indexId, keyDescriptor, storage); @@ -479,6 +492,7 @@ public class FileBasedIndex implements ApplicationComponent { final Map> tempMap = new HashMap>(); final DataExternalizer> dataExternalizer = new DataExternalizer>() { + @Override public void save(DataOutput out, Collection value) throws IOException { try { DataInputOutputUtil.writeINT(out, value.size()); @@ -494,6 +508,7 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public Collection read(DataInput in) throws IOException { try { final int size = DataInputOutputUtil.readINT(in); @@ -555,11 +570,13 @@ public class FileBasedIndex implements ApplicationComponent { }; storage.addBufferingStateListsner(new MemoryIndexStorage.BufferingStateListener() { + @Override public void bufferingStateChanged(boolean newState) { synchronized (map) { isBufferingMode.set(newState); } } + @Override public void memoryStorageCleared() { synchronized (map) { tempMap.clear(); @@ -569,12 +586,14 @@ public class FileBasedIndex implements ApplicationComponent { return map; } + @Override @NonNls @NotNull public String getComponentName() { return "FileBasedIndex"; } + @Override public void disposeComponent() { performShutdown(); } @@ -711,6 +730,7 @@ public class FileBasedIndex implements ApplicationComponent { private final ThreadLocal myReentrancyGuard = new ThreadLocal() { + @Override protected Boolean initialValue() { return Boolean.FALSE; } @@ -795,6 +815,7 @@ public class FileBasedIndex implements ApplicationComponent { public List getValues(final ID indexId, @NotNull K dataKey, @NotNull final GlobalSearchScope filter) { final List values = new SmartList(); processValuesImpl(indexId, dataKey, true, null, new ValueProcessor() { + @Override public boolean process(final VirtualFile file, final V value) { values.add(value); return true; @@ -807,6 +828,7 @@ public class FileBasedIndex implements ApplicationComponent { public Collection getContainingFiles(final ID indexId, @NotNull K dataKey, @NotNull final GlobalSearchScope filter) { final Set files = new HashSet(); processValuesImpl(indexId, dataKey, false, null, new ValueProcessor() { + @Override public boolean process(final VirtualFile file, final V value) { files.add(file); return true; @@ -939,6 +961,7 @@ public class FileBasedIndex implements ApplicationComponent { if (locals.isEmpty()) return true; Collections.sort(locals, new Comparator() { + @Override public int compare(TIntHashSet o1, TIntHashSet o2) { return o1.size() - o2.size(); } @@ -1009,6 +1032,7 @@ public class FileBasedIndex implements ApplicationComponent { cleanupProcessedFlag(); final Runnable rebuildRunnable = new Runnable() { + @Override public void run() { try { clearIndex(indexId); @@ -1031,8 +1055,10 @@ public class FileBasedIndex implements ApplicationComponent { } else { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { new Task.Modal(null, "Updating index", false) { + @Override public void run(@NotNull final ProgressIndicator indicator) { indicator.setIndeterminate(true); rebuildRunnable.run(); @@ -1140,10 +1166,12 @@ public class FileBasedIndex implements ApplicationComponent { myDocument = document; } + @Override public String getText() { return myDocument.getText(); } + @Override public long getModificationStamp() { return myDocument.getModificationStamp(); } @@ -1158,6 +1186,7 @@ public class FileBasedIndex implements ApplicationComponent { myFile = file; } + @Override public String getText() { if (myFile.getModificationStamp() != myDocument.getModificationStamp()) { final ASTNode node = myFile.getNode(); @@ -1167,6 +1196,7 @@ public class FileBasedIndex implements ApplicationComponent { return myDocument.getText(); } + @Override public long getModificationStamp() { return myFile.getModificationStamp(); } @@ -1195,6 +1225,7 @@ public class FileBasedIndex implements ApplicationComponent { if (currentDocStamp != myLastIndexedDocStamps.getAndSet(document, requestedIndexId, currentDocStamp)) { final Ref exRef = new Ref(null); ProgressManager.getInstance().executeNonCancelableSection(new Runnable() { + @Override public void run() { try { final String contentText = content.getText(); @@ -1321,6 +1352,7 @@ public class FileBasedIndex implements ApplicationComponent { public Collection getFilesToUpdate(final Project project) { return ContainerUtil.findAll(myChangedFilesCollector.getAllFilesToUpdate(), new Condition() { + @Override public boolean value(VirtualFile virtualFile) { for (IndexableFileSet set : myIndexableSets) { final Project proj = myIndexableSetToProjectMap.get(set); @@ -1408,6 +1440,7 @@ public class FileBasedIndex implements ApplicationComponent { final Ref exRef = new Ref(null); ProgressManager.getInstance().executeNonCancelableSection(new Runnable() { + @Override public void run() { try { index.update(inputId, currentFC); @@ -1422,6 +1455,7 @@ public class FileBasedIndex implements ApplicationComponent { throw storageException; } ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { if (file.isValid()) { if (currentFC != null) { @@ -1471,30 +1505,37 @@ public class FileBasedIndex implements ApplicationComponent { private final ManagingFS myManagingFS = ManagingFS.getInstance(); // No need to react on movement events since files stay valid, their ids don't change and all associated attributes remain intact. + @Override public void fileCreated(final VirtualFileEvent event) { markDirty(event); } + @Override public void fileDeleted(final VirtualFileEvent event) { myFilesToUpdate.remove(event.getFile()); // no need to update it anymore } + @Override public void fileCopied(final VirtualFileCopyEvent event) { markDirty(event); } + @Override public void beforeFileDeletion(final VirtualFileEvent event) { invalidateIndices(event.getFile(), false); } + @Override public void beforeContentsChange(final VirtualFileEvent event) { invalidateIndices(event.getFile(), true); } + @Override public void contentsChanged(final VirtualFileEvent event) { markDirty(event); } + @Override public void beforePropertyChange(final VirtualFilePropertyEvent event) { if (event.getPropertyName().equals(VirtualFile.PROP_NAME)) { // indexes may depend on file name @@ -1507,6 +1548,7 @@ public class FileBasedIndex implements ApplicationComponent { } } + @Override public void propertyChanged(final VirtualFilePropertyEvent event) { if (event.getPropertyName().equals(VirtualFile.PROP_NAME)) { // indexes may depend on file name @@ -1520,6 +1562,7 @@ public class FileBasedIndex implements ApplicationComponent { final VirtualFile eventFile = event.getFile(); cleanProcessedFlag(eventFile); iterateIndexableFiles(eventFile, new Processor() { + @Override public boolean process(final VirtualFile file) { FileContent fileContent = null; // handle 'content-less' indices separately @@ -1598,6 +1641,7 @@ public class FileBasedIndex implements ApplicationComponent { if (markForReindex && !isTooLarge(file)) { // only mark the file as unindexed, reindex will be done lazily ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { for (ID indexId : affectedIndices) { IndexingStamp.update(file, indexId, -2L); @@ -1609,6 +1653,7 @@ public class FileBasedIndex implements ApplicationComponent { } else { myFutureInvalidations.offer(new InvalidationTask(file) { + @Override public void run() { removeFileDataFromIndices(affectedIndices, file); } @@ -1622,6 +1667,7 @@ public class FileBasedIndex implements ApplicationComponent { // Because the file was scheduled for update, at the moment of scheduling it was marked as unindexed, // so, to be on the safe side, we have to schedule data invalidation from all content-requiring indices for this file myFutureInvalidations.offer(new InvalidationTask(file) { + @Override public void run() { removeFileDataFromIndices(myRequiringContentIndices, file); } @@ -1686,6 +1732,7 @@ public class FileBasedIndex implements ApplicationComponent { private void iterateIndexableFiles(final VirtualFile file, final Processor processor) { if (file.isDirectory()) { final ContentIterator iterator = new ContentIterator() { + @Override public boolean processFile(final VirtualFile fileOrDir) { if (!fileOrDir.isDirectory()) { processor.process(fileOrDir); @@ -1774,10 +1821,12 @@ public class FileBasedIndex implements ApplicationComponent { myProgressIndicator = ProgressManager.getInstance().getProgressIndicator(); } + @Override public List getFiles() { return myFiles; } + @Override public boolean processFile(final VirtualFile file) { if (!file.isDirectory()) { if (file instanceof NewVirtualFile && ((NewVirtualFile)file).getFlag(ALREADY_PROCESSED)) { @@ -1910,6 +1959,7 @@ public class FileBasedIndex implements ApplicationComponent { myDelegate = delegate; } + @Override public boolean acceptInput(final VirtualFile file) { return file instanceof VirtualFileWithId && myDelegate.acceptInput(file); } @@ -2025,11 +2075,13 @@ public class FileBasedIndex implements ApplicationComponent { } private final Holder myTrueHolder = new Holder() { + @Override public void leave() { StorageGuard.this.leave(true); } }; private final Holder myFalseHolder = new Holder() { + @Override public void leave() { StorageGuard.this.leave(false); } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexProjectHandler.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexProjectHandler.java index ad1c6052cfab..8b28006d9535 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexProjectHandler.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexProjectHandler.java @@ -54,6 +54,7 @@ public class FileBasedIndexProjectHandler extends AbstractProjectComponent imple final StartupManagerEx startupManager = (StartupManagerEx)StartupManager.getInstance(project); if (startupManager != null) { startupManager.registerPreStartupActivity(new Runnable() { + @Override public void run() { final RefreshCacheUpdater changedFilesUpdater = new RefreshCacheUpdater(); final UnindexedFilesUpdater unindexedFilesUpdater = new UnindexedFilesUpdater(project, index); @@ -63,6 +64,7 @@ public class FileBasedIndexProjectHandler extends AbstractProjectComponent imple rootManager.registerRefreshUpdater(changedFilesUpdater); myIndex.registerIndexableSet(FileBasedIndexProjectHandler.this, project); projectManager.addProjectManagerListener(project, new ProjectManagerAdapter() { + @Override public void projectClosing(Project project) { rootManager.unregisterRefreshUpdater(changedFilesUpdater); rootManager.unregisterRootsChangeUpdater(unindexedFilesUpdater); @@ -74,6 +76,7 @@ public class FileBasedIndexProjectHandler extends AbstractProjectComponent imple } } + @Override public boolean isInSet(final VirtualFile file) { final ProjectFileIndex index = myRootManager.getFileIndex(); if (index.isInContent(file) || index.isInLibraryClasses(file) || index.isInLibrarySource(file)) { @@ -83,6 +86,7 @@ public class FileBasedIndexProjectHandler extends AbstractProjectComponent imple return false; } + @Override public void iterateIndexableFilesIn(final VirtualFile file, final ContentIterator iterator) { if (!isInSet(file)) return; @@ -96,28 +100,34 @@ public class FileBasedIndexProjectHandler extends AbstractProjectComponent imple } } + @Override public void disposeComponent() { // done mostly for tests. In real life this is noop, becase the set was removed on project closing myIndex.removeIndexableSet(this); } private class RefreshCacheUpdater implements CacheUpdater { + @Override public int getNumberOfPendingUpdateJobs() { return myIndex.getNumberOfPendingInvalidations(); } + @Override public VirtualFile[] queryNeededFiles(ProgressIndicator indicator) { Collection files = myIndex.getFilesToUpdate(myProject); return VfsUtil.toVirtualFileArray(files); } + @Override public void processFile(FileContent fileContent) { myIndex.processRefreshedFile(myProject, fileContent); } + @Override public void updatingDone() { } + @Override public void canceled() { } } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/IdDataConsumer.java b/platform/lang-impl/src/com/intellij/util/indexing/IdDataConsumer.java index 851c9bc366a7..1c18db96e5c5 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/IdDataConsumer.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/IdDataConsumer.java @@ -34,6 +34,7 @@ public class IdDataConsumer { public Map getResult() { final Map result = new HashMap(); myResult.forEachEntry(new TIntIntProcedure() { + @Override public boolean execute(final int key, final int value) { result.put(new IdIndexEntry(key), value); return true; diff --git a/platform/lang-impl/src/com/intellij/util/indexing/IndexStorage.java b/platform/lang-impl/src/com/intellij/util/indexing/IndexStorage.java index ab666623d037..0eefa0bf5bf1 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/IndexStorage.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/IndexStorage.java @@ -46,5 +46,6 @@ public interface IndexStorage extends Flushable { void close() throws StorageException; + @Override void flush() throws IOException; } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/IndexingStamp.java b/platform/lang-impl/src/com/intellij/util/indexing/IndexingStamp.java index bf87bb3ea348..6832419cf314 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/IndexingStamp.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/IndexingStamp.java @@ -74,6 +74,7 @@ public class IndexingStamp { final int[] count = new int[]{0}; DataInputOutputUtil.writeINT(stream, size); myIndexStamps.forEachEntry(new TObjectLongProcedure>() { + @Override public boolean execute(final ID id, final long timestamp) { try { DataInputOutputUtil.writeINT(stream, id.getUniqueId()); @@ -112,6 +113,7 @@ public class IndexingStamp { } private static final SLRUCache myTimestampsCache = new SLRUCache(5, 5) { + @Override @NotNull public Timestamps createValue(final VirtualFile key) { try { diff --git a/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java b/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java index 63cf323519f8..b3b089026ba1 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/MapIndexStorage.java @@ -61,13 +61,16 @@ public final class MapIndexStorage implements IndexStorage> map = new ValueContainerMap(myStorageFile, myKeyDescriptor, myDataExternalizer); myCache = new SLRUCache>(myCacheSize, (int)(Math.ceil(myCacheSize * 0.25)) /* 25% from the main cache size*/) { + @Override @NotNull public ChangeTrackingValueContainer createValue(final Key key) { return new ChangeTrackingValueContainer(new ChangeTrackingValueContainer.Initializer() { + @Override public Object getLock() { return map; } + @Override public ValueContainer compute() { ValueContainer value; try { @@ -84,6 +87,7 @@ public final class MapIndexStorage implements IndexStorage valueContainer) { if (valueContainer.isDirty()) { try { @@ -99,6 +103,7 @@ public final class MapIndexStorage implements IndexStorage implements IndexStorage implements IndexStorage implements IndexStorage processor) throws StorageException { l.lock(); try { @@ -182,12 +190,14 @@ public final class MapIndexStorage implements IndexStorage getKeys() throws StorageException { List keys = new ArrayList(); processKeys(new CommonProcessors.CollectProcessor(keys)); return keys; } + @Override @NotNull public ChangeTrackingValueContainer read(final Key key) throws StorageException { l.lock(); @@ -209,6 +219,7 @@ public final class MapIndexStorage implements IndexStorage implements IndexStorage implements IndexStorage implements UpdatableIndex implements UpdatableIndex implements UpdatableIndex implements UpdatableIndex getAllKeys() throws StorageException { Set allKeys = new HashSet(); processAllKeys(new CommonProcessors.CollectProcessor(allKeys)); return allKeys; } + @Override public boolean processAllKeys(Processor processor) throws StorageException { final Lock lock = getReadLock(); try { @@ -161,6 +168,7 @@ public class MapReduceIndex implements UpdatableIndex getData(final Key key) throws StorageException { final Lock lock = getReadLock(); @@ -194,12 +202,14 @@ public class MapReduceIndex implements UpdatableIndex data = content != null ? myIndexer.map(content) : Collections.emptyMap(); updateWithMap(inputId, data, new Callable>() { + @Override public Collection call() throws Exception { final Collection oldKeys = myInputsIndex.get(inputId); return oldKeys == null? Collections.emptyList() : oldKeys; diff --git a/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java b/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java index 6f6fb0ba1f4b..226eaeece758 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java @@ -81,29 +81,35 @@ public class MemoryIndexStorage implements IndexStorage } } + @Override public void close() throws StorageException { myBackendStorage.close(); } + @Override public void clear() throws StorageException { clearMemoryMap(); myBackendStorage.clear(); } + @Override public void flush() throws IOException { myBackendStorage.flush(); } + @Override public Collection getKeys() throws StorageException { final Set keys = new HashSet(); processKeys(new CommonProcessors.CollectProcessor(keys)); return keys; } + @Override public boolean processKeys(final Processor processor) throws StorageException { final Set stopList = new HashSet(); Processor decoratingProcessor = new Processor() { + @Override public boolean process(final Key key) { if (stopList.contains(key)) return true; @@ -120,6 +126,7 @@ public class MemoryIndexStorage implements IndexStorage return myBackendStorage.processKeys(decoratingProcessor); } + @Override public void addValue(final Key key, final int inputId, final Value value) throws StorageException { if (myBufferingEnabled.get()) { getMemValueContainer(key).addValue(inputId, value); @@ -133,6 +140,7 @@ public class MemoryIndexStorage implements IndexStorage myBackendStorage.addValue(key, inputId, value); } + @Override public void removeValue(final Key key, final int inputId, final Value value) throws StorageException { if (myBufferingEnabled.get()) { getMemValueContainer(key).removeValue(inputId, value); @@ -145,6 +153,7 @@ public class MemoryIndexStorage implements IndexStorage myBackendStorage.removeValue(key, inputId, value); } + @Override public void removeAllValues(Key key, int inputId) throws StorageException { if (myBufferingEnabled.get()) { getMemValueContainer(key).removeAllValues(inputId); @@ -162,10 +171,12 @@ public class MemoryIndexStorage implements IndexStorage UpdatableValueContainer valueContainer = myMap.get(key); if (valueContainer == null) { valueContainer = new ChangeTrackingValueContainer(new ChangeTrackingValueContainer.Initializer() { + @Override public Object getLock() { return this; } + @Override public ValueContainer compute() { try { return myBackendStorage.read(key); @@ -180,6 +191,7 @@ public class MemoryIndexStorage implements IndexStorage return valueContainer; } + @Override @NotNull public ValueContainer read(final Key key) throws StorageException { final ValueContainer valueContainer = myMap.get(key); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/ScalarIndexExtension.java b/platform/lang-impl/src/com/intellij/util/indexing/ScalarIndexExtension.java index 15294f883ca1..df1550082dd7 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/ScalarIndexExtension.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/ScalarIndexExtension.java @@ -31,15 +31,18 @@ public abstract class ScalarIndexExtension extends FileBasedIndexExtension VOID_DATA_EXTERNALIZER = new VoidDataExternalizer(); + @Override public final DataExternalizer getValueExternalizer() { return VOID_DATA_EXTERNALIZER; } private static class VoidDataExternalizer implements DataExternalizer { + @Override public void save(final DataOutput out, final Void value) throws IOException { } + @Override @Nullable public Void read(final DataInput in) throws IOException { return null; diff --git a/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryFileBasedIndexExtension.java b/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryFileBasedIndexExtension.java index eff4c8f7f87c..ba48c8fd9160 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryFileBasedIndexExtension.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryFileBasedIndexExtension.java @@ -26,13 +26,16 @@ import com.intellij.util.io.KeyDescriptor; * Date: Feb 18, 2009 */ public abstract class SingleEntryFileBasedIndexExtension extends FileBasedIndexExtension{ + @Override public final KeyDescriptor getKeyDescriptor() { return EnumeratorIntegerDescriptor.INSTANCE; } + @Override public boolean dependsOnFileContent() { return true; } + @Override public abstract SingleEntryIndexer getIndexer(); } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryIndexer.java b/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryIndexer.java index 0f2a1e87126f..c45a7993474b 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryIndexer.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/SingleEntryIndexer.java @@ -35,6 +35,7 @@ public abstract class SingleEntryIndexer implements DataIndexer map(FileContent inputData) { if (inputData == null) { diff --git a/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java b/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java index dc9179058f66..d8ea84dc00b0 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/UnindexedFilesUpdater.java @@ -42,10 +42,12 @@ public class UnindexedFilesUpdater implements CacheUpdater { myProject = project; } + @Override public int getNumberOfPendingUpdateJobs() { return myIndex.getNumberOfPendingInvalidations(); } + @Override public VirtualFile[] queryNeededFiles(ProgressIndicator indicator) { CollectingContentIterator finder = myIndex.createContentIterator(); long l = System.currentTimeMillis(); @@ -57,15 +59,18 @@ public class UnindexedFilesUpdater implements CacheUpdater { return VfsUtil.toVirtualFileArray(files); } + @Override public void processFile(final FileContent fileContent) { myIndex.indexFileContent(myProject, fileContent); IndexingStamp.flushCache(); } + @Override public void updatingDone() { LOG.info("Unindexed files update done in " + (System.currentTimeMillis() - myStarted) + " ms"); } + @Override public void canceled() { LOG.info("Unindexed files update canceled"); } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerImpl.java index 8ff1d2775fa8..92df9262bd50 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerImpl.java @@ -33,6 +33,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement myInputIdMapping = new HashMap(16, 0.98f); } + @Override public void addValue(int inputId, Value value) { final Object input = myInputIdMapping.get(value); if (input == null) { @@ -53,10 +54,12 @@ class ValueContainerImpl extends UpdatableValueContainer implement } } + @Override public int size() { return myInputIdMapping.size(); } + @Override public void removeAllValues(int inputId) { final List toRemove= new ArrayList(); for (final Iterator valueIterator = getValueIterator(); valueIterator.hasNext();) { @@ -70,6 +73,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement } } + @Override public boolean removeValue(int inputId, Value value) { final Object input = myInputIdMapping.get(value); if (input == null) { @@ -94,10 +98,12 @@ class ValueContainerImpl extends UpdatableValueContainer implement return true; } + @Override public Iterator getValueIterator() { return Collections.unmodifiableSet(myInputIdMapping.keySet()).iterator(); } + @Override public List toValueList() { if (myInputIdMapping.isEmpty()) { return Collections.emptyList(); @@ -105,6 +111,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement return new ArrayList(myInputIdMapping.keySet()); } + @Override public int[] getInputIds(final Value value) { final Object input = myInputIdMapping.get(value); final int[] idSet; @@ -120,6 +127,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement return idSet; } + @Override public boolean isAssociated(final Value value, final int inputId) { final Object input = myInputIdMapping.get(value); if (input instanceof TIntHashSet) { @@ -131,6 +139,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement return false; } + @Override public IntIterator getInputIdsIterator(final Value value) { final Object input = myInputIdMapping.get(value); final IntIterator it; @@ -146,6 +155,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement return it; } + @Override public ValueContainerImpl clone() { try { final ValueContainerImpl clone = (ValueContainerImpl)super.clone(); @@ -158,14 +168,17 @@ class ValueContainerImpl extends UpdatableValueContainer implement } public static final IntIterator EMPTY_ITERATOR = new IntIterator() { + @Override public boolean hasNext() { return false; } + @Override public int next() { return 0; } + @Override public int size() { return 0; } @@ -179,10 +192,12 @@ class ValueContainerImpl extends UpdatableValueContainer implement myValue = value; } + @Override public boolean hasNext() { return !myValueRead; } + @Override public int next() { try { return myValue; @@ -192,6 +207,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement } } + @Override public int size() { return 1; } @@ -206,14 +222,17 @@ class ValueContainerImpl extends UpdatableValueContainer implement mySize = set.size(); } + @Override public boolean hasNext() { return mySetIterator.hasNext(); } + @Override public int next() { return mySetIterator.next(); } + @Override public int size() { return mySize; } @@ -239,6 +258,7 @@ class ValueContainerImpl extends UpdatableValueContainer implement super(initialCapacity, loadFactor); } + @Override public void compact() { if (((int)(capacity() * _loadFactor)/ Math.max(1, size())) >= 3) { super.compact(); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java index 6b83f5eca610..bc5048b50eb1 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/ValueContainerMap.java @@ -51,6 +51,7 @@ public class ValueContainerMap extends PersistentHashMap extends PersistentHashMap container) throws IOException { saveImpl(out, container, false); } @@ -102,6 +104,7 @@ public class ValueContainerMap extends PersistentHashMap read(final DataInput in) throws IOException { DataInputStream stream = (DataInputStream)in; final ValueContainerImpl valueContainer = new ValueContainerImpl(); diff --git a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java index afeb8e51505d..5a084487b294 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java +++ b/platform/lang-impl/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java @@ -168,6 +168,7 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { return component; } + @Override @Nullable protected JComponent createCenterPanel() { myBuilder = new SimpleTreeBuilder(myTree, new DefaultTreeModel(new DefaultMutableTreeNode()), @@ -182,11 +183,13 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { myTree.setRootVisible(false); myTree.addTreeSelectionListener(new TreeSelectionListener() { + @Override public void valueChanged(final TreeSelectionEvent e) { updateOKAction(); } }); myTree.addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(final MouseEvent e) { if (e.getClickCount() != 2) return; if (isOKActionEnabled()) { @@ -237,6 +240,7 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { } } + @Override protected void dispose() { Disposer.dispose(myBuilder); super.dispose(); @@ -250,6 +254,7 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { myElement = element; } + @Override public T getElement() { return myElement; } diff --git a/platform/lang-impl/src/com/intellij/util/ui/classpath/GlobalLibraryReferenceElement.java b/platform/lang-impl/src/com/intellij/util/ui/classpath/GlobalLibraryReferenceElement.java index c02c59754706..ee8c1e2022e6 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/classpath/GlobalLibraryReferenceElement.java +++ b/platform/lang-impl/src/com/intellij/util/ui/classpath/GlobalLibraryReferenceElement.java @@ -30,6 +30,7 @@ public class GlobalLibraryReferenceElement implements SimpleClasspathElement { myLibraryName = element.getAttributeValue(NAME_ATTRIBUTE); } + @Override public String getPresentableName() { return myLibraryName; } @@ -40,21 +41,25 @@ public class GlobalLibraryReferenceElement implements SimpleClasspathElement { element.setAttribute(LEVEL_ATTRIBUTE, LibraryTablesRegistrar.APPLICATION_LEVEL); } + @Override public Library getLibrary() { final LibraryTable libraryTable = LibraryTablesRegistrar.getInstance().getLibraryTable(); return libraryTable.getLibraryByName(myLibraryName); } + @Override public String getLibraryName() { return myLibraryName; } + @Override public void serialize(Element element) throws IOException { element.setAttribute(NAME_ATTRIBUTE, myLibraryName); //todo[nik,greg] remote later. this is needed only for forward compatibility with version before 8 element.setAttribute(LEVEL_ATTRIBUTE, LibraryTablesRegistrar.APPLICATION_LEVEL); } + @Override public List getClassesRootUrls() { final Library library = getLibrary(); if (library != null) { diff --git a/platform/lang-impl/src/com/intellij/util/ui/classpath/SingleRootClasspathElement.java b/platform/lang-impl/src/com/intellij/util/ui/classpath/SingleRootClasspathElement.java index 5a716ff18db2..91d3ada59f65 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/classpath/SingleRootClasspathElement.java +++ b/platform/lang-impl/src/com/intellij/util/ui/classpath/SingleRootClasspathElement.java @@ -21,6 +21,7 @@ public class SingleRootClasspathElement implements SimpleClasspathElement { myUrl = url; } + @Override public String getPresentableName() { String url; if (myUrl.endsWith(JarFileSystem.JAR_SEPARATOR)) { @@ -33,18 +34,22 @@ public class SingleRootClasspathElement implements SimpleClasspathElement { return url.substring(startIndex); } + @Override public Library getLibrary() { return null; } + @Override public String getLibraryName() { return null; } + @Override public void serialize(Element element) throws IOException { element.addContent(new Element(URL_ELEMENT).setText(myUrl)); } + @Override public List getClassesRootUrls() { return Collections.singletonList(myUrl); } diff --git a/platform/lang-impl/src/com/intellij/util/ui/tree/AbstractFileTreeTable.java b/platform/lang-impl/src/com/intellij/util/ui/tree/AbstractFileTreeTable.java index 60919561f87e..76dbeefae243 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/tree/AbstractFileTreeTable.java +++ b/platform/lang-impl/src/com/intellij/util/ui/tree/AbstractFileTreeTable.java @@ -61,6 +61,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { myModel.setTreeTable(this); new TreeTableSpeedSearch(this, new Convertor() { + @Override public String convert(final TreePath o) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode)o.getLastPathComponent(); final Object userObject = node.getUserObject(); @@ -81,6 +82,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { getTree().setLineStyleAngled(); getTree().setRootVisible(true); getTree().setCellRenderer(new DefaultTreeCellRenderer() { + @Override public Component getTreeCellRendererComponent(final JTree tree, final Object value, final boolean sel, final boolean expanded, final boolean leaf, final int row, final boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); @@ -180,6 +182,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { return myModel.getValues(); } + @Override public TreeTableCellRenderer createTableRenderer(TreeTableModel treeTableModel) { TreeTableCellRenderer tableRenderer = super.createTableRenderer(treeTableModel); UIUtil.setLineStyleAngled(tableRenderer); @@ -243,10 +246,12 @@ public abstract class AbstractFileTreeTable extends TreeTable { public void setTree(JTree tree) { } + @Override public int getColumnCount() { return 2; } + @Override public String getColumnName(final int column) { switch (column) { case 0: @@ -258,6 +263,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { } } + @Override public Class getColumnClass(final int column) { switch (column) { case 0: @@ -269,6 +275,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { } } + @Override public Object getValueAt(final Object node, final int column) { Object userObject = ((DefaultMutableTreeNode)node).getUserObject(); if (userObject instanceof Project) { @@ -290,6 +297,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { } } + @Override public boolean isCellEditable(final Object node, final int column) { switch (column) { case 0: @@ -302,6 +310,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { } } + @Override public void setValueAt(final Object aValue, final Object node, final int column) { final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)node; final Object userObject = treeNode.getUserObject(); @@ -340,6 +349,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { myFilter = filter; } + @Override protected void appendChildrenTo(final Collection children) { Project project = getObject(); VirtualFile[] roots = ProjectRootManager.getInstance(project).getContentRoots(); @@ -369,16 +379,19 @@ public abstract class AbstractFileTreeTable extends TreeTable { protected abstract void appendChildrenTo(final Collection children); + @Override public int getChildCount() { init(); return super.getChildCount(); } + @Override public TreeNode getChildAt(final int childIndex) { init(); return super.getChildAt(childIndex); } + @Override public Enumeration children() { init(); return super.children(); @@ -390,6 +403,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { final List children = new ArrayList(); appendChildrenTo(children); Collections.sort(children, new Comparator() { + @Override public int compare(final ConvenientNode node1, final ConvenientNode node2) { Object o1 = node1.getObject(); Object o2 = node2.getObject(); @@ -437,6 +451,7 @@ public abstract class AbstractFileTreeTable extends TreeTable { myFilter = filter; } + @Override protected void appendChildrenTo(final Collection children) { VirtualFile[] childrenf = getObject().getChildren(); ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex(); diff --git a/platform/lang-impl/src/com/intellij/util/ui/tree/LanguagePerFileConfigurable.java b/platform/lang-impl/src/com/intellij/util/ui/tree/LanguagePerFileConfigurable.java index 4cbcef499891..dee54edcd5b8 100644 --- a/platform/lang-impl/src/com/intellij/util/ui/tree/LanguagePerFileConfigurable.java +++ b/platform/lang-impl/src/com/intellij/util/ui/tree/LanguagePerFileConfigurable.java @@ -65,6 +65,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig myLabel.setText(caption); } + @Override public JComponent createComponent() { myTreeView = new MyTreeTable(); myTreePanel.setViewportView(myTreeView); @@ -82,20 +83,24 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig return t == null? myMappings.getDefaultMapping(file) : t; } + @Override public boolean isModified() { Map mapping = myMappings.getMappings(); boolean same = myTreeView.getValues().equals(mapping); return !same; } + @Override public void apply() throws ConfigurationException { myMappings.setMappings(myTreeView.getValues()); } + @Override public void reset() { myTreeView.reset(myMappings.getMappings()); } + @Override public void disposeUIResources() { } @@ -113,11 +118,13 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig return myTreeView; } + @Override @NotNull public String getId() { return getDisplayName(); } + @Override public Runnable enableSearch(final String option) { return null; } @@ -131,21 +138,25 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig { delegate = new EditorDelegate() { + @Override public void setValue(Object value) { getTableModel().setValueAt(value, new DefaultMutableTreeNode(myVirtualFile), -1); } + @Override public Object getCellEditorValue() { return getTableModel().getValueAt(new DefaultMutableTreeNode(myVirtualFile), 1); } }; } + @Override public Component getTableCellEditorComponent(JTable table, final Object value, boolean isSelected, int row, int column) { final Object o = table.getModel().getValueAt(row, 0); myVirtualFile = o instanceof Project ? null : (VirtualFile)o; final ChooseSomethingAction changeAction = new ChooseSomethingAction(myVirtualFile) { + @Override public void update(final AnActionEvent e) { boolean enabled = isValueEditableForFile(myVirtualFile); if (myVirtualFile != null) { @@ -155,6 +166,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig e.getPresentation().setEnabled(enabled); } + @Override protected void chosen(final VirtualFile virtualFile, final T charset) { getValueColumn().getCellEditor().stopCellEditing(); if (clearSubdirectoriesOnDemandOrCancel(virtualFile, myOverrideQuestion, myOverrideTitle)) { @@ -185,6 +197,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig } }); getValueColumn().setCellRenderer(new ColoredTableCellRenderer() { + @Override protected void customizeCellRenderer(final JTable table, final Object value, final boolean selected, @@ -239,6 +252,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig myVirtualFile = virtualFile; } + @Override @NotNull protected DefaultActionGroup createPopupActionGroup(final JComponent button) { return createGroup(true); @@ -246,6 +260,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig private ChangeSomethingAction createChooseAction(final VirtualFile virtualFile, final T t) { return new ChangeSomethingAction(virtualFile, t){ + @Override protected void chosen(final VirtualFile file, final T t) { ChooseSomethingAction.this.chosen(file, t); } @@ -261,6 +276,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig } final List values = new ArrayList(myMappings.getAvailableValues(myVirtualFile)); Collections.sort(values, new Comparator() { + @Override public int compare(final T o1, final T o2) { return visualize(o1).compareTo(visualize(o2)); } @@ -286,6 +302,7 @@ public abstract class LanguagePerFileConfigurable implements SearchableConfig myDialect = t; } + @Override public void actionPerformed(final AnActionEvent e) { chosen(myFile, myDialect); } diff --git a/platform/lang-impl/testSrc/com/intellij/application/options/codeInsight/editor/quotes/SelectionQuotingTypedHandlerTest.java b/platform/lang-impl/testSrc/com/intellij/application/options/codeInsight/editor/quotes/SelectionQuotingTypedHandlerTest.java index 8cdf51a10f4a..c9e15ccb0d54 100644 --- a/platform/lang-impl/testSrc/com/intellij/application/options/codeInsight/editor/quotes/SelectionQuotingTypedHandlerTest.java +++ b/platform/lang-impl/testSrc/com/intellij/application/options/codeInsight/editor/quotes/SelectionQuotingTypedHandlerTest.java @@ -41,6 +41,7 @@ public class SelectionQuotingTypedHandlerTest extends LightPlatformCodeInsightFi */ public static void performAction(final Project project, final Runnable action) { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { CommandProcessor.getInstance().executeCommand(project, action, "test command", null); } @@ -64,6 +65,7 @@ public class SelectionQuotingTypedHandlerTest extends LightPlatformCodeInsightFi myFixture.configureByText(FileTypes.PLAIN_TEXT, before); final TypedAction typedAction = EditorActionManager.getInstance().getTypedAction(); performAction(myFixture.getProject(), new Runnable() { + @Override public void run() { typedAction.actionPerformed(myFixture.getEditor(), c, ((EditorEx)myFixture.getEditor()).getDataContext()); } @@ -106,6 +108,7 @@ public class SelectionQuotingTypedHandlerTest extends LightPlatformCodeInsightFi myFixture.getEditor().getSelectionModel().setSelection(0, 5); final TypedAction typedAction = EditorActionManager.getInstance().getTypedAction(); performAction(myFixture.getProject(), new Runnable() { + @Override public void run() { typedAction.actionPerformed(myFixture.getEditor(), '\'', ((EditorEx)myFixture.getEditor()).getDataContext()); } @@ -115,6 +118,7 @@ public class SelectionQuotingTypedHandlerTest extends LightPlatformCodeInsightFi myFixture.getEditor().getCaretModel().moveToOffset(myFixture.getEditor().getDocument().getLineStartOffset(3)); performAction(myFixture.getProject(), new Runnable() { + @Override public void run() { typedAction.actionPerformed(myFixture.getEditor(), 'A', ((EditorEx)myFixture.getEditor()).getDataContext()); typedAction.actionPerformed(myFixture.getEditor(), 'B', ((EditorEx)myFixture.getEditor()).getDataContext()); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/BackspaceAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/BackspaceAction.java index 983e631960fc..4b24e3d75627 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/BackspaceAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/BackspaceAction.java @@ -36,6 +36,7 @@ public class BackspaceAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP); final SelectionModel selectionModel = editor.getSelectionModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ContentChooser.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ContentChooser.java index f9ecc4504a07..bc2e13d565b5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ContentChooser.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ContentChooser.java @@ -74,10 +74,12 @@ public abstract class ContentChooser extends DialogWrapper { init(); } + @Override public JComponent getPreferredFocusedComponent() { return myList; } + @Override protected JComponent createCenterPanel() { myList = new JBList(); final int selectionMode = myAllowMultipleSelections ? ListSelectionModel.MULTIPLE_INTERVAL_SELECTION @@ -87,6 +89,7 @@ public abstract class ContentChooser extends DialogWrapper { rebuildListContent(); myList.addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { if (e.isConsumed() || e.getClickCount() != 2 || e.isPopupTrigger()) return; close(OK_EXIT_CODE); @@ -100,6 +103,7 @@ public abstract class ContentChooser extends DialogWrapper { } myList.addKeyListener(new KeyAdapter() { + @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DELETE) { int newSelectionIndex = -1; @@ -139,6 +143,7 @@ public abstract class ContentChooser extends DialogWrapper { updateViewerForSelection(); myList.addListSelectionListener(new ListSelectionListener() { + @Override public void valueChanged(ListSelectionEvent e) { updateViewerForSelection(); } @@ -152,6 +157,7 @@ public abstract class ContentChooser extends DialogWrapper { protected abstract void removeContentAt(final Data content); + @Override protected String getDimensionServiceKey() { return "#com.intellij.openapi.editor.actions.MultiplePasteAction.Chooser"; } @@ -190,6 +196,7 @@ public abstract class ContentChooser extends DialogWrapper { mySplitter.revalidate(); } + @Override public void dispose() { super.dispose(); if (myViewer != null) { @@ -260,6 +267,7 @@ public abstract class ContentChooser extends DialogWrapper { } private static class MyListCellRenderer extends ColoredListCellRenderer { + @Override protected void customizeCellRenderer(JList list, Object value, int index, boolean selected, boolean hasFocus) { // Fix GTK background if (UIUtil.isUnderGTKLookAndFeel()){ diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ConvertIndentsActionBase.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ConvertIndentsActionBase.java index 846004761397..f07be7e846e5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ConvertIndentsActionBase.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ConvertIndentsActionBase.java @@ -81,12 +81,14 @@ public abstract class ConvertIndentsActionBase extends EditorAction { } private static IndentBuilder tabIndentBuilder = new IndentBuilder() { + @Override public String buildIndent(int length, int tabSize) { return StringUtil.repeatSymbol('\t', length / tabSize) + StringUtil.repeatSymbol(' ', length % tabSize); } }; private static IndentBuilder spaceIndentBuilder = new IndentBuilder() { + @Override public String buildIndent(int length, int tabSize) { return StringUtil.repeatSymbol(' ', length); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CopyAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CopyAction.java index 2551da7744dc..9754fd18ab2d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CopyAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CopyAction.java @@ -35,6 +35,7 @@ public class CopyAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { if (!editor.getSelectionModel().hasSelection() && !editor.getSelectionModel().hasBlockSelection()) { editor.getSelectionModel().selectLineAtCaret(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutAction.java index d2fd65cbcf78..f036212da94a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutAction.java @@ -36,6 +36,7 @@ public class CutAction extends EditorAction { } public static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { if(!editor.getSelectionModel().hasSelection()) { editor.getSelectionModel().selectLineAtCaret(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutLineEndAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutLineEndAction.java index f8d4617a5b6b..ca52dbaa6d28 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutLineEndAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/CutLineEndAction.java @@ -44,6 +44,7 @@ public class CutLineEndAction extends EditorAction { myCopyToClipboard = copyToClipboard; } + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { final Document doc = editor.getDocument(); int caretOffset = editor.getCaretModel().getOffset(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteAction.java index d376cccfb631..28d806aef0f1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteAction.java @@ -38,6 +38,7 @@ public class DeleteAction extends EditorAction { } public static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP); SelectionModel selectionModel = editor.getSelectionModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java index 07722c1ecece..b8eb56eb84e5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteLineAction.java @@ -35,6 +35,7 @@ public class DeleteLineAction extends TextComponentEditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP); SelectionModel selectionModel = editor.getSelectionModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordEndAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordEndAction.java index ae6b408bc6af..093e7dac6c5d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordEndAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordEndAction.java @@ -36,6 +36,7 @@ public class DeleteToWordEndAction extends TextComponentEditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP); deleteToWordEnd(editor); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordStartAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordStartAction.java index e109e5b029c2..d7026415b463 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordStartAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DeleteToWordStartAction.java @@ -37,6 +37,7 @@ public class DeleteToWordStartAction extends TextComponentEditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP); deleteToWordStart(editor); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DuplicateAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DuplicateAction.java index cc283f57586b..2e647d98a477 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/DuplicateAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/DuplicateAction.java @@ -38,10 +38,12 @@ public class DuplicateAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { duplicateLineOrSelectedBlockAtCaret(editor); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode() || editor.getSelectionModel().hasSelection(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorActionUtil.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorActionUtil.java index 4f4c067eef09..386c87193f67 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorActionUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorActionUtil.java @@ -700,6 +700,7 @@ public class EditorActionUtil { public static EditorPopupHandler createEditorPopupHandler(final String groupId) { return new EditorPopupHandler() { + @Override public void invokePopup(final EditorMouseEvent event) { if (!event.isConsumed() && event.getArea() == EditorMouseEventArea.EDITING_AREA) { ActionGroup group = (ActionGroup)CustomActionsSchema.getInstance().getCorrectedAction(groupId); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorToggleDecorationAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorToggleDecorationAction.java index 47dc87c3e0cb..5dc328eea9c4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorToggleDecorationAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EditorToggleDecorationAction.java @@ -31,6 +31,7 @@ import com.intellij.openapi.editor.Editor; import org.jetbrains.annotations.Nullable; public abstract class EditorToggleDecorationAction extends ToggleAction { + @Override public final void setSelected(AnActionEvent e, boolean state) { final Editor editor = getEditor(e); assert editor != null; @@ -38,6 +39,7 @@ public abstract class EditorToggleDecorationAction extends ToggleAction { editor.getComponent().repaint(); } + @Override public final boolean isSelected(AnActionEvent e) { Editor editor = getEditor(e); return editor != null && getOption(editor); @@ -48,6 +50,7 @@ public abstract class EditorToggleDecorationAction extends ToggleAction { return e.getData(PlatformDataKeys.EDITOR_EVEN_IF_INACTIVE); } + @Override public final void update(AnActionEvent e) { super.update(e); e.getPresentation().setEnabled(getEditor(e) != null); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EnterAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EnterAction.java index aa8ee949826c..e6ebe62424ec 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EnterAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EnterAction.java @@ -37,11 +37,13 @@ public class EnterAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandName(EditorBundle.message("typing.command.name")); insertNewLineAtCaret(editor); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EscapeAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EscapeAction.java index e6c3422b4bb0..ce8a9d0fbf03 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/EscapeAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/EscapeAction.java @@ -33,10 +33,12 @@ public class EscapeAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getSelectionModel().removeSelection(); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { SelectionModel selectionModel = editor.getSelectionModel(); return PlatformDataKeys.IS_MODAL_CONTEXT.getData(dataContext) != Boolean.TRUE && diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/InactiveEditorAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/InactiveEditorAction.java index f26b2f9db587..f5676f189ada 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/InactiveEditorAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/InactiveEditorAction.java @@ -31,6 +31,7 @@ public class InactiveEditorAction extends EditorAction { super(defaultHandler); } + @Override @Nullable protected Editor getEditor(final DataContext dataContext) { return PlatformDataKeys.EDITOR_EVEN_IF_INACTIVE.getData(dataContext); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/IndentSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/IndentSelectionAction.java index 5585658f8a2c..91864d5548c1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/IndentSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/IndentSelectionAction.java @@ -43,12 +43,14 @@ public class IndentSelectionAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { Project project = PlatformDataKeys.PROJECT.getData(dataContext); indentSelection(editor, project); } } + @Override public void update(Editor editor, Presentation presentation, DataContext dataContext) { presentation.setEnabled(isEnabled(editor)); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/JoinLinesAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/JoinLinesAction.java index 5d1ea9ab4303..626714c544f4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/JoinLinesAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/JoinLinesAction.java @@ -37,6 +37,7 @@ public class JoinLinesAction extends TextComponentEditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { final Document doc = editor.getDocument(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndAction.java index 3f831ce5cedd..f8ce304a4f9b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndAction.java @@ -34,6 +34,7 @@ public class LineEndAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToLineEnd(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndWithSelectionAction.java index 4c79c7b9c357..7db08952c7a9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineEndWithSelectionAction.java @@ -34,6 +34,7 @@ public class LineEndWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToLineEnd(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartAction.java index e7cae7fff9cd..6c41cdb691af 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartAction.java @@ -34,6 +34,7 @@ public class LineStartAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToLineStart(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartWithSelectionAction.java index 67519fe8a232..cb62d8ed702f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/LineStartWithSelectionAction.java @@ -34,6 +34,7 @@ public class LineStartWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToLineStart(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownAction.java index 755154ffee4d..0b35906a7de9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownAction.java @@ -35,10 +35,12 @@ public class MoveCaretDownAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getCaretModel().moveCaretRelatively(0, 1, false, false, true); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownWithSelectionAction.java index 9f42927fbdfb..8499ced4b359 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretDownWithSelectionAction.java @@ -35,6 +35,7 @@ public class MoveCaretDownWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getCaretModel().moveCaretRelatively(0, 1, true, editor.isColumnMode(), true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftOrRightHandler.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftOrRightHandler.java index e923a7ba446e..7ec8945a0fc6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftOrRightHandler.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftOrRightHandler.java @@ -35,6 +35,7 @@ class MoveCaretLeftOrRightHandler extends EditorActionHandler { myDirection = direction; } + @Override public void execute(Editor editor, DataContext dataContext) { final SelectionModel selectionModel = editor.getSelectionModel(); final CaretModel caretModel = editor.getCaretModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftWithSelectionAction.java index efede3474681..a8f22a229c41 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretLeftWithSelectionAction.java @@ -35,6 +35,7 @@ public class MoveCaretLeftWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int columnShift = -1; editor.getCaretModel().moveCaretRelatively(columnShift, 0, true, editor.isColumnMode(), true); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretRightWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretRightWithSelectionAction.java index 79347419e7da..b84ce856d2c0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretRightWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretRightWithSelectionAction.java @@ -35,6 +35,7 @@ public class MoveCaretRightWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getCaretModel().moveCaretRelatively(1, 0, true, editor.isColumnMode(), true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpAction.java index ad598e0cda4f..4a31803013b8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpAction.java @@ -35,11 +35,13 @@ public class MoveCaretUpAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int lineShift = -1; editor.getCaretModel().moveCaretRelatively(0, lineShift, false, false, true); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpWithSelectionAction.java index 2ae7d5c1bfb3..d137d4bf2deb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveCaretUpWithSelectionAction.java @@ -35,6 +35,7 @@ public class MoveCaretUpWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int lineShift = -1; editor.getCaretModel().moveCaretRelatively(0, lineShift, true, editor.isColumnMode(), true); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownAndScrollAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownAndScrollAction.java index 7d4a3d79f5d1..e8405633343c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownAndScrollAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownAndScrollAction.java @@ -35,6 +35,7 @@ public class MoveDownAndScrollAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretRelativelyAndScroll(editor, 0, 1, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownWithSelectionAndScrollAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownWithSelectionAndScrollAction.java index bbf28baebf72..cfc8eccd0db8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownWithSelectionAndScrollAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveDownWithSelectionAndScrollAction.java @@ -35,6 +35,7 @@ public class MoveDownWithSelectionAndScrollAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretRelativelyAndScroll(editor, 0, 1, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpAndScrollAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpAndScrollAction.java index 31e9d177f7c2..5f6d95b523ce 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpAndScrollAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpAndScrollAction.java @@ -35,6 +35,7 @@ public class MoveUpAndScrollAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretRelativelyAndScroll(editor, 0, -1, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpWithSelectionAndScrollAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpWithSelectionAndScrollAction.java index a6e0aa9025b7..d66a618599f4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpWithSelectionAndScrollAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MoveUpWithSelectionAndScrollAction.java @@ -35,6 +35,7 @@ public class MoveUpWithSelectionAndScrollAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretRelativelyAndScroll(editor, 0, -1, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MultiplePasteAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MultiplePasteAction.java index 377356fa7dd0..2cda172b28ea 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/MultiplePasteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/MultiplePasteAction.java @@ -46,6 +46,7 @@ public class MultiplePasteAction extends AnAction implements DumbAware { setEnabledInModalContext(true); } + @Override public void actionPerformed(final AnActionEvent e) { final DataContext dataContext = e.getDataContext(); Project project = PlatformDataKeys.PROJECT.getData(dataContext); @@ -57,6 +58,7 @@ public class MultiplePasteAction extends AnAction implements DumbAware { final CopyPasteManagerEx copyPasteManager = CopyPasteManagerEx.getInstanceEx(); final ContentChooser chooser = new ContentChooser(project, UIBundle.message( "choose.content.to.paste.dialog.title"), true, true){ + @Override protected String getStringRepresentationFor(final Transferable content) { try { return (String)content.getTransferData(DataFlavor.stringFlavor); @@ -69,10 +71,12 @@ public class MultiplePasteAction extends AnAction implements DumbAware { } } + @Override protected List getContents() { return Arrays.asList(CopyPasteManager.getInstance().getAllContents()); } + @Override protected void removeContentAt(final Transferable content) { copyPasteManager.removeContent(content); } @@ -116,6 +120,7 @@ public class MultiplePasteAction extends AnAction implements DumbAware { } } + @Override public void update(AnActionEvent e) { final boolean enabled = isEnabled(e); if (ActionPlaces.isPopupPlace(e.getPlace())) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordAction.java index bc0d6bc0966e..530b745f546e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordAction.java @@ -35,6 +35,7 @@ public class NextWordAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToNextWord(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordWithSelectionAction.java index 3d2f6ae0b3c5..b80a56a48eee 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/NextWordWithSelectionAction.java @@ -35,6 +35,7 @@ public class NextWordWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToNextWord(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomAction.java index 662e0cfc6ac1..c82e8390c163 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomAction.java @@ -35,6 +35,7 @@ public class PageBottomAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageBottom(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomWithSelectionAction.java index d0fd59c2be46..221ce42f11ec 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageBottomWithSelectionAction.java @@ -35,6 +35,7 @@ public class PageBottomWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageBottom(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownAction.java index 09b8312ea93b..4fc4c859d3a8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownAction.java @@ -31,10 +31,12 @@ import com.intellij.openapi.actionSystem.DataContext; public class PageDownAction extends EditorAction { public static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageDown(editor, false); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownWithSelectionAction.java index fa703dd0302a..0e7828212084 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownWithSelectionAction.java @@ -31,6 +31,7 @@ import com.intellij.openapi.actionSystem.DataContext; public class PageDownWithSelectionAction extends EditorAction { public static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageDown(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopAction.java index 336bfe3067e7..d86b68cc3517 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopAction.java @@ -35,6 +35,7 @@ public class PageTopAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageTop(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopWithSelectionAction.java index 9fb8469033b7..9b7cc77a3f28 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageTopWithSelectionAction.java @@ -35,6 +35,7 @@ public class PageTopWithSelectionAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageTop(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpAction.java index 0035e442547e..3a69510ecef5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpAction.java @@ -31,10 +31,12 @@ import com.intellij.openapi.actionSystem.DataContext; public class PageUpAction extends EditorAction { public static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageUp(editor, false); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpWithSelectionAction.java index bd4ea4532599..5bb39c705561 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PageUpWithSelectionAction.java @@ -31,6 +31,7 @@ import com.intellij.openapi.actionSystem.DataContext; public class PageUpWithSelectionAction extends EditorAction { public static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretPageUp(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteAction.java index 785531359d9a..a0d99d815549 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteAction.java @@ -42,6 +42,7 @@ public class PasteAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { Producer producer = (Producer)dataContext.getData(TRANSFERABLE_PROVIDER); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteFromX11Action.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteFromX11Action.java index b3e0ef248a88..044d583bc9e0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteFromX11Action.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PasteFromX11Action.java @@ -46,6 +46,7 @@ public class PasteFromX11Action extends EditorAction { super(new Handler()); } + @Override public void update(AnActionEvent e) { Presentation presentation = e.getPresentation(); DataContext dataContext = e.getDataContext(); @@ -64,6 +65,7 @@ public class PasteFromX11Action extends EditorAction { } public static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { final Clipboard clip = editor.getComponent().getToolkit().getSystemSelection(); if (clip != null) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordAction.java index 0a144d33acef..7c030eb078fe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordAction.java @@ -35,6 +35,7 @@ public class PreviousWordAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToPreviousWord(editor, false); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordWithSelectionAction.java index b6adda0e07d8..bb57812c8508 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/PreviousWordWithSelectionAction.java @@ -36,6 +36,7 @@ public class PreviousWordWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.moveCaretToPreviousWord(editor, true); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollDownAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollDownAction.java index 3435b5ef6966..09a4b6ea7317 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollDownAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollDownAction.java @@ -34,6 +34,7 @@ public class ScrollDownAction extends InactiveEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.scrollRelatively(editor, 1); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToCenterAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToCenterAction.java index 234392adbe3e..89c920cc2c98 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToCenterAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollToCenterAction.java @@ -35,6 +35,7 @@ public class ScrollToCenterAction extends InactiveEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getScrollingModel().scrollToCaret(ScrollType.CENTER); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollUpAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollUpAction.java index acc05475a807..422613413f82 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollUpAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ScrollUpAction.java @@ -34,6 +34,7 @@ public class ScrollUpAction extends InactiveEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorActionUtil.scrollRelatively(editor, -1); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SelectLineAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SelectLineAction.java index a205b24d5a48..7375b8cf02e5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SelectLineAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SelectLineAction.java @@ -35,6 +35,7 @@ public class SelectLineAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getSelectionModel().selectLineAtCaret(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SimplePasteAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SimplePasteAction.java index 3d55b3157106..932a5a20f365 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SimplePasteAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SimplePasteAction.java @@ -50,6 +50,7 @@ public class SimplePasteAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { Producer producer = (Producer) dataContext.getData(PasteAction.TRANSFERABLE_PROVIDER); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SplitLineAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SplitLineAction.java index 8d0a425a8ad9..4db22a84e929 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/SplitLineAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/SplitLineAction.java @@ -42,11 +42,13 @@ public class SplitLineAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return getEnterHandler().isEnabled(editor, dataContext) && !((EditorEx)editor).isEmbeddedIntoDialogWrapper(); } + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { final Document document = editor.getDocument(); final RangeMarker rangeMarker = diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineAction.java index 968da69e1df2..a16a2f47aac4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineAction.java @@ -33,10 +33,12 @@ public class StartNewLineAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return getEnterHandler().isEnabled(editor, dataContext); } + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { if (editor.getDocument().getLineCount() != 0) { editor.getSelectionModel().removeSelection(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineBeforeAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineBeforeAction.java index 81e128906b57..115c8c949ea9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineBeforeAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/StartNewLineBeforeAction.java @@ -21,10 +21,12 @@ public class StartNewLineBeforeAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return getHandler(IdeActions.ACTION_EDITOR_ENTER).isEnabled(editor, dataContext); } + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { editor.getSelectionModel().removeSelection(); LogicalPosition caretPosition = editor.getCaretModel().getLogicalPosition(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TabAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TabAction.java index c0f01b8e56fe..e3b2039cc130 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TabAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TabAction.java @@ -46,6 +46,7 @@ public class TabAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.EDIT_COMMAND_GROUP); CommandProcessor.getInstance().setCurrentCommandName(EditorBundle.message("typing.command.name")); @@ -53,6 +54,7 @@ public class TabAction extends EditorAction { insertTabAtCaret(editor, project); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode() && !((EditorEx)editor).isEmbeddedIntoDialogWrapper(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextComponentEditorAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextComponentEditorAction.java index 95040714e5e5..396fad0d3901 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextComponentEditorAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextComponentEditorAction.java @@ -33,6 +33,7 @@ public abstract class TextComponentEditorAction extends EditorAction { super(defaultHandler); } + @Override @Nullable protected Editor getEditor(final DataContext dataContext) { return getEditorFromContext(dataContext); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndAction.java index 60772df75149..2e2c745cc26c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndAction.java @@ -39,6 +39,7 @@ public class TextEndAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int offset = editor.getDocument().getTextLength(); editor.getCaretModel().moveToOffset(offset); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndWithSelectionAction.java index 30df1b53b5f4..4b23744a6c2b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextEndWithSelectionAction.java @@ -37,6 +37,7 @@ public class TextEndWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int selectionStart = editor.getSelectionModel().getLeadSelectionOffset(); int offset = editor.getDocument().getTextLength(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartAction.java index 837762954e1f..4debff886520 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartAction.java @@ -39,6 +39,7 @@ public class TextStartAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { editor.getCaretModel().moveToOffset(0); editor.getSelectionModel().removeSelection(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartWithSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartWithSelectionAction.java index 28075f95f2c7..4c441322da50 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartWithSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/TextStartWithSelectionAction.java @@ -37,6 +37,7 @@ public class TextStartWithSelectionAction extends TextComponentEditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { int selectionStart = editor.getSelectionModel().getLeadSelectionOffset(); editor.getCaretModel().moveToOffset(0); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleCaseAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleCaseAction.java index d3ae2925b1e0..594064c95649 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleCaseAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleCaseAction.java @@ -37,6 +37,7 @@ public class ToggleCaseAction extends TextComponentEditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { final SelectionModel selectionModel = editor.getSelectionModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleColumnModeAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleColumnModeAction.java index 9f28b4ab72ed..63cecef76113 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleColumnModeAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleColumnModeAction.java @@ -35,6 +35,7 @@ import com.intellij.openapi.project.DumbAware; public class ToggleColumnModeAction extends ToggleAction implements DumbAware { + @Override public void setSelected(AnActionEvent e, boolean state) { final EditorEx editor = getEditor(e); final SelectionModel selectionModel = editor.getSelectionModel(); @@ -75,6 +76,7 @@ public class ToggleColumnModeAction extends ToggleAction implements DumbAware { } } + @Override public boolean isSelected(AnActionEvent e) { final EditorEx ex = getEditor(e); return ex != null && ex.isColumnMode(); @@ -84,6 +86,7 @@ public class ToggleColumnModeAction extends ToggleAction implements DumbAware { return (EditorEx) PlatformDataKeys.EDITOR.getData(e.getDataContext()); } + @Override public void update(AnActionEvent e){ if (getEditor(e) == null) { e.getPresentation().setEnabled(false); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleInsertStateAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleInsertStateAction.java index 67d553921f49..14bd6f5db694 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleInsertStateAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/ToggleInsertStateAction.java @@ -36,6 +36,7 @@ public class ToggleInsertStateAction extends EditorAction { } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { EditorEx editorex = (EditorEx) editor; editorex.setInsertMode(!editorex.isInsertMode()); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnindentSelectionAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnindentSelectionAction.java index 85dd34512baa..ec72fa01ec3f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnindentSelectionAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnindentSelectionAction.java @@ -44,11 +44,13 @@ public class UnindentSelectionAction extends EditorAction { } private static class Handler extends EditorWriteActionHandler { + @Override public void executeWriteAction(Editor editor, DataContext dataContext) { Project project = PlatformDataKeys.PROJECT.getData(dataContext); unindentSelection(editor, project); } + @Override public boolean isEnabled(Editor editor, DataContext dataContext) { return !editor.isOneLineMode() && !((EditorEx)editor).isEmbeddedIntoDialogWrapper(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnselectWordAtCaretAction.java b/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnselectWordAtCaretAction.java index 7f9f5559272a..ad9ce0846cae 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnselectWordAtCaretAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/actions/UnselectWordAtCaretAction.java @@ -37,6 +37,7 @@ public class UnselectWordAtCaretAction extends EditorAction implements DumbAware } private static class Handler extends EditorActionHandler { + @Override public void execute(Editor editor, DataContext dataContext) { } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java index 8a913312883b..81c14027ade6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java @@ -37,6 +37,7 @@ public class DefaultColorSchemesManager implements JDOMExternalizable, NamedComp private final List mySchemes; @NonNls private static final String SCHEME_ELEMENT = "scheme"; + @Override @NotNull public String getComponentName() { return "DefaultColorSchemesManager"; @@ -50,6 +51,7 @@ public class DefaultColorSchemesManager implements JDOMExternalizable, NamedComp return ServiceManager.getService(DefaultColorSchemesManager.class); } + @Override public void readExternal(Element element) throws InvalidDataException { List schemes = element.getChildren(SCHEME_ELEMENT); for (Object scheme : schemes) { @@ -60,6 +62,7 @@ public class DefaultColorSchemesManager implements JDOMExternalizable, NamedComp } } + @Override public void writeExternal(Element element) throws WriteExternalException { throw new WriteExternalException(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java index ccb7736873f4..6928133f7502 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java @@ -95,24 +95,29 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { myDefaultColorSchemesManager = defaultColorSchemesManager; } + @Override public Color getDefaultBackground() { final Color c = getAttributes(HighlighterColors.TEXT).getBackgroundColor(); return c != null ? c : Color.white; } + @Override public Color getDefaultForeground() { final Color c = getAttributes(HighlighterColors.TEXT).getForegroundColor(); return c != null ? c : Color.black; } + @Override public String getName() { return mySchemeName; } + @Override public void setFont(EditorFontType key, Font font) { myFonts.put(key, font); } + @Override public abstract Object clone(); public void copyTo(AbstractColorsScheme newScheme) { @@ -135,11 +140,13 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { newScheme.myVersion = myVersion; } + @Override public void setEditorFontName(String fontName) { myEditorFontName = fontName; initFonts(); } + @Override public void setEditorFontSize(int fontSize) { myEditorFontSize = fontSize; initFonts(); @@ -150,18 +157,22 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { myQuickDocFontSize = fontSize; } + @Override public void setLineSpacing(float lineSpacing) { myLineSpacing = lineSpacing; } + @Override public Font getFont(EditorFontType key) { return myFonts.get(key); } + @Override public void setName(String name) { mySchemeName = name; } + @Override public String getEditorFontName() { if (myFallbackFontName != null) { return myFallbackFontName; @@ -169,6 +180,7 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { return myEditorFontName == null ? DEFAULT_FONT_NAME : myEditorFontName; } + @Override public int getEditorFontSize() { return myEditorFontSize; } @@ -179,6 +191,7 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { return myQuickDocFontSize; } + @Override public float getLineSpacing() { return myLineSpacing <= 0 ? 1.0f : myLineSpacing; } @@ -224,6 +237,7 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { return getName(); } + @Override public void readExternal(Element parentNode) throws InvalidDataException { if (SCHEME_ELEMENT.equals(parentNode.getName())) { readScheme(parentNode); @@ -362,6 +376,7 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { } } + @Override public void writeExternal(Element parentNode) throws WriteExternalException { parentNode.setAttribute(NAME_ATTR, getName()); parentNode.setAttribute(VERSION_ATTR, Integer.toString(myVersion)); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DefaultColorsScheme.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DefaultColorsScheme.java index 99023b789338..720ea714a256 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DefaultColorsScheme.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DefaultColorsScheme.java @@ -36,36 +36,44 @@ public class DefaultColorsScheme extends AbstractColorsScheme implements ReadOnl super(null, defaultColorSchemesManager); } + @Override public TextAttributes getAttributes(TextAttributesKey key) { if (key == null) return null; TextAttributes attrs = myAttributesMap.get(key); return attrs != null ? attrs : key.getDefaultAttributes(); } + @Override public Color getColor(ColorKey key) { if (key == null) return null; Color color = myColorsMap.get(key); return color != null ? color : key.getDefaultColor(); } + @Override public void readExternal(Element parentNode) throws InvalidDataException { super.readExternal(parentNode); myName = parentNode.getAttributeValue(NAME_ATTR); } + @Override public String getName() { return myName; } + @Override public void setAttributes(TextAttributesKey key, TextAttributes attributes) { } + @Override public void setColor(ColorKey key, Color color) { } + @Override public void setFont(EditorFontType key, Font font) { } + @Override public Object clone() { EditorColorsSchemeImpl newScheme = new EditorColorsSchemeImpl(this, myDefaultColorSchemesManager); copyTo(newScheme); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java index c866422db2c4..5ec554478d10 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java @@ -142,6 +142,7 @@ public abstract class DelegateColorScheme implements EditorColorsScheme { return myDelegate.getName(); } + @Override public Object clone() { return myDelegate.clone(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java index bea719755edb..fc9c085ad7c9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java @@ -69,12 +69,14 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name mySchemesManager = schemesManagerFactory.createSchemesManager( FILE_SPEC, new BaseSchemeProcessor() { + @Override public EditorColorsSchemeImpl readScheme(final Document document) throws InvalidDataException { return loadSchemeFromDocument(document, true); } + @Override public Document writeScheme(final EditorColorsSchemeImpl scheme) { Element root = new Element(SCHEME_NODE_NAME); try { @@ -92,10 +94,12 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name scheme.setName(name); } + @Override public boolean shouldBeSaved(final EditorColorsSchemeImpl scheme) { return !(scheme instanceof ReadOnlyColorsScheme); } + @Override public void onCurrentSchemeChanged(final Scheme newCurrentScheme) { fireChanges(mySchemesManager.getCurrentScheme()); } @@ -151,6 +155,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name catch (final Exception e) { ApplicationManager.getApplication().invokeLater( new Runnable(){ + @Override public void run() { // Error shouldn't occur during this operation // thus we report error instead of info @@ -180,6 +185,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name catch (final Exception e) { ApplicationManager.getApplication().invokeLater( new Runnable(){ + @Override public void run() { // Error shouldn't occur during this operation // thus we report error instead of info @@ -237,12 +243,14 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name // Schemes manipulation routines // ------------------------------------------------------------------------- + @Override public void addColorsScheme(EditorColorsScheme scheme) { if (!isDefaultScheme(scheme) && scheme.getName().trim().length() > 0) { mySchemesManager.addNewScheme(scheme, true); } } + @Override public void removeAllSchemes() { mySchemesManager.clearAllSchemes(); addDefaultSchemes(); @@ -259,9 +267,11 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name // Getters & Setters // ------------------------------------------------------------------------- + @Override public EditorColorsScheme[] getAllSchemes() { ArrayList schemes = new ArrayList(mySchemesManager.getAllSchemes()); Collections.sort(schemes, new Comparator() { + @Override public int compare(EditorColorsScheme s1, EditorColorsScheme s2) { if (isDefaultScheme(s1) && !isDefaultScheme(s2)) return -1; if (!isDefaultScheme(s1) && isDefaultScheme(s2)) return 1; @@ -273,15 +283,18 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name return schemes.toArray(new EditorColorsScheme[schemes.size()]); } + @Override public void setGlobalScheme(EditorColorsScheme scheme) { mySchemesManager.setCurrentSchemeName(scheme == null ? DefaultColorSchemesManager.getInstance().getAllSchemes()[0].getName() : scheme.getName()); fireChanges(scheme); } + @Override public EditorColorsScheme getGlobalScheme() { return mySchemesManager.getCurrentScheme(); } + @Override public EditorColorsScheme getScheme(String schemeName) { return mySchemesManager.findSchemeByName(schemeName); } @@ -312,40 +325,49 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name } + @Override public void addEditorColorsListener(EditorColorsListener listener) { myListeners.addListener(listener); } + @Override public void addEditorColorsListener(EditorColorsListener listener, Disposable disposable) { myListeners.addListener(listener, disposable); } + @Override public void removeEditorColorsListener(EditorColorsListener listener) { myListeners.removeListener(listener); } + @Override public void setUseOnlyMonospacedFonts(boolean b) { USE_ONLY_MONOSPACED_FONTS = b; } + @Override public boolean isUseOnlyMonospacedFonts() { return USE_ONLY_MONOSPACED_FONTS; } + @Override public String getExternalFileName() { return "colors.scheme"; } + @Override @NotNull public File[] getExportFiles() { return new File[]{getColorsDir(true), PathManager.getOptionsFile(this)}; } + @Override @NotNull public String getPresentableName() { return OptionsBundle.message("options.color.schemes.presentable.name"); } + @Override public void readExternal(Element parentNode) throws InvalidDataException { DefaultJDOMExternalizer.readExternal(this, parentNode); Element element = parentNode.getChild(NODE_NAME); @@ -372,6 +394,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name setGlobalScheme(mySchemesManager.findSchemeByName(schemeName)); } + @Override public void writeExternal(Element parentNode) throws WriteExternalException { DefaultJDOMExternalizer.writeExternal(this, parentNode); if (mySchemesManager.getCurrentScheme() != null) { @@ -381,6 +404,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name } } + @Override public boolean isDefaultScheme(EditorColorsScheme scheme) { return scheme instanceof DefaultColorsScheme; } @@ -389,6 +413,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name return mySchemesManager; } + @Override @NotNull public String getComponentName() { return "EditorColorsManagerImpl"; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsSchemeImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsSchemeImpl.java index 0197a141bce0..4e93a3e39361 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsSchemeImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsSchemeImpl.java @@ -41,18 +41,21 @@ public class EditorColorsSchemeImpl extends AbstractColorsScheme implements Exte // ------------------------------------------------------------------------- // Getters & Setters // ------------------------------------------------------------------------- + @Override public void setAttributes(TextAttributesKey key, TextAttributes attributes) { if (!Comparing.equal(attributes, getAttributes(key))) { myAttributesMap.put(key, attributes); } } + @Override public void setColor(ColorKey key, Color color) { if (!Comparing.equal(color, getColor(key))) { myColorsMap.put(key, color); } } + @Override public TextAttributes getAttributes(TextAttributesKey key) { if (myAttributesMap.containsKey(key)) { return myAttributesMap.get(key); @@ -61,6 +64,7 @@ public class EditorColorsSchemeImpl extends AbstractColorsScheme implements Exte } } + @Override public Color getColor(ColorKey key) { if (myColorsMap.containsKey(key)) { return myColorsMap.get(key); @@ -69,6 +73,7 @@ public class EditorColorsSchemeImpl extends AbstractColorsScheme implements Exte } } + @Override public Object clone() { EditorColorsSchemeImpl newScheme = new EditorColorsSchemeImpl(myParentScheme, DefaultColorSchemesManager.getInstance()); copyTo(newScheme); @@ -76,6 +81,7 @@ public class EditorColorsSchemeImpl extends AbstractColorsScheme implements Exte return newScheme; } + @Override @NotNull public ExternalInfo getExternalInfo() { return myExternalInfo; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java index c6df1addb91c..f35902f457d5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorSettingsExternalizable.java @@ -80,6 +80,7 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex public boolean SHOW_REFORMAT_DIALOG = true; public boolean SHOW_OPIMIZE_IMPORTS_DIALOG = true; + @Override public Object clone() { try { return super.clone(); @@ -116,8 +117,10 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex return app.getComponent(EditorSettingsExternalizable.class); } + @Override public void initComponent() { } + @Override public void disposeComponent() { } @@ -129,13 +132,16 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex myPropertyChangeSupport.removePropertyChangeListener(listener); } + @Override public void readExternal(Element element) throws InvalidDataException { DefaultJDOMExternalizer.readExternal(myOptions, element); parseRawSoftWraps(); } + @Override public void writeExternal(Element element) throws WriteExternalException { DefaultJDOMExternalizer.writeExternal(myOptions, element, new DefaultJDOMExternalizer.JDOMFilter() { + @Override public boolean isAccept(final Field field) { return !field.getName().equals("IS_NATIVE2ASCII_FOR_PROPERTIES_FILES") && !field.getName().equals("DEFAULT_PROPERTIES_FILES_CHARSET_NAME"); } @@ -177,6 +183,7 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex myOptions.USE_SOFT_WRAPS = buffer.toString(); } + @Override public String getExternalFileName() { return "editor"; } @@ -365,6 +372,7 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex myOptions.REFRAIN_FROM_SCROLLING = b; } + @Override public Object clone() { EditorSettingsExternalizable copy = new EditorSettingsExternalizable(); copy.myOptions = (OptionSet) myOptions.clone(); @@ -378,16 +386,19 @@ public class EditorSettingsExternalizable implements NamedJDOMExternalizable, Ex return copy; } + @Override @NotNull public String getComponentName() { return "EditorSettings"; } + @Override @NotNull public File[] getExportFiles() { return new File[]{PathManager.getOptionsFile(this)}; } + @Override @NotNull public String getPresentableName() { return OptionsBundle.message("options.editor.settings.presentable.name"); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripeAdapter.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripeAdapter.java index d4137b27f954..4bcc366e4a2c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripeAdapter.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripeAdapter.java @@ -20,6 +20,7 @@ package com.intellij.openapi.editor.ex; */ public abstract class ErrorStripeAdapter implements ErrorStripeListener { + @Override public void errorMarkerClicked(ErrorStripeEvent e) { } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/RangeHighlighterEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/RangeHighlighterEx.java index d09ce39fd147..767b5f9aa82e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/RangeHighlighterEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/RangeHighlighterEx.java @@ -34,6 +34,7 @@ public interface RangeHighlighterEx extends RangeHighlighter, RangeMarkerEx { int getAffectedAreaStartOffset(); int getAffectedAreaEndOffset(); + @Override long getId(); void setTextAttributes(TextAttributes textAttributes); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java index ab0d1c30997a..c519acfd6496 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EditorUtil.java @@ -183,6 +183,7 @@ public class EditorUtil { final String filler = EditorModificationUtil.calcStringToFillVirtualSpace(editor); if (filler.length() > 0) { new WriteAction(){ + @Override protected void run(final Result result) throws Throwable { editor.getDocument().insertString(offset, filler); editor.getCaretModel().moveToOffset(offset + filler.length()); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EmptyEditorHighlighter.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EmptyEditorHighlighter.java index 51b392145ee6..be4918587d69 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EmptyEditorHighlighter.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/EmptyEditorHighlighter.java @@ -42,61 +42,76 @@ public class EmptyEditorHighlighter implements EditorHighlighter, PrioritizedDoc myAttributes = attributes; } + @Override public void setText(CharSequence text) { myTextLength = text.length(); } + @Override public void setEditor(HighlighterClient editor) { LOG.assertTrue(myEditor == null, "Highlighters cannot be reused with different editors"); myEditor = editor; } + @Override public void setColorScheme(EditorColorsScheme scheme) { setAttributes(scheme.getAttributes(HighlighterColors.TEXT)); } + @Override public void documentChanged(DocumentEvent e) { myTextLength += e.getNewLength() - e.getOldLength(); } + @Override public void beforeDocumentChange(DocumentEvent event) {} + @Override public int getPriority() { return 2; } + @Override public HighlighterIterator createIterator(int startOffset) { return new HighlighterIterator(){ private int index = 0; + @Override public TextAttributes getTextAttributes() { return myAttributes; } + @Override public int getStart() { return 0; } + @Override public int getEnd() { return myTextLength; } + @Override public void advance() { index++; } + @Override public void retreat(){ index--; } + @Override public boolean atEnd() { return index != 0; } + @Override public Document getDocument() { return myEditor.getDocument(); } + @Override public IElementType getTokenType(){ return IElementType.find(IElementType.FIRST_TOKEN_INDEX); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java index 128bfd6b5754..8e04becd8b79 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java @@ -88,16 +88,19 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc return myLexer; } + @Override public void setEditor(HighlighterClient editor) { LOG.assertTrue(myEditor == null, "Highlighters cannot be reused with different editors"); myEditor = editor; } + @Override public void setColorScheme(EditorColorsScheme scheme) { myScheme = scheme; myAttributesMap.clear(); } + @Override public HighlighterIterator createIterator(int startOffset) { synchronized (this) { final Document document = getDocument(); @@ -133,6 +136,7 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc return IElementType.find((short)Math.abs(data)); } + @Override public synchronized void documentChanged(DocumentEvent e) { final Document document = e.getDocument(); @@ -262,9 +266,11 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc myEditor.repaint(startOffset, repaintEnd); } + @Override public void beforeDocumentChange(DocumentEvent event) { } + @Override public int getPriority() { return EditorDocumentPriorities.LEXER_EDITOR; } @@ -279,6 +285,7 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc return myEditor; } + @Override public void setText(CharSequence text) { synchronized (this) { doSetText(text); @@ -312,6 +319,7 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc if(myEditor != null) { UIUtil.invokeLaterIfNeeded(new DumbAwareRunnable() { + @Override public void run() { myEditor.repaint(0, text.length()); } @@ -355,34 +363,42 @@ public class LexerEditorHighlighter implements EditorHighlighter, PrioritizedDoc return mySegmentIndex; } + @Override public TextAttributes getTextAttributes() { return getAttributes(getTokenType()); } + @Override public int getStart() { return mySegments.getSegmentStart(mySegmentIndex); } + @Override public int getEnd() { return mySegments.getSegmentEnd(mySegmentIndex); } + @Override public IElementType getTokenType(){ return unpackToken(mySegments.getSegmentData(mySegmentIndex)); } + @Override public void advance() { mySegmentIndex++; } + @Override public void retreat(){ mySegmentIndex--; } + @Override public boolean atEnd() { return mySegmentIndex >= mySegments.getSegmentCount() || mySegmentIndex < 0; } + @Override public Document getDocument() { return LexerEditorHighlighter.this.getDocument(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LimitedRangeHighlighterIterator.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LimitedRangeHighlighterIterator.java index f46c83597fe7..a94ff071edd7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LimitedRangeHighlighterIterator.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LimitedRangeHighlighterIterator.java @@ -35,34 +35,42 @@ public class LimitedRangeHighlighterIterator implements HighlighterIterator { myEndOffset = endOffset; } + @Override public TextAttributes getTextAttributes() { return myOriginal.getTextAttributes(); } + @Override public int getStart() { return Math.max(myOriginal.getStart(), myStartOffset); } + @Override public int getEnd() { return Math.min(myOriginal.getEnd(), myEndOffset); } + @Override public IElementType getTokenType() { return myOriginal.getTokenType(); } + @Override public void advance() { myOriginal.advance(); } + @Override public void retreat() { myOriginal.retreat(); } + @Override public boolean atEnd() { return myOriginal.atEnd() || myOriginal.getStart() >= myEndOffset || myOriginal.getEnd() <= myStartOffset; } + @Override public Document getDocument() { return myOriginal.getDocument(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java index 1a26aa4cdf58..58c19f686397 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java @@ -32,11 +32,13 @@ import org.jetbrains.annotations.Nullable; * @author yole */ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { + @Override public EditorHighlighter createEditorHighlighter(SyntaxHighlighter highlighter, final EditorColorsScheme colors) { if (highlighter == null) highlighter = new PlainSyntaxHighlighter(); return new LexerEditorHighlighter(highlighter, colors); } + @Override public EditorHighlighter createEditorHighlighter(final FileType fileType, final EditorColorsScheme settings, final Project project) { if (fileType instanceof LanguageFileType) { return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(project, fileType, null, settings); @@ -46,10 +48,12 @@ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { return createEditorHighlighter(highlighter, settings); } + @Override public EditorHighlighter createEditorHighlighter(final Project project, final FileType fileType) { return createEditorHighlighter(fileType, EditorColorsManager.getInstance().getGlobalScheme(), project); } + @Override public EditorHighlighter createEditorHighlighter(@NotNull final VirtualFile vFile, final EditorColorsScheme settings, final Project project) { final FileType fileType = vFile.getFileType(); if (fileType instanceof LanguageFileType) { @@ -94,14 +98,17 @@ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { return null; } + @Override public EditorHighlighter createEditorHighlighter(final Project project, final VirtualFile file) { return createEditorHighlighter(file, EditorColorsManager.getInstance().getGlobalScheme(), project); } + @Override public EditorHighlighter createEditorHighlighter(final Project project, final String fileName) { return createEditorHighlighter(EditorColorsManager.getInstance().getGlobalScheme(), fileName, project); } + @Override public EditorHighlighter createEditorHighlighter(final EditorColorsScheme settings, final String fileName, final Project project) { return createEditorHighlighter(new LightVirtualFile(fileName), settings, project); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/BorderEffect.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/BorderEffect.java index e1a8c169722f..cc1a23f6f8e5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/BorderEffect.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/BorderEffect.java @@ -35,6 +35,7 @@ public class BorderEffect { private final TextRange myRange; private final EditorImpl myEditor; private static final Equality SAME_COLOR_BOXES = new Equality() { + @Override public boolean equals(final TextAttributes attributes1, final TextAttributes attributes2) { Color effectColor = attributes1.getEffectColor(); EffectType effectType = attributes1.getEffectType(); @@ -45,6 +46,7 @@ public class BorderEffect { } }; private static final Condition BOX_FILTER = new Condition() { + @Override public boolean value(TextAttributes attributes) { return isBorder(attributes); } @@ -172,6 +174,7 @@ public class BorderEffect { this(editor.getDocument().getCharsSequence(), new RangeIterator.FoldingGaps(editor.getFoldingModel())); } + @Override public boolean isGapAt(int offset) { return myChars.charAt(offset) == '\n' || myFoldingGaps.isGapAt(offset); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java index 8662f4f53f76..6f61f4471be3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java @@ -111,6 +111,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, } } + @Override public void moveToVisualPosition(@NotNull VisualPosition pos) { assertIsDispatchThread(); validateCallContext(); @@ -176,10 +177,12 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, myEditor.assertIsDispatchThread(); } + @Override public void moveToOffset(int offset) { moveToOffset(offset, false); } + @Override public void moveToOffset(int offset, boolean locateBeforeSoftWrap) { assertIsDispatchThread(); validateCallContext(); @@ -202,6 +205,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, this.ignoreWrongMoves = ignoreWrongMoves; } + @Override public void moveCaretRelatively(int columnShift, int lineShift, boolean withSelection, @@ -351,6 +355,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, EditorActionUtil.selectNonexpandableFold(myEditor); } + @Override public void moveToLogicalPosition(@NotNull LogicalPosition pos) { moveToLogicalPosition(pos, false); } @@ -422,6 +427,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, if (collapsedAt != null && offset > collapsedAt.getStartOffset()) { Runnable runnable = new Runnable() { + @Override public void run() { FoldRegion[] allCollapsedAt = ((FoldingModelImpl)myEditor.getFoldingModel()).fetchCollapsedAt(offset); for (FoldRegion foldRange : allCollapsedAt) { @@ -487,6 +493,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, return !myIsInUpdate; } + @Override @NotNull public LogicalPosition getLogicalPosition() { validateCallContext(); @@ -497,34 +504,41 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, LOG.assertTrue(!myIsInUpdate, "Caret model is in its update process. All requests are illegal at this point."); } + @Override @NotNull public VisualPosition getVisualPosition() { validateCallContext(); return myVisibleCaret; } + @Override public int getOffset() { validateCallContext(); return myOffset; } + @Override public int getVisualLineStart() { return myVisualLineStart; } + @Override public int getVisualLineEnd() { return myVisualLineEnd; } + @Override public void addCaretListener(@NotNull CaretListener listener) { myCaretListeners.add(listener); } + @Override public void removeCaretListener(@NotNull CaretListener listener) { boolean success = myCaretListeners.remove(listener); LOG.assertTrue(success); } + @Override public TextAttributes getTextAttributes() { if (myTextAttributes == null) { myTextAttributes = new TextAttributes(); @@ -538,6 +552,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, myTextAttributes = null; } + @Override public void documentChanged(DocumentEvent e) { finishUpdate(); @@ -606,10 +621,12 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, return Character.isWhitespace(charBefore)/* || !Character.isWhitespace(charAfter)*/; } + @Override public void beforeDocumentChange(DocumentEvent e) { myIsInUpdate = true; } + @Override public int getPriority() { return EditorDocumentPriorities.CARET_MODEL; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ContextMenuImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ContextMenuImpl.java index b1f3277bf463..328f925a6cd7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ContextMenuImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ContextMenuImpl.java @@ -128,12 +128,14 @@ public class ContextMenuImpl extends JPanel implements Disposable { } myTimer = UIUtil.createNamedTimer("Restart context menu", 500, new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (myDisposed) return; if (myTimer != null && myTimer.isRunning()) myTimer.stop(); myTimer = UIUtil.createNamedTimer("Restart context menu now",50, new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (myShow) { if (myVisible) { @@ -186,6 +188,7 @@ public class ContextMenuImpl extends JPanel implements Disposable { myTimer.start(); } + @Override public void dispose() { myDisposed = true; myEditor = null; @@ -212,6 +215,7 @@ public class ContextMenuImpl extends JPanel implements Disposable { } myTimer = UIUtil.createNamedTimer("Hide context menu",1500, new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { if (myDisposed) return; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorActionManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorActionManagerImpl.java index cdcceea47230..d270d98811c7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorActionManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorActionManagerImpl.java @@ -33,20 +33,24 @@ public class EditorActionManagerImpl extends EditorActionManager { myActionManager = actionManager; } + @Override public EditorActionHandler getActionHandler(@NotNull String actionId) { return ((EditorAction) myActionManager.getAction(actionId)).getHandler(); } + @Override public EditorActionHandler setActionHandler(@NotNull String actionId, @NotNull EditorActionHandler handler) { EditorAction action = (EditorAction)myActionManager.getAction(actionId); return action.setupHandler(handler); } + @Override @NotNull public TypedAction getTypedAction() { return myTypedAction; } + @Override public ReadonlyFragmentModificationHandler getReadonlyFragmentModificationHandler() { return myReadonlyFragmentsHandler; } @@ -67,6 +71,7 @@ public class EditorActionManagerImpl extends EditorActionManager { } } + @Override public ReadonlyFragmentModificationHandler setReadonlyFragmentModificationHandler(@NotNull ReadonlyFragmentModificationHandler handler) { ReadonlyFragmentModificationHandler oldHandler = myReadonlyFragmentsHandler; myReadonlyFragmentsHandler = handler; @@ -75,6 +80,7 @@ public class EditorActionManagerImpl extends EditorActionManager { private static class DefaultReadOnlyFragmentModificationHandler implements ReadonlyFragmentModificationHandler { + @Override public void handle(ReadOnlyFragmentModificationException e) { Messages.showErrorDialog(EditorBundle.message("guarded.block.modification.attempt.error.message"), EditorBundle.message("guarded.block.modification.attempt.error.title")); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java index 9ff8cf54a8f4..deaef127e15c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java @@ -53,6 +53,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP } + @Override public Object getData(String dataId) { if (myEditor.isRendererMode()) return null; @@ -90,6 +91,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP processComponentEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED)); } + @Override protected void processInputMethodEvent(InputMethodEvent e) { super.processInputMethodEvent(e); if (!e.isConsumed()) { @@ -106,6 +108,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP } } + @Override public ActionCallback type(final String text) { final ActionCallback result = new ActionCallback(); UIUtil.invokeLaterIfNeeded(new Runnable() { @@ -117,10 +120,12 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP return result; } + @Override public InputMethodRequests getInputMethodRequests() { return IdeEventQueue.getInstance().isInputMethodEnabled() ? myEditor.getInputMethodRequests() : null; } + @Override public void paintComponent(Graphics g) { ((ApplicationImpl)ApplicationManager.getApplication()).editorPaintStart(); @@ -144,10 +149,12 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP } //--implementation of Scrollable interface-------------------------------------- + @Override public Dimension getPreferredScrollableViewportSize() { return myEditor.getPreferredSize(); } + @Override public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { if (orientation == SwingConstants.VERTICAL) { return myEditor.getLineHeight(); @@ -157,6 +164,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP } } + @Override public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { if (orientation == SwingConstants.VERTICAL) { int lineHeight = myEditor.getLineHeight(); @@ -174,14 +182,17 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP } } + @Override public boolean getScrollableTracksViewportWidth() { return getParent()instanceof JViewport && getParent().getWidth() > getPreferredSize().width; } + @Override public boolean getScrollableTracksViewportHeight() { return getParent()instanceof JViewport && getParent().getHeight() > getPreferredSize().height; } + @Override public void putInfo(Map info) { myEditor.putInfo(info); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorFactoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorFactoryImpl.java index 4d00ff274aa0..1aded33a9a4d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorFactoryImpl.java @@ -56,8 +56,10 @@ public class EditorFactoryImpl extends EditorFactory { public EditorFactoryImpl(ProjectManager projectManager) { projectManager.addProjectManagerListener(new ProjectManagerAdapter() { + @Override public void projectClosed(final Project project) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { validateEditorsAreReleased(project); } @@ -66,13 +68,16 @@ public class EditorFactoryImpl extends EditorFactory { }); } + @Override @NotNull public String getComponentName() { return "EditorFactory"; } + @Override public void initComponent() { ModalityStateListener myModalityStateListener = new ModalityStateListener() { + @Override public void beforeModalityStateChanged(boolean entering) { for (Editor editor : myEditors) { ((EditorImpl)editor).beforeModalityStateChanged(); @@ -109,14 +114,17 @@ public class EditorFactoryImpl extends EditorFactory { } } + @Override public void disposeComponent() { } + @Override @NotNull public Document createDocument(@NotNull char[] text) { return createDocument(new CharArrayCharSequence(text)); } + @Override @NotNull public Document createDocument(@NotNull CharSequence text) { DocumentImpl document = new DocumentImpl(text); @@ -131,34 +139,41 @@ public class EditorFactoryImpl extends EditorFactory { return document; } + @Override public void refreshAllEditors() { for (Editor editor : myEditors) { ((EditorEx)editor).reinitSettings(); } } + @Override public Editor createEditor(@NotNull Document document) { return createEditor(document, false, null); } + @Override public Editor createViewer(@NotNull Document document) { return createEditor(document, true, null); } + @Override public Editor createEditor(@NotNull Document document, Project project) { return createEditor(document, false, project); } + @Override public Editor createViewer(@NotNull Document document, Project project) { return createEditor(document, true, project); } + @Override public Editor createEditor(@NotNull final Document document, final Project project, @NotNull final FileType fileType, final boolean isViewer) { Editor editor = createEditor(document, isViewer, project); ((EditorEx)editor).setHighlighter(EditorHighlighterFactory.getInstance().createEditorHighlighter(project, fileType)); return editor; } + @Override public Editor createEditor(@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer) { Editor editor = createEditor(document, isViewer, project); ((EditorEx)editor).setHighlighter(EditorHighlighterFactory.getInstance().createEditorHighlighter(project, file)); @@ -183,6 +198,7 @@ public class EditorFactoryImpl extends EditorFactory { return editor; } + @Override public void releaseEditor(@NotNull Editor editor) { editor.putUserData(EDITOR_CREATOR, null); ((EditorImpl)editor).release(); @@ -195,6 +211,7 @@ public class EditorFactoryImpl extends EditorFactory { } } + @Override @NotNull public Editor[] getEditors(@NotNull Document document, Project project) { List list = null; @@ -208,16 +225,19 @@ public class EditorFactoryImpl extends EditorFactory { return list == null ? Editor.EMPTY_ARRAY : list.toArray(new Editor[list.size()]); } + @Override @NotNull public Editor[] getEditors(@NotNull Document document) { return getEditors(document, null); } + @Override @NotNull public Editor[] getAllEditors() { return myEditors.toArray(new Editor[myEditors.size()]); } + @Override public void addEditorFactoryListener(@NotNull EditorFactoryListener listener) { myEditorFactoryEventDispatcher.addListener(listener); } @@ -227,10 +247,12 @@ public class EditorFactoryImpl extends EditorFactory { myEditorFactoryEventDispatcher.addListener(listener,parentDisposable); } + @Override public void removeEditorFactoryListener(@NotNull EditorFactoryListener listener) { myEditorFactoryEventDispatcher.removeListener(listener); } + @Override @NotNull public EditorEventMulticaster getEventMulticaster() { return myEditorEventMulticaster; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java index f201d191da02..86d0467759a2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java @@ -139,17 +139,20 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse processComponentEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED)); } + @Override public Dimension getPreferredSize() { int w = getLineNumberAreaWidth() + getLineMarkerAreaWidth() + getFoldingAreaWidth() + getAnnotationsAreaWidth(); myLastPreferredHeight = myEditor.getPreferredHeight(); return new Dimension(w, myLastPreferredHeight); } + @Override protected void setUI(ComponentUI newUI) { super.setUI(newUI); reinitSettings(); } + @Override public void updateUI() { super.updateUI(); reinitSettings(); @@ -161,6 +164,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse repaint(); } + @Override public void paint(Graphics g) { ((ApplicationImpl)ApplicationManager.getApplication()).editorPaintStart(); @@ -323,6 +327,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse } } + @Override public Color getBackground() { if (myBackgroundColor == null) { Color color = myEditor.getColorsScheme().getColor(EditorColors.GUTTER_BACKGROUND); @@ -459,6 +464,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return h1 != null && (h2 == null || h1.getStartOffset() < h2.getStartOffset()); } + @Override public void revalidateMarkup() { updateSize(); } @@ -501,6 +507,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse myLineToGutterRenderers = new TIntObjectHashMap>(); processRangeHighlighters(0, myEditor.getDocument().getTextLength(), new RangeHighlighterProcessor() { + @Override public void process(RangeHighlighter highlighter) { GutterIconRenderer renderer = highlighter.getGutterIconRenderer(); if (renderer == null) return; @@ -523,6 +530,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse myIconsAreaWidth = START_ICON_AREA_WIDTH; myLineToGutterRenderers.forEachValue(new TObjectProcedure>() { + @Override public boolean execute(ArrayList renderers) { int width = 1; for (int i = 0; i < renderers.size(); i++) { @@ -548,6 +556,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); try { processRangeHighlighters(firstVisibleOffset, lastVisibleOffset, new RangeHighlighterProcessor() { + @Override public void process(RangeHighlighter highlighter) { paintLineMarkerRenderer(highlighter, g); } @@ -564,6 +573,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse private void paintIcons(final int firstVisibleLine, final int lastVisibleLine, final Graphics g) { myLineToGutterRenderers.forEachKey(new TIntProcedure() { + @Override public boolean execute(int line) { if (firstVisibleLine > line || lastVisibleLine < line) return true; if (isLineCollapsed(line)) return true; @@ -582,6 +592,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse private void paintIconRow(int line, ArrayList row, final Graphics g) { processIconsRow(line, row, new LineGutterIconRendererProcessor() { + @Override public void process(int x, int y, GutterIconRenderer renderer) { Icon icon = renderer.getIcon(); icon.paintIcon(EditorGutterComponentImpl.this, g, x, y); @@ -676,18 +687,21 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return (myEditor.getLineHeight() - icon.getIconHeight()) /2; } + @Override public Color getOutlineColor(boolean isActive) { ColorKey key = isActive ? EditorColors.SELECTED_TEARLINE_COLOR : EditorColors.TEARLINE_COLOR; Color color = myEditor.getColorsScheme().getColor(key); return color != null ? color : Color.black; } + @Override public void registerTextAnnotation(@NotNull TextAnnotationGutterProvider provider) { myTextAnnotationGutters.add(provider); myTextAnnotationGutterSizes.add(0); updateSize(); } + @Override public void registerTextAnnotation(@NotNull TextAnnotationGutterProvider provider, @NotNull EditorGutterAction action) { myTextAnnotationGutters.add(provider); myProviderToListener.put(provider, action); @@ -776,6 +790,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse ); } + @Override public int getWhitespaceSeparatorOffset() { return getFoldingAreaOffset() + getFoldingAnchorWidth() / 2; } @@ -942,6 +957,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse : isLineNumbersShown() ? getFoldingAnchorWidth() / 2 : 0; } + @Override public boolean isLineMarkersShown() { return myEditor.getSettings().isLineMarkerAreaShown(); } @@ -950,10 +966,12 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return myEditor.getSettings().isLineNumbersShown(); } + @Override public boolean isAnnotationsShown() { return myTextAnnotationGutters.size() > 0; } + @Override public boolean isFoldingOutlineShown() { return myEditor.getSettings().isFoldingOutlineShown() && myEditor.getFoldingModel().isFoldingEnabled(); @@ -987,10 +1005,12 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return myTextAnnotationGuttersSize; } + @Override public int getLineMarkerAreaOffset() { return getAnnotationsAreaOffset() + getAnnotationsAreaWidth(); } + @Override public int getIconsAreaWidth() { return myIconsAreaWidth; } @@ -999,6 +1019,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return myEditor.getVerticalScrollbarOrientation() != EditorEx.VERTICAL_SCROLLBAR_RIGHT; } + @Override public FoldRegion findFoldingAnchorAt(int x, int y) { if (!myEditor.getSettings().isFoldingOutlineShown()) return null; @@ -1060,10 +1081,12 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return new Rectangle(anchorX, anchorY, anchorWidth, anchorWidth); } + @Override public void mouseDragged(MouseEvent e) { TooltipController.getInstance().cancelTooltips(); } + @Override public void mouseMoved(final MouseEvent e) { String toolTip = null; final GutterIconRenderer renderer = getGutterRenderer(e); @@ -1136,6 +1159,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse } } + @Override public void mouseClicked(MouseEvent e) { if (e.isPopupTrigger()) { invokePopup(e); @@ -1179,6 +1203,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return null; } + @Override public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) { invokePopup(e); @@ -1188,6 +1213,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse } } + @Override public void mouseReleased(final MouseEvent e) { if (e.isPopupTrigger()) { invokePopup(e); @@ -1238,6 +1264,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse myEditor.xyToLogicalPosition(new Point(0, clip.y + clip.height + myEditor.getLineHeight()))); processRangeHighlighters(firstVisibleOffset, lastVisibleOffset, new RangeHighlighterProcessor() { + @Override public void process(RangeHighlighter highlighter) { if (gutterRenderer[0] != null) return; Rectangle rectangle = getLineRendererRectangle(highlighter); @@ -1260,6 +1287,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse return gutterRenderer[0]; } + @Override public void closeAllAnnotations() { for (TextAnnotationGutterProvider provider : myTextAnnotationGutters) { provider.gutterClosed(); @@ -1279,11 +1307,13 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse super(EditorBundle.message("close.editor.annotations.action.name")); } + @Override public void actionPerformed(AnActionEvent e) { closeAllAnnotations(); } } + @Override @Nullable public Point getPoint(GutterIconRenderer renderer) { for (int line : myLineToGutterRenderers.keys()) { @@ -1349,9 +1379,11 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse } } + @Override public void mouseEntered(MouseEvent e) { } + @Override public void mouseExited(MouseEvent e) { TooltipController.getInstance().cancelTooltip(GUTTER_TOOLTIP_GROUP, e, false); } @@ -1378,6 +1410,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse final GutterIconRenderer[] result = {null}; processIconsRow(line, renderers, new LineGutterIconRendererProcessor() { + @Override public void process(int x, int y, GutterIconRenderer renderer) { final int ex = convertX((int)p.getX()); Icon icon = renderer.getIcon(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 56e4d31e2cc8..565813211bf7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -300,14 +300,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myMouseMotionListeners = ContainerUtil.createEmptyCOWList(); myMarkupModelListener = new MarkupModelListener() { + @Override public void afterAdded(@NotNull RangeHighlighterEx highlighter) { attributesChanged(highlighter); } + @Override public void beforeRemoved(@NotNull RangeHighlighterEx highlighter) { attributesChanged(highlighter); } + @Override public void attributesChanged(@NotNull RangeHighlighterEx highlighter) { int textLength = myDocument.getTextLength(); @@ -348,6 +351,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private LightweightHint myCurrentHint = null; private IndentGuideDescriptor myCurrentCaretGuide = null; + @Override public void caretPositionChanged(CaretEvent e) { if (myStickySelection) { int selectionStart = Math.min(myStickySelectionStart, getDocument().getTextLength() - 1); @@ -434,12 +438,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (Patches.APPLE_BUG_ID_3716835) { myScrollingModel.addVisibleAreaListener(new VisibleAreaListener() { + @Override public void visibleAreaChanged(VisibleAreaEvent e) { if (myAppleRepaintAlarm == null) { myAppleRepaintAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD); } myAppleRepaintAlarm.cancelAllRequests(); myAppleRepaintAlarm.addRequest(new Runnable() { + @Override public void run() { repaint(0, myDocument.getTextLength()); } @@ -453,6 +459,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi // This hacks context layout problem where editor appears scrolled to the right just after it is created. if (!ourIsUnitTestMode) { UiNotifyConnector.doWhenFirstShown(myEditorComponent, new Runnable() { + @Override public void run() { if (!isDisposed() && !myScrollingModel.isScrollingNow()) { myScrollingModel.disableAnimation(); @@ -464,6 +471,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public EditorColorsScheme createBoundColorSchemeDelegate(@Nullable final EditorColorsScheme customGlobalScheme) { return new MyColorSchemeDelegate(customGlobalScheme); } @@ -479,23 +487,28 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myPrefixAttributes = attributes; } + @Override public boolean isViewer() { return myIsViewer || myIsRendererMode; } + @Override public boolean isRendererMode() { return myIsRendererMode; } + @Override public void setRendererMode(boolean isRendererMode) { myIsRendererMode = isRendererMode; } + @Override public void setFile(VirtualFile vFile) { myVirtualFile = vFile; reinitSettings(); } + @Override public VirtualFile getVirtualFile() { return myVirtualFile; } @@ -506,42 +519,50 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi mySettings.setSoftWrapAppliancePlace(place); } + @Override @NotNull public SelectionModel getSelectionModel() { return mySelectionModel; } + @Override @NotNull public MarkupModel getMarkupModel() { return myMarkupModel; } + @Override @NotNull public FoldingModelEx getFoldingModel() { return myFoldingModel; } + @Override @NotNull public CaretModelImpl getCaretModel() { return myCaretModel; } + @Override @NotNull public ScrollingModelEx getScrollingModel() { return myScrollingModel; } + @Override @NotNull public SoftWrapModelImpl getSoftWrapModel() { return mySoftWrapModel; } + @Override @NotNull public EditorSettings getSettings() { assertReadAccess(); return mySettings; } + @Override public void reinitSettings() { assertIsDispatchThread(); myCharHeight = -1; @@ -704,6 +725,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } myEditorComponent.addKeyListener(new KeyAdapter() { + @Override public void keyTyped(KeyEvent event) { if (Patches.APPLE_BUG_ID_3337563) return; // Everything is going through InputMethods under MacOS X in JDK releases earlier than 1.4.2_03-117.1 if (event.isConsumed()) { @@ -724,6 +746,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myGutterComponent.addMouseMotionListener(mouseMotionListener); myEditorComponent.addFocusListener(new FocusAdapter() { + @Override public void focusGained(FocusEvent e) { myCaretCursor.activate(); int caretLine = getCaretModel().getLogicalPosition().line; @@ -734,6 +757,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void focusLost(FocusEvent e) { clearCaretThread(); int caretLine = getCaretModel().getLogicalPosition().line; @@ -746,9 +770,11 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi final DropTarget dropTarget = myEditorComponent.getDropTarget(); if (dropTarget != null) { // might be null in headless environment dropTarget.addDropTargetListener(new DropTargetAdapter() { + @Override public void drop(DropTargetDropEvent e) { } + @Override public void dragOver(DropTargetDragEvent e) { Point location = e.getLocation(); @@ -763,6 +789,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } myPanel.addComponentListener(new ComponentAdapter() { + @Override public void componentResized(ComponentEvent e) { myMarkupModel.repaint(0, myDocument.getTextLength()); } @@ -773,6 +800,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return !isEmbeddedIntoDialogWrapper() && !isOneLineMode() && ContextMenuImpl.mayShowToolbar(myDocument); } + @Override public void setFontSize(final int fontSize) { int oldFontSize = myScheme.getEditorFontSize(); myScheme.setEditorFontSize(fontSize); @@ -786,6 +814,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi final ActionCallback result = new ActionCallback(); ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { for (int i = 0; i < text.length(); i++) { if (!processKeyTyped(text.charAt(i))) { @@ -834,6 +863,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void setHighlighter(@NotNull EditorHighlighter highlighter) { assertIsDispatchThread(); final Document document = getDocument(); @@ -852,28 +882,34 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public EditorHighlighter getHighlighter() { assertReadAccess(); return myHighlighter; } + @Override @NotNull public EditorComponentImpl getContentComponent() { return myEditorComponent; } + @Override public EditorGutterComponentEx getGutterComponentEx() { return myGutterComponent; } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeSupport.addPropertyChangeListener(listener); } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeSupport.removePropertyChangeListener(listener); } + @Override public void setInsertMode(boolean mode) { assertIsDispatchThread(); boolean oldValue = myIsInsertMode; @@ -884,10 +920,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi getCaretModel().moveToLogicalPosition(caretPosition); } + @Override public boolean isInsertMode() { return myIsInsertMode; } + @Override public void setColumnMode(boolean mode) { assertIsDispatchThread(); boolean oldValue = myIsColumnMode; @@ -895,6 +933,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myPropertyChangeSupport.firePropertyChange(PROP_COLUMN_MODE, oldValue, mode); } + @Override public boolean isColumnMode() { return myIsColumnMode; } @@ -912,6 +951,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return logicalPosition.line; } + @Override @NotNull public VisualPosition xyToVisualPosition(@NotNull Point p) { int line = yPositionToVisibleLine(p.y); @@ -1092,11 +1132,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return EditorUtil.charWidth(c, fontType, this); } + @Override @NotNull public VisualPosition offsetToVisualPosition(int offset) { return logicalToVisualPosition(offsetToLogicalPosition(offset)); } + @Override @NotNull public LogicalPosition offsetToLogicalPosition(int offset) { return offsetToLogicalPosition(offset, true); @@ -1156,6 +1198,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return logicalToVisualPosition(new LogicalPosition(line, 0)).line; } + @Override @NotNull public LogicalPosition xyToLogicalPosition(@NotNull Point p) { Point pp = p.x >= 0 && p.y >= 0 ? p : new Point(Math.max(p.x, 0), Math.max(p.y, 0)); @@ -1168,12 +1211,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return visibleLineToY(visible.line); } + @Override @NotNull public Point logicalPositionToXY(@NotNull LogicalPosition pos) { VisualPosition visible = logicalToVisualPosition(pos); return visualPositionToXY(visible); } + @Override @NotNull public Point visualPositionToXY(@NotNull VisualPosition visible) { int y = visibleLineToY(visible.line); @@ -1312,6 +1357,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return line * getLineHeight(); } + @Override public void repaint(final int startOffset, final int endOffset) { if (!isShowing() || myScrollPane == null || myDocument.isInBulkUpdate()) { return; @@ -1461,6 +1507,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private void updateGutterSize() { if (myGutterSizeUpdater != null) return; myGutterSizeUpdater = new Runnable() { + @Override public void run() { if (!isDisposed()) { if (isShowing()) { @@ -1509,29 +1556,35 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myEditorComponent.repaintEditorComponent(); } + @Override @NotNull public Document getDocument() { return myDocument; } + @Override @NotNull public JComponent getComponent() { return myPanel; } + @Override public void addEditorMouseListener(@NotNull EditorMouseListener listener) { myMouseListeners.add(listener); } + @Override public void removeEditorMouseListener(@NotNull EditorMouseListener listener) { boolean success = myMouseListeners.remove(listener); LOG.assertTrue(success); } + @Override public void addEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) { myMouseMotionListeners.add(listener); } + @Override public void removeEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) { boolean success = myMouseMotionListeners.remove(listener); LOG.assertTrue(success); @@ -1553,6 +1606,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public boolean isDisposed() { return isReleased; } @@ -1620,10 +1674,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi }); } + @Override public IndentsModel getIndentsModel() { return myIndentsModel; } + @Override public void setHeaderComponent(JComponent header) { myHeaderPanel.removeAll(); if (header != null) { @@ -1633,10 +1689,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myHeaderPanel.revalidate(); } + @Override public boolean hasHeaderComponent() { return myHeaderPanel.getComponentCount() > 0; } + @Override @Nullable public JComponent getHeaderComponent() { if (hasHeaderComponent()) { @@ -1645,6 +1703,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return null; } + @Override public void setBackgroundColor(Color color) { myScrollPane.setBackground(color); @@ -1659,6 +1718,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myScheme.getDefaultForeground(); } + @Override public Color getBackgroundColor() { if (myForcedBackground != null) return myForcedBackground; @@ -1790,6 +1850,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public int getMaxWidthInRange(int startOffset, int endOffset) { int width = 0; int start = offsetToVisualLine(startOffset); @@ -2942,6 +3003,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return x - xStart; } + @Override public int getLineHeight() { assertReadAccess(); int lineHeight = myLineHeight; @@ -3061,15 +3123,18 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return size + mySettings.getAdditionalLinesCount() * getLineHeight(); } + @Override public Dimension getContentSize() { Dimension size = mySizeContainer.getContentSize(); return new Dimension(size.width, size.height + mySettings.getAdditionalLinesCount() * getLineHeight()); } + @Override public JScrollPane getScrollPane() { return myScrollPane; } + @Override public void setBorder(Border border) { myScrollPane.setBorder(border); } @@ -3079,6 +3144,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myScrollPane.getInsets(); } + @Override public int logicalPositionToOffset(@NotNull LogicalPosition pos) { assertIsDispatchThread(); if (myDocument.getLineCount() == 0) return 0; @@ -3099,11 +3165,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return EditorUtil.calcOffset(this, text, start, end, pos.column, EditorUtil.getTabSize(this)); } + @Override public void setLastColumnNumber(int val) { assertIsDispatchThread(); myLastColumnNumber = val; } + @Override public int getLastColumnNumber() { assertReadAccess(); return myLastColumnNumber; @@ -3247,11 +3315,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return null; } + @Override @NotNull public LogicalPosition visualToLogicalPosition(@NotNull VisualPosition visiblePos) { return visualToLogicalPosition(visiblePos, true); } + @Override @NotNull public LogicalPosition visualToLogicalPosition(@NotNull VisualPosition visiblePos, boolean softWrapAware) { assertReadAccess(); @@ -3311,6 +3381,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public int calcColumnNumber(int offset, int lineIndex) { return calcColumnNumber(offset, lineIndex, true); } @@ -3433,6 +3504,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi final FoldRegion region = getFoldingModel().getFoldingPlaceholderAt(e.getPoint()); if (e.getX() >= 0 && e.getY() >= 0 && region != null && region == myMouseSelectedRegion) { getFoldingModel().runBatchFoldingOperation(new Runnable() { + @Override public void run() { myFoldingModel.flushCaretShift(); region.setExpanded(true); @@ -3454,6 +3526,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public DataContext getDataContext() { return getProjectAwareDataContext(DataManager.getInstance().getDataContext(getContentComponent())); } @@ -3462,6 +3535,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (PlatformDataKeys.PROJECT.getData(original) == myProject) return original; return new DataContext() { + @Override public Object getData(String dataId) { if (PlatformDataKeys.PROJECT.is(dataId)) { return myProject; @@ -3472,6 +3546,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } + @Override public EditorMouseEventArea getMouseEventArea(@NotNull MouseEvent e) { if (myGutterComponent != e.getSource()) return EditorMouseEventArea.EDITING_AREA; @@ -3536,6 +3611,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return; } myCommandProcessor.executeCommand(myProject, new Runnable() { + @Override public void run() { processMouseDragged(e); } @@ -3678,6 +3754,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } private class MyRepaintRunnable implements Runnable { + @Override public void run() { if (myEditor != null) { myEditor.myCaretCursor.repaint(); @@ -3701,6 +3778,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myIsBlinkCaret = value; } + @Override public void run() { if (myEditor != null) { CaretCursor activeCursor = myEditor.myCaretCursor; @@ -3741,6 +3819,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myCaretCursor.setPosition(pos1, pos2.x - pos1.x); } + @Override public boolean setCaretVisible(boolean b) { boolean old = myCaretCursor.isActive(); if (b) { @@ -3752,29 +3831,35 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return old; } + @Override public boolean setCaretEnabled(boolean enabled) { boolean old = myCaretCursor.isEnabled(); myCaretCursor.setEnabled(enabled); return old; } + @Override public void addFocusListener(@NotNull FocusChangeListener listener) { myFocusListeners.add(listener); } + @Override @Nullable public Project getProject() { return myProject; } + @Override public boolean isOneLineMode() { return myIsOneLineMode; } + @Override public boolean isEmbeddedIntoDialogWrapper() { return myEmbeddedIntoDialogWrapper; } + @Override public void setEmbeddedIntoDialogWrapper(boolean b) { assertIsDispatchThread(); @@ -3784,12 +3869,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myEditorComponent.setFocusable(b); } + @Override public void setOneLineMode(boolean isOneLineMode) { myIsOneLineMode = isOneLineMode; getScrollPane().setInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null); reinitSettings(); } + @Override public void stopOptimizedScrolling() { //myEditorComponent.setOpaque(false); } @@ -3929,8 +4016,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myTimer = UIUtil.createNamedTimer("Editor scroll timer",TIMER_PERIOD, new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { myCommandProcessor.executeCommand(myProject, new DocumentRunnable(myDocument, myProject) { + @Override public void run() { // We experienced situation when particular editor was disposed but the timer was still on. if (isDisposed()) { @@ -4119,12 +4208,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public int getUnitIncrement(int direction) { JViewport vp = myScrollPane.getViewport(); Rectangle vr = vp.getViewRect(); return myEditorComponent.getScrollableUnitIncrement(vr, SwingConstants.VERTICAL, direction); } + @Override public int getBlockIncrement(int direction) { JViewport vp = myScrollPane.getViewport(); Rectangle vr = vp.getViewRect(); @@ -4139,65 +4230,80 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myEditable; } + @Override public CopyProvider getCopyProvider() { return getViewer(); } + @Override public CutProvider getCutProvider() { return getViewer(); } + @Override public PasteProvider getPasteProvider() { return getViewer(); } + @Override public DeleteProvider getDeleteProvider() { return getViewer(); } private class MyEditable implements CutProvider, CopyProvider, PasteProvider, DeleteProvider { + @Override public void performCopy(DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_COPY, dataContext); } + @Override public boolean isCopyEnabled(DataContext dataContext) { return true; } + @Override public boolean isCopyVisible(DataContext dataContext) { return getSelectionModel().hasSelection() || getSelectionModel().hasBlockSelection(); } + @Override public void performCut(DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_CUT, dataContext); } + @Override public boolean isCutEnabled(DataContext dataContext) { return !isViewer(); } + @Override public boolean isCutVisible(DataContext dataContext) { return getSelectionModel().hasSelection() || getSelectionModel().hasBlockSelection(); } + @Override public void performPaste(DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_PASTE, dataContext); } + @Override public boolean isPastePossible(DataContext dataContext) { // Copy of isPasteEnabled. See interface method javadoc. return !isViewer(); } + @Override public boolean isPasteEnabled(DataContext dataContext) { return !isViewer(); } + @Override public void deleteElement(DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_DELETE, dataContext); } + @Override public boolean canDeleteElement(DataContext dataContext) { return !isViewer(); } @@ -4210,12 +4316,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void setColorsScheme(@NotNull EditorColorsScheme scheme) { assertIsDispatchThread(); myScheme = scheme; reinitSettings(); } + @Override @NotNull public EditorColorsScheme getColorsScheme() { assertReadAccess(); @@ -4229,6 +4337,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi ApplicationManager.getApplication().assertReadAccessAllowed(); } + @Override public void setVerticalScrollbarOrientation(int type) { assertIsDispatchThread(); int currentHorOffset = myScrollingModel.getHorizontalScrollOffset(); @@ -4243,6 +4352,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myScrollingModel.scrollHorizontally(currentHorOffset); } + @Override public void setVerticalScrollbarVisible(boolean b) { if (b) { myScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); @@ -4252,6 +4362,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void setHorizontalScrollbarVisible(boolean b) { if (b) { myScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); @@ -4329,6 +4440,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myInputMethodRequestsSwingWrapper; } + @Override public boolean processKeyTyped(@NotNull KeyEvent e) { if (e.getID() != KeyEvent.KEY_TYPED) return false; char c = e.getKeyChar(); @@ -4360,12 +4472,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myDelegate = delegate; } + @Override public Rectangle getTextLocation(final TextHitInfo offset) { if (ApplicationManager.getApplication().isDispatchThread()) return myDelegate.getTextLocation(offset); final Rectangle[] r = new Rectangle[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getTextLocation(offset); } @@ -4380,12 +4494,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r[0]; } + @Override public TextHitInfo getLocationOffset(final int x, final int y) { if (ApplicationManager.getApplication().isDispatchThread()) return myDelegate.getLocationOffset(x, y); final TextHitInfo[] r = new TextHitInfo[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getLocationOffset(x, y); } @@ -4400,12 +4516,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r[0]; } + @Override public int getInsertPositionOffset() { if (ApplicationManager.getApplication().isDispatchThread()) return myDelegate.getInsertPositionOffset(); final int[] r = new int[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getInsertPositionOffset(); } @@ -4420,6 +4538,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r[0]; } + @Override public AttributedCharacterIterator getCommittedText(final int beginIndex, final int endIndex, final AttributedCharacterIterator.Attribute[] attributes) { @@ -4429,6 +4548,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi final AttributedCharacterIterator[] r = new AttributedCharacterIterator[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getCommittedText(beginIndex, endIndex, attributes); } @@ -4443,11 +4563,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r[0]; } + @Override public int getCommittedTextLength() { if (ApplicationManager.getApplication().isDispatchThread()) return myDelegate.getCommittedTextLength(); final int[] r = new int[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getCommittedTextLength(); } @@ -4462,17 +4584,20 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r[0]; } + @Override @Nullable public AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes) { return null; } + @Override public AttributedCharacterIterator getSelectedText(final AttributedCharacterIterator.Attribute[] attributes) { if (ApplicationManager.getApplication().isDispatchThread()) return myDelegate.getSelectedText(attributes); final AttributedCharacterIterator[] r = new AttributedCharacterIterator[1]; try { GuiUtils.invokeAndWait(new Runnable() { + @Override public void run() { r[0] = myDelegate.getSelectedText(attributes); } @@ -4493,6 +4618,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private int composedTextStart; private int composedTextEnd; + @Override public Rectangle getTextLocation(TextHitInfo offset) { Point caret = logicalPositionToXY(getCaretModel().getLogicalPosition()); Rectangle r = new Rectangle(caret, new Dimension(1, getLineHeight())); @@ -4502,6 +4628,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return r; } + @Override @Nullable public TextHitInfo getLocationOffset(int x, int y) { if (composedText != null) { @@ -4516,6 +4643,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return null; } + @Override public int getInsertPositionOffset() { int composedStartIndex = 0; int composedEndIndex = 0; @@ -4548,6 +4676,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return ""; } + @Override public AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes) { int composedStartIndex = 0; int composedEndIndex = 0; @@ -4573,6 +4702,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return new AttributedString(committed).getIterator(); } + @Override public int getCommittedTextLength() { int length = getDocument().getTextLength(); if (composedText != null) { @@ -4581,11 +4711,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return length; } + @Override @Nullable public AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes) { return null; } + @Override @Nullable public AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes) { String text = getSelectionModel().getSelectedText(); @@ -4619,8 +4751,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private void runUndoTransparent(final Runnable runnable) { CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { + @Override public void run() { CommandProcessor.getInstance().executeCommand(myProject, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(runnable); } @@ -4639,6 +4773,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (composedText != null) { if (!isViewer() && doc.isWritable()) { runUndoTransparent(new Runnable() { + @Override public void run() { doc.deleteString(Math.max(0, composedTextStart), Math.min(composedTextEnd, doc.getTextLength())); } @@ -4667,6 +4802,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi createComposedString(composedTextIndex, text); runUndoTransparent(new Runnable() { + @Override public void run() { EditorModificationUtil.insertStringAtCaret(EditorImpl.this, composedText, false, false); } @@ -4684,11 +4820,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private boolean mySelectionTweaked; + @Override public void mousePressed(MouseEvent e) { requestFocus(); runMousePressedCommand(e); } + @Override public void mouseReleased(MouseEvent e) { runMouseReleasedCommand(e); if (!e.isConsumed() && myMousePressedEvent != null && !myMousePressedEvent.isConsumed() && @@ -4698,10 +4836,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void mouseEntered(MouseEvent e) { runMouseEnteredCommand(e); } + @Override public void mouseExited(MouseEvent e) { runMouseExitedCommand(e); EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); @@ -4729,6 +4869,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (myCommandProcessor != null) { Runnable runnable = new Runnable() { + @Override public void run() { if (processMousePressed(e) && myProject != null && !myProject.isDefault()) { IdeDocumentHistory.getInstance(myProject).includeCurrentCommandAsNavigation(); @@ -4773,6 +4914,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi if (myCommandProcessor != null) { Runnable runnable = new Runnable() { + @Override public void run() { processMouseReleased(e); } @@ -4829,6 +4971,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi int scrollShift = y - getScrollingModel().getVerticalScrollOffset(); Runnable processor = new Runnable() { + @Override public void run() { myFoldingModel.flushCaretShift(); range.setExpanded(expansion); @@ -5031,6 +5174,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private static final TooltipGroup FOLDING_TOOLTIP_GROUP = new TooltipGroup("FOLDING_TOOLTIP_GROUP", 10); private class MyMouseMotionListener implements MouseMotionListener { + @Override public void mouseDragged(MouseEvent e) { validateMousePointer(e); runMouseDraggedCommand(e); @@ -5044,6 +5188,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override public void mouseMoved(MouseEvent e) { if (getMouseSelectionState() != MOUSE_SELECTION_STATE_NONE) { if (myMousePressedEvent != null && myMousePressedEvent.getComponent() == e.getComponent()) { @@ -5120,6 +5265,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myGlobalScheme; } + @Override public String getName() { return getGlobal().getName(); } @@ -5144,32 +5290,39 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi reinitSettings(); } + @Override public void setName(String name) { getGlobal().setName(name); } + @Override public TextAttributes getAttributes(TextAttributesKey key) { if (myOwnAttributes.containsKey(key)) return myOwnAttributes.get(key); return getGlobal().getAttributes(key); } + @Override public void setAttributes(TextAttributesKey key, TextAttributes attributes) { myOwnAttributes.put(key, attributes); } + @Override public Color getDefaultBackground() { return getGlobal().getDefaultBackground(); } + @Override public Color getDefaultForeground() { return getGlobal().getDefaultForeground(); } + @Override public Color getColor(ColorKey key) { if (myOwnColors.containsKey(key)) return myOwnColors.get(key); return getGlobal().getColor(key); } + @Override public void setColor(ColorKey key, Color color) { myOwnColors.put(key, color); @@ -5179,6 +5332,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi mySelectionModel.reinitSettings(); } + @Override public int getEditorFontSize() { if (myFontSize == -1) { return getGlobal().getEditorFontSize(); @@ -5186,6 +5340,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myFontSize; } + @Override public void setEditorFontSize(int fontSize) { if (fontSize < 8) fontSize = 8; if (fontSize > myMaxFontSize) fontSize = myMaxFontSize; @@ -5203,6 +5358,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myGlobalScheme.setQuickDocFontSize(fontSize); } + @Override public String getEditorFontName() { if (myFaceName == null) { return getGlobal().getEditorFontName(); @@ -5210,11 +5366,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myFaceName; } + @Override public void setEditorFontName(String fontName) { myFaceName = fontName; initFonts(); } + @Override public Font getFont(EditorFontType key) { if (myFontsMap != null) { Font font = myFontsMap.get(key); @@ -5223,6 +5381,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return getGlobal().getFont(key); } + @Override public void setFont(EditorFontType key, Font font) { if (myFontsMap == null) { initFonts(); @@ -5231,22 +5390,27 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi reinitSettings(); } + @Override public float getLineSpacing() { return getGlobal().getLineSpacing(); } + @Override public void setLineSpacing(float lineSpacing) { getGlobal().setLineSpacing(lineSpacing); } + @Override @Nullable public Object clone() { return null; } + @Override public void readExternal(Element element) throws InvalidDataException { } + @Override public void writeExternal(Element element) throws WriteExternalException { } @@ -5296,6 +5460,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return editorComponent.getEditor(); } + @Override public boolean importData(final JComponent comp, final Transferable t) { final EditorImpl editor = (EditorImpl)getEditor(comp); @@ -5315,8 +5480,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } CommandProcessor.getInstance().executeCommand(editor.myProject, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { try { editor.getSelectionModel().removeSelection(); @@ -5361,6 +5528,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return true; } + @Override public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) { Editor editor = getEditor(comp); final EditorDropHandler dropHandler = ((EditorImpl)editor).getDropHandler(); @@ -5379,6 +5547,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return false; } + @Override @Nullable protected Transferable createTransferable(JComponent c) { Editor editor = getEditor(c); @@ -5391,10 +5560,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return new StringSelection(s); } + @Override public int getSourceActions(JComponent c) { return COPY_OR_MOVE; } + @Override protected void exportDone(final JComponent source, Transferable data, int action) { if (data == null) return; @@ -5408,8 +5579,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return; } CommandProcessor.getInstance().executeCommand(((EditorImpl)editor).myProject, new Runnable() { + @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { Document doc = editor.getDocument(); doc.startGuardedBlockChecking(); @@ -5433,14 +5606,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } class EditorDocumentAdapter implements PrioritizedDocumentListener { + @Override public void beforeDocumentChange(DocumentEvent e) { beforeChangedUpdate(e); } + @Override public void documentChanged(DocumentEvent e) { changedUpdate(e); } + @Override public int getPriority() { return EditorDocumentPriorities.EDITOR_DOCUMENT_ADAPTER; } @@ -5770,11 +5946,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @Override @NotNull public EditorGutter getGutter() { return getGutterComponentEx(); } + @Override public int calcColumnNumber(@NotNull CharSequence text, int start, int offset, int tabSize) { IterationState state = new IterationState(this, start, start+offset, false); int fontType = state.getMergedAttributes().getFontType(); @@ -5808,6 +5986,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return column; } + @Override public void putInfo(Map info) { final VisualPosition visual = getCaretModel().getVisualPosition(); info.put("caret", visual.getLine() + ":" + visual.getColumn()); @@ -5820,6 +5999,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi setViewportBorder(new EmptyBorder(0, 0, 0, 0)); } + @Override protected void processMouseWheelEvent(MouseWheelEvent e) { if (mySettings.isWheelFontChangeEnabled()) { if (EditorUtil.isChangeFontSize(e)) { @@ -5874,11 +6054,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi super(new BorderLayout()); } + @Override public void revalidate() { myOldHeight = getHeight(); super.revalidate(); } + @Override protected void validateTree() { int height = myOldHeight; super.validateTree(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index 503331d87dc2..57263a35f31f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -205,6 +205,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark int startOffset = yPositionToOffset(y -getMinHeight(), true); int endOffset = yPositionToOffset(y +getMinHeight(), false); markupModel.processRangeHighlightersOverlappingWith(startOffset, endOffset, new Processor() { + @Override public boolean process(RangeHighlighterEx highlighter) { if (highlighter.getErrorStripeMarkColor() != null) { ProperTextRange range = offsetsToYPositions(highlighter.getStartOffset(), highlighter.getEndOffset()); @@ -240,6 +241,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark fireErrorMarkerClicked(marker, e); } + @Override public void setErrorStripeVisible(boolean val) { if (val) { myEditor.getVerticalScrollBar().setPersistentUI(new MyErrorPanel()); @@ -253,6 +255,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark return ui instanceof MyErrorPanel ? (MyErrorPanel)ui : null; } + @Override public void setErrorPanelPopupHandler(@NotNull PopupHandler handler) { ApplicationManager.getApplication().assertIsDispatchThread(); MyErrorPanel errorPanel = getErrorPanel(); @@ -261,20 +264,24 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } } + @Override public void setErrorStripTooltipRendererProvider(@NotNull final ErrorStripTooltipRendererProvider provider) { myTooltipRendererProvider = provider; } + @Override @NotNull public ErrorStripTooltipRendererProvider getErrorStripTooltipRendererProvider() { return myTooltipRendererProvider; } + @Override @NotNull public Editor getEditor() { return myEditor; } + @Override public void setErrorStripeRenderer(ErrorStripeRenderer renderer) { assertIsDispatchThread(); if (myErrorStripeRenderer instanceof Disposable) { @@ -291,10 +298,12 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark ApplicationManagerEx.getApplicationEx().assertIsDispatchThread(myEditor.getComponent()); } + @Override public ErrorStripeRenderer getErrorStripeRenderer() { return myErrorStripeRenderer; } + @Override public void dispose() { myErrorStripeRenderer = null; super.dispose(); @@ -454,11 +463,13 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark private void drawMarkup(final Graphics g, final int width, int startOffset, int endOffset, MarkupModelEx markup) { final Queue thinEnds = new PriorityQueue(5, new Comparator() { + @Override public int compare(PositionedStripe o1, PositionedStripe o2) { return o1.yEnd - o2.yEnd; } }); final Queue wideEnds = new PriorityQueue(5, new Comparator() { + @Override public int compare(PositionedStripe o1, PositionedStripe o2) { return o1.yEnd - o2.yEnd; } @@ -470,6 +481,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark final int[] wideYStart = new int[1]; // in range 0..yStart all spots are drawn markup.processRangeHighlightersOverlappingWith(startOffset, endOffset, new Processor() { + @Override public boolean process(RangeHighlighterEx highlighter) { Color color = highlighter.getErrorStripeMarkColor(); if (color == null) return true; @@ -589,8 +601,10 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } // mouse events + @Override public void mouseClicked(final MouseEvent e) { CommandProcessor.getInstance().executeCommand(myEditor.getProject(), new Runnable() { + @Override public void run() { doMouseClicked(e); } @@ -599,9 +613,11 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark ); } + @Override public void mousePressed(MouseEvent e) { } + @Override public void mouseReleased(MouseEvent e) { } @@ -618,6 +634,7 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark doClick(e, getWidth()); } + @Override public void mouseMoved(MouseEvent e) { EditorImpl.MyScrollBar scrollBar = myEditor.getVerticalScrollBar(); int buttonHeight = scrollBar.getDecScrollButtonHeight(); @@ -669,13 +686,16 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } } + @Override public void mouseEntered(MouseEvent e) { } + @Override public void mouseExited(MouseEvent e) { cancelMyToolTips(e, true); } + @Override public void mouseDragged(MouseEvent e) { cancelMyToolTips(e, true); } @@ -715,11 +735,13 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark } } + @Override public void addErrorMarkerListener(@NotNull ErrorStripeListener listener) { myCachedErrorMarkerListeners = null; myErrorMarkerListeners.add(listener); } + @Override public void removeErrorMarkerListener(@NotNull ErrorStripeListener listener) { myCachedErrorMarkerListeners = null; boolean success = myErrorMarkerListeners.remove(listener); @@ -744,11 +766,13 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark dimensionsAreValid = false; } + @Override public void setMinMarkHeight(final int minMarkHeight) { myMinMarkHeight = minMarkHeight; } private static class BasicTooltipRendererProvider implements ErrorStripTooltipRendererProvider { + @Override public TooltipRenderer calcTooltipRenderer(@NotNull final Collection highlighters) { LineTooltipRenderer bigRenderer = null; //do not show same tooltip twice @@ -775,10 +799,12 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark return bigRenderer; } + @Override public TooltipRenderer calcTooltipRenderer(@NotNull final String text) { return new LineTooltipRenderer(text, new Object[] {text}); } + @Override public TooltipRenderer calcTooltipRenderer(@NotNull final String text, final int width) { return new LineTooltipRenderer(text, width, new Object[] {text}); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionImpl.java index c352756d059f..51c5f497491c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionImpl.java @@ -52,10 +52,12 @@ public class FoldRegionImpl extends RangeMarkerImpl implements FoldRegion { myPlaceholderText = placeholder; } + @Override public boolean isExpanded() { return myIsExpanded; } + @Override public void setExpanded(boolean expanded) { FoldingModelImpl foldingModel = (FoldingModelImpl)myEditor.getFoldingModel(); if (myGroup == null) { @@ -76,6 +78,7 @@ public class FoldRegionImpl extends RangeMarkerImpl implements FoldRegion { } } + @Override public boolean isValid() { return super.isValid() && intervalStart() + 1 < intervalEnd(); } @@ -84,15 +87,18 @@ public class FoldRegionImpl extends RangeMarkerImpl implements FoldRegion { myIsExpanded = toExpand; } + @Override @NotNull public String getPlaceholderText() { return myPlaceholderText; } + @Override public Editor getEditor() { return myEditor; } + @Override @Nullable public FoldingGroup getGroup() { return myGroup; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionsTree.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionsTree.java index 0abeddcc4259..ad9f3f6fdd55 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionsTree.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldRegionsTree.java @@ -41,6 +41,7 @@ abstract class FoldRegionsTree { int myCachedLastIndex = -1; private ArrayList myRegions = CollectionFactory.arrayList(); //sorted in tree left-to-right topdown traversal order private static final Comparator BY_END_OFFSET = new Comparator() { + @Override public int compare(FoldRegion r1, FoldRegion r2) { int end1 = r1.getEndOffset(); int end2 = r2.getEndOffset(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java index 14a1d283af59..398a18f0a514 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java @@ -71,10 +71,12 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList myIsBatchFoldingProcessing = false; myDoNotCollapseCaret = false; myFoldTree = new FoldRegionsTree() { + @Override protected boolean isFoldingEnabled() { return FoldingModelImpl.this.isFoldingEnabled(); } + @Override protected boolean isBatchFoldingProcessing() { return myIsBatchFoldingProcessing; } @@ -121,10 +123,12 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList myFoldTextAttributes = myEditor.getColorsScheme().getAttributes(EditorColors.FOLDED_TEXT_ATTRIBUTES); } + @Override public boolean isFoldingEnabled() { return myIsFoldingEnabled; } + @Override public boolean isOffsetCollapsed(int offset) { assertReadAccess(); return getCollapsedRegionAtOffset(offset) != null; @@ -137,11 +141,13 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList ApplicationManagerEx.getApplicationEx().assertReadAccessAllowed(); } + @Override public void setFoldingEnabled(boolean isEnabled) { assertIsDispatchThread(); myIsFoldingEnabled = isEnabled; } + @Override public FoldRegion addFoldRegion(int startOffset, int endOffset, @NotNull String placeholderText) { FoldRegion region = createFoldRegion(startOffset, endOffset, placeholderText, null, false); if (region == null) return null; @@ -153,6 +159,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return region; } + @Override public boolean addFoldRegion(@NotNull final FoldRegion region) { assertIsDispatchThread(); if (!isFoldingEnabled()) { @@ -178,6 +185,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return false; } + @Override public void runBatchFoldingOperation(@NotNull Runnable operation) { runBatchFoldingOperation(operation, false); } @@ -206,6 +214,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList myDoNotCollapseCaret = oldDontCollapseCaret; } + @Override public void runBatchFoldingOperationDoNotCollapseCaret(@NotNull final Runnable operation) { runBatchFoldingOperation(operation, true); } @@ -214,12 +223,14 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList mySavedCaretShift = -1; } + @Override @NotNull public FoldRegion[] getAllFoldRegions() { assertReadAccess(); return myFoldTree.fetchAllRegions(); } + @Override @Nullable public FoldRegion getCollapsedRegionAtOffset(int offset) { return myFoldTree.fetchOutermost(offset); @@ -229,6 +240,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return myFoldTree.getLastTopLevelIndexBefore(offset); } + @Override @Nullable public FoldRegion getFoldingPlaceholderAt(Point p) { assertReadAccess(); @@ -245,6 +257,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return myFoldTree.fetchOutermost(offset); } + @Override public void removeFoldRegion(@NotNull final FoldRegion region) { assertIsDispatchThread(); @@ -413,11 +426,13 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return myFoldTree.getFoldedLinesCountBefore(offset); } + @Override @Nullable public FoldRegion[] fetchTopLevel() { return myFoldTree.fetchTopLevel(); } + @Override @Nullable public FoldRegion fetchOutermost(int offset) { return myFoldTree.fetchOutermost(offset); @@ -427,6 +442,7 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return myFoldTree.fetchCollapsedAt(offset); } + @Override public boolean intersectsRegion (int startOffset, int endOffset) { return myFoldTree.intersectsRegion(startOffset, endOffset); } @@ -435,10 +451,12 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList return myFoldTree.fetchVisible(); } + @Override public int getLastCollapsedRegionBefore(int offset) { return myFoldTree.getLastTopLevelIndexBefore(offset); } + @Override public TextAttributes getPlaceholderAttributes() { return myFoldTextAttributes; } @@ -447,9 +465,11 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList myCaretPositionSaved = false; } + @Override public void beforeDocumentChange(DocumentEvent event) { } + @Override public void documentChanged(DocumentEvent event) { if (((DocumentEx)event.getDocument()).isInBulkUpdate()) { myFoldTree.clear(); @@ -458,10 +478,12 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList } } + @Override public int getPriority() { return EditorDocumentPriorities.FOLD_MODEL; } + @Override public FoldRegion createFoldRegion(int startOffset, int endOffset, @NotNull String placeholder, @Nullable FoldingGroup group, boolean neverExpands) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/IndentsModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/IndentsModelImpl.java index 46df944a2559..2bf5702bd5a0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/IndentsModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/IndentsModelImpl.java @@ -38,6 +38,7 @@ public class IndentsModelImpl implements IndentsModel { myEditor = editor; } + @Override public IndentGuideDescriptor getCaretIndentGuide() { final LogicalPosition pos = myEditor.getCaretModel().getLogicalPosition(); final int column = pos.column; @@ -58,6 +59,7 @@ public class IndentsModelImpl implements IndentsModel { return myIndentsByLines.get(new IntPair(startLine, endLine)); } + @Override public void assumeIndents(List descriptors) { myIndents = descriptors; myIndentsByLines.clear(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/IterationState.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/IterationState.java index 23467fe83aaf..cfb4c985734f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/IterationState.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/IterationState.java @@ -476,6 +476,7 @@ public final class IterationState { private static class LayerComparator implements Comparator { private static final LayerComparator INSTANCE = new LayerComparator(); + @Override public int compare(RangeHighlighterEx o1, RangeHighlighterEx o2) { int layerDiff = o2.getLayer() - o1.getLayer(); if (layerDiff != 0) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/LeftHandScrollbarLayout.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/LeftHandScrollbarLayout.java index 03c85d6b327e..7f60c023763b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/LeftHandScrollbarLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/LeftHandScrollbarLayout.java @@ -142,6 +142,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * scrollpane.setLayout(mySPLayout): * */ + @Override public void syncWithScrollPane(JScrollPane sp) { viewport = sp.getViewport(); vsb = sp.getVerticalScrollBar(); @@ -170,6 +171,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @param newC the Component to add * @return the newC */ + @Override protected Component addSingletonComponent(Component oldC, Component newC) { if ((oldC != null) && (oldC != newC)) { oldC.getParent().remove(oldC); @@ -197,6 +199,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @param c the component to be added * @throws IllegalArgumentException if s is an invalid key */ + @Override public void addLayoutComponent(String s, Component c) { if (s.equals(VIEWPORT)) { viewport = (JViewport)addSingletonComponent(viewport, c); @@ -236,6 +239,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * * @param c the component to remove */ + @Override public void removeLayoutComponent(Component c) { if (c == viewport) { viewport = null; @@ -273,6 +277,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return an integer giving the display policy * @see #setVerticalScrollBarPolicy */ + @Override public int getVerticalScrollBarPolicy() { return vsbPolicy; } @@ -294,6 +299,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @throws IllegalArgumentException if x is an invalid * vertical scroll bar policy, as listed above */ + @Override public void setVerticalScrollBarPolicy(int x) { switch (x) { case VERTICAL_SCROLLBAR_AS_NEEDED: @@ -313,6 +319,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return an integer giving the display policy * @see #setHorizontalScrollBarPolicy */ + @Override public int getHorizontalScrollBarPolicy() { return hsbPolicy; } @@ -332,6 +339,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @throws IllegalArgumentException if x is not a valid * horizontal scrollbar policy, as listed above */ + @Override public void setHorizontalScrollBarPolicy(int x) { switch (x) { case HORIZONTAL_SCROLLBAR_AS_NEEDED: @@ -352,6 +360,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return the JViewport object that displays the scrollable contents * @see javax.swing.JScrollPane#getViewport */ + @Override public JViewport getViewport() { return viewport; } @@ -363,6 +372,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return the JScrollBar object that handles horizontal scrolling * @see javax.swing.JScrollPane#getHorizontalScrollBar */ + @Override public JScrollBar getHorizontalScrollBar() { return hsb; } @@ -373,6 +383,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return the JScrollBar object that handles vertical scrolling * @see javax.swing.JScrollPane#getVerticalScrollBar */ + @Override public JScrollBar getVerticalScrollBar() { return vsb; } @@ -384,6 +395,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return the JViewport object that is the row header * @see javax.swing.JScrollPane#getRowHeader */ + @Override public JViewport getRowHeader() { return rowHead; } @@ -395,6 +407,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @return the JViewport object that is the column header * @see javax.swing.JScrollPane#getColumnHeader */ + @Override public JViewport getColumnHeader() { return colHead; } @@ -409,6 +422,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * four corners, null is returned * @see javax.swing.JScrollPane#getCorner */ + @Override public Component getCorner(String key) { if (key.equals(LOWER_LEFT_CORNER)) { return lowerLeft; @@ -443,6 +457,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @see ViewportLayout * @see LayoutManager */ + @Override public Dimension preferredLayoutSize(Container parent) { /* Sync the (now obsolete) policy fields with the * JScrollPane. @@ -561,6 +576,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @param parent the Container that will be laid out * @return a Dimension object specifying the minimum size */ + @Override public Dimension minimumLayoutSize(Container parent) { /* Sync the (now obsolete) policy fields with the * JScrollPane. @@ -661,6 +677,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * * @param parent the Container to lay out */ + @Override public void layoutContainer(Container parent) { /* Sync the (now obsolete) policy fields with the * JScrollPane. @@ -1048,6 +1065,7 @@ public class LeftHandScrollbarLayout extends ScrollPaneLayout { * @deprecated As of JDK version Swing1.1 * replaced by JScrollPane.getViewportBorderBounds(). */ + @Override public Rectangle getViewportBorderBounds(JScrollPane scrollpane) { return scrollpane.getViewportBorderBounds(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/MarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/MarkupModelImpl.java index 6a7bbdbbe781..e8f4cad9e41a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/MarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/MarkupModelImpl.java @@ -62,11 +62,13 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx myHighlighterTree = new RangeHighlighterTree(myDocument, this); } + @Override public void dispose() { ApplicationManager.getApplication().assertIsDispatchThread(); myHighlighterTree.dispose(); } + @Override @NotNull public RangeHighlighter addLineHighlighter(int lineNumber, int layer, TextAttributes textAttributes) { if (lineNumber >= getDocument().getLineCount() || lineNumber < 0) { @@ -81,6 +83,7 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx return addRangeHighlighter(offset, offset, layer, textAttributes, HighlighterTargetArea.LINES_IN_RANGE); } + @Override public RangeHighlighter addPersistentLineHighlighter(int lineNumber, int layer, TextAttributes textAttributes) { if (lineNumber >= getDocument().getLineCount() || lineNumber < 0) return null; @@ -105,6 +108,7 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx } // NB: Can return invalid highlighters + @Override @NotNull public RangeHighlighter[] getAllHighlighters() { ApplicationManager.getApplication().assertIsDispatchThread(); @@ -158,6 +162,7 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx return myHighlighterTree.addInterval(marker, start, end, greedyToLeft, greedyToRight, layer); } + @Override @NotNull public RangeHighlighter addRangeHighlighter(int startOffset, int endOffset, @@ -167,6 +172,7 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx return addRangeHighlighterAndChangeAttributes(startOffset, endOffset, layer, textAttributes, targetArea, false, null); } + @Override public void removeHighlighter(@NotNull RangeHighlighter segmentHighlighter) { ApplicationManager.getApplication().assertIsDispatchThread(); myCachedHighlighters = null; @@ -176,12 +182,14 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx LOG.assertTrue(removed); } + @Override public void removeAllHighlighters() { ApplicationManager.getApplication().assertIsDispatchThread(); myCachedHighlighters = null; myHighlighterTree.clear(); } + @Override @NotNull public Document getDocument() { return myDocument; @@ -203,6 +211,7 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx LOG.assertTrue(success); } + @Override public void setRangeHighlighterAttributes(@NotNull final RangeHighlighter highlighter, final TextAttributes textAttributes) { ApplicationManager.getApplication().assertIsDispatchThread(); ((RangeHighlighterImpl)highlighter).setTextAttributes(textAttributes); @@ -225,15 +234,18 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx } } + @Override public boolean containsHighlighter(@NotNull final RangeHighlighter highlighter) { ApplicationManager.getApplication().assertIsDispatchThread(); return !myHighlighterTree.processOverlappingWith(highlighter.getStartOffset(), highlighter.getEndOffset(), new Processor() { + @Override public boolean process(RangeHighlighterEx h) { return h.getId() != ((RangeHighlighterEx)highlighter).getId(); } }); } + @Override public boolean processRangeHighlightersOverlappingWith(int start, int end, @NotNull Processor processor) { return myHighlighterTree.processOverlappingWith(start, end, processor); } @@ -243,11 +255,13 @@ public class MarkupModelImpl extends UserDataHolderBase implements MarkupModelEx return myHighlighterTree.processOverlappingWithOutside(start, end, processor); } + @Override @NotNull public Iterator overlappingIterator(int startOffset, int endOffset) { return myHighlighterTree.overlappingIterator(startOffset, endOffset); } + @Override public boolean sweep(int start, int end, @NotNull SweepProcessor sweepProcessor) { return myHighlighterTree.sweep(start, end, sweepProcessor); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java index 55910428f7aa..aff8ef1809a4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeHighlighterImpl.java @@ -74,10 +74,12 @@ class RangeHighlighterImpl extends RangeMarkerImpl implements RangeHighlighterEx } // delegates + @Override public TextAttributes getTextAttributes() { return getData().getTextAttributes(); } + @Override public void setTextAttributes(TextAttributes textAttributes) { getData().setTextAttributes(textAttributes); } @@ -86,67 +88,83 @@ class RangeHighlighterImpl extends RangeMarkerImpl implements RangeHighlighterEx return getData().changeAttributesInBatch(change); } + @Override public int getLayer() { RangeHighlighterTree.RHNode node = (RangeHighlighterTree.RHNode)(Object)myNode; return node == null ? -1 : node.myLayer; } + @Override public HighlighterTargetArea getTargetArea() { return getData().getTargetArea(); } + @Override public LineMarkerRenderer getLineMarkerRenderer() { return getData().getLineMarkerRenderer(); } + @Override public void setLineMarkerRenderer(LineMarkerRenderer renderer) { getData().setLineMarkerRenderer(renderer); } + @Override public CustomHighlighterRenderer getCustomRenderer() { return getData().getCustomRenderer(); } + @Override public void setCustomRenderer(CustomHighlighterRenderer renderer) { getData().setCustomRenderer(renderer); } + @Override public GutterIconRenderer getGutterIconRenderer() { return getData().getGutterIconRenderer(); } + @Override public void setGutterIconRenderer(GutterIconRenderer renderer) { getData().setGutterIconRenderer(renderer); } + @Override public Color getErrorStripeMarkColor() { return getData().getErrorStripeMarkColor(); } + @Override public void setErrorStripeMarkColor(Color color) { getData().setErrorStripeMarkColor(color); } + @Override public Object getErrorStripeTooltip() { return getData().getErrorStripeTooltip(); } + @Override public void setErrorStripeTooltip(Object tooltipObject) { getData().setErrorStripeTooltip(tooltipObject); } + @Override public boolean isThinErrorStripeMark() { return getData().isThinErrorStripeMark(); } + @Override public void setThinErrorStripeMark(boolean value) { getData().setThinErrorStripeMark(value); } + @Override public Color getLineSeparatorColor() { return getData().getLineSeparatorColor(); } + @Override public void setLineSeparatorColor(Color color) { getData().setLineSeparatorColor(color); } @@ -161,35 +179,43 @@ class RangeHighlighterImpl extends RangeMarkerImpl implements RangeHighlighterEx return getData().getLineSeparatorRenderer(); } + @Override public SeparatorPlacement getLineSeparatorPlacement() { return getData().getLineSeparatorPlacement(); } + @Override public void setLineSeparatorPlacement(@Nullable SeparatorPlacement placement) { getData().setLineSeparatorPlacement(placement); } + @Override public void setEditorFilter(@NotNull MarkupEditorFilter filter) { getData().setEditorFilter(filter); } + @Override @NotNull public MarkupEditorFilter getEditorFilter() { return getData().getEditorFilter(); } + @Override public boolean isAfterEndOfLine() { return getData().isAfterEndOfLine(); } + @Override public void setAfterEndOfLine(boolean afterEndOfLine) { getData().setAfterEndOfLine(afterEndOfLine); } + @Override public int getAffectedAreaStartOffset() { return getData().getAffectedAreaStartOffset(); } + @Override public int getAffectedAreaEndOffset() { return getData().getAffectedAreaEndOffset(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeIterator.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeIterator.java index 9837464fbb81..9d6ba08e8adc 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeIterator.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/RangeIterator.java @@ -153,6 +153,7 @@ class RangeIterator { myFoldingModel = foldingModel; } + @Override public boolean isGapAt(int offset) { return myFoldingModel.isOffsetCollapsed(offset); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java index 68a82c4badbc..a5bd5249b417 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java @@ -66,6 +66,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { myEditor.getScrollPane().getViewport().addChangeListener(new ChangeListener() { private Rectangle myLastViewRect; + @Override public void stateChanged(ChangeEvent event) { Rectangle viewRect = getVisibleArea(); VisibleAreaEvent visibleAreaEvent = new VisibleAreaEvent(myEditor, myLastViewRect, viewRect); @@ -77,6 +78,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { }); myDocumentListener = new DocumentAdapter() { + @Override public void beforeDocumentChange(DocumentEvent e) { cancelAnimatedScrolling(true); } @@ -84,6 +86,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { myEditor.getDocument().addDocumentListener(myDocumentListener); } + @Override public Rectangle getVisibleArea() { assertIsDispatchThread(); if (myEditor.getScrollPane() == null) { @@ -92,6 +95,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { return myEditor.getScrollPane().getViewport().getViewRect(); } + @Override public Rectangle getVisibleAreaOnScrollingFinished() { assertIsDispatchThread(); if (myCurrentAnimationRequest != null) { @@ -102,6 +106,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { } } + @Override public void scrollToCaret(ScrollType scrollType) { assertIsDispatchThread(); LogicalPosition caretPosition = myEditor.getCaretModel().getLogicalPosition(); @@ -109,6 +114,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { scrollTo(caretPosition, scrollType); } + @Override public void scrollTo(LogicalPosition pos, ScrollType scrollType) { assertIsDispatchThread(); if (myEditor.getScrollPane() == null) return; @@ -124,6 +130,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { ApplicationManagerEx.getApplicationEx().assertIsDispatchThread(myEditor.getComponent()); } + @Override public void runActionOnScrollingFinished(Runnable action) { assertIsDispatchThread(); @@ -135,10 +142,12 @@ public class ScrollingModelImpl implements ScrollingModelEx { action.run(); } + @Override public void disableAnimation() { myAnimationDisabled = true; } + @Override public void enableAnimation() { myAnimationDisabled = false; } @@ -225,10 +234,12 @@ public class ScrollingModelImpl implements ScrollingModelEx { return myEditor.getScrollPane().getHorizontalScrollBar(); } + @Override public int getVerticalScrollOffset() { return getOffset(getVerticalScrollBar()); } + @Override public int getHorizontalScrollOffset() { return getOffset(getHorizontalScrollBar()); } @@ -241,6 +252,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { return scrollBar == null ? 0 : scrollBar.getModel().getExtent(); } + @Override public void scrollVertically(int scrollOffset) { scrollToOffsets(getHorizontalScrollOffset(), scrollOffset); } @@ -261,6 +273,7 @@ public class ScrollingModelImpl implements ScrollingModelEx { //System.out.println("scrolled vertically to: " + scrollOffset); } + @Override public void scrollHorizontally(int scrollOffset) { scrollToOffsets(scrollOffset, getVerticalScrollOffset()); } @@ -328,10 +341,12 @@ public class ScrollingModelImpl implements ScrollingModelEx { } } + @Override public void addVisibleAreaListener(VisibleAreaListener listener) { myVisibleAreaListeners.add(listener); } + @Override public void removeVisibleAreaListener(VisibleAreaListener listener) { boolean success = myVisibleAreaListeners.remove(listener); LOG.assertTrue(success); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SelectionModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SelectionModelImpl.java index 65c0c6e495a8..74bb63b02bef 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SelectionModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SelectionModelImpl.java @@ -134,6 +134,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi private int startBefore; private int endBefore; + @Override public void beforeDocumentChange(DocumentEvent event) { myIsInUpdate = event; MyRangeMarker marker = mySelectionMarker; @@ -143,6 +144,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi } } + @Override public void documentChanged(DocumentEvent event) { if (myIsInUpdate == event) { myIsInUpdate = null; @@ -168,6 +170,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi } } + @Override public int getPriority() { return EditorDocumentPriorities.SELECTION_MODEL; } @@ -176,6 +179,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi myEditor = editor; } + @Override public int getSelectionStart() { validateContext(false); if (hasSelection()) { @@ -217,6 +221,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi //} } + @Override public int getSelectionEnd() { validateContext(false); if (hasSelection()) { @@ -245,6 +250,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return result == null ? defaultPosition : result; } + @Override public boolean hasSelection() { validateContext(false); MyRangeMarker marker = mySelectionMarker; @@ -255,6 +261,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return marker != null && marker.isValid() && marker.getEndOffset() > marker.getStartOffset(); } + @Override public void setSelection(int startOffset, int endOffset) { doSetSelection(myEditor.offsetToVisualPosition(startOffset), startOffset, myEditor.offsetToVisualPosition(endOffset), endOffset, false); } @@ -417,6 +424,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi myEditor.repaint(Math.min(oldSelectionEnd, endOffset), Math.max(oldSelectionEnd, endOffset)); } + @Override public void setBlockSelection(LogicalPosition blockStart, LogicalPosition blockEnd) { removeSelection(); @@ -447,6 +455,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi myBlockEnd = blockEnd; } + @Override public void removeSelection() { if (myEditor.isStickySelection()) { // Most of our 'change caret position' actions (like move caret to word start/end etc) remove active selection. @@ -466,6 +475,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi } } + @Override public void removeBlockSelection() { if (hasBlockSelection()) { myEditor.repaint(0, myEditor.getDocument().getTextLength()); @@ -474,18 +484,22 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi } } + @Override public boolean hasBlockSelection() { return myBlockStart != null; } + @Override public LogicalPosition getBlockStart() { return myBlockStart; } + @Override public LogicalPosition getBlockEnd() { return myBlockEnd; } + @Override public boolean isBlockSelectionGuarded() { if (!hasBlockSelection()) return false; int[] starts = getBlockSelectionStarts(); @@ -501,6 +515,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return false; } + @Override public RangeMarker getBlockSelectionGuard() { if (!hasBlockSelection()) return null; @@ -523,6 +538,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return null; } + @Override @NotNull public int[] getBlockSelectionStarts() { if (hasSelection()) { @@ -545,6 +561,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return res; } + @Override @NotNull public int[] getBlockSelectionEnds() { if (hasSelection()) { @@ -569,15 +586,18 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return res; } + @Override public void addSelectionListener(SelectionListener listener) { mySelectionListeners.add(listener); } + @Override public void removeSelectionListener(SelectionListener listener) { boolean success = mySelectionListeners.remove(listener); LOG.assertTrue(success); } + @Override public String getSelectedText() { validateContext(false); if (!hasSelection() && !hasBlockSelection()) return null; @@ -615,6 +635,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi } } + @Override public int getLeadSelectionOffset() { validateContext(false); int caretOffset = myEditor.getCaretModel().getOffset(); @@ -666,6 +687,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return marker.isEndPositionIsLead() ? endPosition : startPosition; } + @Override public void selectLineAtCaret() { validateContext(true); int lineNumber = myEditor.getCaretModel().getLogicalPosition().line; @@ -687,6 +709,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi myEditor.getSelectionModel().setSelection(start, end); } + @Override public void selectWordAtCaret(boolean honorCamelWordsSettings) { validateContext(true); removeSelection(); @@ -749,6 +772,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi return newOffset; } + @Override public void copySelectionToClipboard() { validateContext(true); String s = myEditor.getSelectionModel().getSelectedText(); @@ -759,6 +783,7 @@ public class SelectionModelImpl implements SelectionModel, PrioritizedDocumentLi CopyPasteManager.getInstance().setContents(contents); } + @Override public TextAttributes getTextAttributes() { if (myTextAttributes == null) { TextAttributes textAttributes = new TextAttributes(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java index 486a79bd9222..484021d97263 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java @@ -80,12 +80,14 @@ public class SettingsImpl implements EditorSettings { myEditor = editor; } + @Override public boolean isRightMarginShown() { return myIsRightMarginShown != null ? myIsRightMarginShown.booleanValue() : EditorSettingsExternalizable.getInstance().isRightMarginShown(); } + @Override public void setRightMarginShown(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIsRightMarginShown)) return; @@ -93,22 +95,26 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isWhitespacesShown() { return myIsWhitespacesShown != null ? myIsWhitespacesShown.booleanValue() : EditorSettingsExternalizable.getInstance().isWhitespacesShown(); } + @Override public void setWhitespacesShown(boolean val) { myIsWhitespacesShown = Boolean.valueOf(val); } + @Override public boolean isIndentGuidesShown() { return myIndentGuidesShown != null ? myIndentGuidesShown.booleanValue() : EditorSettingsExternalizable.getInstance().isIndentGuidesShown(); } + @Override public void setIndentGuidesShown(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIndentGuidesShown)) return; @@ -117,12 +123,14 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isLineNumbersShown() { return myAreLineNumbersShown != null ? myAreLineNumbersShown.booleanValue() : EditorSettingsExternalizable.getInstance().isLineNumbersShown(); } + @Override public void setLineNumbersShown(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myAreLineNumbersShown)) return; @@ -130,6 +138,7 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public int getRightMargin(Project project) { return myRightMargin != null ? myRightMargin.intValue() : CodeStyleFacade.getInstance(project).getRightMargin(); @@ -140,6 +149,7 @@ public class SettingsImpl implements EditorSettings { return CodeStyleFacade.getInstance(project).isWrapWhenTypingReachesRightMargin(); } + @Override public void setRightMargin(int rightMargin) { final Integer newValue = Integer.valueOf(rightMargin); if (newValue.equals(myRightMargin)) return; @@ -147,42 +157,50 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public int getAdditionalLinesCount() { return myAdditionalLinesCount; } + @Override public void setAdditionalLinesCount(int additionalLinesCount) { if (myAdditionalLinesCount == additionalLinesCount) return; myAdditionalLinesCount = additionalLinesCount; fireEditorRefresh(); } + @Override public int getAdditionalColumnsCount() { return myAdditionalColumnsCount; } + @Override public void setAdditionalColumnsCount(int additinalColumnsCount) { if (myAdditionalColumnsCount == additinalColumnsCount) return; myAdditionalColumnsCount = additinalColumnsCount; fireEditorRefresh(); } + @Override public boolean isLineMarkerAreaShown() { return myLineMarkerAreaShown; } + @Override public void setLineMarkerAreaShown(boolean lineMarkerAreaShown) { if (myLineMarkerAreaShown == lineMarkerAreaShown) return; myLineMarkerAreaShown = lineMarkerAreaShown; fireEditorRefresh(); } + @Override public boolean isFoldingOutlineShown() { return myIsFoldingOutlineShown != null ? myIsFoldingOutlineShown.booleanValue() : EditorSettingsExternalizable.getInstance().isFoldingOutlineShown(); } + @Override public void setFoldingOutlineShown(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIsFoldingOutlineShown)) return; @@ -190,11 +208,13 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isUseTabCharacter(Project project) { FileType fileType = getFileType(); return myUseTabCharacter != null ? myUseTabCharacter.booleanValue() : CodeStyleFacade.getInstance(project).useTabCharacter(fileType); } + @Override public void setUseTabCharacter(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myUseTabCharacter)) return; @@ -210,6 +230,7 @@ public class SettingsImpl implements EditorSettings { myCachedTabSize = null; } + @Override public int getTabSize(Project project) { if (myTabSize != null) return myTabSize.intValue(); if (myCachedTabSize != null) return myCachedTabSize.intValue(); @@ -226,6 +247,7 @@ public class SettingsImpl implements EditorSettings { return file == null ? null : file.getFileType(); } + @Override public void setTabSize(int tabSize) { final Integer newValue = Integer.valueOf(tabSize); if (newValue.equals(myTabSize)) return; @@ -233,12 +255,14 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isSmartHome() { return myIsSmartHome != null ? myIsSmartHome.booleanValue() : EditorSettingsExternalizable.getInstance().isSmartHome(); } + @Override public void setSmartHome(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIsSmartHome)) return; @@ -246,6 +270,7 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isVirtualSpace() { if (myEditor != null && myEditor.isColumnMode()) return true; return myIsVirtualSpace != null @@ -253,6 +278,7 @@ public class SettingsImpl implements EditorSettings { : EditorSettingsExternalizable.getInstance().isVirtualSpace(); } + @Override public void setVirtualSpace(boolean allow) { final Boolean newValue = allow; if (newValue.equals(myIsVirtualSpace)) return; @@ -260,16 +286,19 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isAdditionalPageAtBottom() { return myIsAdditionalPageAtBottom != null ? myIsAdditionalPageAtBottom.booleanValue() : EditorSettingsExternalizable.getInstance().isAdditionalPageAtBottom(); } + @Override public void setAdditionalPageAtBottom(boolean val) { myIsAdditionalPageAtBottom = Boolean.valueOf(val); } + @Override public boolean isCaretInsideTabs() { if (myEditor != null && myEditor.isColumnMode()) return true; return myIsCaretInsideTabs != null @@ -277,6 +306,7 @@ public class SettingsImpl implements EditorSettings { : EditorSettingsExternalizable.getInstance().isCaretInsideTabs(); } + @Override public void setCaretInsideTabs(boolean allow) { final Boolean newValue = allow; if (newValue.equals(myIsCaretInsideTabs)) return; @@ -284,12 +314,14 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isBlockCursor() { return myIsBlockCursor != null ? myIsBlockCursor.booleanValue() : EditorSettingsExternalizable.getInstance().isBlockCursor(); } + @Override public void setBlockCursor(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIsBlockCursor)) return; @@ -297,30 +329,36 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public int getLineCursorWidth() { return myLineCursorWidth; } + @Override public void setLineCursorWidth(int width) { myLineCursorWidth = width; } + @Override public boolean isAnimatedScrolling() { return myIsAnimatedScrolling != null ? myIsAnimatedScrolling.booleanValue() : EditorSettingsExternalizable.getInstance().isSmoothScrolling(); } + @Override public void setAnimatedScrolling(boolean val) { myIsAnimatedScrolling = val ? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isCamelWords() { return myIsCamelWords != null ? myIsCamelWords.booleanValue() : EditorSettingsExternalizable.getInstance().isCamelWords(); } + @Override public void setCamelWords(boolean val) { myIsCamelWords = val ? Boolean.TRUE : Boolean.FALSE; } @@ -330,12 +368,14 @@ public class SettingsImpl implements EditorSettings { myIsCamelWords = null; } + @Override public boolean isBlinkCaret() { return myIsCaretBlinking != null ? myIsCaretBlinking.booleanValue() : EditorSettingsExternalizable.getInstance().isBlinkCaret(); } + @Override public void setBlinkCaret(boolean val) { final Boolean newValue = val ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myIsCaretBlinking)) return; @@ -343,12 +383,14 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public int getCaretBlinkPeriod() { return myCaretBlinkingPeriod != null ? myCaretBlinkingPeriod.intValue() : EditorSettingsExternalizable.getInstance().getBlinkPeriod(); } + @Override public void setCaretBlinkPeriod(int blinkPeriod) { final Integer newValue = Integer.valueOf(blinkPeriod); if (newValue.equals(myCaretBlinkingPeriod)) return; @@ -356,59 +398,71 @@ public class SettingsImpl implements EditorSettings { fireEditorRefresh(); } + @Override public boolean isDndEnabled() { return myIsDndEnabled != null ? myIsDndEnabled.booleanValue() : EditorSettingsExternalizable.getInstance().isDndEnabled(); } + @Override public void setDndEnabled(boolean val) { myIsDndEnabled = val ? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isWheelFontChangeEnabled() { return myIsWheelFontChangeEnabled != null ? myIsWheelFontChangeEnabled.booleanValue() : EditorSettingsExternalizable.getInstance().isWheelFontChangeEnabled(); } + @Override public void setWheelFontChangeEnabled(boolean val) { myIsWheelFontChangeEnabled = val ? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isMouseClickSelectionHonorsCamelWords() { return myIsMouseClickSelectionHonorsCamelWords != null ? myIsMouseClickSelectionHonorsCamelWords.booleanValue() : EditorSettingsExternalizable.getInstance().isMouseClickSelectionHonorsCamelWords(); } + @Override public void setMouseClickSelectionHonorsCamelWords(boolean val) { myIsMouseClickSelectionHonorsCamelWords = val ? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isVariableInplaceRenameEnabled() { return myIsRenameVariablesInplace != null ? myIsRenameVariablesInplace.booleanValue() : EditorSettingsExternalizable.getInstance().isVariableInplaceRenameEnabled(); } + @Override public void setVariableInplaceRenameEnabled(boolean val) { myIsRenameVariablesInplace = val? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isRefrainFromScrolling() { if (myIsRefrainFromScrolling != null) return myIsRefrainFromScrolling.booleanValue(); return EditorSettingsExternalizable.getInstance().isRefrainFromScrolling(); } + @Override public void setRefrainFromScrolling(boolean b) { myIsRefrainFromScrolling = b ? Boolean.TRUE : Boolean.FALSE; } + @Override public boolean isUseSoftWraps() { return myUseSoftWraps != null ? myUseSoftWraps.booleanValue() : EditorSettingsExternalizable.getInstance().isUseSoftWraps(mySoftWrapAppliancePlace); } + @Override public void setUseSoftWraps(boolean use) { final Boolean newValue = use ? Boolean.TRUE : Boolean.FALSE; if (newValue.equals(myUseSoftWraps)) return; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SoftWrapModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SoftWrapModelImpl.java index efae16e5d037..5fe8b5910db4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SoftWrapModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SoftWrapModelImpl.java @@ -191,6 +191,7 @@ public class SoftWrapModelImpl implements SoftWrapModelEx, PrioritizedDocumentLi } } + @Override public boolean isSoftWrappingEnabled() { if (!myUseSoftWraps || myEditor.isOneLineMode()) { return false; @@ -215,6 +216,7 @@ public class SoftWrapModelImpl implements SoftWrapModelEx, PrioritizedDocumentLi return visibleArea.width > 0 && visibleArea.height > 0; } + @Override @Nullable public SoftWrap getSoftWrap(int offset) { if (!isSoftWrappingEnabled()) { @@ -391,6 +393,7 @@ public class SoftWrapModelImpl implements SoftWrapModelEx, PrioritizedDocumentLi } } + @Override @NotNull public VisualPosition adjustVisualPosition(@NotNull LogicalPosition logical, @NotNull VisualPosition defaultVisual) { if (myUpdateInProgress || !prepareToMapping()) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/VisibleEditorsTracker.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/VisibleEditorsTracker.java index ddb0889e4042..1c380a0f07df 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/VisibleEditorsTracker.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/VisibleEditorsTracker.java @@ -41,14 +41,17 @@ public class VisibleEditorsTracker extends CommandAdapter implements Application commandProcessor.addCommandListener(this); } + @Override @NotNull public String getComponentName() { return "VisibleEditorsTracker"; } + @Override public void initComponent() { } + @Override public void disposeComponent() { } @@ -60,6 +63,7 @@ public class VisibleEditorsTracker extends CommandAdapter implements Application public long getLastCommandFinish() { return myLastCommandFinish; } + @Override public void commandStarted(CommandEvent event) { for (Editor editor : EditorFactory.getInstance().getAllEditors()) { if (editor.getComponent().isShowing()) { @@ -71,6 +75,7 @@ public class VisibleEditorsTracker extends CommandAdapter implements Application } } + @Override public void commandFinished(CommandEvent event) { myEditorsVisibleOnCommandStart.clear(); myLastCommandFinish = System.currentTimeMillis(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/event/EditorEventMulticasterImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/event/EditorEventMulticasterImpl.java index f231ec51a838..d9cf9b32209d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/event/EditorEventMulticasterImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/event/EditorEventMulticasterImpl.java @@ -58,74 +58,91 @@ public class EditorEventMulticasterImpl implements EditorEventMulticasterEx { editor.addFocusListener(myFocusChangeListenerMulticaster.getMulticaster()); } + @Override public void addDocumentListener(@NotNull DocumentListener listener) { myDocumentMulticaster.addListener(listener); } + @Override public void addDocumentListener(@NotNull final DocumentListener listener, @NotNull Disposable parentDisposable) { addDocumentListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeDocumentListener(listener); } }); } + @Override public void removeDocumentListener(@NotNull DocumentListener listener) { myDocumentMulticaster.removeListener(listener); } + @Override public void addEditorMouseListener(@NotNull EditorMouseListener listener) { myEditorMouseMulticaster.addListener(listener); } + @Override public void addEditorMouseListener(@NotNull final EditorMouseListener listener, @NotNull final Disposable parentDisposable) { addEditorMouseListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeEditorMouseListener(listener); } }); } + @Override public void removeEditorMouseListener(@NotNull EditorMouseListener listener) { myEditorMouseMulticaster.removeListener(listener); } + @Override public void addEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) { myEditorMouseMotionMulticaster.addListener(listener); } + @Override public void addEditorMouseMotionListener(@NotNull final EditorMouseMotionListener listener, @NotNull final Disposable parentDisposable) { addEditorMouseMotionListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeEditorMouseMotionListener(listener); } }); } + @Override public void removeEditorMouseMotionListener(@NotNull EditorMouseMotionListener listener) { myEditorMouseMotionMulticaster.removeListener(listener); } + @Override public void addCaretListener(@NotNull CaretListener listener) { myCaretMulticaster.addListener(listener); } + @Override public void addCaretListener(@NotNull final CaretListener listener, @NotNull final Disposable parentDisposable) { addCaretListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeCaretListener(listener); } }); } + @Override public void removeCaretListener(@NotNull CaretListener listener) { myCaretMulticaster.removeListener(listener); } + @Override public void addSelectionListener(@NotNull SelectionListener listener) { mySelectionMulticaster.addListener(listener); } @@ -135,10 +152,12 @@ public class EditorEventMulticasterImpl implements EditorEventMulticasterEx { mySelectionMulticaster.addListener(listener, parentDisposable); } + @Override public void removeSelectionListener(@NotNull SelectionListener listener) { mySelectionMulticaster.removeListener(listener); } + @Override public void addErrorStripeListener(@NotNull ErrorStripeListener listener) { myErrorStripeMulticaster.addListener(listener); } @@ -148,34 +167,42 @@ public class EditorEventMulticasterImpl implements EditorEventMulticasterEx { myErrorStripeMulticaster.addListener(listener, parentDisposable); } + @Override public void removeErrorStripeListener(@NotNull ErrorStripeListener listener) { myErrorStripeMulticaster.removeListener(listener); } + @Override public void addVisibleAreaListener(@NotNull VisibleAreaListener listener) { myVisibleAreaMulticaster.addListener(listener); } + @Override public void removeVisibleAreaListener(@NotNull VisibleAreaListener listener) { myVisibleAreaMulticaster.removeListener(listener); } + @Override public void addEditReadOnlyListener(@NotNull EditReadOnlyListener listener) { myEditReadOnlyMulticaster.addListener(listener); } + @Override public void removeEditReadOnlyListener(@NotNull EditReadOnlyListener listener) { myEditReadOnlyMulticaster.removeListener(listener); } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeMulticaster.addListener(listener); } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeMulticaster.removeListener(listener); } + @Override public void addFocusChangeListner(@NotNull FocusChangeListener listener) { myFocusChangeListenerMulticaster.addListener(listener); } @@ -185,6 +212,7 @@ public class EditorEventMulticasterImpl implements EditorEventMulticasterEx { myFocusChangeListenerMulticaster.addListener(listener,parentDisposable); } + @Override public void removeFocusChangeListner(@NotNull FocusChangeListener listener) { myFocusChangeListenerMulticaster.removeListener(listener); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/markup/MarkupEditorFilterFactory.java b/platform/platform-impl/src/com/intellij/openapi/editor/markup/MarkupEditorFilterFactory.java index 557e3dcc46f1..46607c55cd73 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/markup/MarkupEditorFilterFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/markup/MarkupEditorFilterFactory.java @@ -27,6 +27,7 @@ public class MarkupEditorFilterFactory { public static MarkupEditorFilter createNotFilter(final MarkupEditorFilter filter) { return new MarkupEditorFilter() { + @Override public boolean avaliableIn(Editor editor) { return !filter.avaliableIn(editor); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextAreaDocument.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextAreaDocument.java index f61c83fd52e8..7a8798effb03 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextAreaDocument.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextAreaDocument.java @@ -29,10 +29,12 @@ public class TextAreaDocument extends TextComponentDocument { myTextArea = textComponent; } + @Override public int getLineCount() { return myTextArea.getLineCount(); } + @Override public int getLineNumber(final int offset) { try { return myTextArea.getLineOfOffset(offset); @@ -42,6 +44,7 @@ public class TextAreaDocument extends TextComponentDocument { } } + @Override public int getLineStartOffset(final int line) { try { return myTextArea.getLineStartOffset(line); @@ -51,6 +54,7 @@ public class TextAreaDocument extends TextComponentDocument { } } + @Override public int getLineEndOffset(final int line) { try { return myTextArea.getLineEndOffset(line) - getLineSeparatorLength(line); @@ -60,6 +64,7 @@ public class TextAreaDocument extends TextComponentDocument { } } + @Override public int getLineSeparatorLength(final int line) { if (line == myTextArea.getLineCount()-1) { return 0; diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentCaretModel.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentCaretModel.java index 3c13bd340bfc..9319b3ce1504 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentCaretModel.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentCaretModel.java @@ -38,16 +38,19 @@ public class TextComponentCaretModel implements CaretModel { myEditor = editor; } + @Override public void moveCaretRelatively(final int columnShift, final int lineShift, final boolean withSelection, final boolean blockSelection, final boolean scrollToCaret) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void moveToLogicalPosition(@NotNull final LogicalPosition pos) { moveToOffset(myEditor.logicalPositionToOffset(pos), false); } + @Override public void moveToVisualPosition(@NotNull final VisualPosition pos) { moveToLogicalPosition(myEditor.visualToLogicalPosition(pos)); } @@ -57,6 +60,7 @@ public class TextComponentCaretModel implements CaretModel { moveToOffset(offset, false); } + @Override public void moveToOffset(final int offset, boolean locateBeforeSoftWrap) { myTextComponent.setCaretPosition(Math.min(offset, myTextComponent.getText().length())); } @@ -66,6 +70,7 @@ public class TextComponentCaretModel implements CaretModel { return true; } + @Override @NotNull public LogicalPosition getLogicalPosition() { int caretPos = myTextComponent.getCaretPosition(); @@ -88,32 +93,39 @@ public class TextComponentCaretModel implements CaretModel { return new LogicalPosition(line, caretPos - lineStart); } + @Override @NotNull public VisualPosition getVisualPosition() { LogicalPosition pos = getLogicalPosition(); return new VisualPosition(pos.line, pos.column); } + @Override public int getOffset() { return myTextComponent.getCaretPosition(); } + @Override public void addCaretListener(@NotNull final CaretListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeCaretListener(@NotNull final CaretListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public int getVisualLineStart() { return 0; } + @Override public int getVisualLineEnd() { return 0; } + @Override public TextAttributes getTextAttributes() { return null; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentDocument.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentDocument.java index 51ebdc72ad22..92035e483d1e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentDocument.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentDocument.java @@ -40,6 +40,7 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen myTextComponent = textComponent; } + @Override public String getText() { try { final javax.swing.text.Document document = myTextComponent.getDocument(); @@ -62,36 +63,44 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen } } + @Override @NotNull public CharSequence getCharsSequence() { return getText(); } + @Override @NotNull public char[] getChars() { throw new UnsupportedOperationException("Not implemented"); } + @Override public int getTextLength() { return myTextComponent.getDocument().getLength(); } + @Override public int getLineCount() { return 1; } + @Override public int getLineNumber(final int offset) { return 0; } + @Override public int getLineStartOffset(final int line) { return 0; } + @Override public int getLineEndOffset(final int line) { return getTextLength(); } + @Override public void insertString(final int offset, @NotNull final CharSequence s) { try { myTextComponent.getDocument().insertString(offset, s.toString(), null); @@ -101,6 +110,7 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen } } + @Override public void deleteString(final int startOffset, final int endOffset) { try { myTextComponent.getDocument().remove(startOffset, endOffset - startOffset); @@ -110,6 +120,7 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen } } + @Override public void replaceString(final int startOffset, final int endOffset, @NotNull final CharSequence s) { final javax.swing.text.Document document = myTextComponent.getDocument(); try { @@ -121,35 +132,43 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen } } + @Override public boolean isWritable() { return true; } + @Override public long getModificationStamp() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void fireReadOnlyModificationAttempt() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void addDocumentListener(@NotNull final DocumentListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void addDocumentListener(@NotNull final DocumentListener listener, @NotNull final Disposable parentDisposable) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeDocumentListener(@NotNull final DocumentListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public RangeMarker createRangeMarker(final int startOffset, final int endOffset) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public RangeMarker createRangeMarker(final int startOffset, final int endOffset, final boolean surviveOnExternalChange) { throw new UnsupportedOperationException("Not implemented"); @@ -160,56 +179,69 @@ public class TextComponentDocument extends UserDataHolderBase implements Documen throw new UnsupportedOperationException("Not implemented"); } + @Override public void addPropertyChangeListener(@NotNull final PropertyChangeListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removePropertyChangeListener(@NotNull final PropertyChangeListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void setReadOnly(final boolean isReadOnly) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public RangeMarker createGuardedBlock(final int startOffset, final int endOffset) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeGuardedBlock(@NotNull final RangeMarker block) { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public RangeMarker getOffsetGuard(final int offset) { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public RangeMarker getRangeGuard(final int start, final int end) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void startGuardedBlockChecking() { } + @Override public void stopGuardedBlockChecking() { } + @Override public void setCyclicBufferSize(final int bufferSize) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void setText(@NotNull final CharSequence text) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public RangeMarker createRangeMarker(@NotNull final TextRange textRange) { throw new UnsupportedOperationException("Not implemented"); } + @Override public int getLineSeparatorLength(final int line) { return 0; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java index f3c274d3cb80..acff4d57dda3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java @@ -62,20 +62,24 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { mySoftWrapModel = new TextComponentSoftWrapModel(); } + @Override @NotNull public Document getDocument() { return myDocument; } + @Override public boolean isViewer() { return !myTextComponent.isEditable(); } + @Override @NotNull public JComponent getComponent() { return myTextComponent; } + @Override @NotNull public JComponent getContentComponent() { return myTextComponent; @@ -90,36 +94,43 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { return new Insets(0,0,0,0); } + @Override @NotNull public SelectionModel getSelectionModel() { return mySelectionModel; } + @Override @NotNull public MarkupModel getMarkupModel() { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public FoldingModel getFoldingModel() { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public ScrollingModel getScrollingModel() { return myScrollingModel; } + @Override @NotNull public CaretModel getCaretModel() { return myCaretModel; } + @Override @NotNull public SoftWrapModel getSoftWrapModel() { return mySoftWrapModel; } + @Override @NotNull public EditorSettings getSettings() { if (mySettings == null) { @@ -128,39 +139,47 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { return mySettings; } + @Override @NotNull public EditorColorsScheme getColorsScheme() { throw new UnsupportedOperationException("Not implemented"); } + @Override public int getLineHeight() { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public Point logicalPositionToXY(@NotNull final LogicalPosition pos) { throw new UnsupportedOperationException("Not implemented"); } + @Override public int logicalPositionToOffset(@NotNull final LogicalPosition pos) { return myDocument.getLineStartOffset(pos.line) + pos.column; } + @Override @NotNull public VisualPosition logicalToVisualPosition(@NotNull final LogicalPosition logicalPos) { return new VisualPosition(logicalPos.line, logicalPos.column); } + @Override @NotNull public Point visualPositionToXY(@NotNull final VisualPosition visible) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public LogicalPosition visualToLogicalPosition(@NotNull final VisualPosition visiblePos) { return new LogicalPosition(visiblePos.line, visiblePos.column); } + @Override @NotNull public LogicalPosition offsetToLogicalPosition(final int offset) { int line = myDocument.getLineNumber(offset); @@ -168,6 +187,7 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { return new LogicalPosition(line, offset - lineStartOffset); } + @Override @NotNull public VisualPosition offsetToVisualPosition(final int offset) { int line = myDocument.getLineNumber(offset); @@ -175,76 +195,93 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { return new VisualPosition(line, offset - lineStartOffset); } + @Override @NotNull public LogicalPosition xyToLogicalPosition(@NotNull final Point p) { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public VisualPosition xyToVisualPosition(@NotNull final Point p) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void addEditorMouseListener(@NotNull final EditorMouseListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeEditorMouseListener(@NotNull final EditorMouseListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void addEditorMouseMotionListener(@NotNull final EditorMouseMotionListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeEditorMouseMotionListener(@NotNull final EditorMouseMotionListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public boolean isDisposed() { return false; } + @Override @Nullable public Project getProject() { return myProject; } + @Override public boolean isInsertMode() { throw new UnsupportedOperationException("Not implemented"); } + @Override public boolean isColumnMode() { return false; } + @Override public boolean isOneLineMode() { return !(myTextComponent instanceof JTextArea); } + @Override @NotNull public EditorGutter getGutter() { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public EditorMouseEventArea getMouseEventArea(@NotNull final MouseEvent e) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void setHeaderComponent(@Nullable final JComponent header) { throw new UnsupportedOperationException("Not implemented"); } + @Override public boolean hasHeaderComponent() { return false; } + @Override @Nullable public JComponent getHeaderComponent() { return null; } + @Override public IndentsModel getIndentsModel() { return new EmptyIndentsModel(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentScrollingModel.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentScrollingModel.java index e6a1aa865ff6..76923c4cb042 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentScrollingModel.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentScrollingModel.java @@ -34,14 +34,17 @@ public class TextComponentScrollingModel implements ScrollingModel { myTextComponent = textComponent; } + @Override public Rectangle getVisibleArea() { throw new UnsupportedOperationException("Not implemented"); } + @Override public Rectangle getVisibleAreaOnScrollingFinished() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void scrollToCaret(final ScrollType scrollType) { final int position = myTextComponent.getCaretPosition(); try { @@ -53,40 +56,50 @@ public class TextComponentScrollingModel implements ScrollingModel { } } + @Override public void scrollTo(final LogicalPosition pos, final ScrollType scrollType) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void runActionOnScrollingFinished(final Runnable action) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void disableAnimation() { } + @Override public void enableAnimation() { } + @Override public int getVerticalScrollOffset() { throw new UnsupportedOperationException("Not implemented"); } + @Override public int getHorizontalScrollOffset() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void scrollVertically(final int scrollOffset) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void scrollHorizontally(final int scrollOffset) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void addVisibleAreaListener(final VisibleAreaListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeVisibleAreaListener(final VisibleAreaListener listener) { throw new UnsupportedOperationException("Not implemented"); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentSelectionModel.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentSelectionModel.java index fd2e94ba1b06..24db4b384141 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentSelectionModel.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentSelectionModel.java @@ -42,6 +42,7 @@ public class TextComponentSelectionModel implements SelectionModel { myEditor = textComponentEditor; } + @Override public int getSelectionStart() { return myTextComponent.getSelectionStart(); } @@ -52,6 +53,7 @@ public class TextComponentSelectionModel implements SelectionModel { return null; } + @Override public int getSelectionEnd() { return myTextComponent.getSelectionEnd(); } @@ -62,11 +64,13 @@ public class TextComponentSelectionModel implements SelectionModel { return null; } + @Override @Nullable public String getSelectedText() { return myTextComponent.getSelectedText(); } + @Override public int getLeadSelectionOffset() { final int caretPosition = myTextComponent.getCaretPosition(); final int start = myTextComponent.getSelectionStart(); @@ -80,10 +84,12 @@ public class TextComponentSelectionModel implements SelectionModel { return null; } + @Override public boolean hasSelection() { return myTextComponent.getSelectionStart() != myTextComponent.getSelectionEnd(); } + @Override public void setSelection(final int startOffset, final int endOffset) { if (myTextComponent.getCaretPosition() == startOffset) { // avoid moving caret (required for correct Ctrl-W operation) myTextComponent.setCaretPosition(endOffset); @@ -105,23 +111,28 @@ public class TextComponentSelectionModel implements SelectionModel { setSelection(startOffset, endOffset); } + @Override public void removeSelection() { final int position = myTextComponent.getCaretPosition(); myTextComponent.select(position, position); } + @Override public void addSelectionListener(final SelectionListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeSelectionListener(final SelectionListener listener) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void selectLineAtCaret() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void selectWordAtCaret(final boolean honorCamelWordsSettings) { removeSelection(); @@ -130,50 +141,61 @@ public class TextComponentSelectionModel implements SelectionModel { handler.execute(myEditor, DataManager.getInstance().getDataContext(myEditor.getComponent())); } + @Override public void copySelectionToClipboard() { throw new UnsupportedOperationException("Not implemented"); } + @Override public void setBlockSelection(final LogicalPosition blockStart, final LogicalPosition blockEnd) { throw new UnsupportedOperationException("Not implemented"); } + @Override public void removeBlockSelection() { } + @Override public boolean hasBlockSelection() { return false; } + @Override @NotNull public int[] getBlockSelectionStarts() { throw new UnsupportedOperationException("Not implemented"); } + @Override @NotNull public int[] getBlockSelectionEnds() { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public LogicalPosition getBlockStart() { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public LogicalPosition getBlockEnd() { throw new UnsupportedOperationException("Not implemented"); } + @Override public boolean isBlockSelectionGuarded() { throw new UnsupportedOperationException("Not implemented"); } + @Override @Nullable public RangeMarker getBlockSelectionGuard() { throw new UnsupportedOperationException("Not implemented"); } + @Override public TextAttributes getTextAttributes() { return null; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/VirtualFileUrlChangeAdapter.java b/platform/platform-impl/src/com/intellij/openapi/vfs/VirtualFileUrlChangeAdapter.java index 166f756be6b6..8cd60eff9722 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/VirtualFileUrlChangeAdapter.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/VirtualFileUrlChangeAdapter.java @@ -28,6 +28,7 @@ public abstract class VirtualFileUrlChangeAdapter extends VirtualFileAdapter { protected abstract void fileUrlChanged(String oldUrl, String newUrl); + @Override public void propertyChanged(VirtualFilePropertyEvent event) { if (VirtualFile.PROP_NAME.equals(event.getPropertyName())) { final VirtualFile parent = event.getFile().getParent(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeEncodingUpdateGroup.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeEncodingUpdateGroup.java index 6eefd5fd443c..49cac45a411b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeEncodingUpdateGroup.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeEncodingUpdateGroup.java @@ -27,6 +27,7 @@ import com.intellij.pom.Navigatable; * @author cdr */ public class ChangeEncodingUpdateGroup extends DefaultActionGroup { + @Override public void update(final AnActionEvent e) { VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE); VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingGroup.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingGroup.java index 23e0e6ac8731..2c86df555602 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingGroup.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingGroup.java @@ -31,6 +31,7 @@ import java.util.List; * @author cdr */ public class ChangeFileEncodingGroup extends ActionGroup { + @Override @NotNull public AnAction[] getChildren(@Nullable final AnActionEvent e) { if (e == null) return EMPTY_ARRAY; @@ -63,6 +64,7 @@ public class ChangeFileEncodingGroup extends ActionGroup { getTemplatePresentation().setText("more..."); } + @Override public void actionPerformed(final AnActionEvent e) { Charset[] charsets = CharsetToolkit.getAvailableCharsets(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingTo.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingTo.java index 93904b175f51..264e1331ebc5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingTo.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChangeFileEncodingTo.java @@ -49,6 +49,7 @@ class ChangeFileEncodingTo extends AnAction implements DumbAware { getTemplatePresentation().setDescription(description); } + @Override public void actionPerformed(final AnActionEvent e) { chosen(myFile, myCharset); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseEncodingDialog.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseEncodingDialog.java index 53ede596b33e..fb96c249e898 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseEncodingDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseEncodingDialog.java @@ -42,13 +42,16 @@ public class ChooseEncodingDialog extends DialogWrapper { init(); } + @Override @Nullable protected JComponent createCenterPanel() { AbstractListModel model = new AbstractListModel() { + @Override public int getSize() { return myCharsets.length; } + @Override public Object getElementAt(int i) { return myCharsets[i]; } @@ -56,6 +59,7 @@ public class ChooseEncodingDialog extends DialogWrapper { myList.setModel(model); TreeUIHelper.getInstance().installListSpeedSearch(myList); myList.setCellRenderer(new DefaultListCellRenderer(){ + @Override public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { @@ -75,10 +79,12 @@ public class ChooseEncodingDialog extends DialogWrapper { return (Charset)myList.getSelectedValue(); } + @Override public JComponent getPreferredFocusedComponent() { return myList; } + @Override @NonNls protected String getDimensionServiceKey() { return "#com.intellij.openapi.vfs.encoding.ChooseEncodingDialog"; diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseFileEncodingAction.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseFileEncodingAction.java index f102a5fa11ed..c117ef872b63 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseFileEncodingAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/ChooseFileEncodingAction.java @@ -55,6 +55,7 @@ public abstract class ChooseFileEncodingAction extends ComboBoxAction { myVirtualFile = virtualFile; } + @Override public void update(final AnActionEvent e) { Pair result = update(myVirtualFile); @@ -109,6 +110,7 @@ public abstract class ChooseFileEncodingAction extends ComboBoxAction { return EncodingManager.getInstance().getCachedCharsetFromContent(document); } + @Override @NotNull protected DefaultActionGroup createPopupActionGroup(final JComponent button) { return createGroup(true); @@ -117,6 +119,7 @@ public abstract class ChooseFileEncodingAction extends ComboBoxAction { private void fillCharsetActions(DefaultActionGroup group, final VirtualFile virtualFile, List charsets) { for (Charset slave : charsets) { ChangeFileEncodingTo action = new ChangeFileEncodingTo(virtualFile, slave){ + @Override protected void chosen(final VirtualFile file, final Charset charset) { ChooseFileEncodingAction.this.chosen(file, charset); } @@ -179,20 +182,24 @@ public abstract class ChooseFileEncodingAction extends ComboBoxAction { myFile = file; } + @Override public void actionPerformed(final AnActionEvent e) { chosen(myFile, NO_ENCODING); } } public static final Charset NO_ENCODING = new Charset("NO_ENCODING", null) { + @Override public boolean contains(final Charset cs) { return false; } + @Override public CharsetDecoder newDecoder() { return null; } + @Override public CharsetEncoder newEncoder() { return null; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingManagerImpl.java index 9078bc07bd8f..fd2b32e7864a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingManagerImpl.java @@ -106,6 +106,7 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt private void handleDocument(final Document document) { ApplicationManager.getApplication().runReadAction(new Runnable(){ + @Override public void run() { VirtualFile virtualFile = FileDocumentManager.getInstance().getFile(document); if (virtualFile == null) return; @@ -121,6 +122,7 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt }); } + @Override public void dispose() { updateEncodingFromContent.cancelAllRequests(); clearDocumentQueue(); @@ -130,22 +132,26 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt myChangedDocuments.offer(new WeakReference(document)); } + @Override @Nullable public Charset getCachedCharsetFromContent(@NotNull Document document) { return document.getUserData(CACHED_CHARSET_FROM_CONTENT); } + @Override public Element getState() { Element result = new Element("x"); result.setAttribute("default_encoding", myDefaultEncoding); return result; } + @Override public void loadState(final Element state) { myCachedCharset = null; myDefaultEncoding = state.getAttributeValue("default_encoding"); } + @Override @NotNull public Collection getFavorites() { Set result = new THashSet(); @@ -156,6 +162,7 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return result; } + @Override @Nullable public Charset getEncoding(@Nullable VirtualFile virtualFile, boolean useParentDefaults) { Project project = guessProject(virtualFile); @@ -174,22 +181,26 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return ProjectLocator.getInstance().guessProjectForFile(virtualFile); } + @Override public void setEncoding(@Nullable VirtualFile virtualFileOrDir, @Nullable Charset charset) { Project project = guessProject(virtualFileOrDir); EncodingProjectManager.getInstance(project).setEncoding(virtualFileOrDir, charset); } + @Override public boolean isUseUTFGuessing(final VirtualFile virtualFile) { Project project = guessProject(virtualFile); return project != null && EncodingProjectManager.getInstance(project).isUseUTFGuessing(virtualFile); } + @Override public void setUseUTFGuessing(final VirtualFile virtualFile, final boolean useUTFGuessing) { Project project = guessProject(virtualFile); if (project == null) return; EncodingProjectManager.getInstance(project).setUseUTFGuessing(virtualFile, useUTFGuessing); } + @Override public boolean isNative2Ascii(@NotNull final VirtualFile virtualFile) { Project project = guessProject(virtualFile); return project != null && EncodingProjectManager.getInstance(project).isNative2Ascii(virtualFile); @@ -201,12 +212,14 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return project != null && EncodingProjectManager.getInstance(project).isNative2AsciiForPropertiesFiles(); } + @Override public void setNative2AsciiForPropertiesFiles(final VirtualFile virtualFile, final boolean native2Ascii) { Project project = guessProject(virtualFile); if (project == null) return; EncodingProjectManager.getInstance(project).setNative2AsciiForPropertiesFiles(virtualFile, native2Ascii); } + @Override @Nullable public Charset getDefaultCharset() { Charset result = myCachedCharset; @@ -218,11 +231,13 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return result; } + @Override @Nullable public String getDefaultCharsetName() { return myDefaultEncoding; } + @Override public void setDefaultCharsetName(final String name) { myDefaultEncoding = name; myCachedCharset = null; @@ -243,6 +258,7 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return result; } + @Override @Nullable public Charset getDefaultCharsetForPropertiesFiles(@Nullable final VirtualFile virtualFile) { Project project = guessProject(virtualFile); @@ -250,12 +266,14 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt return EncodingProjectManager.getInstance(project).getDefaultCharsetForPropertiesFiles(virtualFile); } + @Override public void setDefaultCharsetForPropertiesFiles(@Nullable final VirtualFile virtualFile, final Charset charset) { Project project = guessProject(virtualFile); if (project == null) return; EncodingProjectManager.getInstance(project).setDefaultCharsetForPropertiesFiles(virtualFile, charset); } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener){ myPropertyChangeSupport.addPropertyChangeListener(listener); } @@ -271,6 +289,7 @@ public class EncodingManagerImpl extends EncodingManager implements PersistentSt }); } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener){ myPropertyChangeSupport.removePropertyChangeListener(listener); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingProjectManagerImpl.java index 90467700e43d..a7305c798d02 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/EncodingProjectManagerImpl.java @@ -71,12 +71,14 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { myGeneralSettings = generalSettings; myEditorSettings = editorSettings; documentManager.addListener(new PsiDocumentManager.Listener() { + @Override public void documentCreated(Document document, PsiFile psiFile) { if (document != null) { ((EncodingManagerImpl)EncodingManager.getInstance()).queueUpdateEncodingFromContent(document); } } + @Override public void fileCreated(@NotNull PsiFile file, @NotNull Document document) { } }); @@ -85,10 +87,12 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { //null key means project private final Map myMapping = new HashMap(); + @Override public Element getState() { Element element = new Element("x"); List files = new ArrayList(myMapping.keySet()); ContainerUtil.quickSort(files, new Comparator() { + @Override public int compare(final VirtualFile o1, final VirtualFile o2) { if (o1 == null || o2 == null) return o1 == null ? o2 == null ? 0 : 1 : -1; return o1.getPath().compareTo(o2.getPath()); @@ -109,6 +113,7 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { return element; } + @Override public void loadState(Element element) { List files = element.getChildren("file"); for (Element fileElement : files) { @@ -137,28 +142,34 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { } } + @Override @NonNls @NotNull public String getComponentName() { return "EncodingProjectManager"; } + @Override public void initComponent() { } + @Override public void disposeComponent() { } + @Override public void projectOpened() { } + @Override public void projectClosed() { } + @Override @Nullable public Charset getEncoding(@Nullable VirtualFile virtualFile, boolean useParentDefaults) { VirtualFile parent = virtualFile; @@ -171,6 +182,7 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { return null; } + @Override public void setEncoding(@Nullable VirtualFile virtualFileOrDir, @Nullable Charset charset) { if (charset == null) { myMapping.remove(virtualFileOrDir); @@ -203,6 +215,7 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { } } + @Override @NotNull public Collection getFavorites() { Set result = new THashSet(); @@ -212,10 +225,12 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { return result; } + @Override public Map getAllMappings() { return myMapping; } + @Override public void setMapping(final Map result) { Map map = new HashMap(result); //todo return it back as soon as FileIndex get to the platform @@ -242,20 +257,24 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { } //retrieves encoding for the Project node + @Override @Nullable public Charset getDefaultCharset() { Charset charset = getEncoding(null, false); return charset == null ? EncodingManager.getInstance().getDefaultCharset() : charset; } + @Override public boolean isUseUTFGuessing(final VirtualFile virtualFile) { return myUseUTFGuessing; } + @Override public void setUseUTFGuessing(final VirtualFile virtualFile, final boolean useUTFGuessing) { myUseUTFGuessing = useUTFGuessing; } + @Override public boolean isNative2Ascii(@NotNull final VirtualFile virtualFile) { return virtualFile.getFileType() == StdFileTypes.PROPERTIES && myNative2AsciiForPropertiesFiles; } @@ -265,6 +284,7 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { return myNative2AsciiForPropertiesFiles; } + @Override public void setNative2AsciiForPropertiesFiles(final VirtualFile virtualFile, final boolean native2Ascii) { if (myNative2AsciiForPropertiesFiles != native2Ascii) { myNative2AsciiForPropertiesFiles = native2Ascii; @@ -272,11 +292,13 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { } } + @Override @Nullable public Charset getDefaultCharsetForPropertiesFiles(@Nullable final VirtualFile virtualFile) { return myDefaultCharsetForPropertiesFiles; } + @Override public void setDefaultCharsetForPropertiesFiles(@Nullable final VirtualFile virtualFile, @Nullable Charset charset) { Charset old = myDefaultCharsetForPropertiesFiles; if (!Comparing.equal(old, charset)) { @@ -285,6 +307,7 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { } } + @Override public void addPropertyChangeListener(@NotNull PropertyChangeListener listener){ EncodingManager.getInstance().addPropertyChangeListener(listener); } @@ -294,10 +317,12 @@ public class EncodingProjectManagerImpl extends EncodingProjectManager { EncodingManager.getInstance().addPropertyChangeListener(listener,parentDisposable); } + @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener){ EncodingManager.getInstance().removePropertyChangeListener(listener); } + @Override @Nullable public Charset getCachedCharsetFromContent(@NotNull Document document) { return EncodingManager.getInstance().getCachedCharsetFromContent(document); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/PlatformFileEncodingConfigurable.java b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/PlatformFileEncodingConfigurable.java index 021c53c9d04b..44cb91c8d262 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/PlatformFileEncodingConfigurable.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/encoding/PlatformFileEncodingConfigurable.java @@ -22,28 +22,34 @@ public class PlatformFileEncodingConfigurable implements SearchableConfigurable private static final String SYSTEM_DEFAULT = IdeBundle.message("encoding.name.system.default"); private PlatformEncodingOptionsPanel myPanel; + @Override @NotNull public String getId() { return "GeneralEncodingOptions"; } + @Override public Runnable enableSearch(String option) { return null; } + @Override @Nls public String getDisplayName() { return ""; } + @Override public Icon getIcon() { return null; } + @Override public String getHelpTopic() { return null; } + @Override public JComponent createComponent() { if (myPanel == null) { myPanel = new PlatformEncodingOptionsPanel(); @@ -51,6 +57,7 @@ public class PlatformFileEncodingConfigurable implements SearchableConfigurable return myPanel.getMainPanel(); } + @Override public boolean isModified() { final Object item = myPanel.myIDEEncodingComboBox.getSelectedItem(); if (SYSTEM_DEFAULT.equals(item)) { @@ -60,6 +67,7 @@ public class PlatformFileEncodingConfigurable implements SearchableConfigurable return !Comparing.equal(item, EncodingManager.getInstance().getDefaultCharset()); } + @Override public void apply() throws ConfigurationException { final Object item = myPanel.myIDEEncodingComboBox.getSelectedItem(); if (SYSTEM_DEFAULT.equals(item)) { @@ -70,6 +78,7 @@ public class PlatformFileEncodingConfigurable implements SearchableConfigurable } } + @Override public void reset() { final DefaultComboBoxModel encodingsModel = new DefaultComboBoxModel(CharsetToolkit.getAvailableCharsets()); encodingsModel.insertElementAt(SYSTEM_DEFAULT, 0); @@ -84,6 +93,7 @@ public class PlatformFileEncodingConfigurable implements SearchableConfigurable } } + @Override public void disposeUIResources() { myPanel = null; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/VirtualFileManagerAdapter.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/VirtualFileManagerAdapter.java index 0532bb42a6f2..9ab4bc177d5f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/VirtualFileManagerAdapter.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/VirtualFileManagerAdapter.java @@ -19,9 +19,11 @@ package com.intellij.openapi.vfs.ex; import com.intellij.openapi.vfs.VirtualFileManagerListener; public abstract class VirtualFileManagerAdapter implements VirtualFileManagerListener { + @Override public void beforeRefreshStart(boolean asynchronous) { } + @Override public void afterRefreshFinish(boolean asynchronous) { } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/DummyFileSystem.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/DummyFileSystem.java index 03700ee22b5d..607f4197a037 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/DummyFileSystem.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/DummyFileSystem.java @@ -55,27 +55,33 @@ public class DummyFileSystem extends DeprecatedVirtualFileSystem implements NonP return null; } + @Override @NotNull public String getProtocol() { return PROTOCOL; } + @Override public VirtualFile findFileByPath(@NotNull String path) { // LOG.error("method not implemented"); return null; } + @Override public String extractPresentableUrl(@NotNull String path) { return path; } + @Override public void refresh(boolean asynchronous) { } + @Override public VirtualFile refreshAndFindFileByPath(@NotNull String path) { return findFileByPath(path); } + @Override public void deleteFile(Object requestor, @NotNull VirtualFile vFile) throws IOException { fireBeforeFileDeletion(requestor, vFile); final VirtualFileDirectoryImpl parent = (VirtualFileDirectoryImpl)vFile.getParent(); @@ -87,14 +93,17 @@ public class DummyFileSystem extends DeprecatedVirtualFileSystem implements NonP fireFileDeleted(requestor, vFile, vFile.getName(), parent); } + @Override public void moveFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent) throws IOException { throw new UnsupportedOperationException(); } + @Override public VirtualFile copyFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent, @NotNull final String copyName) throws IOException { throw new UnsupportedOperationException(); } + @Override public void renameFile(Object requestor, @NotNull VirtualFile vFile, @NotNull String newName) throws IOException { final String oldName = vFile.getName(); fireBeforePropertyChange(requestor, vFile, VirtualFile.PROP_NAME, oldName, newName); @@ -102,6 +111,7 @@ public class DummyFileSystem extends DeprecatedVirtualFileSystem implements NonP firePropertyChanged(requestor, vFile, VirtualFile.PROP_NAME, oldName, newName); } + @Override public VirtualFile createChildFile(Object requestor, @NotNull VirtualFile vDir, @NotNull String fileName) throws IOException { final VirtualFileDirectoryImpl dir = ((VirtualFileDirectoryImpl)vDir); VirtualFileImpl child = new VirtualFileDataImpl(this, dir, fileName); @@ -120,6 +130,7 @@ public class DummyFileSystem extends DeprecatedVirtualFileSystem implements NonP super.fireContentsChanged(requestor, file, oldModificationStamp); } + @Override @NotNull public VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile vDir, @NotNull String dirName) throws IOException { final VirtualFileDirectoryImpl dir = ((VirtualFileDirectoryImpl)vDir); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDataImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDataImpl.java index 6a8a99dd16eb..3e8ad017f872 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDataImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDataImpl.java @@ -31,25 +31,31 @@ class VirtualFileDataImpl extends VirtualFileImpl { super(fileSystem, parent, name); } + @Override public boolean isDirectory() { return false; } + @Override public long getLength() { return myContents.length; } + @Override public VirtualFile[] getChildren() { return null; } + @Override public InputStream getInputStream() throws IOException { return VfsUtilCore.byteStreamSkippingBOM(myContents, this); } + @Override @NotNull public OutputStream getOutputStream(final Object requestor, final long newModificationStamp, long newTimeStamp) throws IOException { return VfsUtilCore.outputStreamAddingBOM(new ByteArrayOutputStream() { + @Override public void close() { final DummyFileSystem fs = (DummyFileSystem)getFileSystem(); fs.fireBeforeContentsChange(requestor, VirtualFileDataImpl.this); @@ -61,11 +67,13 @@ class VirtualFileDataImpl extends VirtualFileImpl { },this); } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { return myContents; } + @Override public long getModificationStamp() { return myModificationStamp; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDirectoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDirectoryImpl.java index 80dde6bfd36b..264e65e4b1a5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDirectoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileDirectoryImpl.java @@ -32,32 +32,39 @@ class VirtualFileDirectoryImpl extends VirtualFileImpl { super(fileSystem, parent, name); } + @Override public boolean isDirectory() { return true; } + @Override public long getLength() { return 0; } + @Override public VirtualFile[] getChildren() { return myChildren.size() == 0 ? EMPTY_ARRAY : myChildren.toArray(new VirtualFile[myChildren.size()]); } + @Override public InputStream getInputStream() throws IOException { throw new IOException(VfsBundle.message("file.read.error", getUrl())); } + @Override @NotNull public OutputStream getOutputStream(Object requestor, long newModificationStamp, long newTimeStamp) throws IOException { throw new IOException(VfsBundle.message("file.write.error", getUrl())); } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { throw new IOException(VfsBundle.message("file.read.error", getUrl())); } + @Override public long getModificationStamp() { return -1; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileImpl.java index 2d68d40a19b8..cfbf0b5f691e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/dummy/VirtualFileImpl.java @@ -35,15 +35,18 @@ abstract class VirtualFileImpl extends VirtualFile implements VirtualFileWithId myName = name; } + @Override public int getId() { return myId; } + @Override @NotNull public VirtualFileSystem getFileSystem() { return myFileSystem; } + @Override public String getPath() { if (myParent == null) { return myName; @@ -52,6 +55,7 @@ abstract class VirtualFileImpl extends VirtualFile implements VirtualFileWithId } } + @Override @NotNull public String getName() { return myName; @@ -61,22 +65,27 @@ abstract class VirtualFileImpl extends VirtualFile implements VirtualFileWithId myName = name; } + @Override public boolean isWritable() { return true; } + @Override public boolean isValid() { return myIsValid; } + @Override public VirtualFile getParent() { return myParent; } + @Override public long getTimeStamp() { return -1; } + @Override public void refresh(boolean asynchronous, boolean recursive, Runnable postRunnable) { } } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/temp/TempFileSystem.java b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/temp/TempFileSystem.java index e2351b167b4b..b2688f67df36 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/ex/temp/TempFileSystem.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/ex/temp/TempFileSystem.java @@ -46,15 +46,18 @@ public class TempFileSystem extends NewVirtualFileSystem { return ApplicationManager.getApplication().getComponent(TempFileSystem.class); } + @Override public boolean isCaseSensitive() { return true; } + @Override protected String extractRootPath(@NotNull final String path) { //return path.startsWith("/") ? "/" : ""; return "/"; } + @Override public int getRank() { return 1; } @@ -71,11 +74,13 @@ public class TempFileSystem extends NewVirtualFileSystem { return parentItem.findChild(file.getName()); } + @Override public VirtualFile copyFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent, @NotNull final String copyName) throws IOException { return VfsUtilCore.copyFile(requestor, file, newParent, copyName); } + @Override @NotNull public VirtualFile createChildDirectory(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String dir) throws IOException { final FSItem fsItem = convert(parent); @@ -94,6 +99,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return new FakeVirtualFile(parent, dir); } + @Override public VirtualFile createChildFile(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String file) throws IOException { final FSItem fsItem = convert(parent); if (fsItem == null) { @@ -110,6 +116,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return new FakeVirtualFile(parent, file); } + @Override public void deleteFile(final Object requestor, @NotNull final VirtualFile file) throws IOException { final FSItem fsItem = convert(file); if (fsItem == null) { @@ -119,6 +126,7 @@ public class TempFileSystem extends NewVirtualFileSystem { fsItem.getParent().removeChild(fsItem); } + @Override public void moveFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent) throws IOException { final FSItem fsItem = convert(file); assert fsItem != null: "failed to move file " + file.getPath(); @@ -133,6 +141,7 @@ public class TempFileSystem extends NewVirtualFileSystem { ((FSDir) newParentItem).addChild(fsItem); } + @Override public void renameFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final String newName) throws IOException { final FSItem fsItem = convert(file); assert fsItem != null; @@ -140,15 +149,18 @@ public class TempFileSystem extends NewVirtualFileSystem { fsItem.setName(newName); } + @Override @NotNull public String getProtocol() { return "temp"; } + @Override public boolean exists(@NotNull final VirtualFile fileOrDirectory) { return convert(fileOrDirectory) != null; } + @Override @NotNull public String[] list(@NotNull final VirtualFile file) { final FSItem fsItem = convert(file); @@ -157,10 +169,12 @@ public class TempFileSystem extends NewVirtualFileSystem { return fsItem.list(); } + @Override public boolean isDirectory(@NotNull final VirtualFile file) { return convert(file) instanceof FSDir; } + @Override public long getTimeStamp(@NotNull final VirtualFile file) { final FSItem fsItem = convert(file); assert fsItem != null: "cannot find item for path " + file.getPath(); @@ -168,6 +182,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return fsItem.myTimestamp; } + @Override public void setTimeStamp(@NotNull final VirtualFile file, final long timeStamp) throws IOException { final FSItem fsItem = convert(file); assert fsItem != null; @@ -175,6 +190,7 @@ public class TempFileSystem extends NewVirtualFileSystem { fsItem.myTimestamp = timeStamp > 0 ? timeStamp : LocalTimeCounter.currentTime(); } + @Override public boolean isWritable(@NotNull final VirtualFile file) { final FSItem fsItem = convert(file); assert fsItem != null; @@ -182,6 +198,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return fsItem.myWritable; } + @Override public void setWritable(@NotNull final VirtualFile file, final boolean writableFlag) throws IOException { final FSItem fsItem = convert(file); assert fsItem != null; @@ -189,6 +206,7 @@ public class TempFileSystem extends NewVirtualFileSystem { fsItem.myWritable = writableFlag; } + @Override @NotNull public byte[] contentsToByteArray(@NotNull final VirtualFile file) throws IOException { final FSItem fsItem = convert(file); @@ -199,15 +217,18 @@ public class TempFileSystem extends NewVirtualFileSystem { return ((FSFile)fsItem).myContent; } + @Override @NotNull public InputStream getInputStream(@NotNull final VirtualFile file) throws IOException { return new BufferExposingByteArrayInputStream(contentsToByteArray(file)); } + @Override @NotNull public OutputStream getOutputStream(@NotNull final VirtualFile file, final Object requestor, final long modStamp, final long timeStamp) throws IOException { return new ByteArrayOutputStream() { + @Override public void close() throws IOException { super.close(); final FSItem fsItem = convert(file); @@ -219,6 +240,7 @@ public class TempFileSystem extends NewVirtualFileSystem { }; } + @Override public void refresh(final boolean asynchronous) { RefreshQueue.getInstance().refresh(asynchronous, true, null, ManagingFS.getInstance().getRoots(this)); } @@ -238,6 +260,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return VfsImplUtil.refreshAndFindFileByPath(this, path); } + @Override public long getLength(@NotNull final VirtualFile file) { try { return contentsToByteArray(file).length; @@ -292,6 +315,7 @@ public class TempFileSystem extends NewVirtualFileSystem { super(parent, name); } + @Override @Nullable public FSItem findChild(final String name) { for (FSItem child : myChildren) { @@ -303,6 +327,7 @@ public class TempFileSystem extends NewVirtualFileSystem { return null; } + @Override public boolean isDirectory() { return true; } @@ -318,6 +343,7 @@ public class TempFileSystem extends NewVirtualFileSystem { myChildren.remove(fsItem); } + @Override public String[] list() { String[] names = ArrayUtil.newStringArray(myChildren.size()); for (int i = 0; i < names.length; i++) { @@ -334,6 +360,7 @@ public class TempFileSystem extends NewVirtualFileSystem { private byte[] myContent = new byte[0]; + @Override public boolean isDirectory() { return false; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/IdentityVirtualFilePointer.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/IdentityVirtualFilePointer.java index 0038d1282e50..c91366e15db5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/IdentityVirtualFilePointer.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/IdentityVirtualFilePointer.java @@ -31,25 +31,30 @@ class IdentityVirtualFilePointer implements VirtualFilePointer { myUrl = url; } + @Override @NotNull public String getFileName() { return getUrl(); } + @Override public VirtualFile getFile() { return myFile; } + @Override @NotNull public String getUrl() { return myUrl; } + @Override @NotNull public String getPresentableUrl() { return getUrl(); } + @Override public boolean isValid() { return myFile == null || myFile.isValid(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerContainerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerContainerImpl.java index 38e6f85ab506..ae746ef980e3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerContainerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerContainerImpl.java @@ -54,6 +54,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai myListener = listener; } + @Override public void readExternal(@NotNull final Element rootChild, @NotNull final String childElements) throws InvalidDataException { final List urls = rootChild.getChildren(childElements); for (Object url : urls) { @@ -64,6 +65,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai } } + @Override public void writeExternal(@NotNull final Element element, @NotNull final String childElementName) { for (int i = 0; i < getList().size(); i++) { String url = getList().get(i).getUrl(); @@ -73,6 +75,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai } } + @Override public void moveUp(@NotNull String url) { int index = indexOf(url); if (index <= 0) return; @@ -80,6 +83,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai ContainerUtil.swapElements(myList, index - 1, index); } + @Override public void moveDown(@NotNull String url) { int index = indexOf(url); if (index < 0 || index + 1 >= myList.size()) return; @@ -98,10 +102,12 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return -1; } + @Override public void killAll() { myList.clear(); } + @Override public void add(@NotNull VirtualFile file) { assert !myDisposed; dropCaches(); @@ -109,6 +115,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai myList.add(pointer); } + @Override public void add(@NotNull String url) { assert !myDisposed; dropCaches(); @@ -116,6 +123,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai myList.add(pointer); } + @Override public void remove(@NotNull VirtualFilePointer pointer) { assert !myDisposed; dropCaches(); @@ -123,12 +131,14 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai LOG.assertTrue(result); } + @Override @NotNull public List getList() { assert !myDisposed; return myReadOnlyList; } + @Override public void addAll(@NotNull VirtualFilePointerContainer that) { assert !myDisposed; dropCaches(); @@ -146,6 +156,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai } private String[] myCachedUrls; + @Override @NotNull public String[] getUrls() { assert !myDisposed; @@ -165,6 +176,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai } private VirtualFile[] myCachedFiles; + @Override @NotNull public VirtualFile[] getFiles() { assert !myDisposed; @@ -186,6 +198,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return VfsUtil.toVirtualFileArray(result); } + @Override @NotNull public VirtualFile[] getDirectories() { assert !myDisposed; @@ -208,6 +221,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return VfsUtil.toVirtualFileArray(result); } + @Override @Nullable public VirtualFilePointer findByUrl(@NotNull String url) { assert !myDisposed; @@ -217,15 +231,18 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return null; } + @Override public void clear() { dropCaches(); killAll(); } + @Override public int size() { return myList.size(); } + @Override public Object get(int index) { return myList.get(index); } @@ -260,11 +277,13 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return "VFPContainer: "+myList/*+"; parent:"+myParent*/; } + @Override @NotNull public VirtualFilePointerContainer clone(@NotNull Disposable parent) { return clone(parent, null); } + @Override @NotNull public VirtualFilePointerContainer clone(@NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) { assert !myDisposed; @@ -275,6 +294,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai return clone; } + @Override public void dispose() { assert !myDisposed; myDisposed = true; diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerImpl.java index a9a581e7ee23..a23dfe9eb44a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerImpl.java @@ -54,6 +54,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua } } + @Override @NotNull public String getFileName() { Pair result = update(); @@ -70,6 +71,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua return index >= 0 ? url.substring(index + 1) : url; } + @Override public VirtualFile getFile() { Pair result = update(); if (result == null) { @@ -79,6 +81,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua return result.first; } + @Override @NotNull public String getUrl() { //checkDisposed(); no check here since Disposer might want to compute hashcode during dispose() @@ -94,6 +97,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua return url == null ? file.getUrl() : url; } + @Override @NotNull public String getPresentableUrl() { checkDisposed(); @@ -145,6 +149,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua } } + @Override public boolean isValid() { Pair result = update(); return result != null && result.first != null; @@ -185,6 +190,7 @@ public class VirtualFilePointerImpl extends UserDataHolderBase implements Virtua return getUrlNoUpdate(); } + @Override public void dispose() { if (disposed) { throw new MyException("Punching the dead horse.\nurl="+toString(), getUserData(CREATE_TRACE), getUserData(KILL_TRACE)); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java index 07b047e12d56..9561c97232b8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/VirtualFilePointerManagerImpl.java @@ -53,10 +53,12 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp private final VirtualFileManagerEx myVirtualFileManager; private final MessageBus myBus; private static final Comparator COMPARATOR = SystemInfo.isFileSystemCaseSensitive ? new Comparator() { + @Override public int compare(@NotNull String url1, @NotNull String url2) { return url1.compareTo(url2); } } : new Comparator() { + @Override public int compare(@NotNull String url1, @NotNull String url2) { return url1.compareToIgnoreCase(url2); } @@ -155,11 +157,13 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp /** * @see #create(String, com.intellij.openapi.Disposable, com.intellij.openapi.vfs.pointers.VirtualFilePointerListener) */ + @Override @Deprecated public synchronized VirtualFilePointer create(String url, VirtualFilePointerListener listener) { return create(url, this, listener); } + @Override @NotNull public synchronized VirtualFilePointer create(@NotNull String url, @NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) { return create(null, url, parent, listener); @@ -168,11 +172,13 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp /** * @see #create(com.intellij.openapi.vfs.VirtualFile, com.intellij.openapi.Disposable, com.intellij.openapi.vfs.pointers.VirtualFilePointerListener) */ + @Override @Deprecated public synchronized VirtualFilePointer create(VirtualFile file, VirtualFilePointerListener listener) { return create(file, this, listener); } + @Override @NotNull public synchronized VirtualFilePointer create(@NotNull VirtualFile file, @NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) { return create(file, file.getUrl(), parent,listener); @@ -295,11 +301,13 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp /** * @see #duplicate(com.intellij.openapi.vfs.pointers.VirtualFilePointer, com.intellij.openapi.Disposable, com.intellij.openapi.vfs.pointers.VirtualFilePointerListener) */ + @Override @Deprecated public synchronized VirtualFilePointer duplicate(VirtualFilePointer pointer, VirtualFilePointerListener listener) { return duplicate(pointer, this, listener); } + @Override @NotNull public synchronized VirtualFilePointer duplicate(@NotNull VirtualFilePointer pointer, @NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) { @@ -311,13 +319,16 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp * Does nothing. To cleanup pointer correctly, just pass Disposable during its creation * @see #create(String, com.intellij.openapi.Disposable, com.intellij.openapi.vfs.pointers.VirtualFilePointerListener) */ + @Override @Deprecated public synchronized void kill(VirtualFilePointer pointer, final VirtualFilePointerListener listener) { } + @Override public void initComponent() { } + @Override public void disposeComponent() { Disposer.dispose(this); assertPointersDisposed(); @@ -342,9 +353,11 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp } } + @Override public void dispose() { } + @Override @NotNull public String getComponentName() { return "SmartVirtualPointerManager"; @@ -361,6 +374,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp /** * @see #createContainer(com.intellij.openapi.Disposable) */ + @Override @Deprecated public synchronized VirtualFilePointerContainer createContainer() { return createContainer(this); @@ -369,6 +383,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp /** * @see #createContainer(com.intellij.openapi.Disposable, com.intellij.openapi.vfs.pointers.VirtualFilePointerListener) */ + @Override @Deprecated public synchronized VirtualFilePointerContainer createContainer(final VirtualFilePointerFactory factory) { final VirtualFilePointerContainerImpl virtualFilePointerContainer = new VirtualFilePointerContainerImpl(this, this, null){ @@ -390,11 +405,13 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp return registerContainer(this, virtualFilePointerContainer); } + @Override @NotNull public VirtualFilePointerContainer createContainer(@NotNull Disposable parent) { return createContainer(parent, null); } + @Override @NotNull public synchronized VirtualFilePointerContainer createContainer(@NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) { return registerContainer(parent, new VirtualFilePointerContainerImpl(this, parent, listener)); @@ -405,6 +422,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp myContainers.add(virtualFilePointerContainer); } Disposer.register(parent, new Disposable() { + @Override public void dispose() { Disposer.dispose(virtualFilePointerContainer); boolean removed; @@ -428,6 +446,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp private List myUrlsToUpdate = null; private List myPointersToUpdate = null; + @Override public void before(final List events) { cleanContainerCaches(); List toFireEvents = new ArrayList(); @@ -497,6 +516,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp myUrlsToUpdate = toUpdateUrl; } + @Override public void after(final List events) { cleanContainerCaches(); @@ -542,6 +562,7 @@ public class VirtualFilePointerManagerImpl extends VirtualFilePointerManager imp myPointer = pointer; } + @Override public void dispose() { myPointer.useCount -= disposeCount-1; LOG.assertTrue(myPointer.useCount > 0); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/DefaultRemoteContentProvider.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/DefaultRemoteContentProvider.java index 4aa304456d24..196610ba1d97 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/DefaultRemoteContentProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/DefaultRemoteContentProvider.java @@ -39,12 +39,15 @@ public class DefaultRemoteContentProvider extends RemoteContentProvider { private static final int CONNECT_TIMEOUT = 60 * 1000; private static final int READ_TIMEOUT = 60 * 1000; + @Override public boolean canProvideContent(@NotNull final String url) { return true; } + @Override public void saveContent(final String url, @NotNull final File file, @NotNull final DownloadingCallback callback) { ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { + @Override public void run() { downloadContent(url, file, callback); } @@ -120,6 +123,7 @@ public class DefaultRemoteContentProvider extends RemoteContentProvider { } } + @Override public boolean isUpToDate(@NotNull final String url, @NotNull final VirtualFile local) { return false; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/FileDownloadingAdapter.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/FileDownloadingAdapter.java index ae35127de09e..03ce917d1a8c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/FileDownloadingAdapter.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/FileDownloadingAdapter.java @@ -22,21 +22,27 @@ import org.jetbrains.annotations.NotNull; * @author nik */ public class FileDownloadingAdapter implements FileDownloadingListener { + @Override public void fileDownloaded(final VirtualFile localFile) { } + @Override public void errorOccurred(@NotNull final String errorMessage) { } + @Override public void downloadingStarted() { } + @Override public void downloadingCancelled() { } + @Override public void progressMessageChanged(final boolean indeterminate, @NotNull final String message) { } + @Override public void progressFractionChanged(final double fraction) { } } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemBase.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemBase.java index 3e1e0ca4032b..d7470b15cd13 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemBase.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemBase.java @@ -34,6 +34,7 @@ public abstract class HttpFileSystemBase extends HttpFileSystem { myProtocol = protocol; } + @Override public VirtualFile findFileByPath(@NotNull String path) { return findFileByPath(path, false); } @@ -63,48 +64,60 @@ public abstract class HttpFileSystemBase extends HttpFileSystem { getRemoteFileManager().removeFileListener(listener); } + @Override public boolean isFileDownloaded(@NotNull final VirtualFile file) { return file instanceof HttpVirtualFile && ((HttpVirtualFile)file).getFileInfo().getState() == RemoteFileState.DOWNLOADED; } + @Override public void disposeComponent() { } + @Override public void initComponent() { } + @Override @NotNull public VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile vDir, @NotNull String dirName) throws IOException { throw new UnsupportedOperationException(); } + @Override public VirtualFile createChildFile(Object requestor, @NotNull VirtualFile vDir, @NotNull String fileName) throws IOException { throw new UnsupportedOperationException(); } + @Override public void deleteFile(Object requestor, @NotNull VirtualFile vFile) throws IOException { throw new UnsupportedOperationException(); } + @Override public void moveFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent) throws IOException { throw new UnsupportedOperationException(); } + @Override public VirtualFile copyFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent, @NotNull final String copyName) throws IOException { throw new UnsupportedOperationException(); } + @Override public void renameFile(Object requestor, @NotNull VirtualFile vFile, @NotNull String newName) throws IOException { throw new UnsupportedOperationException(); } + @Override public String extractPresentableUrl(@NotNull String path) { return VirtualFileManager.constructUrl(myProtocol, path); } + @Override public VirtualFile refreshAndFindFileByPath(@NotNull String path) { return findFileByPath(path); } + @Override public void refresh(boolean asynchronous) { } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemImpl.java index 207134118a41..4694c4d8e4e5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpFileSystemImpl.java @@ -29,6 +29,7 @@ public class HttpFileSystemImpl extends HttpFileSystemBase { return (HttpFileSystemImpl)getInstance(); } + @Override @NotNull public String getComponentName() { return "HttpFileSystem"; diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpsFileSystem.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpsFileSystem.java index 8f1e517c0aad..e9e53fa1fac5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpsFileSystem.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/HttpsFileSystem.java @@ -33,6 +33,7 @@ public class HttpsFileSystem extends HttpFileSystemBase { return (HttpsFileSystem)VirtualFileManager.getInstance().getFileSystem(HTTPS_PROTOCOL); } + @Override @NotNull public String getComponentName() { return "HttpsFileSystem"; diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileInfo.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileInfo.java index b914c4d4bfb0..3a9762872592 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileInfo.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileInfo.java @@ -117,6 +117,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback myContentProvider.saveContent(myUrl, localFile, this); } + @Override public void finished(@Nullable final FileType fileType) { final File localIOFile; @@ -142,6 +143,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback } VirtualFile localFile = new WriteAction() { + @Override protected void run(final Result result) { final VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(localIOFile); if (file != null) { @@ -165,6 +167,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback } } + @Override public boolean isCancelled() { return myCancelled.get(); } @@ -175,6 +178,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback } } + @Override public void errorOccurred(@NotNull final String errorMessage, boolean cancelled) { LOG.debug("Error: " + errorMessage); FileDownloadingListener[] listeners; @@ -192,6 +196,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback } } + @Override public void setProgressFraction(final double fraction) { FileDownloadingListener[] listeners; synchronized (myLock) { @@ -202,6 +207,7 @@ public class RemoteFileInfo implements RemoteContentProvider.DownloadingCallback } } + @Override public void setProgressText(@NotNull final String text, final boolean indeterminate) { FileDownloadingListener[] listeners; synchronized (myLock) { diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileManagerImpl.java index 2de76beeaf57..d4f88a88f52c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/RemoteFileManagerImpl.java @@ -81,6 +81,7 @@ public class RemoteFileManagerImpl extends RemoteFileManager implements Disposab public void addRemoteContentProvider(@NotNull final RemoteContentProvider provider, @NotNull Disposable parentDisposable) { addRemoteContentProvider(provider); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeRemoteContentProvider(provider); } @@ -106,6 +107,7 @@ public class RemoteFileManagerImpl extends RemoteFileManager implements Disposab public void addFileListener(@NotNull final HttpVirtualFileListener listener, @NotNull final Disposable parentDisposable) { addFileListener(listener); Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeFileListener(listener); } @@ -125,6 +127,7 @@ public class RemoteFileManagerImpl extends RemoteFileManager implements Disposab return myStorage; } + @Override public void dispose() { myStorage.deleteDownloadedFiles(); } @@ -136,6 +139,7 @@ public class RemoteFileManagerImpl extends RemoteFileManager implements Disposab myFile = file; } + @Override public void fileDownloaded(final VirtualFile localFile) { fireFileDownloaded(myFile); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/VirtualFileImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/VirtualFileImpl.java index 7d22b4a1a9c0..03dd6390fe33 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/VirtualFileImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/http/VirtualFileImpl.java @@ -47,8 +47,10 @@ class VirtualFileImpl extends HttpVirtualFile { myFileInfo = fileInfo; if (myFileInfo != null) { myFileInfo.addDownloadingListener(new FileDownloadingAdapter() { + @Override public void fileDownloaded(final VirtualFile localFile) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { VirtualFileImpl file = VirtualFileImpl.this; FileDocumentManager.getInstance().reloadFiles(file); @@ -97,20 +99,24 @@ class VirtualFileImpl extends HttpVirtualFile { } } + @Override @Nullable public RemoteFileInfo getFileInfo() { return myFileInfo; } + @Override @NotNull public VirtualFileSystem getFileSystem() { return myFileSystem; } + @Override public String getPath() { return myPath; } + @Override @NotNull public String getName() { return myName; @@ -121,23 +127,28 @@ class VirtualFileImpl extends HttpVirtualFile { return "HttpVirtualFile:" + myPath + ", info=" + myFileInfo; } + @Override public VirtualFile getParent() { if (myParentPath == null) return null; return myFileSystem.findFileByPath(myParentPath, true); } + @Override public boolean isWritable() { return false; } + @Override public boolean isValid() { return true; } + @Override public boolean isDirectory() { return myFileInfo == null; } + @Override public VirtualFile[] getChildren() { if (myFileInfo == null) { return EMPTY_ARRAY; @@ -145,6 +156,7 @@ class VirtualFileImpl extends HttpVirtualFile { throw new UnsupportedOperationException(); } + @Override @NotNull public FileType getFileType() { if (myFileInfo == null) { @@ -162,6 +174,7 @@ class VirtualFileImpl extends HttpVirtualFile { return fileType; } + @Override public InputStream getInputStream() throws IOException { if (myFileInfo != null) { VirtualFile localFile = myFileInfo.getLocalFile(); @@ -172,6 +185,7 @@ class VirtualFileImpl extends HttpVirtualFile { throw new UnsupportedOperationException(); } + @Override @NotNull public OutputStream getOutputStream(Object requestor, long newModificationStamp, long newTimeStamp) throws IOException { if (myFileInfo != null) { @@ -183,6 +197,7 @@ class VirtualFileImpl extends HttpVirtualFile { throw new UnsupportedOperationException(); } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { if (myFileInfo == null) { @@ -196,18 +211,22 @@ class VirtualFileImpl extends HttpVirtualFile { return ArrayUtil.EMPTY_BYTE_ARRAY; } + @Override public long getTimeStamp() { return 0; } + @Override public long getModificationStamp() { return 0; } + @Override public long getLength() { return -1; } + @Override public void refresh(final boolean asynchronous, final boolean recursive, final Runnable postRunnable) { if (myFileInfo != null) { myFileInfo.refresh(postRunnable); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarFileSystemImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarFileSystemImpl.java index 0885c9283ee5..66d5eb272da9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarFileSystemImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarFileSystemImpl.java @@ -52,9 +52,11 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo public JarFileSystemImpl(MessageBus bus) { bus.connect().subscribe(VirtualFileManager.VFS_CHANGES, new BulkFileListener() { + @Override public void before(final List events) { } + @Override public void after(final List events) { final List rootsToRefresh = new ArrayList(); @@ -82,6 +84,7 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo if (!rootsToRefresh.isEmpty()) { final Application app = ApplicationManager.getApplication(); Runnable runnable = new Runnable() { + @Override public void run() { if (app.isDisposed()) return; for (VirtualFile root : rootsToRefresh) { @@ -119,11 +122,13 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo return null; } + @Override @NotNull public String getComponentName() { return "JarFileSystem"; } + @Override public void initComponent() { //We want to prevent Platform from copying its own jars when running from dist to save system resources final boolean isRunningFromDist = new File(PathManager.getLibPath() + File.separatorChar + "openapi.jar").exists(); @@ -132,9 +137,11 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo } } + @Override public void disposeComponent() { } + @Override public void setNoCopyJarForPath(String pathInJar) { int index = pathInJar.indexOf(JAR_SEPARATOR); if (index < 0) return; @@ -146,6 +153,7 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo myNoCopyJarPaths.add(path); } + @Override @Nullable public VirtualFile getVirtualFileForJar(@Nullable VirtualFile entryVFile) { if (entryVFile == null) return null; @@ -157,6 +165,7 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo return LocalFileSystem.getInstance().findFileByPath(localPath); } + @Override public ZipFile getJarFile(VirtualFile entryVFile) throws IOException { JarHandler handler = getHandler(entryVFile); @@ -190,6 +199,7 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo if (freshHandler != null) { // Refresh must be outside of the lock, since it potentially requires write action. ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { freshHandler.refreshLocalFileForJar(); } @@ -199,11 +209,13 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo return handler; } + @Override @NotNull public String getProtocol() { return PROTOCOL; } + @Override public String extractPresentableUrl(@NotNull String path) { if (path.endsWith(JAR_SEPARATOR)) { path = path.substring(0, path.length() - JarFileSystem.JAR_SEPARATOR.length()); @@ -212,34 +224,41 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo return path; } + @Override public String extractRootPath(@NotNull final String path) { final int jarSeparatorIndex = path.indexOf(JAR_SEPARATOR); assert jarSeparatorIndex >= 0 : "Path passed to JarFileSystem must have jar separator '!/': " + path; return path.substring(0, jarSeparatorIndex + JAR_SEPARATOR.length()); } + @Override public boolean isCaseSensitive() { return true; } + @Override public boolean exists(@NotNull final VirtualFile fileOrDirectory) { return getHandler(fileOrDirectory).exists(fileOrDirectory); } + @Override @NotNull public InputStream getInputStream(@NotNull final VirtualFile file) throws IOException { return getHandler(file).getInputStream(file); } + @Override @NotNull public byte[] contentsToByteArray(@NotNull final VirtualFile file) throws IOException { return getHandler(file).contentsToByteArray(file); } + @Override public long getLength(@NotNull final VirtualFile file) { return getHandler(file).getLength(file); } + @Override @NotNull public OutputStream getOutputStream(@NotNull final VirtualFile file, final Object requestor, final long modStamp, final long timeStamp) throws IOException { @@ -261,59 +280,73 @@ public class JarFileSystemImpl extends JarFileSystem implements ApplicationCompo return true; } + @Override public long getTimeStamp(@NotNull final VirtualFile file) { return getHandler(file).getTimeStamp(file); } + @Override public boolean isDirectory(@NotNull final VirtualFile file) { return getHandler(file).isDirectory(file); } + @Override public boolean isWritable(@NotNull final VirtualFile file) { return false; } + @Override @NotNull public String[] list(@NotNull final VirtualFile file) { return getHandler(file).list(file); } + @Override public void setTimeStamp(@NotNull final VirtualFile file, final long modstamp) throws IOException { getHandler(file).setTimeStamp(file, modstamp); } + @Override public void setWritable(@NotNull final VirtualFile file, final boolean writableFlag) throws IOException { getHandler(file).setWritable(file, writableFlag); } + @Override @NotNull public VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile vDir, @NotNull String dirName) throws IOException { throw new IOException(VfsBundle.message("jar.modification.not.supported.error", vDir.getUrl())); } + @Override public VirtualFile createChildFile(Object requestor, @NotNull VirtualFile vDir, @NotNull String fileName) throws IOException { throw new IOException(VfsBundle.message("jar.modification.not.supported.error", vDir.getUrl())); } + @Override public void deleteFile(Object requestor, @NotNull VirtualFile vFile) throws IOException { } + @Override public void moveFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent) throws IOException { throw new IOException(VfsBundle.message("jar.modification.not.supported.error", vFile.getUrl())); } + @Override public VirtualFile copyFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent, @NotNull final String copyName) throws IOException { throw new IOException(VfsBundle.message("jar.modification.not.supported.error", vFile.getUrl())); } + @Override public void renameFile(Object requestor, @NotNull VirtualFile vFile, @NotNull String newName) throws IOException { throw new IOException(VfsBundle.message("jar.modification.not.supported.error", vFile.getUrl())); } + @Override public int getRank() { return 2; } + @Override public void refresh(final boolean asynchronous) { RefreshQueue.getInstance().refresh(asynchronous, true, null, ManagingFS.getInstance().getRoots(this)); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java index 35475045dd7e..67ddec2cae7e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java @@ -118,6 +118,7 @@ public class JarHandler extends JarHandlerBase implements FileSystemInterface { final String path1 = original.getPath(); final String path2 = mirror.getPath(); ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { Messages.showMessageDialog(VfsBundle.message("jar.copy.error.message", path1, path2, e.getMessage()), VfsBundle.message("jar.copy.error.title"), Messages.getErrorIcon()); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java index 2f0b586d67ba..1c8e18a03a6d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java @@ -113,6 +113,7 @@ public class FileWatcher { new WatchForChangesThread().start(); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { + @Override public void run() { isShuttingDown = true; shutdownProcess(); @@ -325,6 +326,7 @@ public class FileWatcher { super("WatchForChangesThread"); } + @Override public void run() { try { while (true) { diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemBase.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemBase.java index 52dcbf65e485..934ac3b69a97 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemBase.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemBase.java @@ -50,6 +50,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { private final List myHandlers = new ArrayList(); + @Override @Nullable public VirtualFile findFileByPath(@NotNull String path) { String canonicalPath = getVfsCanonicalPath(path); @@ -57,12 +58,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return VfsImplUtil.findFileByPath(this, path); } + @Override public VirtualFile findFileByPathIfCached(@NotNull String path) { String canonicalPath = getVfsCanonicalPath(path); if (canonicalPath == null) return null; return VfsImplUtil.findFileByPathIfCached(this, canonicalPath); } + @Override @Nullable public VirtualFile refreshAndFindFileByPath(@NotNull String path) { String canonicalPath = getVfsCanonicalPath(path); @@ -70,12 +73,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return VfsImplUtil.refreshAndFindFileByPath(this, canonicalPath); } + @Override public VirtualFile findFileByIoFile(File file) { String path = file.getAbsolutePath(); if (path == null) return null; return findFileByPath(path.replace(File.separatorChar, '/')); } + @Override @Nullable public VirtualFile findFileByIoFile(final IFile file) { String path = file.getPath(); @@ -140,6 +145,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return ioFile; } + @Override public boolean exists(@NotNull final VirtualFile fileOrDirectory) { String path = fileOrDirectory.getPath(); if (fileOrDirectory.getParent() == null && path.startsWith("//")) return true; // Windows UNC root like //unit-333 @@ -147,10 +153,12 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return convertToIOFile(fileOrDirectory).exists(); } + @Override public long getLength(@NotNull final VirtualFile file) { return convertToIOFile(file).length(); } + @Override public long getTimeStamp(@NotNull final VirtualFile file) { return convertToIOFile(file).lastModified(); } @@ -176,6 +184,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return ioFile.exists() && !ioFile.isFile() && !ioFile.isDirectory(); } + @Override @NotNull public String[] list(@NotNull final VirtualFile file) { if (file.getParent() == null) { @@ -213,22 +222,26 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { FileUtil.isAncestor(convertToIOFile(realFile), convertToIOFile(file), true); } + @Override @NotNull public String getProtocol() { return PROTOCOL; } + @Override @Nullable public String normalize(final String path) { return getVfsCanonicalPath(path); } + @Override public VirtualFile refreshAndFindFileByIoFile(@NotNull File file) { String path = file.getAbsolutePath(); if (path == null) return null; return refreshAndFindFileByPath(path.replace(File.separatorChar, '/')); } + @Override @Nullable public VirtualFile refreshAndFindFileByIoFile(final IFile ioFile) { String path = ioFile.getPath(); @@ -241,6 +254,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { refreshIoFiles(files, false, false, null); } + @Override public void refreshIoFiles(Iterable files, boolean async, boolean recursive, @Nullable Runnable onFinish) { final VirtualFileManagerEx manager = (VirtualFileManagerEx)VirtualFileManager.getInstance(); @@ -265,10 +279,12 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } + @Override public void refreshFiles(Iterable files) { refreshFiles(files, false, false, null); } + @Override public void refreshFiles(Iterable files, boolean async, boolean recursive, @Nullable Runnable onFinish) { List list = new ArrayList(); for (VirtualFile file : files) { @@ -278,14 +294,17 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { RefreshQueue.getInstance().refresh(async, recursive, onFinish, VfsUtil.toVirtualFileArray(list)); } + @Override public byte[] physicalContentsToByteArray(final VirtualFile virtualFile) throws IOException { return virtualFile.contentsToByteArray(); } + @Override public long physicalLength(final VirtualFile virtualFile) { return virtualFile.getLength(); } + @Override public void registerAuxiliaryFileOperationsHandler(LocalFileOperationsHandler handler) { if (myHandlers.contains(handler)) { LOG.error("Handler " + handler + " already registered."); @@ -293,12 +312,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { myHandlers.add(handler); } + @Override public void unregisterAuxiliaryFileOperationsHandler(LocalFileOperationsHandler handler) { if (!myHandlers.remove(handler)) { LOG.error("Handler" + handler + " haven't been registered or already unregistered."); } } + @Override public boolean processCachedFilesInSubtree(final VirtualFile file, Processor processor) { if (file.getFileSystem() != this) return true; @@ -380,11 +401,13 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } + @Override @NotNull public VirtualFile createChildDirectory(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String dir) throws IOException { final File ioDir = new File(convertToIOFile(parent), dir); final boolean succeed = auxCreateDirectory(parent, dir) || ioDir.mkdirs(); auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.createDirectory(parent, dir); } @@ -396,10 +419,12 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return new FakeVirtualFile(parent, dir); } + @Override public VirtualFile createChildFile(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String file) throws IOException { final File ioFile = new File(convertToIOFile(parent), file); final boolean succeed = auxCreateFile(parent, file) || FileUtil.createIfDoesntExist(ioFile); auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.createFile(parent, file); } @@ -411,27 +436,32 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return new FakeVirtualFile(parent, file); } + @Override public void deleteFile(final Object requestor, @NotNull final VirtualFile file) throws IOException { if (!auxDelete(file)) { delete(convertToIOFile(file)); } auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.delete(file); } }); } + @Override public boolean isCaseSensitive() { return SystemInfo.isFileSystemCaseSensitive; } + @Override @NotNull public InputStream getInputStream(@NotNull final VirtualFile file) throws IOException { BufferedInputStream rawStream = new BufferedInputStream(new FileInputStream(convertToIOFileAndCheck(file))); return rawStream; } + @Override @NotNull public byte[] contentsToByteArray(@NotNull final VirtualFile file) throws IOException { final FileInputStream stream = new FileInputStream(convertToIOFileAndCheck(file)); @@ -443,12 +473,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } + @Override @NotNull public OutputStream getOutputStream(@NotNull final VirtualFile file, final Object requestor, final long modStamp, final long timeStamp) throws IOException { final File ioFile = convertToIOFileAndCheck(file); @SuppressWarnings("IOResourceOpenedButNotSafelyClosed") final OutputStream stream = shallUseSafeStream(requestor, ioFile) ? new SafeFileOutputStream(ioFile) : new FileOutputStream(ioFile); return new BufferedOutputStream(stream) { + @Override public void close() throws IOException { super.close(); if (timeStamp > 0) { @@ -464,6 +496,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return requestor instanceof SafeWriteRequestor && !FileUtil.canExecute(file) && !FileUtil.isSymbolicLink(file); } + @Override public void moveFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent) throws IOException { if (!auxMove(file, newParent)) { final File ioFrom = convertToIOFile(file); @@ -476,12 +509,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.move(file, newParent); } }); } + @Override public void renameFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final String newName) throws IOException { if (!file.exists()) { throw new IOException("File to move does not exist: " + file.getPath()); @@ -496,12 +531,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.rename(file, newName); } }); } + @Override public VirtualFile copyFile(final Object requestor, @NotNull final VirtualFile vFile, @NotNull final VirtualFile newParent, @@ -534,6 +571,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } finally { auxNotifyCompleted(new ThrowableConsumer() { + @Override public void consume(LocalFileOperationsHandler handler) throws IOException { handler.copy(vFile, newParent, copyName); } @@ -542,12 +580,14 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return new FakeVirtualFile(newParent, copyName); } + @Override public void setTimeStamp(@NotNull final VirtualFile file, final long timeStamp) { if (!convertToIOFile(file).setLastModified(timeStamp)) { LOG.error("Failed: " + file.getPath() + ", " + timeStamp); } } + @Override public void setWritable(@NotNull final VirtualFile file, final boolean writableFlag) throws IOException { FileUtil.setReadOnlyAttribute(file.getPath(), !writableFlag); final File ioFile = convertToIOFile(file); @@ -556,6 +596,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } + @Override protected String extractRootPath(@NotNull final String path) { if (path.length() == 0) { try { @@ -595,14 +636,17 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { return path.startsWith("/") ? "/" : ""; } + @Override public int getRank() { return 1; } + @Override public boolean markNewFilesAsDirty() { return true; } + @Override public String getCanonicallyCasedName(final VirtualFile file) { if (isCaseSensitive()) { return super.getCanonicallyCasedName(file); @@ -653,6 +697,7 @@ public abstract class LocalFileSystemBase extends LocalFileSystem { } } + @Override public void refresh(final boolean asynchronous) { RefreshQueue.getInstance().refresh(asynchronous, true, null, ManagingFS.getInstance().getRoots(this)); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemImpl.java index e6eb9c799ba8..7a48a0f515f9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemImpl.java @@ -94,20 +94,24 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } } + @Override @NotNull public String getRootPath() { return myRootPath; } + @Override @NotNull public String getFileSystemRootPath() { return myFSRootPath; } + @Override public boolean isToWatchRecursively() { return myToWatchRecursively; } + @Override public boolean dominates(WatchRequest other) { if (myToWatchRecursively) { return other.getRootPath().startsWith(myRootPath); @@ -130,15 +134,18 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap myNativeFileSystem = null; } + @Override public void initComponent() { } + @Override public void disposeComponent() { } @TestOnly public void cleanupForNextTest(Set survivors) throws IOException { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { FileDocumentManager.getInstance().saveAllDocuments(); } @@ -270,6 +277,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap if (myWatcher.isOperational()) { application.runReadAction(new Runnable() { + @Override public void run() { WRITE_LOCK.lock(); try { @@ -306,6 +314,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap setDaemon(true); } + @Override public void run() { while (true) { final Application application = ApplicationManager.getApplication(); @@ -322,11 +331,13 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } } + @Override @NotNull public String getComponentName() { return "LocalFileSystem"; } + @Override public WatchRequest addRootToWatch(@NotNull String rootPath, boolean toWatchRecursively) { if (rootPath.length() == 0 || !FileWatcher.getInstance().isOperational()) return null; @@ -367,6 +378,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap return false; } + @Override @NotNull public Set addRootsToWatch(@NotNull final Collection rootPaths, final boolean toWatchRecursively) { if (!FileWatcher.getInstance().isOperational()) return Collections.emptySet(); @@ -409,6 +421,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap return result; } + @Override public void removeWatchedRoot(@NotNull final WatchRequest watchRequest) { WRITE_LOCK.lock(); try { @@ -422,6 +435,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } } + @Override public void removeWatchedRoots(@NotNull final Collection rootsToWatch) { WRITE_LOCK.lock(); try { @@ -435,6 +449,7 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } } + @Override public boolean isReadOnly() { return false; } @@ -445,8 +460,10 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } + @Override public void refreshWithoutFileWatcher(final boolean asynchronous) { Runnable heavyRefresh = new Runnable() { + @Override public void run() { for (VirtualFile root : ManagingFS.getInstance().getRoots(LocalFileSystemImpl.this)) { ((NewVirtualFile)root).markDirtyRecursively(); @@ -464,16 +481,19 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap } } + @Override public boolean exists(@NotNull final VirtualFile fileOrDirectory) { if (myNativeFileSystem == null) return super.exists(fileOrDirectory); else return myNativeFileSystem.exists(fileOrDirectory); } + @Override public long getTimeStamp(@NotNull final VirtualFile file) { if (myNativeFileSystem == null) return super.getTimeStamp(file); else return myNativeFileSystem.getTimeStamp(file); } + @Override public boolean isDirectory(@NotNull final VirtualFile file) { if (myNativeFileSystem == null) return super.isDirectory(file); else return myNativeFileSystem.isDirectory(file); @@ -485,11 +505,13 @@ public final class LocalFileSystemImpl extends LocalFileSystemBase implements Ap return realPath != null ? findFileByPath(realPath) : null; } + @Override public boolean isWritable(@NotNull final VirtualFile file) { if (myNativeFileSystem == null) return super.isWritable(file); else return myNativeFileSystem.isWritable(file); } + @Override @NotNull public String[] list(@NotNull final VirtualFile file) { if (myNativeFileSystem == null) return super.list(file); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileImpl.java index a10a06b01bb7..29da9bafca03 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileImpl.java @@ -42,64 +42,78 @@ public class VirtualFileImpl extends VirtualFile { public void cacheIsDirectory(final boolean isDirectory) { } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { throw new UnsupportedOperationException("contentsToByteArray is not implemented"); // TODO } + @Override public VirtualFile[] getChildren() { throw new UnsupportedOperationException("getChildren is not implemented"); // TODO } + @Override @NotNull public VirtualFileSystem getFileSystem() { throw new UnsupportedOperationException("getFileSystem is not implemented"); // TODO } + @Override public InputStream getInputStream() throws IOException { throw new UnsupportedOperationException("getInputStream is not implemented"); // TODO } + @Override public long getLength() { throw new UnsupportedOperationException("getLength is not implemented"); // TODO } + @Override @NotNull @NonNls public String getName() { throw new UnsupportedOperationException("getName is not implemented"); // TODO } + @Override @NotNull public OutputStream getOutputStream(final Object requestor, final long newModificationStamp, final long newTimeStamp) throws IOException { throw new UnsupportedOperationException("getOutputStream is not implemented"); // TODO } + @Override @Nullable public VirtualFile getParent() { throw new UnsupportedOperationException("getParent is not implemented"); // TODO } + @Override public String getPath() { throw new UnsupportedOperationException("getPath is not implemented"); // TODO } + @Override public long getTimeStamp() { throw new UnsupportedOperationException("getTimeStamp is not implemented"); // TODO } + @Override public boolean isDirectory() { throw new UnsupportedOperationException("isDirectory is not implemented"); // TODO } + @Override public boolean isValid() { throw new UnsupportedOperationException("isValid is not implemented"); // TODO } + @Override public boolean isWritable() { throw new UnsupportedOperationException("isWritable is not implemented"); // TODO } + @Override public void refresh(final boolean asynchronous, final boolean recursive, final Runnable postRunnable) { throw new UnsupportedOperationException("refresh is not implemented"); // TODO } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileInfoAction.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileInfoAction.java index de1cce3e9bcf..2557ae2eb0d2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileInfoAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/VirtualFileInfoAction.java @@ -39,6 +39,7 @@ public class VirtualFileInfoAction extends AnAction implements DumbAware { SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG); + @Override public void actionPerformed(AnActionEvent e) { String pathToFile = Messages.showInputDialog("Path to file: ", "Virtual File Info", diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshProgress.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshProgress.java index 29ab48778657..7bceff736169 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshProgress.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshProgress.java @@ -35,10 +35,12 @@ public class RefreshProgress extends ProgressIndicatorBase { myMessage = message; } + @Override public void start() { super.start(); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (ApplicationManager.getApplication().isDisposed()) return; final WindowManager windowManager = WindowManager.getInstance(); @@ -60,10 +62,12 @@ public class RefreshProgress extends ProgressIndicatorBase { } + @Override public void stop() { super.stop(); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (ApplicationManager.getApplication().isDisposed()) return; final WindowManager windowManager = WindowManager.getInstance(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshQueueImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshQueueImpl.java index 1540475a9813..39a9fc576a3d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshQueueImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshQueueImpl.java @@ -68,6 +68,7 @@ public class RefreshQueueImpl extends RefreshQueue { private void queueSession(final RefreshSessionImpl session, final ModalityState modality) { myQueue.submit(new Runnable() { + @Override public void run() { try { myRefreshIndicator.start(); @@ -83,6 +84,7 @@ public class RefreshQueueImpl extends RefreshQueue { finally { final Application app = ApplicationManager.getApplication(); app.invokeLater(new DumbAwareRunnable() { + @Override public void run() { if (app.isDisposed()) return; session.fireEvents(false); @@ -93,6 +95,7 @@ public class RefreshQueueImpl extends RefreshQueue { }); } + @Override public RefreshSession createSession(final boolean async, boolean recursively, @Nullable final Runnable finishRunnable, ModalityState state) { return new RefreshSessionImpl(async, recursively, finishRunnable, state); } @@ -102,6 +105,7 @@ public class RefreshQueueImpl extends RefreshQueue { RefreshQueue.getInstance().refresh(async, true, postAction, modalityState, ManagingFS.getInstance().getLocalRoots()); } + @Override public void processSingleEvent(VFileEvent event) { new RefreshSessionImpl(Collections.singletonList(event)).launch(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshSessionImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshSessionImpl.java index c74be23193e3..5ba74f96360b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshSessionImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/RefreshSessionImpl.java @@ -67,18 +67,22 @@ public class RefreshSessionImpl extends RefreshSession { myEvents = new ArrayList(events); } + @Override public void addAllFiles(final Collection files) { myWorkQueue.addAll(files); } + @Override public void addFile(@NotNull final VirtualFile file) { myWorkQueue.add(file); } + @Override public boolean isAsynchronous() { return myIsAsync; } + @Override public void launch() { mySemaphore.down(); ((RefreshQueueImpl)RefreshQueue.getInstance()).execute(this); @@ -118,6 +122,7 @@ public class RefreshSessionImpl extends RefreshSession { } else { ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override public void run() { fireEventsInWriteAction(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/FakeVirtualFile.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/FakeVirtualFile.java index 9f3446a51f36..bef2a72fb044 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/FakeVirtualFile.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/FakeVirtualFile.java @@ -33,17 +33,20 @@ public class FakeVirtualFile extends StubVirtualFile { myParent = parent; } + @Override @Nullable public VirtualFile getParent() { return myParent; } + @Override public String getPath() { final String basePath = myParent.getPath(); if (basePath.endsWith("/")) return basePath + myName; return basePath + '/' + myName; } + @Override @NotNull @NonNls public String getName() { diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java index aeadc67f8506..5c3ed62b7218 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java @@ -75,6 +75,7 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { myFS = fs; } + @Override @NotNull public NewVirtualFileSystem getFileSystem() { return myFS; @@ -307,11 +308,13 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { } } + @Override @Nullable public NewVirtualFile refreshAndFindChild(@NotNull String name) { return findChild(name, true, true, getFileSystem()); } + @Override @Nullable public synchronized NewVirtualFile findChildIfCached(@NotNull String name) { final VirtualFileSystemEntry[] a = asArray(); @@ -337,6 +340,7 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { @NotNull public Iterable iterInDbChildren() { return ContainerUtil.iterate(getInDbChildren(), new Condition() { + @Override public boolean value(VirtualFile file) { return file != NULL_VIRTUAL_FILE; } @@ -367,6 +371,7 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { return new ArrayList(ensureAsMap().values()); } + @Override @NotNull public synchronized VirtualFile[] getChildren() { if (myChildren instanceof VirtualFileSystemEntry[]) { @@ -399,11 +404,13 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { return children; } + @Override @Nullable public VirtualFileSystemEntry findChild(@NotNull final String name) { return findChild(name, false, true, getFileSystem()); } + @Override @Nullable public NewVirtualFile findChildById(int id) { final NewVirtualFile loaded = findChildByIdIfCached(id); @@ -415,6 +422,7 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { return findChild(name, false, false, getFileSystem()); } + @Override public NewVirtualFile findChildByIdIfCached(int id) { final VirtualFile[] a = asArray(); if (a != null) { @@ -508,10 +516,12 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { return names; } + @Override public boolean isDirectory() { return true; } + @Override @NotNull public synchronized Collection getCachedChildren() { final Map map = asMap(); @@ -548,10 +558,12 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { } } + @Override public InputStream getInputStream() throws IOException { throw new IOException("getInputStream() must not be called against a directory: " + getUrl()); } + @Override @NotNull public OutputStream getOutputStream(final Object requestor, final long newModificationStamp, final long newTimeStamp) throws IOException { throw new IOException("getOutputStream() must not be called against a directory: " + getUrl()); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileImpl.java index 7101c42049ca..686f9a87f69e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileImpl.java @@ -39,11 +39,13 @@ public class VirtualFileImpl extends VirtualFileSystemEntry { super(name, parent, id); } + @Override @Nullable public NewVirtualFile findChild(@NotNull @NonNls final String name) { return null; } + @Override public Collection getCachedChildren() { return Collections.emptyList(); } @@ -53,6 +55,7 @@ public class VirtualFileImpl extends VirtualFileSystemEntry { return ContainerUtil.emptyIterable(); } + @Override @NotNull public NewVirtualFileSystem getFileSystem() { final VirtualFileSystemEntry parent = getParent(); @@ -61,29 +64,35 @@ public class VirtualFileImpl extends VirtualFileSystemEntry { return parent.getFileSystem(); } + @Override @Nullable public NewVirtualFile refreshAndFindChild(final String name) { return null; } + @Override @Nullable public NewVirtualFile findChildIfCached(final String name) { return null; } + @Override public VirtualFile[] getChildren() { return EMPTY_ARRAY; } + @Override public boolean isDirectory() { return false; } + @Override @NotNull public InputStream getInputStream() throws IOException { return VfsUtilCore.inputStreamSkippingBOM(ourPersistence.getInputStream(this),this); } + @Override @NotNull public byte[] contentsToByteArray() throws IOException { return contentsToByteArray(true); @@ -95,15 +104,18 @@ public class VirtualFileImpl extends VirtualFileSystemEntry { return ourPersistence.contentsToByteArray(this, cacheContent); } + @Override @NotNull public OutputStream getOutputStream(final Object requestor, final long modStamp, final long timeStamp) throws IOException { return VfsUtilCore.outputStreamAddingBOM(ourPersistence.getOutputStream(this, requestor, modStamp, timeStamp),this); } + @Override public NewVirtualFile findChildById(int id) { return null; } + @Override public NewVirtualFile findChildByIdIfCached(int id) { return null; } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java index a4765f06cd02..eadeba0d14c3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java @@ -100,6 +100,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return wellKnownSuffixes[index-1]; } + @Override @NotNull public String getName() { Object name = rawName(); @@ -147,14 +148,17 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return myName; } + @Override public VirtualFileSystemEntry getParent() { return myParent; } + @Override public boolean isDirty() { return (myFlags & DIRTY_FLAG) != 0; } + @Override public void setFlag(int flag_mask, boolean value) { assert (flag_mask & 0xe0) == 0 : "Mask '"+ Integer.toBinaryString(flag_mask)+"' is not supported. High three bits are reserved."; if (value) { @@ -165,15 +169,18 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { } } + @Override public boolean getFlag(int flag_mask) { assert (flag_mask & 0xe0) == 0 : "Mask '"+ Integer.toBinaryString(flag_mask)+"' is not supported. High three bits are reserved."; return (myFlags & flag_mask) != 0; } + @Override public void markClean() { setFlag(DIRTY_FLAG, false); } + @Override public void markDirty() { if (!isDirty()) { setFlag(DIRTY_FLAG, true); @@ -181,6 +188,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { } } + @Override public void markDirtyRecursively() { markDirty(); for (VirtualFile file : getCachedChildren()) { @@ -229,6 +237,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return pos + length; } + @Override @NotNull public String getUrl() { String protocol = getFileSystem().getProtocol(); @@ -239,6 +248,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return getPathImpl(chars, pos); } + @Override @NotNull public String getPath() { char[] chars = new char[getPathLength()]; @@ -250,10 +260,12 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return new String(chars, 0, count); } + @Override public void delete(final Object requestor) throws IOException { ourPersistence.deleteFile(requestor, this); } + @Override public void rename(final Object requestor, @NotNull @NonNls final String newName) throws IOException { if (getName().equals(newName)) return; if (!isValidName(newName)) { @@ -263,32 +275,39 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { ourPersistence.renameFile(requestor, this, newName); } + @Override @NotNull public VirtualFile createChildData(final Object requestor, @NotNull final String name) throws IOException { validateName(name); return ourPersistence.createChildFile(requestor, this, name); } + @Override public boolean isWritable() { return ourPersistence.isWritable(this); } + @Override public void setWritable(boolean writable) throws IOException { ourPersistence.setWritable(this, writable); } + @Override public long getTimeStamp() { return ourPersistence.getTimeStamp(this); } + @Override public void setTimeStamp(final long time) throws IOException { ourPersistence.setTimeStamp(this, time); } + @Override public long getLength() { return ourPersistence.getLength(this); } + @Override public VirtualFile copy(final Object requestor, @NotNull final VirtualFile newParent, @NotNull final String copyName) throws IOException { if (getFileSystem() != newParent.getFileSystem()) { throw new IOException(VfsBundle.message("file.copy.error", newParent.getPresentableUrl())); @@ -299,18 +318,21 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { } return EncodingRegistry.doActionAndRestoreEncoding(this, new ThrowableComputable() { + @Override public VirtualFile compute() throws IOException { return ourPersistence.copyFile(requestor, VirtualFileSystemEntry.this, newParent, copyName); } }); } + @Override public void move(final Object requestor, @NotNull final VirtualFile newParent) throws IOException { if (getFileSystem() != newParent.getFileSystem()) { throw new IOException(VfsBundle.message("file.move.error", newParent.getPresentableUrl())); } EncodingRegistry.doActionAndRestoreEncoding(this, new ThrowableComputable() { + @Override public VirtualFile compute() throws IOException { ourPersistence.moveFile(requestor, VirtualFileSystemEntry.this, newParent); return VirtualFileSystemEntry.this; @@ -318,6 +340,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { }); } + @Override public int getId() { return myId; } @@ -328,6 +351,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return id >= 0 ? id : -id; } + @Override @NotNull public VirtualFile createChildDirectory(final Object requestor, final String name) throws IOException { validateName(name); @@ -341,11 +365,13 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { } } + @Override public boolean exists() { return ourPersistence.exists(this); } + @Override public boolean isValid() { return exists(); } @@ -371,6 +397,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { myParent.addChild(this); } + @Override public boolean isInLocalFileSystem() { return getFileSystem() instanceof LocalFileSystem; } @@ -379,6 +406,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { myId = -Math.abs(myId); } + @Override public Charset getCharset() { Charset charset; if (isCharsetSet()) { @@ -413,6 +441,7 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { return charset; } + @Override public String getPresentableName() { if (UISettings.getInstance().HIDE_KNOWN_EXTENSION_IN_TABS && !isDirectory()) { final String nameWithoutExtension = getNameWithoutExtension(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/CheckSanityAction.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/CheckSanityAction.java index 10290777ee6d..73c484d111a7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/CheckSanityAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/CheckSanityAction.java @@ -23,6 +23,7 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; public class CheckSanityAction extends AnAction { + @Override public void actionPerformed(final AnActionEvent e) { FSRecords.checkSanity(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/FSRecords.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/FSRecords.java index df79c338b034..ba652a057d4b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/FSRecords.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/FSRecords.java @@ -225,6 +225,7 @@ public class FSRecords implements Forceable { } catch (final IOException e1) { final Runnable warnAndShutdown = new Runnable() { + @Override public void run() { boolean unitTest = ApplicationManager.getApplication().isUnitTestMode(); if (!(unitTest || ApplicationManager.getApplication().isHeadlessEnvironment())) { @@ -280,6 +281,7 @@ public class FSRecords implements Forceable { private static boolean deleteWithSubordinates(File file) { final String baseName = file.getName(); final File[] files = file.getParentFile().listFiles(new FileFilter() { + @Override public boolean accept(final File pathname) { return pathname.getName().startsWith(baseName); } @@ -306,6 +308,7 @@ public class FSRecords implements Forceable { myFlushingFuture = FlushingDaemon.everyFiveSeconds(new Runnable() { int lastModCount = 0; + @Override public void run() { if (lastModCount == ourLocalModificationCount) { flushSome(); @@ -583,10 +586,12 @@ public class FSRecords implements Forceable { } } + @Override public void force() { DbConnection.force(); } + @Override public boolean isDirty() { return DbConnection.isDirty(); } @@ -1148,6 +1153,7 @@ public class FSRecords implements Forceable { myFixedSize = fixedSize; } + @Override public void close() throws IOException { super.close(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/PersistentFS.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/PersistentFS.java index 6ebdbec64ba3..c54355519196 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/PersistentFS.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/PersistentFS.java @@ -76,12 +76,14 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { myEventsBus = bus; ShutDownTracker.getInstance().registerShutdownTask(new Runnable() { + @Override public void run() { performShutdown(); } }); } + @Override public void disposeComponent() { performShutdown(); } @@ -95,16 +97,19 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } } + @Override @NonNls @NotNull public String getComponentName() { return "app.component.PersistentFS"; } + @Override public void initComponent() { FSRecords.connect(); } + @Override public boolean areChildrenLoaded(@NotNull final VirtualFile dir) { return areChildrenLoaded(getFileId(dir)); } @@ -117,10 +122,12 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return (NewVirtualFileSystem)file.getFileSystem(); } + @Override public boolean wereChildrenAccessed(@NotNull final VirtualFile dir) { return FSRecords.wereChildrenAccessed(getFileId(dir)); } + @Override @NotNull public String[] list(@NotNull final VirtualFile file) { int id = getFileId(file); @@ -223,11 +230,13 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return (FSRecords.getFlags(parentId) & mask) != 0; } + @Override @Nullable public DataInputStream readAttribute(@NotNull final VirtualFile file, @NotNull final FileAttribute att) { return FSRecords.readAttribute(getFileId(file), att.getId()); } + @Override @NotNull public DataOutputStream writeAttribute(@NotNull final VirtualFile file, @NotNull final FileAttribute att) { return FSRecords.writeAttribute(getFileId(file), att.getId(), att.isFixedSize()); @@ -255,6 +264,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return FSRecords.storeUnlinkedContent(bytes); } + @Override public int getModificationCount(@NotNull final VirtualFile file) { final int id = getFileId(file); return FSRecords.getModCount(id); @@ -265,6 +275,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return FSRecords.getLocalModCount(); } + @Override public int getFilesystemModificationCount() { return FSRecords.getModCount(); } @@ -300,6 +311,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { (delegate.isSpecialFile(file) ? IS_SPECIAL : 0), true); } + @Override public boolean isDirectory(@NotNull final VirtualFile file) { final int id = getFileId(file); return isDirectory(id); @@ -319,15 +331,18 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return ((NewVirtualFileSystem)fs).isCaseSensitive() ? n1.equals(n2) : n1.equalsIgnoreCase(n2); } + @Override public boolean exists(@NotNull final VirtualFile fileOrDirectory) { return ((VirtualFileWithId)fileOrDirectory).getId() > 0; } + @Override public long getTimeStamp(@NotNull final VirtualFile file) { final int id = getFileId(file); return FSRecords.getTimestamp(id); } + @Override public void setTimeStamp(@NotNull final VirtualFile file, final long modstamp) throws IOException { final int id = getFileId(file); @@ -343,6 +358,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return id; } + @Override public boolean isSymLink(@NotNull VirtualFile file) { return (FSRecords.getFlags(getFileId(file)) & IS_SYMLINK) != 0; } @@ -352,10 +368,12 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return (FSRecords.getFlags(getFileId(file)) & IS_SPECIAL) != 0; } + @Override public boolean isWritable(@NotNull final VirtualFile file) { return (FSRecords.getFlags(getFileId(file)) & IS_READ_ONLY) == 0; } + @Override public void setWritable(@NotNull final VirtualFile file, final boolean writableFlag) throws IOException { getDelegate(file).setWritable(file, writableFlag); processEvent(new VFilePropertyChangeEvent(this, file, VirtualFile.PROP_WRITABLE, isWritable(file), writableFlag, false)); @@ -380,6 +398,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return 0; } + @Override public long getLength(@NotNull final VirtualFile file) { final int id = getFileId(file); @@ -392,6 +411,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return len; } + @Override public VirtualFile copyFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent, @NotNull final String copyName) throws IOException { getDelegate(file).copyFile(requestor, file, newParent, copyName); @@ -404,6 +424,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return child; } + @Override public VirtualFile createChildDirectory(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String dir) throws IOException { getDelegate(parent).createChildDirectory(requestor, parent, dir); processEvent(new VFileCreateEvent(requestor, parent, dir, true, false)); @@ -415,6 +436,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return child; } + @Override public VirtualFile createChildFile(final Object requestor, @NotNull final VirtualFile parent, @NotNull final String file) throws IOException { getDelegate(parent).createChildFile(requestor, parent, file); processEvent(new VFileCreateEvent(requestor, parent, file, false, false)); @@ -426,6 +448,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return child; } + @Override public void deleteFile(final Object requestor, @NotNull final VirtualFile file) throws IOException { final NewVirtualFileSystem delegate = getDelegate(file); delegate.deleteFile(requestor, file); @@ -435,11 +458,13 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } } + @Override public void renameFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final String newName) throws IOException { getDelegate(file).renameFile(requestor, file, newName); processEvent(new VFilePropertyChangeEvent(requestor, file, VirtualFile.PROP_NAME, file.getName(), newName, false)); } + @Override @NotNull public byte[] contentsToByteArray(@NotNull final VirtualFile file) throws IOException { return contentsToByteArray(file, true); @@ -485,6 +510,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return FileUtil.loadBytes(readContentById(contentId)); } + @Override @NotNull public InputStream getInputStream(@NotNull final VirtualFile file) throws IOException { synchronized (INPUT_LOCK) { @@ -515,6 +541,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } final BufferExposingByteArrayOutputStream cache = new BufferExposingByteArrayOutputStream((int)fileLength); return new ReplicatorInputStream(nativeStream, cache) { + @Override public void close() throws IOException { super.close(); storeContentToStorage(fileLength, file, readOnly, cache.getInternalBuffer(), cache.size()); @@ -541,6 +568,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return checkFlag(file, MUST_RELOAD_CONTENT) || FSRecords.getLength(getFileId(file)) == -1L; } + @Override @NotNull public OutputStream getOutputStream(@NotNull final VirtualFile file, final Object requestor, final long modStamp, final long timeStamp) throws IOException { @@ -552,6 +580,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { publisher.before(events); return new ByteArrayOutputStream() { + @Override public void close() throws IOException { super.close(); @@ -560,6 +589,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { //noinspection IOResourceOpenedButNotSafelyClosed final DupOutputStream sink = new DupOutputStream(new BufferedOutputStream(writeContent(file, delegate.isReadOnly())), outputStream) { + @Override public void close() throws IOException { try { super.close(); @@ -593,6 +623,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return FSRecords.getContentId(getFileId(file)); } + @Override public void moveFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent) throws IOException { getDelegate(file).moveFile(requestor, file, newParent); processEvent(new VFileMoveEvent(requestor, file, newParent)); @@ -603,6 +634,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } private static final Comparator DEPTH_COMPARATOR = new Comparator() { + @Override public int compare(final VFileDeleteEvent o1, final VFileDeleteEvent o2) { return o1.getFileDepth() - o2.getFileDepth(); } @@ -646,6 +678,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { return filtered; } + @Override public void processEvents(@NotNull List events) { ApplicationManager.getApplication().assertWriteAccessAllowed(); @@ -661,6 +694,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { public static final Object LOCK = new Object(); + @Override @Nullable public VirtualFileSystemEntry findRoot(@NotNull final String basePath, @NotNull final NewVirtualFileSystem fs) { // TODO: read/write locks instead of synchronized synchronized (LOCK) { @@ -692,6 +726,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { else { // fake root for windows root = new VirtualDirectoryImpl("", null, fs, rootId) { + @Override @NotNull public VirtualFile[] getChildren() { return getRoots(fs); @@ -724,6 +759,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } } + @Override public void refresh(final boolean asynchronous) { final NewVirtualFile[] roots; synchronized (LOCK) { @@ -745,6 +781,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { RefreshQueue.getInstance().refresh(asynchronous, true, postAction, modalityState, roots); } + @Override @NotNull public VirtualFile[] getLocalRoots() { List roots; @@ -770,6 +807,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { myIdToDirCache.clear(); } + @Override @Nullable public NewVirtualFile findFileById(final int id) { return _findFileById(id, false); @@ -816,6 +854,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } } + @Override @NotNull public VirtualFile[] getRoots() { synchronized (LOCK) { @@ -824,6 +863,7 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent { } } + @Override @NotNull public VirtualFile[] getRoots(@NotNull final NewVirtualFileSystem fs) { List roots = new ArrayList(); diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl.java index d75d9d498388..b82f2cf80c52 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/tracker/VirtualFileTrackerImpl.java @@ -37,6 +37,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { public VirtualFileTrackerImpl(VirtualFileManager virtualFileManager) { virtualFileManager.addVirtualFileListener(new VirtualFileListener() { + @Override public void propertyChanged(final VirtualFilePropertyEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -46,6 +47,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void contentsChanged(final VirtualFileEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -55,6 +57,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void fileCreated(final VirtualFileEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -64,6 +67,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void fileDeleted(final VirtualFileEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -73,6 +77,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void fileMoved(final VirtualFileMoveEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -82,6 +87,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void fileCopied(final VirtualFileCopyEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -91,6 +97,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void beforePropertyChange(final VirtualFilePropertyEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -100,6 +107,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void beforeContentsChange(final VirtualFileEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -109,6 +117,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void beforeFileDeletion(final VirtualFileEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -118,6 +127,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } } + @Override public void beforeFileMovement(final VirtualFileMoveEvent event) { final Collection listeners = getListeners(event.getFile(), event.isFromRefresh()); if (listeners == null) return; @@ -129,6 +139,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { }); } + @Override public void addTracker( @NotNull final String fileUrl, @NotNull final VirtualFileListener listener, @@ -142,6 +153,7 @@ public class VirtualFileTrackerImpl implements VirtualFileTracker { } Disposer.register(parentDisposable, new Disposable() { + @Override public void dispose() { removeListener(fileUrl, listener, myAllTrackers); diff --git a/platform/usageView/src/com/intellij/usages/PsiNamedElementUsageGroupBase.java b/platform/usageView/src/com/intellij/usages/PsiNamedElementUsageGroupBase.java index 6ca14e92a902..0dbeb94556e0 100644 --- a/platform/usageView/src/com/intellij/usages/PsiNamedElementUsageGroupBase.java +++ b/platform/usageView/src/com/intellij/usages/PsiNamedElementUsageGroupBase.java @@ -36,6 +36,7 @@ public class PsiNamedElementUsageGroupBase, RenameableUsage, TypeSafeDataProvider, UsagePresentation { public static final NotNullFunction CONVERTER = new NotNullFunction() { + @Override @NotNull public Usage fun(UsageInfo usageInfo) { return new UsageInfo2UsageAdapter(usageInfo); @@ -127,11 +128,13 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return chunks; } + @Override @NotNull public UsagePresentation getPresentation() { return this; } + @Override public boolean isValid() { PsiElement element = getElement(); if (element == null || !element.isValid()) { @@ -143,10 +146,12 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return true; } + @Override public boolean isReadOnly() { return isValid() && !getElement().isWritable(); } + @Override @Nullable public FileEditorLocation getLocation() { VirtualFile virtualFile = getFile(); @@ -157,6 +162,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return new TextEditorLocation(getUsageInfo().getSegment().getStartOffset(), (TextEditor)editor); } + @Override public void selectInEditor() { if (!isValid()) return; Editor editor = openTextEditor(true); @@ -164,6 +170,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, editor.getSelectionModel().setSelection(marker.getStartOffset(), marker.getEndOffset()); } + @Override public void highlightInEditor() { if (!isValid()) return; @@ -193,6 +200,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, } + @Override public void navigate(boolean focus) { if (canNavigate()) { openTextEditor(focus); @@ -203,11 +211,13 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return FileEditorManager.getInstance(getProject()).openTextEditor(getDescriptor(), focus); } + @Override public boolean canNavigate() { VirtualFile file = getFile(); return file != null && file.isValid(); } + @Override public boolean canNavigateToSource() { return canNavigate(); } @@ -248,6 +258,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return result.toString(); } + @Override public Module getModule() { if (!isValid()) return null; VirtualFile virtualFile = getFile(); @@ -258,6 +269,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return fileIndex.getModuleForFile(virtualFile); } + @Override public OrderEntry getLibraryEntry() { if (!isValid()) return null; PsiFile psiFile = getPsiFile(); @@ -279,6 +291,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return null; } + @Override public VirtualFile getFile() { return getUsageInfo().getVirtualFile(); } @@ -290,6 +303,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return myLineNumber; } + @Override public boolean merge(MergeableUsage other) { if (!(other instanceof UsageInfo2UsageAdapter)) return false; UsageInfo2UsageAdapter u2 = (UsageInfo2UsageAdapter)other; @@ -306,6 +320,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return true; } + @Override public void reset() { ApplicationManager.getApplication().assertIsDispatchThread(); if (!myMergedUsageInfos.isEmpty()) { @@ -315,6 +330,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, } } + @Override public final PsiElement getElement() { return getUsageInfo().getElement(); } @@ -323,6 +339,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return getElement().getReference(); } + @Override public boolean isNonCodeUsage() { return getUsageInfo().isNonCodeUsage; } @@ -333,6 +350,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, } // by start offset + @Override public int compareTo(final UsageInfo2UsageAdapter o) { VirtualFile containingFile = getFile(); int shift1 = 0; @@ -355,6 +373,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return s1.getStartOffset() + shift1 - s2.getStartOffset() - shift2; } + @Override public void rename(String newName) throws IncorrectOperationException { final PsiReference reference = getUsageInfo().getReference(); assert reference != null : this; @@ -370,6 +389,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return result; } + @Override public void calcData(final DataKey key, final DataSink sink) { if (key == UsageView.USAGE_INFO_KEY) { sink.put(UsageView.USAGE_INFO_KEY, getUsageInfo()); @@ -390,6 +410,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return containingFile == null ? -1L : containingFile.getModificationStamp(); } + @Override @NotNull public TextChunk[] getText() { TextChunk[] chunks = myTextChunks.get(); @@ -403,6 +424,7 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return chunks; } + @Override @NotNull public String getPlainText() { //if (myRangeMarkers.isEmpty()) { // element over light virtual file @@ -432,10 +454,12 @@ public class UsageInfo2UsageAdapter implements UsageInModule, return ""; } + @Override public Icon getIcon() { return myIcon != null ? myIcon.getIcon() : null; } + @Override public String getTooltipText() { return myTooltipText; } diff --git a/platform/usageView/src/com/intellij/usages/UsageInfoToUsageConverter.java b/platform/usageView/src/com/intellij/usages/UsageInfoToUsageConverter.java index d10b36515cba..c197cf680e0e 100644 --- a/platform/usageView/src/com/intellij/usages/UsageInfoToUsageConverter.java +++ b/platform/usageView/src/com/intellij/usages/UsageInfoToUsageConverter.java @@ -56,6 +56,7 @@ public class UsageInfoToUsageConverter { } private static final Function SMARTPOINTER_TO_ELEMENT_MAPPER = new Function() { + @Override public PsiElement fun(final SmartPsiElementPointer s) { return s.getElement(); } @@ -66,6 +67,7 @@ public class UsageInfoToUsageConverter { private static List convertToSmartPointers(final PsiElement[] primaryElements) { return primaryElements != null ? ContainerUtil.mapNotNull(primaryElements, new Function() { + @Override public SmartPsiElementPointer fun(final PsiElement s) { return SmartPointerManager.getInstance(s.getProject()).createSmartPsiElementPointer(s); } diff --git a/platform/usageView/src/com/intellij/usages/UsageLimitUtil.java b/platform/usageView/src/com/intellij/usages/UsageLimitUtil.java index b8c4a75b06ed..17aa64e88eb6 100644 --- a/platform/usageView/src/com/intellij/usages/UsageLimitUtil.java +++ b/platform/usageView/src/com/intellij/usages/UsageLimitUtil.java @@ -47,6 +47,7 @@ public class UsageLimitUtil { final int[] answer = new int[1]; try { GuiUtils.runOrInvokeAndWait(new Runnable() { + @Override public void run() { answer[0] = f.compute(); } @@ -61,6 +62,7 @@ public class UsageLimitUtil { private static int showMessage(final Project project, final String message, final String title, final String[] buttons) { return runOrInvokeAndWait(new Computable() { + @Override public Integer compute() { return Messages.showOkCancelDialog(project, message, title, buttons[0], buttons[1], Messages.getWarningIcon()); } diff --git a/platform/usageView/src/com/intellij/usages/UsageModelTracker.java b/platform/usageView/src/com/intellij/usages/UsageModelTracker.java index 84ac830497e2..22271a4a220c 100644 --- a/platform/usageView/src/com/intellij/usages/UsageModelTracker.java +++ b/platform/usageView/src/com/intellij/usages/UsageModelTracker.java @@ -34,26 +34,32 @@ public class UsageModelTracker implements Disposable { public UsageModelTracker(Project project) { final PsiTreeChangeListener myPsiListener = new PsiTreeChangeAdapter() { + @Override public void childAdded(PsiTreeChangeEvent event) { doFire(event, false); } + @Override public void childRemoved(PsiTreeChangeEvent event) { doFire(event, false); } + @Override public void childReplaced(PsiTreeChangeEvent event) { doFire(event, false); } + @Override public void childrenChanged(PsiTreeChangeEvent event) { doFire(event, false); } + @Override public void childMoved(PsiTreeChangeEvent event) { doFire(event, false); } + @Override public void propertyChanged(PsiTreeChangeEvent event) { doFire(event, true); } @@ -69,6 +75,7 @@ public class UsageModelTracker implements Disposable { } } + @Override public void dispose() { } diff --git a/platform/usageView/src/com/intellij/usages/UsageViewManager.java b/platform/usageView/src/com/intellij/usages/UsageViewManager.java index be42e85fe657..98440e87afa0 100644 --- a/platform/usageView/src/com/intellij/usages/UsageViewManager.java +++ b/platform/usageView/src/com/intellij/usages/UsageViewManager.java @@ -75,6 +75,7 @@ public abstract class UsageViewManager { public static boolean isSelfUsage(final Usage usage, final UsageTarget[] searchForTarget) { if (!(usage instanceof PsiElementUsage)) return false; return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override public Boolean compute() { final PsiElement element = ((PsiElementUsage)usage).getElement(); if (element == null) return false; diff --git a/platform/usageView/src/com/intellij/usages/UsageViewSettings.java b/platform/usageView/src/com/intellij/usages/UsageViewSettings.java index eaf4c5324d43..a2225184d020 100644 --- a/platform/usageView/src/com/intellij/usages/UsageViewSettings.java +++ b/platform/usageView/src/com/intellij/usages/UsageViewSettings.java @@ -106,10 +106,12 @@ public class UsageViewSettings implements PersistentStateComponent 0); } + @Override public void actionPerformed(AnActionEvent e) { process(getUsages(e), e.getData(UsageView.USAGE_VIEW_KEY)); } diff --git a/platform/usageView/src/com/intellij/usages/actions/IncludeUsageAction.java b/platform/usageView/src/com/intellij/usages/actions/IncludeUsageAction.java index b05219b8fecf..d38782ce154a 100644 --- a/platform/usageView/src/com/intellij/usages/actions/IncludeUsageAction.java +++ b/platform/usageView/src/com/intellij/usages/actions/IncludeUsageAction.java @@ -22,6 +22,7 @@ import com.intellij.usages.UsageView; * @author max */ public class IncludeUsageAction extends IncludeExcludeActionBase { + @Override protected void process(Usage[] usages, UsageView usageView) { usageView.includeUsages(usages); } diff --git a/platform/usageView/src/com/intellij/usages/impl/ExporterToTextFile.java b/platform/usageView/src/com/intellij/usages/impl/ExporterToTextFile.java index 5c2a20db0c4f..dbd93dfb273c 100644 --- a/platform/usageView/src/com/intellij/usages/impl/ExporterToTextFile.java +++ b/platform/usageView/src/com/intellij/usages/impl/ExporterToTextFile.java @@ -37,16 +37,20 @@ class ExporterToTextFile implements com.intellij.ide.ExporterToTextFile { myUsageView = usageView; } + @Override public JComponent getSettingsEditor() { return null; } + @Override public void addSettingsChangedListener(ChangeListener listener) throws TooManyListenersException { } + @Override public void removeSettingsChangedListener(ChangeListener listener) { } + @Override public String getReportText() { StringBuffer buf = new StringBuffer(); appendNode(buf, myUsageView.getModelRoot(), SystemProperties.getLineSeparator(), ""); @@ -94,14 +98,17 @@ class ExporterToTextFile implements com.intellij.ide.ExporterToTextFile { buf.append(lineSeparator); } + @Override public String getDefaultFilePath() { return UsageViewSettings.getInstance().EXPORT_FILE_NAME; } + @Override public void exportedTo(String filePath) { UsageViewSettings.getInstance().EXPORT_FILE_NAME = filePath; } + @Override public boolean canExport() { return !myUsageView.isSearchInProgress() && myUsageView.areTargetsValid(); } diff --git a/platform/usageView/src/com/intellij/usages/impl/GroupNode.java b/platform/usageView/src/com/intellij/usages/impl/GroupNode.java index 991a365e5f9c..fd8a33434717 100644 --- a/platform/usageView/src/com/intellij/usages/impl/GroupNode.java +++ b/platform/usageView/src/com/intellij/usages/impl/GroupNode.java @@ -51,6 +51,7 @@ public class GroupNode extends Node implements Navigatable, Comparable rules = new ArrayList(); @@ -47,6 +48,7 @@ public class ImportUsageFilteringRuleProvider implements UsageFilteringRuleProvi return rules.toArray(new UsageFilteringRule[rules.size()]); } + @Override @NotNull public AnAction[] createFilteringActions(@NotNull final UsageView view) { final UsageViewImpl impl = (UsageViewImpl)view; @@ -66,10 +68,12 @@ public class ImportUsageFilteringRuleProvider implements UsageFilteringRuleProvi super(view, UsageViewBundle.message("action.show.import.statements"), IconLoader.getIcon("/actions/showImportStatements.png")); } + @Override protected boolean getOptionValue() { return ImportFilteringUsageViewSetting.getInstance().SHOW_IMPORTS; } + @Override protected void setOptionValue(boolean value) { ImportFilteringUsageViewSetting.getInstance().SHOW_IMPORTS = value; } diff --git a/platform/usageView/src/com/intellij/usages/impl/NullUsage.java b/platform/usageView/src/com/intellij/usages/impl/NullUsage.java index 6763e664c160..10475ee67f5c 100644 --- a/platform/usageView/src/com/intellij/usages/impl/NullUsage.java +++ b/platform/usageView/src/com/intellij/usages/impl/NullUsage.java @@ -30,39 +30,48 @@ public class NullUsage implements Usage { private NullUsage() { } + @Override @NotNull public UsagePresentation getPresentation() { throw new IllegalAccessError(); } + @Override public boolean isValid() { return false; } + @Override public boolean isReadOnly() { return false; } + @Override public FileEditorLocation getLocation() { return null; } + @Override public void selectInEditor() { } + @Override public void highlightInEditor() { } + @Override public void navigate(final boolean requestFocus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return false; } diff --git a/platform/usageView/src/com/intellij/usages/impl/PreviewUsageAction.java b/platform/usageView/src/com/intellij/usages/impl/PreviewUsageAction.java index 226d0d3da94a..60893d23ade5 100644 --- a/platform/usageView/src/com/intellij/usages/impl/PreviewUsageAction.java +++ b/platform/usageView/src/com/intellij/usages/impl/PreviewUsageAction.java @@ -31,10 +31,12 @@ class PreviewUsageAction extends RuleAction { super(usageView, UsageViewBundle.message("preview.usages.action.text"), PREVIEW_ICON); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().IS_PREVIEW_USAGES; } + @Override protected void setOptionValue(final boolean value) { UsageViewSettings.getInstance().IS_PREVIEW_USAGES = value; } diff --git a/platform/usageView/src/com/intellij/usages/impl/RuleAction.java b/platform/usageView/src/com/intellij/usages/impl/RuleAction.java index e0cfef2cf966..0b7e90177b61 100644 --- a/platform/usageView/src/com/intellij/usages/impl/RuleAction.java +++ b/platform/usageView/src/com/intellij/usages/impl/RuleAction.java @@ -42,10 +42,12 @@ public abstract class RuleAction extends ToggleAction implements DumbAware { protected abstract void setOptionValue(boolean value); + @Override public boolean isSelected(AnActionEvent e) { return myState; } + @Override public void setSelected(AnActionEvent e, boolean state) { setOptionValue(state); myState = state; diff --git a/platform/usageView/src/com/intellij/usages/impl/SortMembersAlphabeticallyAction.java b/platform/usageView/src/com/intellij/usages/impl/SortMembersAlphabeticallyAction.java index 3328c74ef917..2ff623336619 100644 --- a/platform/usageView/src/com/intellij/usages/impl/SortMembersAlphabeticallyAction.java +++ b/platform/usageView/src/com/intellij/usages/impl/SortMembersAlphabeticallyAction.java @@ -31,10 +31,12 @@ class SortMembersAlphabeticallyAction extends RuleAction { super(usageView, UsageViewBundle.message("sort.alphabetically.action.text"), ICON); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().IS_SORT_MEMBERS_ALPHABETICALLY; } + @Override protected void setOptionValue(final boolean value) { UsageViewSettings.getInstance().IS_SORT_MEMBERS_ALPHABETICALLY = value; } diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageFilteringRuleProviderImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageFilteringRuleProviderImpl.java index 69bdf15f3482..6cf3a2ba26c2 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageFilteringRuleProviderImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageFilteringRuleProviderImpl.java @@ -39,6 +39,7 @@ import java.util.List; public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvider { private final ReadWriteState myReadWriteState = new ReadWriteState(); + @Override @NotNull public UsageFilteringRule[] getActiveRules(@NotNull Project project) { final List rules = new ArrayList(); @@ -52,6 +53,7 @@ public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvide return rules.toArray(new UsageFilteringRule[rules.size()]); } + @Override @NotNull public AnAction[] createFilteringActions(@NotNull UsageView view) { final UsageViewImpl impl = (UsageViewImpl)view; @@ -100,10 +102,12 @@ public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvide super(UsageViewBundle.message("action.show.read.access"), null, IconLoader.getIcon("/actions/showReadAccess.png")); } + @Override public boolean isSelected(AnActionEvent e) { return myReadWriteState.isShowReadAccess(); } + @Override public void setSelected(AnActionEvent e, boolean state) { myReadWriteState.setShowReadAccess(state); Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext()); @@ -117,10 +121,12 @@ public class UsageFilteringRuleProviderImpl implements UsageFilteringRuleProvide super(UsageViewBundle.message("action.show.write.access"), null, IconLoader.getIcon("/actions/showWriteAccess.png")); } + @Override public boolean isSelected(AnActionEvent e) { return myReadWriteState.isShowWriteAccess(); } + @Override public void setSelected(AnActionEvent e, boolean state) { myReadWriteState.setShowWriteAccess(state); Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext()); diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java index 7f695b624f5e..518fbf1bae1d 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageGroupingRuleProviderImpl.java @@ -39,6 +39,7 @@ import java.util.List; * @author max */ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider { + @Override @NotNull public UsageGroupingRule[] getActiveRules(Project project) { List rules = new ArrayList(); @@ -71,6 +72,7 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider return rules.toArray(new UsageGroupingRule[rules.size()]); } + @Override @NotNull public AnAction[] createGroupingActions(UsageView view) { final UsageViewImpl impl = (UsageViewImpl)view; @@ -121,9 +123,11 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider private GroupByUsageTypeAction(UsageViewImpl view) { super(view, UsageViewBundle.message("action.group.by.usage.type"), IconLoader.getIcon("/ant/filter.png")); //TODO: special icon } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().GROUP_BY_USAGE_TYPE; } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().GROUP_BY_USAGE_TYPE = value; } @@ -133,9 +137,11 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider private GroupByScopeAction(UsageViewImpl view) { super(view, "Group by test/production", PlatformIcons.TEST_SOURCE_FOLDER); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().GROUP_BY_SCOPE; } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().GROUP_BY_SCOPE = value; } @@ -146,10 +152,12 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider super(view, UsageViewBundle.message("action.group.by.module"), IconLoader.getIcon("/objectBrowser/showModules.png")); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().GROUP_BY_MODULE; } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().GROUP_BY_MODULE = value; } @@ -159,9 +167,11 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider private GroupByPackageAction(UsageViewImpl view) { super(view, UsageViewBundle.message("action.group.by.package"), PlatformIcons.GROUP_BY_PACKAGES); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().GROUP_BY_PACKAGE; } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().GROUP_BY_PACKAGE = value; } @@ -171,9 +181,11 @@ public class UsageGroupingRuleProviderImpl implements UsageGroupingRuleProvider private GroupByFileStructureAction(UsageViewImpl view) { super(view, UsageViewBundle.message("action.group.by.file.structure"), IconLoader.getIcon("/actions/groupByMethod.png")); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().GROUP_BY_FILE_STRUCTURE; } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().GROUP_BY_FILE_STRUCTURE = value; } diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageNode.java b/platform/usageView/src/com/intellij/usages/impl/UsageNode.java index 020816c28618..18d06f28ff56 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageNode.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageNode.java @@ -40,6 +40,7 @@ public class UsageNode extends Node implements Comparable, Navigatabl return myUsage.toString(); } + @Override public String tree2string(int indent, String lineSeparator) { StringBuffer result = new StringBuffer(); StringUtil.repeatSymbol(result, ' ', indent); @@ -47,6 +48,7 @@ public class UsageNode extends Node implements Comparable, Navigatabl return result.toString(); } + @Override public int compareTo(UsageNode usageNode) { return UsageViewImpl.USAGE_COMPARATOR.compare(myUsage, usageNode.getUsage()); } @@ -56,30 +58,37 @@ public class UsageNode extends Node implements Comparable, Navigatabl return myUsage; } + @Override public void navigate(boolean requestFocus) { myUsage.navigate(requestFocus); } + @Override public boolean canNavigate() { return myUsage.isValid() && myUsage.canNavigate(); } + @Override public boolean canNavigateToSource() { return myUsage.isValid() && myUsage.canNavigate(); } + @Override protected boolean isDataValid() { return myUsage.isValid(); } + @Override protected boolean isDataReadOnly() { return myUsage.isReadOnly(); } + @Override protected boolean isDataExcluded() { return myUsageExcluded; } + @Override protected String getText(final UsageView view) { try { return myUsage.getPresentation().getPlainText(); diff --git a/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java b/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java index aa754c421b36..d9cad41d5084 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java @@ -81,6 +81,7 @@ public class UsagePreviewPanel extends JPanel implements Disposable { final Editor editor = myEditor; SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (myProject.isDisposed()) return; highlight(infos, editor); @@ -151,6 +152,7 @@ public class UsagePreviewPanel extends JPanel implements Disposable { return editor; } + @Override public void dispose() { isDisposed = true; releaseEditor(); @@ -170,6 +172,7 @@ public class UsagePreviewPanel extends JPanel implements Disposable { public void updateLayout(final List infos) { UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override public void run() { if (myProject.isDisposed()) return; if (infos == null) { diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageTargetNode.java b/platform/usageView/src/com/intellij/usages/impl/UsageTargetNode.java index a71f8d8f9871..aa1ec1528ca0 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageTargetNode.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageTargetNode.java @@ -33,22 +33,27 @@ public class UsageTargetNode extends Node { setUserObject(target); } + @Override public String tree2string(int indent, String lineSeparator) { return myTarget.getName(); } + @Override protected boolean isDataValid() { return myTarget.isValid(); } + @Override protected boolean isDataReadOnly() { return myTarget.isReadOnly(); } + @Override protected boolean isDataExcluded() { return false; } + @Override protected String getText(final UsageView view) { return myTarget.getPresentation().getPresentableText(); } @@ -57,6 +62,7 @@ public class UsageTargetNode extends Node { return myTarget; } + @Override protected void updateNotify() { super.updateNotify(); myTarget.update(); diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java index 60c2dc816e85..0d5c22494c6b 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -103,6 +103,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private volatile boolean isDisposed; private volatile boolean myChangesDetected = false; static final Comparator USAGE_COMPARATOR = new Comparator() { + @Override public int compare(final Usage o1, final Usage o2) { if (o1 == NULL_NODE || o2 == NULL_NODE) return -1; if (o1 instanceof Comparable && o2 instanceof Comparable) { @@ -145,6 +146,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra { ToolTipManager.sharedInstance().registerComponent(this); } + @Override public String getToolTipText(MouseEvent e) { TreePath path = getPathForLocation(e.getX(), e.getY()); if (path != null) { @@ -155,6 +157,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return null; } + @Override public boolean isPathEditable(final TreePath path) { return path.getLastPathComponent() instanceof UsageViewTreeModelBuilder.TargetsRootNode; } @@ -170,6 +173,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra final MessageBusConnection messageBusConnection = myProject.getMessageBus().connect(this); messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, new Runnable() { + @Override public void run() { rulesChanged(); } @@ -177,6 +181,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra if (!myPresentation.isDetachedMode()) { UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override public void run() { // lock here to avoid concurrent execution of this init and dispose in other thread synchronized (lock) { @@ -208,6 +213,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra if (myPresentation.isShowCancelButton()) { addButtonToLowerPane(new Runnable() { + @Override public void run() { close(); } @@ -215,8 +221,10 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() { + @Override public void valueChanged(final TreeSelectionEvent e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (isDisposed) return; List infos = getSelectedUsageInfos(); @@ -289,6 +297,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } Collections.sort(list, new Comparator() { + @Override public int compare(final UsageGroupingRule o1, final UsageGroupingRule o2) { return getRank(o1) - getRank(o2); } @@ -305,6 +314,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return list.toArray(new UsageGroupingRule[list.size()]); } + @Override public void modelChanged(boolean isPropertyChange) { if (!isPropertyChange) { myChangesDetected = true; @@ -319,6 +329,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra TreeUtil.installActions(myTree); EditSourceOnDoubleClickHandler.install(myTree); myTree.addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { if (KeyEvent.VK_ENTER == e.getKeyCode()) { TreePath leadSelectionPath = myTree.getLeadSelectionPath(); @@ -347,6 +358,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private JComponent createActionsToolbar() { DefaultActionGroup group = new DefaultActionGroup() { + @Override public void update(AnActionEvent e) { super.update(e); myButtonPanel.update(); @@ -413,18 +425,22 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private AnAction[] createActions() { final TreeExpander treeExpander = new TreeExpander() { + @Override public void expandAll() { UsageViewImpl.this.expandAll(); } + @Override public boolean canExpand() { return true; } + @Override public void collapseAll() { UsageViewImpl.this.collapseAll(); } + @Override public boolean canCollapse() { return true; } @@ -440,6 +456,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra final AnAction collapseAllAction = actionsManager.createCollapseAllAction(treeExpander, component); scheduleDisposeOnClose(new Disposable() { + @Override public void dispose() { collapseAllAction.unregisterCustomShortcutSet(component); expandAllAction.unregisterCustomShortcutSet(component); @@ -487,6 +504,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra myBuilder.setGroupingRules(getActiveGroupingRules(myProject)); myBuilder.setFilteringRules(getActiveFilteringRules(myProject)); ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { for (Usage usage : allUsages) { if (!usage.isValid()) { @@ -504,6 +522,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra setupCentralPanel(); } SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (isDisposed) return; restoreUsageExpandState(states); @@ -570,11 +589,13 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } private class CloseAction extends CloseTabToolbarAction { + @Override public void update(AnActionEvent e) { super.update(e); e.getPresentation().setVisible(myContent != null); } + @Override public void actionPerformed(AnActionEvent e) { close(); } @@ -586,10 +607,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra setShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_DOWN_MASK))); } + @Override protected boolean getOptionValue() { return UsageViewSettings.getInstance().isFilterDuplicatedLine(); } + @Override protected void setOptionValue(boolean value) { UsageViewSettings.getInstance().setFilterDuplicatedLine(value); } @@ -601,10 +624,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra registerCustomShortcutSet(CommonShortcuts.getRerun(), myRootPanel); } + @Override public void actionPerformed(AnActionEvent e) { refreshUsages(); } + @Override public void update(AnActionEvent e) { super.update(e); final Presentation presentation = e.getPresentation(); @@ -622,6 +647,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra final CountDownLatch waitWhileUserClick = new CountDownLatch(1); final AtomicInteger usageCountWithoutDefinition = new AtomicInteger(0); ProgressManager.getInstance().run(new Task.Backgroundable(myProject, UsageViewManagerImpl.getProgressTitle(myPresentation)) { + @Override public void run(@NotNull final ProgressIndicator indicator) { setSearchInProgress(true); final com.intellij.usages.UsageViewManager usageViewManager = com.intellij.usages.UsageViewManager.getInstance(myProject); @@ -630,6 +656,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra myChangesDetected = false; UsageSearcher usageSearcher = myUsageSearcherFactory.create(); usageSearcher.generate(new Processor() { + @Override public boolean process(final Usage usage) { if (usageViewManager.searchHasBeenCancelled()) return false; if (tooManyUsages.get() == 1) { @@ -668,6 +695,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra myModel.reset(); if (!myPresentation.isDetachedMode()) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (isDisposed) return; TreeUtil.expand(myTree, 2); @@ -692,6 +720,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private volatile boolean myIsFirstVisibleUsageFound = false; + @Override public void appendUsage(@NotNull Usage usage) { doAppendUsage(usage); } @@ -712,10 +741,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return node; } + @Override public void removeUsage(@NotNull Usage usage) { final UsageNode node = myUsageNodes.remove(usage); if (node != NULL_NODE && node != null && !myPresentation.isDetachedMode()) { UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override public void run() { if (isDisposed) return; TreeModel treeModel = myTree.getModel(); @@ -726,6 +757,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } } + @Override public void includeUsages(@NotNull Usage[] usages) { for (Usage usage : usages) { final UsageNode node = myUsageNodes.get(usage); @@ -736,6 +768,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra updateImmediately(); } + @Override public void excludeUsages(@NotNull Usage[] usages) { for (Usage usage : usages) { final UsageNode node = myUsageNodes.get(usage); @@ -746,6 +779,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra updateImmediately(); } + @Override public void selectUsages(@NotNull Usage[] usages) { List paths = new LinkedList(); @@ -761,11 +795,13 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra if (!paths.isEmpty()) myTree.scrollPathToVisible(paths.get(0)); } + @Override @NotNull public JComponent getComponent() { return myRootPanel; } + @Override public int getUsagesCount() { return myUsageNodes.size(); } @@ -794,6 +830,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private void updateLater() { myUpdateAlarm.cancelAllRequests(); myUpdateAlarm.addRequest(new Runnable() { + @Override public void run() { if (myProject.isDisposed()) return; PsiDocumentManager.getInstance(myProject).commitAllDocuments(); @@ -803,12 +840,14 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra }, 300); } + @Override public void close() { // todo ? crazyness com.intellij.usages.UsageViewManager.getInstance(myProject).setCurrentSearchCancelled(true); UsageViewManager.getInstance(myProject).closeContent(myContent); } + @Override public void dispose() { synchronized (lock) { isDisposed = true; @@ -822,6 +861,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } } + @Override public boolean isSearchInProgress() { return mySearchInProgress; } @@ -830,6 +870,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra mySearchInProgress = searchInProgress; if (!myPresentation.isDetachedMode()) { UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override public void run() { if (isDisposed) return; final UsageNode firstUsageNode = myModel.getFirstUsageNode(); @@ -844,6 +885,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private void showNode(@NotNull final UsageNode node) { if (!myPresentation.isDetachedMode()) { UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override public void run() { if (isDisposed) return; TreePath usagePath = new TreePath(node.getPath()); @@ -854,17 +896,20 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } } + @Override public void addButtonToLowerPane(@NotNull Runnable runnable, @NotNull String text) { int index = myButtonPanel.getComponentCount(); if (index > 0 && myPresentation.isShowCancelButton()) index--; myButtonPanel.addButtonRunnable(index, runnable, text); } + @Override public void addButtonToLowerPane(@NotNull final Runnable runnable, @NotNull String text, char mnemonic) { // implemented method is deprecated, so, it just calls non-deprecated overloading one addButtonToLowerPane(runnable, text); } + @Override public void addPerformOperationAction(@NotNull final Runnable processRunnable, final String commandName, final String cannotMakeString, @@ -882,6 +927,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return true; } + @Override public UsageViewPresentation getPresentation() { return myPresentation; } @@ -935,6 +981,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return result; } + @Override @NotNull public Set getExcludedUsages() { Set result = new THashSet(); @@ -978,6 +1025,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return result.isEmpty() ? null : result.toArray(new Node[result.size()]); } + @Override @Nullable public Set getSelectedUsages() { TreePath[] selectionPaths = myTree.getSelectionPaths(); @@ -994,11 +1042,13 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return usages; } + @Override @NotNull public Set getUsages() { return myUsageNodes.keySet(); } + @Override @NotNull public List getSortedUsages() { List usages = new ArrayList(getUsages()); @@ -1079,45 +1129,55 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra private MyPanel(@NotNull JTree tree) { mySupport = new OccurenceNavigatorSupport(tree) { + @Override protected Navigatable createDescriptorForNode(DefaultMutableTreeNode node) { if (node.getChildCount() > 0) return null; return getNavigatableForNode(node); } + @Override public String getNextOccurenceActionName() { return UsageViewBundle.message("action.next.occurrence"); } + @Override public String getPreviousOccurenceActionName() { return UsageViewBundle.message("action.previous.occurrence"); } }; } + @Override public void dispose() { mySupport = null; } + @Override public boolean hasNextOccurence() { return mySupport != null && mySupport.hasNextOccurence(); } + @Override public boolean hasPreviousOccurence() { return mySupport != null && mySupport.hasPreviousOccurence(); } + @Override public OccurenceInfo goNextOccurence() { return mySupport != null ? mySupport.goNextOccurence() : null; } + @Override public OccurenceInfo goPreviousOccurence() { return mySupport != null ? mySupport.goPreviousOccurence() : null; } + @Override public String getNextOccurenceActionName() { return mySupport != null ? mySupport.getNextOccurenceActionName() : ""; } + @Override public String getPreviousOccurenceActionName() { return mySupport != null ? mySupport.getPreviousOccurenceActionName() : ""; } @@ -1140,6 +1200,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra return true; } + @Override public void calcData(final DataKey key, final DataSink sink) { Node node = getSelectedNode(); @@ -1197,10 +1258,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } private static class MyAutoScrollToSourceOptionProvider implements AutoScrollToSourceOptionProvider { + @Override public boolean isAutoScrollMode() { return UsageViewSettings.getInstance().IS_AUTOSCROLL_TO_SOURCE; } + @Override public void setAutoScrollMode(boolean state) { UsageViewSettings.getInstance().IS_AUTOSCROLL_TO_SOURCE = state; } @@ -1219,6 +1282,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra button.setFocusable(false); button.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { runnable.run(); } @@ -1279,6 +1343,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra myCommandName = commandName; } + @Override public void run() { if (!checkReadonlyUsages()) return; PsiDocumentManager.getInstance(myProject).commitAllDocuments(); @@ -1304,6 +1369,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra CommandProcessor.getInstance().executeCommand( myProject, new Runnable() { + @Override public void run() { myProcessRunnable.run(); } diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java index c0e1be5cf4af..af4a1d0bb20d 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java @@ -68,6 +68,7 @@ public class UsageViewManagerImpl extends UsageViewManager { myProject = project; } + @Override @NotNull public UsageView createUsageView(@NotNull UsageTarget[] targets, @NotNull Usage[] usages, @NotNull UsageViewPresentation presentation, Factory usageSearcherFactory) { UsageViewImpl usageView = new UsageViewImpl(myProject, presentation, targets, usageSearcherFactory); @@ -76,6 +77,7 @@ public class UsageViewManagerImpl extends UsageViewManager { return usageView; } + @Override @NotNull public UsageView showUsages(@NotNull UsageTarget[] searchedFor, @NotNull Usage[] foundUsages, @NotNull UsageViewPresentation presentation, Factory factory) { UsageView usageView = createUsageView(searchedFor, foundUsages, presentation, factory); @@ -84,6 +86,7 @@ public class UsageViewManagerImpl extends UsageViewManager { return usageView; } + @Override @NotNull public UsageView showUsages(@NotNull UsageTarget[] searchedFor, @NotNull Usage[] foundUsages, @NotNull UsageViewPresentation presentation) { return showUsages(searchedFor, foundUsages, presentation, null); @@ -103,6 +106,7 @@ public class UsageViewManagerImpl extends UsageViewManager { content.putUserData(USAGE_VIEW_KEY, usageView); } + @Override public UsageView searchAndShowUsages(@NotNull final UsageTarget[] searchFor, @NotNull final Factory searcherFactory, final boolean showPanelIfOnlyOneUsage, @@ -115,6 +119,7 @@ public class UsageViewManagerImpl extends UsageViewManager { processPresentation.setShowPanelIfOnlyOneUsage(showPanelIfOnlyOneUsage); Task task = new Task.Backgroundable(myProject, getProgressTitle(presentation), true, new SearchInBackgroundOption()) { + @Override public void run(@NotNull final ProgressIndicator indicator) { new SearchForUsagesRunnable(usageView, presentation, searchFor, searcherFactory, processPresentation, listener).run(); } @@ -124,6 +129,7 @@ public class UsageViewManagerImpl extends UsageViewManager { return DumbModeAction.CANCEL; } + @Override @Nullable public NotificationInfo getNotificationInfo() { String notification = usageView.get() != null ? usageView.get().getUsagesCount() + " Usage(s) Found" : "No Usages Found"; @@ -134,6 +140,7 @@ public class UsageViewManagerImpl extends UsageViewManager { return usageView.get(); } + @Override public void searchAndShowUsages(@NotNull UsageTarget[] searchFor, @NotNull Factory searcherFactory, @NotNull FindUsagesProcessPresentation processPresentation, @@ -147,9 +154,11 @@ public class UsageViewManagerImpl extends UsageViewManager { final ProgressIndicator progressIndicator = progressIndicatorFactory != null ? progressIndicatorFactory.create() : null; ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { + @Override public void run() { try { ProgressManager.getInstance().runProcess(new Runnable() { + @Override public void run() { runnable.searchUsages(); } @@ -165,6 +174,7 @@ public class UsageViewManagerImpl extends UsageViewManager { }); } + @Override public UsageView getSelectedUsageView() { final Content content = com.intellij.usageView.UsageViewManager.getInstance(myProject).getSelectedContent(); if (content != null) { @@ -192,6 +202,7 @@ public class UsageViewManagerImpl extends UsageViewManager { private static void appendUsages(@NotNull final Usage[] foundUsages, final UsageViewImpl usageView) { ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override public void run() { for (Usage foundUsage : foundUsages) { usageView.appendUsage(foundUsage); @@ -201,14 +212,17 @@ public class UsageViewManagerImpl extends UsageViewManager { } + @Override public void setCurrentSearchCancelled(boolean flag) { mySearchHasBeenCancelled = flag; } + @Override public boolean searchHasBeenCancelled() { return mySearchHasBeenCancelled; } + @Override public void checkSearchCanceled() throws ProcessCanceledException { if (searchHasBeenCancelled()) throw new ProcessCanceledException(); ProgressManager.checkCanceled(); @@ -277,6 +291,7 @@ public class UsageViewManagerImpl extends UsageViewManager { private void openView(final UsageViewImpl usageView) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { addContent(usageView, myPresentation); if (myListener!=null) { @@ -287,6 +302,7 @@ public class UsageViewManagerImpl extends UsageViewManager { }); } + @Override public void run() { searchUsages(); endSearchForUsages(); @@ -298,6 +314,7 @@ public class UsageViewManagerImpl extends UsageViewManager { // 0: ok, 1:warning dialog shown; 2:user closed dialog final CountDownLatch waitWhileUserClick = new CountDownLatch(1); usageSearcher.generate(new Processor() { + @Override public boolean process(final Usage usage) { final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); if (searchHasBeenCancelled() || indicator != null && indicator.isCanceled()) return false; @@ -329,6 +346,7 @@ public class UsageViewManagerImpl extends UsageViewManager { }); if (getUsageView() != null) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { showToolWindow(true); } @@ -341,6 +359,7 @@ public class UsageViewManagerImpl extends UsageViewManager { int usageCount = myUsageCountWithoutDefinition.get(); if (usageCount == 0 && myProcessPresentation.isShowNotFoundMessage()) { ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override public void run() { final List notFoundActions = myProcessPresentation.getNotFoundActions(); final String message = UsageViewBundle.message("dialog.no.usages.found.in", @@ -375,6 +394,7 @@ public class UsageViewManagerImpl extends UsageViewManager { } else if (usageCount == 1 && !myProcessPresentation.isShowPanelIfOnlyOneUsage()) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (myProject.isDisposed()) return; Usage usage = myFirstUsage.get(); diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewTreeCellRenderer.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewTreeCellRenderer.java index 1c0eed3b2079..a4fbf29eccce 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewTreeCellRenderer.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewTreeCellRenderer.java @@ -49,6 +49,7 @@ class UsageViewTreeCellRenderer extends ColoredTreeCellRenderer { myNumberOfUsagesAttribute = SimpleTextAttributes.fromTextAttributes(ourColorsScheme.getAttributes(UsageTreeColors.NUMBER_OF_USAGES)); } + @Override public void customizeCellRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { boolean showAsReadOnly = false; if (value instanceof Node && value != tree.getModel().getRoot()) { diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/DirectoryGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/DirectoryGroupingRule.java index e94e82b8ef89..ea31ffecef5f 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/DirectoryGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/DirectoryGroupingRule.java @@ -49,6 +49,7 @@ public class DirectoryGroupingRule implements UsageGroupingRule { myProject = project; } + @Override @Nullable public UsageGroup groupUsage(@NotNull Usage usage) { if (usage instanceof UsageInFile) { @@ -73,6 +74,7 @@ public class DirectoryGroupingRule implements UsageGroupingRule { private class DirectoryGroup implements UsageGroup, TypeSafeDataProvider { private final VirtualFile myDir; + @Override public void update() { } @@ -80,23 +82,28 @@ public class DirectoryGroupingRule implements UsageGroupingRule { myDir = dir; } + @Override public Icon getIcon(boolean isOpen) { return isOpen ? PlatformIcons.DIRECTORY_OPEN_ICON : PlatformIcons.DIRECTORY_CLOSED_ICON; } + @Override @NotNull public String getText(UsageView view) { return myDir.getPresentableUrl(); } + @Override public FileStatus getFileStatus() { return isValid() ? FileStatusManager.getInstance(myProject).getStatus(myDir) : null; } + @Override public boolean isValid() { return myDir.isValid(); } + @Override public void navigate(boolean focus) throws UnsupportedOperationException { final PsiDirectory directory = getDirectory(); if (directory != null && directory.canNavigate()) { @@ -107,15 +114,18 @@ public class DirectoryGroupingRule implements UsageGroupingRule { private PsiDirectory getDirectory() { return PsiManager.getInstance(myProject).findDirectory(myDir); } + @Override public boolean canNavigate() { final PsiDirectory directory = getDirectory(); return directory != null && directory.canNavigate(); } + @Override public boolean canNavigateToSource() { return false; } + @Override public int compareTo(UsageGroup usageGroup) { return getText(null).compareToIgnoreCase(usageGroup.getText(null)); } @@ -130,6 +140,7 @@ public class DirectoryGroupingRule implements UsageGroupingRule { return myDir.hashCode(); } + @Override public void calcData(final DataKey key, final DataSink sink) { if (!isValid()) return; if (PlatformDataKeys.VIRTUAL_FILE == key) { diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java index 4e487df11958..b461e5ec9ca1 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java @@ -49,6 +49,7 @@ public class FileGroupingRule implements UsageGroupingRule { myProject = project; } + @Override public UsageGroup groupUsage(@NotNull Usage usage) { VirtualFile virtualFile; if (usage instanceof UsageInFile && (virtualFile = ((UsageInFile)usage).getFile()) != null) { @@ -74,6 +75,7 @@ public class FileGroupingRule implements UsageGroupingRule { return IconUtil.getIcon(myFile, Iconable.ICON_FLAG_READ_STATUS, myProject); } + @Override public void update() { if (isValid()) { myIcon = new ComputableIcon(new Computable() { @@ -99,39 +101,48 @@ public class FileGroupingRule implements UsageGroupingRule { return myFile.hashCode(); } + @Override public Icon getIcon(boolean isOpen) { return myIcon.getIcon(); } + @Override @NotNull public String getText(UsageView view) { return myPresentableName; } + @Override public FileStatus getFileStatus() { return isValid() ? FileStatusManager.getInstance(myProject).getStatus(myFile) : null; } + @Override public boolean isValid() { return myFile.isValid(); } + @Override public void navigate(boolean focus) throws UnsupportedOperationException { FileEditorManager.getInstance(myProject).openFile(myFile, focus); } + @Override public boolean canNavigate() { return myFile.isValid(); } + @Override public boolean canNavigateToSource() { return canNavigate(); } + @Override public int compareTo(UsageGroup usageGroup) { return getText(null).compareToIgnoreCase(usageGroup.getText(null)); } + @Override public void calcData(final DataKey key, final DataSink sink) { if (!isValid()) return; if (key == PlatformDataKeys.VIRTUAL_FILE) { @@ -147,6 +158,7 @@ public class FileGroupingRule implements UsageGroupingRule { return myFile.isValid() ? PsiManager.getInstance(myProject).findFile(myFile) : null; } + @Override @NotNull public String getPresentableName() { return myPresentableName; diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java index f1ea57658f4f..59c346535c18 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java @@ -39,6 +39,7 @@ import javax.swing.*; * @author max */ public class ModuleGroupingRule implements UsageGroupingRule { + @Override public UsageGroup groupUsage(@NotNull Usage usage) { if (usage instanceof UsageInModule) { UsageInModule usageInModule = (UsageInModule)usage; @@ -60,6 +61,7 @@ public class ModuleGroupingRule implements UsageGroupingRule { private final OrderEntry myEntry; + @Override public void update() { } @@ -67,35 +69,43 @@ public class ModuleGroupingRule implements UsageGroupingRule { myEntry = entry; } + @Override public Icon getIcon(boolean isOpen) { return LIBRARY_ICON; } + @Override @NotNull public String getText(UsageView view) { return myEntry.getPresentableName(); } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public int compareTo(UsageGroup usageGroup) { if (usageGroup instanceof ModuleUsageGroup) return 1; return getText(null).compareToIgnoreCase(usageGroup.getText(null)); } + @Override public void navigate(boolean requestFocus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return canNavigate(); } @@ -119,6 +129,7 @@ public class ModuleGroupingRule implements UsageGroupingRule { myModule = module; } + @Override public void update() { } @@ -135,34 +146,42 @@ public class ModuleGroupingRule implements UsageGroupingRule { return myModule.hashCode(); } + @Override public Icon getIcon(boolean isOpen) { return myModule.isDisposed() ? null : ModuleType.get(myModule).getNodeIcon(isOpen); } + @Override @NotNull public String getText(UsageView view) { return myModule.isDisposed() ? "" : myModule.getName(); } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return !myModule.isDisposed(); } + @Override public void navigate(boolean focus) throws UnsupportedOperationException { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return false; } + @Override public int compareTo(UsageGroup o) { if (o instanceof LibraryUsageGroup) return -1; return getText(null).compareToIgnoreCase(o.getText(null)); @@ -172,6 +191,7 @@ public class ModuleGroupingRule implements UsageGroupingRule { return UsageViewBundle.message("node.group.module") + getText(null); } + @Override public void calcData(final DataKey key, final DataSink sink) { if (!isValid()) return; if (LangDataKeys.MODULE_CONTEXT == key) { diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java index a3540b63367e..e4d525819682 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java @@ -36,11 +36,13 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { private static class CodeUsageGroup implements UsageGroup { private static final UsageGroup INSTANCE = new CodeUsageGroup(); + @Override @NotNull public String getText(UsageView view) { return view == null ? UsageViewBundle.message("node.group.code.usages") : view.getPresentation().getCodeUsagesString(); } + @Override public void update() { } @@ -49,18 +51,25 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { return "CodeUsages"; } + @Override public Icon getIcon(boolean isOpen) { return null; } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public int compareTo(UsageGroup usageGroup) { if (usageGroup instanceof DynamicUsageGroup) { return -1; } return usageGroup == this ? 0 : 1; } + @Override public void navigate(boolean requestFocus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return canNavigate(); } @@ -69,11 +78,13 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { private static class NonCodeUsageGroup implements UsageGroup { public static final UsageGroup INSTANCE = new NonCodeUsageGroup(); + @Override @NotNull public String getText(UsageView view) { return view == null ? UsageViewBundle.message("node.group.code.usages") : view.getPresentation().getNonCodeUsagesString(); } + @Override public void update() { } @@ -81,13 +92,20 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { //noinspection HardCodedStringLiteral return "NonCodeUsages"; } + @Override public Icon getIcon(boolean isOpen) { return null; } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public int compareTo(UsageGroup usageGroup) { return usageGroup == this ? 0 : -1; } + @Override public void navigate(boolean requestFocus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return canNavigate(); } @@ -97,6 +115,7 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { public static final UsageGroup INSTANCE = new DynamicUsageGroup(); @NonNls private static final String DYNAMIC_CAPTION = "Dynamic usages"; + @Override @NotNull public String getText(UsageView view) { if (view == null) { @@ -108,6 +127,7 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { } } + @Override public void update() { } @@ -115,18 +135,26 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { //noinspection HardCodedStringLiteral return "DynamicUsages"; } + @Override public Icon getIcon(boolean isOpen) { return null; } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public int compareTo(UsageGroup usageGroup) { return usageGroup == this ? 0 : 1; } + @Override public void navigate(boolean requestFocus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return canNavigate(); } } + @Override public UsageGroup groupUsage(@NotNull Usage usage) { if (usage instanceof PsiElementUsage) { if (usage instanceof UsageInfo2UsageAdapter) { diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/ReadAccessFilteringRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/ReadAccessFilteringRule.java index cf40e1b1a94f..0e60907c3509 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/ReadAccessFilteringRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/ReadAccessFilteringRule.java @@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull; * Date: Jan 17, 2005 */ public class ReadAccessFilteringRule implements UsageFilteringRule{ + @Override public boolean isVisible(@NotNull Usage usage) { if (usage instanceof ReadWriteAccessUsage) { final ReadWriteAccessUsage readWriteAccessUsage = (ReadWriteAccessUsage)usage; diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/UsageScopeGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/UsageScopeGroupingRule.java index 9211dd19968b..d2a1f6b20dda 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/UsageScopeGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/UsageScopeGroupingRule.java @@ -35,6 +35,7 @@ import javax.swing.*; * @author max */ public class UsageScopeGroupingRule implements UsageGroupingRule { + @Override public UsageGroup groupUsage(@NotNull Usage usage) { if (!(usage instanceof PsiElementUsage)) { return null; @@ -55,30 +56,36 @@ public class UsageScopeGroupingRule implements UsageGroupingRule { } private static final UsageScopeGroup TEST = new UsageScopeGroup(0) { + @Override public Icon getIcon(boolean isOpen) { return PlatformIcons.TEST_SOURCE_FOLDER; } + @Override @NotNull public String getText(UsageView view) { return "Test"; } }; private static final UsageScopeGroup PRODUCTION = new UsageScopeGroup(1) { + @Override public Icon getIcon(boolean isOpen) { return PlatformIcons.SOURCE_FOLDERS_ICON; } + @Override @NotNull public String getText(UsageView view) { return "Production"; } }; private static final UsageScopeGroup LIBRARY = new UsageScopeGroup(2) { + @Override public Icon getIcon(boolean isOpen) { return PlatformIcons.LIBRARY_ICON; } + @Override @NotNull public String getText(UsageView view) { return "Library"; @@ -91,21 +98,28 @@ public class UsageScopeGroupingRule implements UsageGroupingRule { myCode = code; } + @Override public void update() { } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public void navigate(boolean focus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return false; } + @Override public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java index e948e2643bd0..30c69dd1c1d4 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java @@ -37,6 +37,7 @@ public class UsageTypeGroupingRule implements UsageGroupingRuleEx { return groupUsage(usage, UsageTarget.EMPTY_ARRAY); } + @Override public UsageGroup groupUsage(@NotNull Usage usage, @NotNull UsageTarget[] targets) { if (usage instanceof PsiElementUsage) { PsiElementUsage elementUsage = (PsiElementUsage)usage; @@ -87,30 +88,39 @@ public class UsageTypeGroupingRule implements UsageGroupingRuleEx { myUsageType = usageType; } + @Override public void update() { } + @Override public Icon getIcon(boolean isOpen) { return null; } + @Override @NotNull public String getText(UsageView view) { return myUsageType.toString(); } + @Override public FileStatus getFileStatus() { return null; } + @Override public boolean isValid() { return true; } + @Override public void navigate(boolean focus) { } + @Override public boolean canNavigate() { return false; } + @Override public boolean canNavigateToSource() { return false; } + @Override public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/platform/usageView/src/com/intellij/usages/impl/rules/WriteAccessFilteringRule.java b/platform/usageView/src/com/intellij/usages/impl/rules/WriteAccessFilteringRule.java index afe3d81511c3..2104191c7846 100644 --- a/platform/usageView/src/com/intellij/usages/impl/rules/WriteAccessFilteringRule.java +++ b/platform/usageView/src/com/intellij/usages/impl/rules/WriteAccessFilteringRule.java @@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull; * Date: Jan 17, 2005 */ public class WriteAccessFilteringRule implements UsageFilteringRule{ + @Override public boolean isVisible(@NotNull Usage usage) { if (usage instanceof ReadWriteAccessUsage) { final ReadWriteAccessUsage readWriteAccessUsage = (ReadWriteAccessUsage)usage;