From 3cc846a0c73358b2ae637a0cf9b17f43c6b16a9c Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 11 Jul 2016 18:56:26 +0300 Subject: [PATCH] notnull --- .../folding/impl/JavaFoldingBuilder.java | 4 +- .../folding/impl/JavaFoldingBuilderBase.java | 83 ++++++++++++------- .../core/JavaCoreApplicationEnvironment.java | 4 +- .../lang/folding/CustomFoldingBuilder.java | 14 ++-- .../lang/folding/GroovyFoldingBuilder.java | 4 +- .../editor/PropertiesFoldingBuilder.java | 2 +- .../python/PythonFoldingBuilder.java | 4 +- 7 files changed, 69 insertions(+), 46 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java index e1a774d0de36..77778330a63e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java +++ b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java @@ -31,13 +31,13 @@ import java.awt.*; public class JavaFoldingBuilder extends JavaFoldingBuilderBase { @Override - protected boolean isBelowRightMargin(Project project, int lineLength) { + protected boolean isBelowRightMargin(@NotNull Project project, int lineLength) { final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(project); return lineLength <= settings.getRightMargin(JavaLanguage.INSTANCE); } @Override - protected boolean shouldShowExplicitLambdaType(PsiAnonymousClass anonymousClass, PsiNewExpression expression) { + protected boolean shouldShowExplicitLambdaType(@NotNull PsiAnonymousClass anonymousClass, @NotNull PsiNewExpression expression) { PsiElement parent = expression.getParent(); if (parent instanceof PsiReferenceExpression || parent instanceof PsiAssignmentExpression) { return true; diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java index 8e42d9bb3c3c..8cf092e43176 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java @@ -61,7 +61,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.folding.impl.JavaFoldingBuilder"); private static final String SMILEY = "<~>"; - private static String getPlaceholderText(PsiElement element) { + private static String getPlaceholderText(@NotNull PsiElement element) { if (element instanceof PsiImportList) { return "..."; } @@ -86,11 +86,11 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return "..."; } - private static boolean areOnAdjacentLines(PsiElement e1, PsiElement e2, Document document) { + private static boolean areOnAdjacentLines(@NotNull PsiElement e1, @NotNull PsiElement e2, @NotNull Document document) { return document.getLineNumber(e1.getTextRange().getEndOffset()) + 1 == document.getLineNumber(e2.getTextRange().getStartOffset()); } - private static boolean isSimplePropertyAccessor(PsiMethod method) { + private static boolean isSimplePropertyAccessor(@NotNull PsiMethod method) { if (DumbService.isDumb(method.getProject())) return false; PsiCodeBlock body = method.getBody(); @@ -125,7 +125,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } @Nullable - public TextRange getRangeToFold(PsiElement element) { + private static TextRange getRangeToFold(@NotNull PsiElement element) { if (element instanceof SyntheticElement) { return null; } @@ -176,7 +176,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return null; } - public static boolean hasErrorElementsNearby(final PsiFile file, int startOffset, int endOffset) { + public static boolean hasErrorElementsNearby(@NotNull PsiFile file, int startOffset, int endOffset) { endOffset = CharArrayUtil.shiftForward(file.getViewProvider().getContents(), endOffset, " \t\n"); for (PsiElement element : CollectHighlightsUtil.getElementsInRange(file, startOffset, endOffset)) { if (element instanceof PsiErrorElement) { @@ -187,7 +187,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } @Nullable - private static TextRange getFileHeader(PsiJavaFile file) { + private static TextRange getFileHeader(@NotNull PsiJavaFile file) { PsiElement first = file.getFirstChild(); if (first instanceof PsiWhiteSpace) first = first.getNextSibling(); PsiElement element = first; @@ -207,7 +207,9 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return new UnfairTextRange(first.getTextOffset(), element.getTextOffset()); } - private void addAnnotationsToFold(PsiModifierList modifierList, List foldElements, Document document) { + private static void addAnnotationsToFold(@Nullable PsiModifierList modifierList, + @NotNull List foldElements, + @NotNull Document document) { if (modifierList == null) return; PsiElement[] children = modifierList.getChildren(); for (int i = 0; i < children.length; i++) { @@ -240,9 +242,9 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem * skip processing when current method is called for the second element * @param foldElements fold descriptors holder to store newly created descriptor (if any) */ - private static void addCommentFolds(@NotNull PsiComment comment, @NotNull Set processedComments, - @NotNull List foldElements) - { + private static void addCommentFolds(@NotNull PsiComment comment, + @NotNull Set processedComments, + @NotNull List foldElements) { if (processedComments.contains(comment) || comment.getTokenType() != JavaTokenType.END_OF_LINE_COMMENT) { return; } @@ -277,7 +279,10 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } } - private static void addMethodGenericParametersFolding(PsiMethodCallExpression expression, List foldElements, Document document, boolean quick) { + private static void addMethodGenericParametersFolding(@NotNull PsiMethodCallExpression expression, + @NotNull List foldElements, + @NotNull Document document, + boolean quick) { final PsiReferenceExpression methodExpression = expression.getMethodExpression(); final PsiReferenceParameterList list = methodExpression.getParameterList(); if (list == null || list.getTextLength() <= 5) { @@ -295,7 +300,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem addTypeParametersFolding(foldElements, document, list, 3, quick); } - private static boolean resolvesCorrectly(PsiReferenceExpression expression) { + private static boolean resolvesCorrectly(@NotNull PsiReferenceExpression expression) { for (final JavaResolveResult result : expression.multiResolve(true)) { if (!result.isValidResult()) { return false; @@ -304,7 +309,10 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return true; } - private static void addGenericParametersFolding(PsiNewExpression expression, List foldElements, Document document, boolean quick) { + private static void addGenericParametersFolding(@NotNull PsiNewExpression expression, + @NotNull List foldElements, + @NotNull Document document, + boolean quick) { final PsiElement parent = expression.getParent(); if (!(parent instanceof PsiVariable)) { return; @@ -352,8 +360,11 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } } - private static void addTypeParametersFolding(List foldElements, Document document, PsiReferenceParameterList list, - final int ifLongerThan, boolean quick) { + private static void addTypeParametersFolding(@NotNull List foldElements, + @NotNull Document document, + @NotNull PsiReferenceParameterList list, + int ifLongerThan, + boolean quick) { if (!quick) { for (final PsiType type : list.getTypeArguments()) { if (!type.isValid()) { @@ -412,7 +423,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return true; } - private String getOptionalLambdaType(PsiAnonymousClass anonymousClass, PsiNewExpression expression) { + private String getOptionalLambdaType(@NotNull PsiAnonymousClass anonymousClass, @NotNull PsiNewExpression expression) { if (shouldShowExplicitLambdaType(anonymousClass, expression)) { final String baseClassName = ObjectUtils.assertNotNull(anonymousClass.getBaseClassType().resolve()).getName(); if (baseClassName != null) { @@ -422,13 +433,13 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return ""; } - protected abstract boolean shouldShowExplicitLambdaType(PsiAnonymousClass anonymousClass, PsiNewExpression expression); + protected abstract boolean shouldShowExplicitLambdaType(@NotNull PsiAnonymousClass anonymousClass, @NotNull PsiNewExpression expression); private static boolean seemsLikeLambda(@Nullable final PsiClass baseClass) { return baseClass != null && PsiUtil.hasDefaultConstructor(baseClass, true); } - private static boolean isImplementingLambdaMethod(PsiClass baseClass) { + private static boolean isImplementingLambdaMethod(@NotNull PsiClass baseClass) { if (!baseClass.hasModifierProperty(PsiModifier.ABSTRACT)) return false; for (final PsiMethod method : baseClass.getMethods()) { @@ -445,15 +456,20 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } } - private boolean addToFold(List list, PsiElement elementToFold, Document document, boolean allowOneLiners) { + private static boolean addToFold(@NotNull List list, + @NotNull PsiElement elementToFold, + @NotNull Document document, + boolean allowOneLiners) { PsiUtilCore.ensureValid(elementToFold); TextRange range = getRangeToFold(elementToFold); return range != null && addFoldRegion(list, elementToFold, document, allowOneLiners, range); } - private static boolean addFoldRegion(final List list, final PsiElement elementToFold, final Document document, - final boolean allowOneLiners, - final TextRange range) { + private static boolean addFoldRegion(@NotNull List list, + @NotNull PsiElement elementToFold, + @NotNull Document document, + boolean allowOneLiners, + @NotNull TextRange range) { final TextRange fileRange = elementToFold.getContainingFile().getTextRange(); if (range.equals(fileRange)) return false; @@ -532,7 +548,11 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } } - private void addElementsToFold(List list, PsiClass aClass, Document document, boolean foldJavaDocs, boolean quick) { + private void addElementsToFold(@NotNull List list, + @NotNull PsiClass aClass, + @NotNull Document document, + boolean foldJavaDocs, + boolean quick) { if (!(aClass.getParent() instanceof PsiJavaFile) || ((PsiJavaFile)aClass.getParent()).getClasses().length > 1) { addToFold(list, aClass, document, true); } @@ -601,7 +621,7 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem } } - private boolean addOneLineMethodFolding(List descriptorList, PsiMethod method) { + private boolean addOneLineMethodFolding(@NotNull List descriptorList, @NotNull PsiMethod method) { if (!JavaCodeFoldingSettings.getInstance().isCollapseOneLineMethods()) { return false; } @@ -794,8 +814,11 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem foldElements.addAll(manager.buildDescriptors()); } - private boolean addClosureFolding(final PsiClass aClass, final Document document, final List foldElements, - @NotNull Set processedComments, final boolean quick) { + private boolean addClosureFolding(@NotNull PsiClass aClass, + @NotNull Document document, + @NotNull List foldElements, + @NotNull Set processedComments, + boolean quick) { if (!JavaCodeFoldingSettings.getInstance().isCollapseLambdas()) { return false; } @@ -889,21 +912,21 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem return "->"; } - private boolean fitsRightMargin(PsiElement element, Document document, int foldingStart, int foldingEnd, int collapsedLength) { + private boolean fitsRightMargin(@NotNull PsiElement element, @NotNull Document document, int foldingStart, int foldingEnd, int collapsedLength) { final int beforeLength = foldingStart - document.getLineStartOffset(document.getLineNumber(foldingStart)); final int afterLength = document.getLineEndOffset(document.getLineNumber(foldingEnd)) - foldingEnd; return isBelowRightMargin(element.getProject(), beforeLength + collapsedLength + afterLength); } - protected abstract boolean isBelowRightMargin (Project project, final int lineLength); + protected abstract boolean isBelowRightMargin(@NotNull Project project, final int lineLength); @Override - protected boolean isCustomFoldingCandidate(ASTNode node) { + protected boolean isCustomFoldingCandidate(@NotNull ASTNode node) { return node.getElementType() == JavaTokenType.END_OF_LINE_COMMENT; } @Override - protected boolean isCustomFoldingRoot(ASTNode node) { + protected boolean isCustomFoldingRoot(@NotNull ASTNode node) { IElementType nodeType = node.getElementType(); if (nodeType == JavaElementType.CLASS) { ASTNode parent = node.getTreeParent(); diff --git a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java index e4a4add097d0..27cfe2779f70 100644 --- a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java +++ b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java @@ -91,12 +91,12 @@ public class JavaCoreApplicationEnvironment extends CoreApplicationEnvironment { registerApplicationService(JavaCodeFoldingSettings.class, new JavaCodeFoldingSettingsBase()); addExplicitExtension(LanguageFolding.INSTANCE, JavaLanguage.INSTANCE, new JavaFoldingBuilderBase() { @Override - protected boolean shouldShowExplicitLambdaType(PsiAnonymousClass anonymousClass, PsiNewExpression expression) { + protected boolean shouldShowExplicitLambdaType(@NotNull PsiAnonymousClass anonymousClass, @NotNull PsiNewExpression expression) { return false; } @Override - protected boolean isBelowRightMargin(Project project, int lineLength) { + protected boolean isBelowRightMargin(@NotNull Project project, int lineLength) { return false; } }); diff --git a/platform/core-api/src/com/intellij/lang/folding/CustomFoldingBuilder.java b/platform/core-api/src/com/intellij/lang/folding/CustomFoldingBuilder.java index 8ad7b8996812..fde4177b83ac 100644 --- a/platform/core-api/src/com/intellij/lang/folding/CustomFoldingBuilder.java +++ b/platform/core-api/src/com/intellij/lang/folding/CustomFoldingBuilder.java @@ -38,7 +38,6 @@ import java.util.Set; * @author Rustam Vishnyakov */ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements PossiblyDumbAware { - private CustomFoldingProvider myDefaultProvider; private static final RegistryValue myMaxLookupDepth = Registry.get("custom.folding.max.lookup.depth"); private static final ThreadLocal> ourCustomRegionElements = new ThreadLocal>(); @@ -46,8 +45,8 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P @NotNull @Override public final FoldingDescriptor[] buildFoldRegions(@NotNull PsiElement root, @NotNull Document document, boolean quick) { - List descriptors = new ArrayList(); ourCustomRegionElements.set(new HashSet()); + List descriptors = new ArrayList(); try { if (CustomFoldingProvider.getAllProviders().length > 0) { myDefaultProvider = null; @@ -158,7 +157,7 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P * @param node The node which may contain custom region start. * @return True if the node marks a custom region start. */ - public final boolean isCustomRegionStart(ASTNode node) { + public final boolean isCustomRegionStart(@NotNull ASTNode node) { if (isCustomFoldingCandidate(node)) { String nodeText = node.getText(); CustomFoldingProvider defaultProvider = getDefaultProvider(nodeText); @@ -174,7 +173,7 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P * @param node The node which may contain custom region end * @return True if the node marks a custom region end. */ - protected final boolean isCustomRegionEnd(ASTNode node) { + protected final boolean isCustomRegionEnd(@NotNull ASTNode node) { if (isCustomFoldingCandidate(node)) { String nodeText = node.getText(); CustomFoldingProvider defaultProvider = getDefaultProvider(nodeText); @@ -206,7 +205,7 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P * @param node The node to check. * @return True if the node may contain custom folding tags. */ - protected boolean isCustomFoldingCandidate(ASTNode node) { + protected boolean isCustomFoldingCandidate(@NotNull ASTNode node) { return node.getPsi() instanceof PsiComment; } @@ -218,14 +217,15 @@ public abstract class CustomFoldingBuilder extends FoldingBuilderEx implements P * @param node The node to check. * @return True if the node is a root for custom foldings. */ - protected boolean isCustomFoldingRoot(ASTNode node) { + protected boolean isCustomFoldingRoot(@NotNull ASTNode node) { return node.getFirstChildNode() != null; } private static class FoldingStack extends Stack { + @NotNull private final ASTNode owner; - public FoldingStack(@NotNull ASTNode owner) { + private FoldingStack(@NotNull ASTNode owner) { super(1); this.owner = owner; } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/folding/GroovyFoldingBuilder.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/folding/GroovyFoldingBuilder.java index b158ab21b72c..915023e56ef7 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/folding/GroovyFoldingBuilder.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/folding/GroovyFoldingBuilder.java @@ -315,12 +315,12 @@ public class GroovyFoldingBuilder extends CustomFoldingBuilder implements DumbAw } @Override - protected boolean isCustomFoldingCandidate(ASTNode node) { + protected boolean isCustomFoldingCandidate(@NotNull ASTNode node) { return node.getElementType() == GroovyTokenTypes.mSL_COMMENT; } @Override - protected boolean isCustomFoldingRoot(ASTNode node) { + protected boolean isCustomFoldingRoot(@NotNull ASTNode node) { IElementType nodeType = node.getElementType(); return nodeType == GroovyElementTypes.CLASS_DEFINITION || nodeType == GroovyElementTypes.OPEN_BLOCK; } diff --git a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesFoldingBuilder.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesFoldingBuilder.java index f6a1a465c64b..32d09936e987 100644 --- a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesFoldingBuilder.java +++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesFoldingBuilder.java @@ -48,7 +48,7 @@ public class PropertiesFoldingBuilder extends CustomFoldingBuilder { } @Override - protected boolean isCustomFoldingRoot(ASTNode node) { + protected boolean isCustomFoldingRoot(@NotNull ASTNode node) { return node.getElementType() == PropertiesElementTypes.FILE; } } diff --git a/python/src/com/jetbrains/python/PythonFoldingBuilder.java b/python/src/com/jetbrains/python/PythonFoldingBuilder.java index 0b9c8b375233..12f4e1cae4a3 100644 --- a/python/src/com/jetbrains/python/PythonFoldingBuilder.java +++ b/python/src/com/jetbrains/python/PythonFoldingBuilder.java @@ -256,12 +256,12 @@ public class PythonFoldingBuilder extends CustomFoldingBuilder implements DumbAw } @Override - protected boolean isCustomFoldingCandidate(ASTNode node) { + protected boolean isCustomFoldingCandidate(@NotNull ASTNode node) { return node.getElementType() == PyTokenTypes.END_OF_LINE_COMMENT; } @Override - protected boolean isCustomFoldingRoot(ASTNode node) { + protected boolean isCustomFoldingRoot(@NotNull ASTNode node) { return node.getPsi() instanceof PyFile || node.getElementType() == PyElementTypes.STATEMENT_LIST; }