diff --git a/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpBackrefImpl.java b/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpBackrefImpl.java index d79c63fed648..e99eaa72fcab 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpBackrefImpl.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpBackrefImpl.java @@ -56,7 +56,7 @@ public class RegExpBackrefImpl extends RegExpElementImpl implements RegExpBackre int groupCount; @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { if (element instanceof RegExpGroup) { if (((RegExpGroup)element).isCapturing() && ++groupCount == index) { return true; diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerStateSplitter.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerStateSplitter.java index 641257ac5e56..af2e8fc43b60 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerStateSplitter.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerStateSplitter.java @@ -27,6 +27,7 @@ import java.util.List; * @author nik */ final class ArtifactManagerStateSplitter extends StateSplitterEx { + @NotNull @Override public List> splitState(@NotNull Element state) { return splitState(state, ArtifactState.NAME_ATTRIBUTE); diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/AlternativeJreClassFinder.java b/java/debugger/impl/src/com/intellij/debugger/impl/AlternativeJreClassFinder.java index b8743ddbf625..2da0bbb78d46 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/AlternativeJreClassFinder.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/AlternativeJreClassFinder.java @@ -75,7 +75,8 @@ public class AlternativeJreClassFinder extends NonClasspathClassFinder { if (profile instanceof ConfigurationWithAlternativeJre) { ConfigurationWithAlternativeJre appConfig = (ConfigurationWithAlternativeJre)profile; if (appConfig.isAlternativeJrePathEnabled()) { - return ProjectJdkTable.getInstance().findJdk(appConfig.getAlternativeJrePath()); + String path = appConfig.getAlternativeJrePath(); + return path == null ? null : ProjectJdkTable.getInstance().findJdk(path); } } return null; diff --git a/java/execution/impl/src/com/intellij/execution/filters/DefaultConsoleFiltersProvider.java b/java/execution/impl/src/com/intellij/execution/filters/DefaultConsoleFiltersProvider.java index 4b2b59426919..02761d83ae3a 100644 --- a/java/execution/impl/src/com/intellij/execution/filters/DefaultConsoleFiltersProvider.java +++ b/java/execution/impl/src/com/intellij/execution/filters/DefaultConsoleFiltersProvider.java @@ -29,6 +29,7 @@ public class DefaultConsoleFiltersProvider implements ConsoleFilterProviderEx { return getDefaultFilters(project, GlobalSearchScope.allScope(project)); } + @NotNull @Override public Filter[] getDefaultFilters(@NotNull Project project, @NotNull GlobalSearchScope scope) { List filters = ExceptionFilters.getFilters(scope); diff --git a/java/execution/impl/src/com/intellij/execution/filters/YourkitFilter.java b/java/execution/impl/src/com/intellij/execution/filters/YourkitFilter.java index 51d4b5e93fd2..8d57928a7789 100644 --- a/java/execution/impl/src/com/intellij/execution/filters/YourkitFilter.java +++ b/java/execution/impl/src/com/intellij/execution/filters/YourkitFilter.java @@ -47,7 +47,7 @@ public class YourkitFilter implements Filter{ } @Override - public Result applyFilter(final String line, final int entireLength) { + public Result applyFilter(@NotNull final String line, final int entireLength) { if (!line.endsWith(".java\n")) { return null; } diff --git a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionBaseFilterFactory.java b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionBaseFilterFactory.java index 86c2307b6ca1..897adca6ce62 100644 --- a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionBaseFilterFactory.java +++ b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionBaseFilterFactory.java @@ -16,10 +16,12 @@ package com.intellij.execution.filters; import com.intellij.psi.search.GlobalSearchScope; +import org.jetbrains.annotations.NotNull; public class ExceptionBaseFilterFactory implements ExceptionFilterFactory { + @NotNull @Override - public Filter create(GlobalSearchScope searchScope) { + public Filter create(@NotNull GlobalSearchScope searchScope) { return new ExceptionFilter(searchScope); } } diff --git a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java index 210cd93bf29e..0afd297dc7bf 100644 --- a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java +++ b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java @@ -51,7 +51,7 @@ public class ExceptionExFilterFactory implements ExceptionFilterFactory { } @Override - public Result applyFilter(final String line, final int textEndOffset) { + public Result applyFilter(@NotNull final String line, final int textEndOffset) { return null; } @@ -97,7 +97,7 @@ public class ExceptionExFilterFactory implements ExceptionFilterFactory { } } - private static ExceptionWorker.ParsedLine doParse(ExceptionWorker worker, int lineEndOffset, String lineText) { + private static ExceptionWorker.ParsedLine doParse(@NotNull ExceptionWorker worker, int lineEndOffset, @NotNull String lineText) { Result result = worker.execute(lineText, lineEndOffset); if (result == null) return null; HyperlinkInfo hyperlinkInfo = result.getHyperlinkInfo(); diff --git a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java index e105d11edd97..8946159c02c6 100644 --- a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java +++ b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java @@ -35,14 +35,14 @@ public class ExceptionFilter implements Filter, DumbAware { } @Override - public Result applyFilter(final String line, final int textEndOffset) { + public Result applyFilter(@NotNull final String line, final int textEndOffset) { ExceptionWorker worker = new ExceptionWorker(myCache); Result result = worker.execute(line, textEndOffset, myNextLineRefiner); myNextLineRefiner = result == null ? getRefinerFromException(line) : worker.getLocationRefiner(); return result; } - private static PsiElementFilter getRefinerFromException(String line) { + private static PsiElementFilter getRefinerFromException(@NotNull String line) { String exceptionName = getExceptionFromMessage(line); if (exceptionName == null) return null; PsiElementFilter throwFilter = e -> { diff --git a/java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java b/java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java index 9fa119a7ef79..eee1695e9594 100644 --- a/java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java +++ b/java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java @@ -128,6 +128,7 @@ public abstract class DownloadableLibraryType extends LibraryType> ourReportedDeprecatedClasses = new HashSet<>(); - private static void reportDeprecatedModuleEditor(Class aClass) { + private static void reportDeprecatedModuleEditor(@NotNull Class aClass) { if (ourReportedDeprecatedClasses.add(aClass)) { LOG.warn(aClass.getName() + " uses deprecated way to register itself as a module editor. " + ModuleConfigurationEditorProvider.class.getName() + " extension point should be used instead"); } } + @NotNull private static ModuleConfigurationEditorProvider[] collectProviders(@NotNull Module module) { List result = new ArrayList<>(ServiceKt.getComponents(module, ModuleConfigurationEditorProvider.class)); @@ -223,6 +222,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { return result.toArray(new ModuleConfigurationEditorProvider[0]); } + @NotNull public ModuleConfigurationState createModuleConfigurationState() { return new ModuleConfigurationStateImpl(myProject, myModulesProvider) { @Override @@ -237,6 +237,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { }; } + @NotNull private JPanel createPanel() { getModifiableRootModel(); //initialize model if needed getModifiableRootModelProxy(); @@ -254,6 +255,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { return myGenericSettingsPanel; } + @NotNull public JPanel getPanel() { if (myGenericSettingsPanel == null) { myGenericSettingsPanel = createPanel(); @@ -343,6 +345,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { } } + @NotNull public String getName() { return myName; } @@ -354,7 +357,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { "removeOrderEntry", "setSdk", "inheritSdk", "inheritCompilerOutputPath", "setExcludeOutput", "replaceEntryOfType", "rearrangeOrderEntries")); - ModifiableRootModelInvocationHandler(ModifiableRootModel model) { + ModifiableRootModelInvocationHandler(@NotNull ModifiableRootModel model) { myDelegateModel = model; } @@ -389,7 +392,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { private final LibraryTable myDelegateTable; @NonNls private final Set myCheckedNames = new THashSet<>(Collections.singletonList("removeLibrary" /*,"createLibrary"*/)); - LibraryTableInvocationHandler(LibraryTable table) { + LibraryTableInvocationHandler(@NotNull LibraryTable table) { myDelegateTable = table; } @@ -402,8 +405,8 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{result instanceof LibraryEx ? LibraryEx.class : Library.class}, new LibraryInvocationHandler((Library)result)); } - else if (result instanceof LibraryTable.ModifiableModel) { - return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{LibraryTableBase.ModifiableModel.class}, + if (result instanceof LibraryTable.ModifiableModel) { + return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{LibraryTable.ModifiableModel.class}, new LibraryTableModelInvocationHandler((LibraryTable.ModifiableModel)result)); } if (result instanceof Library[]) { @@ -436,7 +439,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { private class LibraryInvocationHandler implements InvocationHandler, ProxyDelegateAccessor { private final Library myDelegateLibrary; - LibraryInvocationHandler(Library delegateLibrary) { + LibraryInvocationHandler(@NotNull Library delegateLibrary) { myDelegateLibrary = delegateLibrary; } @@ -464,7 +467,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { private class LibraryModifiableModelInvocationHandler implements InvocationHandler, ProxyDelegateAccessor { private final Library.ModifiableModel myDelegateModel; - LibraryModifiableModelInvocationHandler(Library.ModifiableModel delegateModel) { + LibraryModifiableModelInvocationHandler(@NotNull Library.ModifiableModel delegateModel) { myDelegateModel = delegateModel; } @@ -493,7 +496,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { private class LibraryTableModelInvocationHandler implements InvocationHandler, ProxyDelegateAccessor { private final LibraryTable.ModifiableModel myDelegateModel; - LibraryTableModelInvocationHandler(LibraryTable.ModifiableModel delegateModel) { + LibraryTableModelInvocationHandler(@NotNull LibraryTable.ModifiableModel delegateModel) { myDelegateModel = delegateModel; } @@ -565,7 +568,7 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable { return selectedEditor != null ? selectedEditor.getHelpTopic() : null; } - public void setModuleName(final String name) { + public void setModuleName(@NotNull String name) { myName = name; } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java index b206679779e8..c3560ce934b7 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java @@ -126,7 +126,7 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change @Override @Nullable - public Module getModule(String name) { + public Module getModule(@NotNull String name) { final Module moduleByName = myModuleModel.findModuleByName(name); if (moduleByName != null) { return moduleByName; @@ -144,7 +144,8 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change return getOrCreateModuleEditor(module).getRootModel(); } - public ModuleEditor getOrCreateModuleEditor(Module module) { + @NotNull + public ModuleEditor getOrCreateModuleEditor(@NotNull Module module) { LOG.assertTrue(getModule(module.getName()) != null, "Module has been deleted"); ModuleEditor editor = getModuleEditor(module); if (editor == null) { @@ -153,7 +154,8 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change return editor; } - private ModuleEditor doCreateModuleEditor(final Module module) { + @NotNull + private ModuleEditor doCreateModuleEditor(@NotNull Module module) { final ModuleEditor moduleEditor = new HeaderHidingTabbedModuleEditor(myProject, this, module) { @Override public ProjectFacetsConfigurator getFacetsConfigurator() { @@ -173,6 +175,7 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change return moduleEditor; } + @NotNull @Override public FacetModel getFacetModel(@NotNull Module module) { return myFacetsConfigurator.getOrCreateModifiableModel(module); @@ -527,12 +530,12 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change }); } - public static boolean showDialog(Project project, @Nullable final String moduleToSelect, @Nullable final String editorNameToSelect) { + public static boolean showDialog(@NotNull Project project, @Nullable final String moduleToSelect, @Nullable final String editorNameToSelect) { final ProjectStructureConfigurable config = ProjectStructureConfigurable.getInstance(project); return ShowSettingsUtil.getInstance().editConfigurable(project, config, () -> config.select(moduleToSelect, editorNameToSelect, true)); } - public void moduleRenamed(Module module, final String oldName, final String name) { + public void moduleRenamed(@NotNull Module module, final String oldName, @NotNull String name) { ModuleEditor moduleEditor = myModuleEditors.get(module); if (moduleEditor != null) { moduleEditor.setModuleName(name); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java index 9da7a9f3efd3..6e9d2f892322 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java @@ -107,7 +107,7 @@ public class LibraryEditingUtil { PersistentLibraryKind kind = ((LibraryEx)library).getKind(); if (kind != null) { LibraryType type = LibraryType.findByKind(kind); - if (type != null && !type.isSuitableModule(rootModel.getModule(), facetsProvider)) { + if (!type.isSuitableModule(rootModel.getModule(), facetsProvider)) { return false; } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java index 74cf292186d0..5db898a1b9d8 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java @@ -44,6 +44,7 @@ import java.util.Collections; import java.util.List; public abstract class BaseLibrariesConfigurable extends BaseStructureConfigurable { + @NotNull protected final String myLevel; protected BaseLibrariesConfigurable(final @NotNull Project project, @NotNull String libraryTableLevel) { @@ -145,6 +146,7 @@ public abstract class BaseLibrariesConfigurable extends BaseStructureConfigurabl }); } + @NotNull public String getLevel() { return myLevel; } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java index 1a2a7f2d4ac2..a846f8d11121 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java @@ -30,7 +30,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable { diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaDependentSdkType.java b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaDependentSdkType.java index 282a39faab7d..c8232a398fc3 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaDependentSdkType.java +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaDependentSdkType.java @@ -20,26 +20,29 @@ import com.intellij.openapi.projectRoots.JavaSdkType; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkType; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; /** * @author Dmitry Avdeev */ public abstract class JavaDependentSdkType extends DependentSdkType implements JavaSdkType { - public JavaDependentSdkType(@NonNls String name) { + public JavaDependentSdkType(@NonNls @NotNull String name) { super(name); } @Override - protected boolean isValidDependency(Sdk sdk) { + protected boolean isValidDependency(@NotNull Sdk sdk) { return sdk.getSdkType() instanceof JavaSdkType; } + @NotNull @Override public String getUnsatisfiedDependencyMessage() { return "You need to configure a Java SDK first"; } + @NotNull @Override public SdkType getDependencyType() { return JavaSdk.getInstance(); 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 0bf2787423ae..e6a3dab610af 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 @@ -142,6 +142,7 @@ public class JavaSdkImpl extends JavaSdk { @Override public void saveAdditionalData(@NotNull SdkAdditionalData additionalData, @NotNull Element additional) { } + @NotNull @Override public Comparator versionComparator() { return (sdk1, sdk2) -> { @@ -351,8 +352,9 @@ public class JavaSdkImpl extends JavaSdk { MultiMap roots = MultiMap.create(); SdkModificator sdkModificator = new SdkModificator() { + @NotNull @Override public String getName() { throw new UnsupportedOperationException(); } - @Override public void setName(String name) { throw new UnsupportedOperationException(); } + @Override public void setName(@NotNull String name) { throw new UnsupportedOperationException(); } @Override public String getHomePath() { throw new UnsupportedOperationException(); } @Override public void setHomePath(String path) { throw new UnsupportedOperationException(); } @Override public String getVersionString() { throw new UnsupportedOperationException(); } diff --git a/java/java-impl/src/com/intellij/openapi/roots/ExternalLibraryDescriptor.java b/java/java-impl/src/com/intellij/openapi/roots/ExternalLibraryDescriptor.java index aeac559cf3db..eea8abe05184 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/ExternalLibraryDescriptor.java +++ b/java/java-impl/src/com/intellij/openapi/roots/ExternalLibraryDescriptor.java @@ -29,6 +29,7 @@ import java.util.List; public class ExternalLibraryDescriptor { private static final Logger LOG = Logger.getInstance(ExternalLibraryDescriptor.class); private final String myLibraryGroupId; + @NotNull private final String myLibraryArtifactId; private final String myMinVersion; private final String myMaxVersion; @@ -88,6 +89,7 @@ public class ExternalLibraryDescriptor { return myPreferredVersion; } + @NotNull public String getPresentableName() { return myLibraryArtifactId; } diff --git a/java/java-impl/src/com/intellij/openapi/roots/JdkUtils.java b/java/java-impl/src/com/intellij/openapi/roots/JdkUtils.java index a52a6926c17d..94d4e3ba5320 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/JdkUtils.java +++ b/java/java-impl/src/com/intellij/openapi/roots/JdkUtils.java @@ -19,13 +19,14 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiUtilCore; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; public class JdkUtils { @Nullable - public static Sdk getJdkForElement(PsiElement element) { + public static Sdk getJdkForElement(@NotNull PsiElement element) { final VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element); if (virtualFile == null) return null; final List entries = ProjectRootManager.getInstance(element.getProject()).getFileIndex().getOrderEntriesForFile(virtualFile); @@ -36,7 +37,6 @@ public class JdkUtils { if (jdk != null) break; } } - if (jdk == null) return null; return jdk; } } diff --git a/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilter.java b/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilter.java index f2014071b63f..140457ed07d3 100644 --- a/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilter.java +++ b/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilter.java @@ -283,7 +283,7 @@ public class VcsContentAnnotationExceptionFilter implements Filter, FilterMixin } @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { return null; } } diff --git a/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilterFactory.java b/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilterFactory.java index bc6281915e8f..471fcda7f46b 100644 --- a/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilterFactory.java +++ b/java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilterFactory.java @@ -18,10 +18,12 @@ package com.intellij.openapi.vcs.contentAnnotation; import com.intellij.execution.filters.ExceptionFilterFactory; import com.intellij.execution.filters.Filter; import com.intellij.psi.search.GlobalSearchScope; +import org.jetbrains.annotations.NotNull; public class VcsContentAnnotationExceptionFilterFactory implements ExceptionFilterFactory { + @NotNull @Override - public Filter create(GlobalSearchScope searchScope) { + public Filter create(@NotNull GlobalSearchScope searchScope) { return new VcsContentAnnotationExceptionFilter(searchScope); } } 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 27afc07a6bf2..2b72096a5a14 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 @@ -570,7 +570,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { private static String findLiteralText(@NotNull PsiExpression expr) { final PsiElement[] literals = PsiTreeUtil.collectElements(expr, new PsiElementFilter() { @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { if (isStringPsiLiteral(element) && isNameSupplier(element)) { final PsiElement exprList = element.getParent(); if (exprList instanceof PsiExpressionList) { diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java index 7765ef90ca6d..9e535228446e 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java @@ -305,7 +305,7 @@ public class MoveClassToInnerProcessor extends BaseRefactoringProcessor { private static PsiElement[] collectPackageLocalMembers(PsiElement classToMove) { return PsiTreeUtil.collectElements(classToMove, new PsiElementFilter() { @Override - public boolean isAccepted(final PsiElement element) { + public boolean isAccepted(@NotNull final PsiElement element) { if (element instanceof PsiMember) { PsiMember member = (PsiMember) element; if (VisibilityUtil.getVisibilityModifier(member.getModifierList()) == PsiModifier.PACKAGE_LOCAL) { diff --git a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java index 31550730613c..6f79c55f7614 100644 --- a/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java @@ -47,8 +47,8 @@ public class InheritedJdkTest extends ModuleTestCase { ModuleRootModificationUtil.setSdkInherited(myModule); }); - assertTrue("JDK is inherited after explicit inheritSdk()", rootManager.isSdkInherited()); - assertEquals("Correct jdk inherited", jdk, rootManager.getSdk()); + assertTrue("JDK isn't inherited after explicit inheritSdk()", rootManager.isSdkInherited()); + assertEquals("Incorrect jdk inherited", jdk, rootManager.getSdk()); ModuleRootModificationUtil.setModuleSdk(myModule, null); diff --git a/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java b/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java index 671cf321bff5..379d756a1ef6 100644 --- a/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java +++ b/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java @@ -65,11 +65,11 @@ public class ExceptionWorker { myCache = cache; } - public Filter.Result execute(final String line, final int textEndOffset) { + public Filter.Result execute(@NotNull String line, final int textEndOffset) { return execute(line, textEndOffset, null); } - public Filter.Result execute(final String line, final int textEndOffset, PsiElementFilter elementMatcher) { + public Filter.Result execute(@NotNull String line, final int textEndOffset, @Nullable PsiElementFilter elementMatcher) { myResult = null; myInfo = parseExceptionLine(line); if (myInfo == null) { @@ -133,9 +133,11 @@ public class ExceptionWorker { Filter.Result result = new Filter.Result(highlightStartOffset, highlightEndOffset, linkInfo, attributes); if (myMethod.startsWith("access$")) { myLocationRefiner = elementMatcher; - } else if (myMethod.startsWith("lambda$")) { + } + else if (myMethod.startsWith("lambda$")) { myLocationRefiner = new FunctionCallMatcher(); - } else { + } + else { myLocationRefiner = new StackFrameMatcher(line, myInfo); } myResult = result; @@ -146,7 +148,7 @@ public class ExceptionWorker { return myLocationRefiner; } - private static int getLineNumber(String lineString) { + private static int getLineNumber(@NotNull String lineString) { // some quick checks to avoid costly exceptions if (lineString.isEmpty() || lineString.length() > 9 || !Character.isDigit(lineString.charAt(0))) { return -1; @@ -180,14 +182,14 @@ public class ExceptionWorker { return myInfo; } - private static int findAtPrefix(String line) { + private static int findAtPrefix(@NotNull String line) { if (line.startsWith(AT_PREFIX)) return 0; int startIdx = line.indexOf(STANDALONE_AT); return startIdx < 0 ? line.indexOf(AT_PREFIX) : startIdx; } - private static int findFirstRParenAfterDigit(String line) { + private static int findFirstRParenAfterDigit(@NotNull String line) { int rParenIdx = -1; int rParenCandidate = line.lastIndexOf(')'); //Looking for minimal position for ')' after a digit @@ -201,7 +203,7 @@ public class ExceptionWorker { } @Nullable - public static ParsedLine parseExceptionLine(final String line) { + public static ParsedLine parseExceptionLine(@NotNull String line) { ParsedLine result = parseNormalStackTraceLine(line); if (result == null) result = parseYourKitLine(line); if (result == null) result = parseForcedLine(line); @@ -209,7 +211,7 @@ public class ExceptionWorker { } @Nullable - private static ParsedLine parseNormalStackTraceLine(String line) { + private static ParsedLine parseNormalStackTraceLine(@NotNull String line) { int startIdx = findAtPrefix(line); int rParenIdx = findFirstRParenAfterDigit(line); if (rParenIdx < 0) return null; @@ -227,7 +229,8 @@ public class ExceptionWorker { lParenIdx + 1, rParenIdx, line); } - private static TextRange trimRange(String line, TextRange range) { + @NotNull + private static TextRange trimRange(@NotNull String line, @NotNull TextRange range) { int start = handleSpaces(line, range.getStartOffset(), 1); int end = handleSpaces(line, range.getEndOffset(), -1); if (start != range.getStartOffset() || end != range.getEndOffset()) { @@ -237,7 +240,7 @@ public class ExceptionWorker { } @Nullable - private static ParsedLine parseYourKitLine(String line) { + private static ParsedLine parseYourKitLine(@NotNull String line) { int lineEnd = line.length() - 1; if (lineEnd > 0 && line.charAt(lineEnd) == '\n') lineEnd--; if (lineEnd > 0 && Character.isDigit(line.charAt(lineEnd))) { @@ -257,7 +260,7 @@ public class ExceptionWorker { } @Nullable - private static ParsedLine parseForcedLine(String line) { + private static ParsedLine parseForcedLine(@NotNull String line) { String dash = "- "; if (!line.trim().startsWith(dash)) return null; @@ -279,7 +282,7 @@ public class ExceptionWorker { TextRange.create(lineNumberStart, lineNumberEnd), null, lineNumber); } - private static TextRange findMethodNameCandidateBefore(String line, int start, int end) { + private static TextRange findMethodNameCandidateBefore(@NotNull String line, int start, int end) { int lParenIdx = line.lastIndexOf('(', end); if (lParenIdx < 0) return null; @@ -289,7 +292,7 @@ public class ExceptionWorker { return TextRange.create(dotIdx + 1, lParenIdx); } - private static int handleSpaces(String line, int pos, int delta) { + private static int handleSpaces(@NotNull String line, int pos, int delta) { int len = line.length(); while (pos >= 0 && pos < len) { final char c = line.charAt(pos); @@ -307,8 +310,8 @@ public class ExceptionWorker { public final int lineNumber; ParsedLine(@NotNull TextRange classFqnRange, - @NotNull TextRange methodNameRange, - @NotNull TextRange fileLineRange, @Nullable String fileName, int lineNumber) { + @NotNull TextRange methodNameRange, + @NotNull TextRange fileLineRange, @Nullable String fileName, int lineNumber) { this.classFqnRange = classFqnRange; this.methodNameRange = methodNameRange; this.fileLineRange = fileLineRange; @@ -318,8 +321,8 @@ public class ExceptionWorker { @Nullable private static ParsedLine createFromFileAndLine(@NotNull TextRange classFqnRange, - @NotNull TextRange methodNameRange, - int fileLineStart, int fileLineEnd, String line) { + @NotNull TextRange methodNameRange, + int fileLineStart, int fileLineEnd, @NotNull String line) { TextRange fileLineRange = TextRange.create(fileLineStart, fileLineEnd); String fileAndLine = fileLineRange.substring(line); @@ -347,7 +350,7 @@ public class ExceptionWorker { } @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { if (!(element instanceof PsiIdentifier)) return false; if (myMethodName.equals("")) { if (myHasDollarInName || element.textMatches(StringUtil.getShortName(myClassName))) { @@ -422,7 +425,7 @@ public class ExceptionWorker { private static class FunctionCallMatcher implements PsiElementFilter { @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { if (!(element instanceof PsiIdentifier)) return false; PsiElement parent = element.getParent(); if (!(parent instanceof PsiReferenceExpression)) return false; diff --git a/platform/configuration-store-impl/src/StateAnnotation.java b/platform/configuration-store-impl/src/StateAnnotation.java index 0dd0f10ec82f..9711d1335a9a 100644 --- a/platform/configuration-store-impl/src/StateAnnotation.java +++ b/platform/configuration-store-impl/src/StateAnnotation.java @@ -17,11 +17,13 @@ public class StateAnnotation implements State { storages = new Storage[]{storage}; } + @NotNull @Override public String name() { return name; } + @NotNull @Override public Storage[] storages() { return storages; diff --git a/platform/core-api/src/com/intellij/ide/util/PropertiesComponent.java b/platform/core-api/src/com/intellij/ide/util/PropertiesComponent.java index a4a8cc7f9690..7c7c256d94b7 100644 --- a/platform/core-api/src/com/intellij/ide/util/PropertiesComponent.java +++ b/platform/core-api/src/com/intellij/ide/util/PropertiesComponent.java @@ -21,12 +21,12 @@ import java.lang.reflect.Field; * @author Konstantin Bulenkov */ public abstract class PropertiesComponent extends SimpleModificationTracker { - public abstract void unsetValue(String name); + public abstract void unsetValue(@NotNull String name); - public abstract boolean isValueSet(String name); + public abstract boolean isValueSet(@NotNull String name); @Nullable - public abstract String getValue(@NonNls String name); + public abstract String getValue(@NonNls @NotNull String name); /** * Consider to use {@link #setValue(String, String, String)} to avoid write defaults. @@ -61,9 +61,9 @@ public abstract class PropertiesComponent extends SimpleModificationTracker { public abstract void setValue(@NotNull String name, boolean value, boolean defaultValue); @Nullable - public abstract String[] getValues(@NonNls String name); + public abstract String[] getValues(@NonNls @NotNull String name); - public abstract void setValues(@NonNls String name, String[] values); + public abstract void setValues(@NonNls @NotNull String name, String[] values); public static PropertiesComponent getInstance(Project project) { return ServiceManager.getService(project, PropertiesComponent.class); @@ -86,7 +86,7 @@ public abstract class PropertiesComponent extends SimpleModificationTracker { } @NotNull - public String getValue(@NonNls String name, @NotNull String defaultValue) { + public String getValue(@NonNls @NotNull String name, @NotNull String defaultValue) { if (!isValueSet(name)) { return defaultValue; } @@ -106,7 +106,7 @@ public abstract class PropertiesComponent extends SimpleModificationTracker { return StringUtilRt.parseInt(getValue(name), defaultValue); } - public final long getOrInitLong(@NonNls String name, long defaultValue) { + public final long getOrInitLong(@NonNls @NotNull String name, long defaultValue) { try { String value = getValue(name); return value == null ? defaultValue : Long.parseLong(value); @@ -120,7 +120,7 @@ public abstract class PropertiesComponent extends SimpleModificationTracker { * @deprecated Use {@link #getValue(String, String)} */ @Deprecated - public String getOrInit(@NonNls String name, String defaultValue) { + public String getOrInit(@NonNls @NotNull String name, String defaultValue) { if (!isValueSet(name)) { setValue(name, defaultValue); return defaultValue; @@ -189,7 +189,7 @@ public abstract class PropertiesComponent extends SimpleModificationTracker { } } - public float getFloat(String name, float defaultValue) { + public float getFloat(@NotNull String name, float defaultValue) { if (isValueSet(name)) { try { return Float.parseFloat(getValue(name)); diff --git a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java index a65aff0c91ee..0d264fb50037 100644 --- a/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java @@ -31,6 +31,7 @@ public class FileTypeExtensionFactory extends KeyedExtensionFactory { return (T)result; } + @NotNull public abstract String getKey(@NotNull KeyT key); } diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java index 5a01cf529a1d..35a568ddf29c 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java @@ -392,7 +392,7 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi } @Override - public Module getModule(String name) { + public Module getModule(@NotNull String name) { return AbstractIdeModifiableModelsProvider.this.findIdeModule(name); } @@ -401,6 +401,7 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi return AbstractIdeModifiableModelsProvider.this.getModifiableRootModel(module); } + @NotNull @Override public FacetModel getFacetModel(@NotNull Module module) { return AbstractIdeModifiableModelsProvider.this.getModifiableFacetModel(module); diff --git a/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java b/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java index e5ec581021ee..951fa32ec739 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java +++ b/platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java @@ -46,19 +46,17 @@ public class CompositeFilter implements Filter, FilterMixin { public CompositeFilter(@NotNull Project project, @NotNull List filters) { myDumbService = DumbService.getInstance(project); myFilters = filters; - myFilters.forEach(filter -> { - myIsAnyHeavy |= filter instanceof FilterMixin; - }); + myFilters.forEach(filter -> myIsAnyHeavy |= filter instanceof FilterMixin); } - protected CompositeFilter(DumbService dumbService) { + protected CompositeFilter(@NotNull DumbService dumbService) { myDumbService = dumbService; myFilters = new ArrayList<>(); } @Override @Nullable - public Result applyFilter(final String line, final int entireLength) { + public Result applyFilter(@NotNull final String line, final int entireLength) { final boolean dumb = myDumbService.isDumb(); List filters = myFilters; int count = filters.size(); @@ -80,25 +78,27 @@ public class CompositeFilter implements Filter, FilterMixin { catch (Throwable t) { throw new RuntimeException("Error while applying " + filter + " to '" + line + "'", t); } - resultItems = merge(resultItems, result, entireLength, filter); + if (result != null) { + resultItems = merge(resultItems, result, entireLength, filter); + } t0 = System.currentTimeMillis() - t0; if (t0 > 1000) { LOG.warn(filter.getClass().getSimpleName() + ".applyFilter() took " + t0 + " ms on '''" + line + "'''"); } - if (shouldStopFiltering(result)) { + if (result != null && shouldStopFiltering(result)) { break; } } } - return createFinalResult(resultItems); - } - - @Nullable - private static Result createFinalResult(@Nullable List resultItems) { if (resultItems == null) { return null; } + return createFinalResult(resultItems); + } + + @NotNull + private static Result createFinalResult(@NotNull List resultItems) { if (resultItems.size() == 1) { ResultItem resultItem = resultItems.get(0); return new Result(resultItem.getHighlightStartOffset(), resultItem.getHighlightEndOffset(), resultItem.getHyperlinkInfo(), @@ -112,30 +112,27 @@ public class CompositeFilter implements Filter, FilterMixin { return new Result(resultItems); } - private boolean shouldStopFiltering(@Nullable Result result) { - return result != null && result.getNextAction() == NextAction.EXIT && !forceUseAllFilters; + private boolean shouldStopFiltering(@NotNull Result result) { + return result.getNextAction() == NextAction.EXIT && !forceUseAllFilters; } - @Nullable - private List merge(@Nullable List resultItems, @Nullable Result newResult, int entireLength, Filter filter) { - if (newResult != null) { - if (resultItems == null) { - resultItems = new ArrayList<>(); - } - List newItems = newResult.getResultItems(); - for (int i = 0; i < newItems.size(); i++) { - ResultItem item = newItems.get(i); - if ((item.getHyperlinkInfo() == null || ! - intersects(resultItems, item)) && - checkOffsetsCorrect(item, entireLength, filter)) { - resultItems.add(item); - } + @NotNull + private static List merge(@Nullable List resultItems, @NotNull Result newResult, int entireLength, @NotNull Filter filter) { + if (resultItems == null) { + resultItems = new ArrayList<>(); + } + List newItems = newResult.getResultItems(); + for (int i = 0; i < newItems.size(); i++) { + ResultItem item = newItems.get(i); + if ((item.getHyperlinkInfo() == null || ! + intersects(resultItems, item)) && checkOffsetsCorrect(item, entireLength, filter)) { + resultItems.add(item); } } return resultItems; } - private static boolean checkOffsetsCorrect(ResultItem item, int entireLength, Filter filter) { + private static boolean checkOffsetsCorrect(@NotNull ResultItem item, int entireLength, @NotNull Filter filter) { int start = item.getHighlightStartOffset(); int end = item.getHighlightEndOffset(); if (end < start || end > entireLength) { @@ -145,16 +142,16 @@ public class CompositeFilter implements Filter, FilterMixin { return true; } - protected boolean intersects(List items, ResultItem newItem) { + protected static boolean intersects(@NotNull List items, @NotNull ResultItem newItem) { TextRange newItemTextRange = null; for (int i = 0; i < items.size(); i++) { ResultItem item = items.get(i); if (item.getHyperlinkInfo() != null) { if (newItemTextRange == null) { - newItemTextRange = new TextRange(newItem.highlightStartOffset, newItem.highlightEndOffset); + newItemTextRange = new TextRange(newItem.getHighlightStartOffset(), newItem.getHighlightEndOffset()); } - if (newItemTextRange.intersectsStrict(item.highlightStartOffset, item.highlightEndOffset)) { + if (newItemTextRange.intersectsStrict(item.getHighlightStartOffset(), item.getHighlightEndOffset())) { return true; } } diff --git a/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProviderEx.java b/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProviderEx.java index 875696fbe80c..fb22260b3818 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProviderEx.java +++ b/platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProviderEx.java @@ -21,5 +21,6 @@ import com.intellij.psi.search.GlobalSearchScope; import org.jetbrains.annotations.NotNull; public interface ConsoleFilterProviderEx extends ConsoleFilterProvider { + @NotNull Filter[] getDefaultFilters(@NotNull Project project, @NotNull GlobalSearchScope scope); } \ No newline at end of file diff --git a/platform/lang-api/src/com/intellij/execution/filters/Filter.java b/platform/lang-api/src/com/intellij/execution/filters/Filter.java index 892d096a4c7a..fadace6bc176 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/Filter.java +++ b/platform/lang-api/src/com/intellij/execution/filters/Filter.java @@ -155,12 +155,9 @@ public interface Filter { static { Application application = ApplicationManager.getApplication(); if (application != null) { - application.getMessageBus().connect().subscribe(EditorColorsManager.TOPIC, new EditorColorsListener() { - @Override - public void globalSchemeChange(EditorColorsScheme scheme) { - // invalidate cache on Appearance Theme/Editor Scheme change - GRAYED_BY_NORMAL_CACHE.clear(); - } + application.getMessageBus().connect().subscribe(EditorColorsManager.TOPIC, __ -> { + // invalidate cache on Appearance Theme/Editor Scheme change + GRAYED_BY_NORMAL_CACHE.clear(); }); } } @@ -222,18 +219,15 @@ public interface Filter { } public int getHighlightStartOffset() { - //noinspection deprecation return highlightStartOffset; } public int getHighlightEndOffset() { - //noinspection deprecation return highlightEndOffset; } @Nullable public TextAttributes getHighlightAttributes() { - //noinspection deprecation return highlightAttributes; } @@ -244,7 +238,6 @@ public interface Filter { @Nullable public HyperlinkInfo getHyperlinkInfo() { - //noinspection deprecation return hyperlinkInfo; } @@ -281,5 +274,5 @@ public interface Filter { * @return null, if there was no match, otherwise, an instance of {@link Result} */ @Nullable - Result applyFilter(String line, int entireLength); + Result applyFilter(@NotNull String line, int entireLength); } diff --git a/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java b/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java index 0b5d7f77beee..d690047e60eb 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java +++ b/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java @@ -21,6 +21,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; @@ -119,7 +120,7 @@ public class RegexpFilter implements Filter, DumbAware { } @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { Matcher matcher = myPattern.matcher(StringUtil.newBombedCharSequence(line, 100)); if (!matcher.find()) { return null; diff --git a/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilder.java b/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilder.java index d4528535d81e..0e6a1e01bfc6 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilder.java @@ -24,20 +24,23 @@ import java.util.List; * @author dyoma */ public abstract class TextConsoleBuilder { + @NotNull public abstract ConsoleView getConsole(); public abstract void addFilter(@NotNull Filter filter); public abstract void setViewer(boolean isViewer); - public TextConsoleBuilder filters(Filter... filters) { + @NotNull + public TextConsoleBuilder filters(@NotNull Filter... filters) { for (Filter filter : filters) { addFilter(filter); } return this; } - public TextConsoleBuilder filters(@NotNull List filters) { + @NotNull + public TextConsoleBuilder filters(@NotNull List filters) { for (Filter filter : filters) { addFilter(filter); } diff --git a/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilderFactory.java b/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilderFactory.java index e5296b4ea1fe..5c6b26c2c417 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilderFactory.java +++ b/platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilderFactory.java @@ -25,8 +25,10 @@ import org.jetbrains.annotations.NotNull; * @author dyoma */ public abstract class TextConsoleBuilderFactory { + @NotNull public abstract TextConsoleBuilder createBuilder(@NotNull Project project); + @NotNull public abstract TextConsoleBuilder createBuilder(@NotNull Project project, @NotNull GlobalSearchScope scope); public static TextConsoleBuilderFactory getInstance() { diff --git a/platform/lang-api/src/com/intellij/execution/filters/UrlFilter.java b/platform/lang-api/src/com/intellij/execution/filters/UrlFilter.java index edfd85b89e0e..c56df0be9f29 100644 --- a/platform/lang-api/src/com/intellij/execution/filters/UrlFilter.java +++ b/platform/lang-api/src/com/intellij/execution/filters/UrlFilter.java @@ -48,7 +48,7 @@ public class UrlFilter implements Filter, DumbAware { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { if (!URLUtil.canContainUrl(line)) return null; int textStartOffset = entireLength - line.length(); @@ -98,6 +98,7 @@ public class UrlFilter implements Filter, DumbAware { } public static class UrlFilterProvider implements ConsoleFilterProviderEx { + @NotNull @Override public Filter[] getDefaultFilters(@NotNull Project project, @NotNull GlobalSearchScope scope) { return new Filter[]{new UrlFilter(project)}; diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index 65d3b76a0aaf..27a98af784f5 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -124,6 +124,7 @@ public class JdkUtil { return new File(homePath, "modules/java.base").isDirectory(); } + @NotNull public static GeneralCommandLine setupJVMCommandLine(@NotNull SimpleJavaParameters javaParameters) throws CantRunException { Sdk jdk = javaParameters.getJdk(); if (jdk == null) throw new CantRunException(ExecutionBundle.message("run.configuration.error.no.jdk.specified")); @@ -137,7 +138,7 @@ public class JdkUtil { return commandLine; } - private static void setupCommandLine(GeneralCommandLine commandLine, SimpleJavaParameters javaParameters) throws CantRunException { + private static void setupCommandLine(@NotNull GeneralCommandLine commandLine, @NotNull SimpleJavaParameters javaParameters) throws CantRunException { commandLine.withWorkDirectory(javaParameters.getWorkingDirectory()); commandLine.withEnvironment(javaParameters.getEnv()); @@ -191,21 +192,21 @@ public class JdkUtil { } } - private static boolean isUrlClassloader(ParametersList vmParameters) { + private static boolean isUrlClassloader(@NotNull ParametersList vmParameters) { return UrlClassLoader.class.getName().equals(vmParameters.getPropertyValue("java.system.class.loader")); } - private static boolean explicitClassPath(ParametersList vmParameters) { + private static boolean explicitClassPath(@NotNull ParametersList vmParameters) { return vmParameters.hasParameter("-cp") || vmParameters.hasParameter("-classpath") || vmParameters.hasParameter("--class-path"); } - private static boolean explicitModulePath(ParametersList vmParameters) { + private static boolean explicitModulePath(@NotNull ParametersList vmParameters) { return vmParameters.hasParameter("-p") || vmParameters.hasParameter("--module-path"); } - private static void setArgFileParams(GeneralCommandLine commandLine, - SimpleJavaParameters javaParameters, - ParametersList vmParameters, + private static void setArgFileParams(@NotNull GeneralCommandLine commandLine, + @NotNull SimpleJavaParameters javaParameters, + @NotNull ParametersList vmParameters, boolean dynamicVMOptions, boolean dynamicParameters) throws CantRunException { try { @@ -262,7 +263,8 @@ public class JdkUtil { } /* https://docs.oracle.com/javase/9/tools/java.htm, "java Command-Line Argument Files" */ - private static String quoteArg(String arg) { + @NotNull + private static String quoteArg(@NotNull String arg) { String specials = " #'\"\n\r\t\f"; if (!StringUtil.containsAnyChar(arg, specials)) { return arg; @@ -282,10 +284,10 @@ public class JdkUtil { return sb.toString(); } - private static void setCommandLineWrapperParams(GeneralCommandLine commandLine, - SimpleJavaParameters javaParameters, - ParametersList vmParameters, - Class commandLineWrapper, + private static void setCommandLineWrapperParams(@NotNull GeneralCommandLine commandLine, + @NotNull SimpleJavaParameters javaParameters, + @NotNull ParametersList vmParameters, + @NotNull Class commandLineWrapper, boolean dynamicVMOptions, boolean dynamicParameters) throws CantRunException { try { @@ -364,14 +366,15 @@ public class JdkUtil { } } - private static PrintWriter createOutputWriter(File vmParamsFile) throws FileNotFoundException { + @NotNull + private static PrintWriter createOutputWriter(@NotNull File vmParamsFile) throws FileNotFoundException { return new PrintWriter(new OutputStreamWriter(new FileOutputStream(vmParamsFile), StandardCharsets.UTF_8)); } - private static void setClasspathJarParams(GeneralCommandLine commandLine, - SimpleJavaParameters javaParameters, - ParametersList vmParameters, - Class commandLineWrapper, + private static void setClasspathJarParams(@NotNull GeneralCommandLine commandLine, + @NotNull SimpleJavaParameters javaParameters, + @NotNull ParametersList vmParameters, + @NotNull Class commandLineWrapper, boolean dynamicVMOptions, boolean dynamicParameters) throws CantRunException { try { @@ -425,17 +428,17 @@ public class JdkUtil { } @SuppressWarnings("SpellCheckingInspection") - private static boolean isUserDefinedProperty(String param) { + private static boolean isUserDefinedProperty(@NotNull String param) { return param.startsWith("-D") && !(param.startsWith("-Dsun.") || param.startsWith("-Djava.")); } - private static void throwUnableToCreateTempFile(IOException cause) throws CantRunException { + private static void throwUnableToCreateTempFile(@NotNull IOException cause) throws CantRunException { throw new CantRunException("Failed to a create temporary file in " + FileUtilRt.getTempDirectory(), cause); } - private static void appendParamsEncodingClasspath(SimpleJavaParameters javaParameters, - GeneralCommandLine commandLine, - ParametersList vmParameters) { + private static void appendParamsEncodingClasspath(@NotNull SimpleJavaParameters javaParameters, + @NotNull GeneralCommandLine commandLine, + @NotNull ParametersList vmParameters) { commandLine.addParameters(vmParameters.getList()); appendEncoding(javaParameters, commandLine, vmParameters); @@ -453,7 +456,9 @@ public class JdkUtil { } } - private static void appendEncoding(SimpleJavaParameters javaParameters, GeneralCommandLine commandLine, ParametersList parametersList) { + private static void appendEncoding(@NotNull SimpleJavaParameters javaParameters, + @NotNull GeneralCommandLine commandLine, + @NotNull ParametersList parametersList) { // Value of file.encoding and charset of GeneralCommandLine should be in sync in order process's input and output be correctly handled. String encoding = parametersList.getPropertyValue("file.encoding"); if (encoding == null) { @@ -471,7 +476,8 @@ public class JdkUtil { } } - private static List getMainClassParams(SimpleJavaParameters javaParameters) throws CantRunException { + @NotNull + private static List getMainClassParams(@NotNull SimpleJavaParameters javaParameters) throws CantRunException { String mainClass = javaParameters.getMainClass(); String moduleName = javaParameters.getModuleName(); String jarPath = javaParameters.getJarPath(); diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java index 2d197e6c4e8a..5eadec80f820 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java @@ -100,13 +100,13 @@ public abstract class SdkType implements SdkTypeId { public abstract AdditionalDataConfigurable createAdditionalDataConfigurable(@NotNull SdkModel sdkModel, @NotNull SdkModificator sdkModificator); @Nullable - public SdkAdditionalData loadAdditionalData(Element additional) { + public SdkAdditionalData loadAdditionalData(@NotNull Element additional) { return null; } @Override @Nullable - public SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, Element additional) { + public SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, @NotNull Element additional) { return loadAdditionalData(additional); } @@ -159,7 +159,7 @@ public abstract class SdkType implements SdkTypeId { public FileChooserDescriptor getHomeChooserDescriptor() { FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false) { @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { if (files.length != 0) { String selectedPath = files[0].getPath(); boolean valid = isValidSdkHome(selectedPath); @@ -272,6 +272,7 @@ public abstract class SdkType implements SdkTypeId { return homeDir != null && homeDir.isValid(); } + @NotNull public String sdkPath(@NotNull VirtualFile homePath) { return homePath.getPath(); } diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ModifiableModelsProvider.java b/platform/lang-api/src/com/intellij/openapi/roots/ModifiableModelsProvider.java index 3b6c5d99c216..01fc69122869 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ModifiableModelsProvider.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ModifiableModelsProvider.java @@ -5,6 +5,7 @@ import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.libraries.LibraryTable; +import org.jetbrains.annotations.NotNull; /** * Returns the modifiable models from either the open Project Structure configurable (if any) or the standard module root manager. @@ -21,14 +22,16 @@ public interface ModifiableModelsProvider { } } - ModifiableRootModel getModuleModifiableModel(final Module module); - void commitModuleModifiableModel(final ModifiableRootModel model); - void disposeModuleModifiableModel(final ModifiableRootModel model); + ModifiableRootModel getModuleModifiableModel(@NotNull Module module); + void commitModuleModifiableModel(@NotNull ModifiableRootModel model); + void disposeModuleModifiableModel(@NotNull ModifiableRootModel model); - ModifiableFacetModel getFacetModifiableModel(Module module); - void commitFacetModifiableModel(Module module, ModifiableFacetModel model); + @NotNull + ModifiableFacetModel getFacetModifiableModel(@NotNull Module module); + void commitFacetModifiableModel(@NotNull Module module, @NotNull ModifiableFacetModel model); + @NotNull LibraryTable.ModifiableModel getLibraryTableModifiableModel(); - LibraryTable.ModifiableModel getLibraryTableModifiableModel(Project project); - void disposeLibraryTableModifiableModel(LibraryTable.ModifiableModel model); + LibraryTable.ModifiableModel getLibraryTableModifiableModel(@NotNull Project project); + void disposeLibraryTableModifiableModel(@NotNull LibraryTable.ModifiableModel model); } diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java b/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java index 98ec70e72bd6..59e23201f37f 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java @@ -35,6 +35,7 @@ public interface OrderRootTypeUIFactory { KeyedExtensionFactory FACTORY = new KeyedExtensionFactory(OrderRootTypeUIFactory.class, EP_NAME, ApplicationManager.getApplication().getPicoContainer()) { + @NotNull @Override public String getKey(@NotNull final OrderRootType key) { return key.name(); diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/DefaultModulesProvider.java b/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/DefaultModulesProvider.java index 8277777321a4..9cdff823539e 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/DefaultModulesProvider.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/DefaultModulesProvider.java @@ -49,7 +49,7 @@ public class DefaultModulesProvider implements ModulesProvider { } @Override - public Module getModule(String name) { + public Module getModule(@NotNull String name) { return ModuleManager.getInstance(myProject).findModuleByName(name); } @@ -58,6 +58,7 @@ public class DefaultModulesProvider implements ModulesProvider { return ModuleRootManager.getInstance(module); } + @NotNull @Override public FacetModel getFacetModel(@NotNull Module module) { return FacetManager.getInstance(module); diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/ModulesProvider.java b/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/ModulesProvider.java index 711072f9d246..a83a195a6c0f 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/ModulesProvider.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/ModulesProvider.java @@ -32,7 +32,7 @@ public interface ModulesProvider extends RootModelProvider { return Module.EMPTY_ARRAY; } @Override - public Module getModule(String name) { + public Module getModule(@NotNull String name) { return null; } @@ -41,6 +41,7 @@ public interface ModulesProvider extends RootModelProvider { return ModuleRootManager.getInstance(module); } + @NotNull @Override public FacetModel getFacetModel(@NotNull Module module) { return FacetManager.getInstance(module); @@ -48,7 +49,8 @@ public interface ModulesProvider extends RootModelProvider { }; @Nullable - Module getModule(String name); + Module getModule(@NotNull String name); + @NotNull FacetModel getFacetModel(@NotNull Module module); } diff --git a/platform/lang-impl/src/com/intellij/diagnostic/logging/OutputFileUtil.java b/platform/lang-impl/src/com/intellij/diagnostic/logging/OutputFileUtil.java index 422099498c38..6294a25fe18d 100644 --- a/platform/lang-impl/src/com/intellij/diagnostic/logging/OutputFileUtil.java +++ b/platform/lang-impl/src/com/intellij/diagnostic/logging/OutputFileUtil.java @@ -107,7 +107,7 @@ public class OutputFileUtil { private static class ShowOutputFileFilter implements Filter { @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { if (line.startsWith(CONSOLE_OUTPUT_FILE_MESSAGE)) { final String filePath = StringUtil.trimEnd(line.substring(CONSOLE_OUTPUT_FILE_MESSAGE.length()), "\n"); diff --git a/platform/lang-impl/src/com/intellij/execution/filters/AbstractFileHyperlinkFilter.java b/platform/lang-impl/src/com/intellij/execution/filters/AbstractFileHyperlinkFilter.java index 0cad3a80ee3a..8b094666eb20 100644 --- a/platform/lang-impl/src/com/intellij/execution/filters/AbstractFileHyperlinkFilter.java +++ b/platform/lang-impl/src/com/intellij/execution/filters/AbstractFileHyperlinkFilter.java @@ -67,7 +67,7 @@ public abstract class AbstractFileHyperlinkFilter implements Filter { @Nullable @Override - public final Result applyFilter(String line, int entireLength) { + public final Result applyFilter(@NotNull String line, int entireLength) { List links; try { links = parse(line); diff --git a/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderFactoryImpl.java b/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderFactoryImpl.java index 8011e1984653..1f5eb6105935 100644 --- a/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderFactoryImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderFactoryImpl.java @@ -24,11 +24,13 @@ import org.jetbrains.annotations.NotNull; * @author dyoma */ public class TextConsoleBuilderFactoryImpl extends TextConsoleBuilderFactory { + @NotNull @Override public TextConsoleBuilder createBuilder(@NotNull final Project project) { return new TextConsoleBuilderImpl(project); } + @NotNull @Override public TextConsoleBuilder createBuilder(@NotNull Project project, @NotNull GlobalSearchScope scope) { return new TextConsoleBuilderImpl(project, scope); diff --git a/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderImpl.java b/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderImpl.java index 2a9e07ae4770..150cd909f034 100644 --- a/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderImpl.java @@ -43,6 +43,7 @@ public class TextConsoleBuilderImpl extends TextConsoleBuilder { myScope = scope; } + @NotNull @Override public ConsoleView getConsole() { final ConsoleView consoleView = createConsole(); @@ -62,8 +63,9 @@ public class TextConsoleBuilderImpl extends TextConsoleBuilder { myFilters.add(filter); } + @NotNull @Override - public TextConsoleBuilder filters(@NotNull List filters) { + public TextConsoleBuilder filters(@NotNull List filters) { myFilters.addAll(filters); return this; } diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java index 40c327748cc4..32057f705051 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java @@ -26,6 +26,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.Function; import com.intellij.util.containers.ComparatorUtil; import com.intellij.util.containers.Convertor; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -45,12 +46,12 @@ public class PathUtilEx { private static final Convertor JDK_VERSION = jdk -> StringUtil.notNullize(jdk.getVersionString()); @Nullable - public static Sdk getAnyJdk(Project project) { + public static Sdk getAnyJdk(@NotNull Project project) { return chooseJdk(project, Arrays.asList(ModuleManager.getInstance(project).getModules())); } @Nullable - public static Sdk chooseJdk(Project project, Collection modules) { + public static Sdk chooseJdk(@NotNull Project project, @NotNull Collection modules) { Sdk projectJdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (projectJdk != null) { return projectJdk; @@ -59,7 +60,7 @@ public class PathUtilEx { } @Nullable - public static Sdk chooseJdk(Collection modules) { + public static Sdk chooseJdk(@NotNull Collection modules) { List jdks = skipNulls(map(skipNulls(modules), MODULE_JDK)); if (jdks.isEmpty()) { return null; diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/DependentSdkType.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/DependentSdkType.java index a6f6a05aca5e..4a9d3789a4a1 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/DependentSdkType.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/DependentSdkType.java @@ -19,19 +19,20 @@ import java.util.Arrays; */ public abstract class DependentSdkType extends SdkType { - public DependentSdkType(@NonNls String name) { + public DependentSdkType(@NonNls @NotNull String name) { super(name); } /** * Checks if dependencies satisfied. */ - protected boolean checkDependency(SdkModel sdkModel) { + protected boolean checkDependency(@NotNull SdkModel sdkModel) { return ContainerUtil.find(sdkModel.getSdks(), sdk -> isValidDependency(sdk)) != null; } - protected abstract boolean isValidDependency(Sdk sdk); + protected abstract boolean isValidDependency(@NotNull Sdk sdk); + @NotNull public abstract String getUnsatisfiedDependencyMessage(); @Override @@ -54,15 +55,16 @@ public abstract class DependentSdkType extends SdkType { } @Override + @NotNull public abstract SdkType getDependencyType(); - protected Sdk fixDependency(SdkModel sdkModel, Consumer sdkCreatedCallback) { + protected Sdk fixDependency(@NotNull SdkModel sdkModel, @NotNull Consumer sdkCreatedCallback) { return createSdkOfType(sdkModel, getDependencyType(), sdkCreatedCallback); } - protected static Sdk createSdkOfType(final SdkModel sdkModel, - final SdkType sdkType, - final Consumer sdkCreatedCallback) { + protected static Sdk createSdkOfType(@NotNull SdkModel sdkModel, + @NotNull SdkType sdkType, + @NotNull Consumer sdkCreatedCallback) { final Ref result = new Ref<>(null); SdkConfigurationUtil.selectSdkHome(sdkType, home -> { String newSdkName = SdkConfigurationUtil.createUniqueSdkName(sdkType, home, Arrays.asList(sdkModel.getSdks())); diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java index a86ccc61fffa..1737a4c9a79e 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java @@ -117,7 +117,7 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements ExportableCo @Override @Nullable - public Sdk findJdk(String name) { + public Sdk findJdk(@NotNull String name) { //noinspection ForLoopReplaceableByForEach for (int i = 0, len = mySdks.size(); i < len; ++i) { // avoid foreach, it instantiates ArrayList$Itr, this traversal happens very often final Sdk jdk = mySdks.get(i); @@ -130,13 +130,12 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements ExportableCo @Override @Nullable - public Sdk findJdk(String name, String type) { + public Sdk findJdk(@NotNull String name, @NotNull String type) { Sdk projectJdk = findJdk(name); if (projectJdk != null) { return projectJdk; } - final String sdkTypeName = getSdkTypeName(type); - final String uniqueName = sdkTypeName + "." + name; + final String uniqueName = type + "." + name; projectJdk = myCachedProjectJdks.get(uniqueName); if (projectJdk != null) return projectJdk; @@ -146,7 +145,7 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements ExportableCo final SdkType[] sdkTypes = SdkType.getAllTypes(); for (SdkType sdkType : sdkTypes) { - if (Comparing.strEqual(sdkTypeName, sdkType.getName())) { + if (Comparing.strEqual(type, sdkType.getName())) { if (sdkType.isValidSdkHome(jdkPath)) { ProjectJdkImpl projectJdkImpl = new ProjectJdkImpl(name, sdkType); projectJdkImpl.setHomePath(jdkPath); @@ -160,10 +159,6 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements ExportableCo return null; } - protected String getSdkTypeName(final String type) { - return type; - } - @NotNull @Override public Sdk[] getAllJdks() { diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java index 2dac361e01d8..3d496aa47abe 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java @@ -53,19 +53,19 @@ public class SdkConfigurationUtil { private SdkConfigurationUtil() { } public static void createSdk(@Nullable final Project project, - final Sdk[] existingSdks, - final NullableConsumer onSdkCreatedCallBack, + @NotNull Sdk[] existingSdks, + @NotNull NullableConsumer onSdkCreatedCallBack, final boolean createIfExists, - final SdkType... sdkTypes) { + @NotNull SdkType... sdkTypes) { createSdk(project, existingSdks, onSdkCreatedCallBack, createIfExists, true, sdkTypes); } public static void createSdk(@Nullable final Project project, - final Sdk[] existingSdks, - final NullableConsumer onSdkCreatedCallBack, + @NotNull Sdk[] existingSdks, + @NotNull NullableConsumer onSdkCreatedCallBack, final boolean createIfExists, final boolean followSymLinks, - final SdkType... sdkTypes) { + @NotNull SdkType... sdkTypes) { if (sdkTypes.length == 0) { onSdkCreatedCallBack.consume(null); return; @@ -110,16 +110,17 @@ public class SdkConfigurationUtil { } public static void createSdk(@Nullable final Project project, - final Sdk[] existingSdks, - final NullableConsumer onSdkCreatedCallBack, - final SdkType... sdkTypes) { + @NotNull Sdk[] existingSdks, + @NotNull NullableConsumer onSdkCreatedCallBack, + @NotNull SdkType... sdkTypes) { createSdk(project, existingSdks, onSdkCreatedCallBack, true, sdkTypes); } - private static FileChooserDescriptor createCompositeDescriptor(final SdkType... sdkTypes) { + @NotNull + private static FileChooserDescriptor createCompositeDescriptor(@NotNull SdkType... sdkTypes) { return new FileChooserDescriptor(sdkTypes[0].getHomeChooserDescriptor()) { @Override - public void validateSelectedFiles(final VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull final VirtualFile[] files) throws Exception { if (files.length > 0) { for (SdkType type : sdkTypes) { if (type.isValidSdkHome(files[0].getPath())) { @@ -137,14 +138,14 @@ public class SdkConfigurationUtil { ApplicationManager.getApplication().runWriteAction(() -> ProjectJdkTable.getInstance().addJdk(sdk)); } - public static void removeSdk(final Sdk sdk) { + public static void removeSdk(@NotNull Sdk sdk) { ApplicationManager.getApplication().runWriteAction(() -> ProjectJdkTable.getInstance().removeJdk(sdk)); } @Nullable public static Sdk setupSdk(@NotNull Sdk[] allSdks, @NotNull VirtualFile homeDir, - final SdkType sdkType, + @NotNull SdkType sdkType, final boolean silent, @Nullable final SdkAdditionalData additionalData, @Nullable final String customSdkSuggestedName) { @@ -174,9 +175,9 @@ public class SdkConfigurationUtil { @NotNull public static ProjectJdkImpl createSdk(@NotNull Sdk[] allSdks, - @NotNull VirtualFile homeDir, - SdkType sdkType, - @Nullable SdkAdditionalData additionalData, @Nullable String customSdkSuggestedName) { + @NotNull VirtualFile homeDir, + @NotNull SdkType sdkType, + @Nullable SdkAdditionalData additionalData, @Nullable String customSdkSuggestedName) { final List sdksList = Arrays.asList(allSdks); String sdkPath = sdkType.sdkPath(homeDir); @@ -208,9 +209,9 @@ public class SdkConfigurationUtil { }); } - public static void configureDirectoryProjectSdk(final Project project, + public static void configureDirectoryProjectSdk(@NotNull Project project, @Nullable Comparator preferredSdkComparator, - final SdkType... sdkTypes) { + @NotNull SdkType... sdkTypes) { Sdk existingSdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (existingSdk != null && ArrayUtil.contains(existingSdk.getSdkType(), sdkTypes)) { return; @@ -223,7 +224,7 @@ public class SdkConfigurationUtil { } @Nullable - public static Sdk findOrCreateSdk(@Nullable Comparator comparator, final SdkType... sdkTypes) { + public static Sdk findOrCreateSdk(@Nullable Comparator comparator, @NotNull SdkType... sdkTypes) { final Project defaultProject = ProjectManager.getInstance().getDefaultProject(); final Sdk sdk = ProjectRootManager.getInstance(defaultProject).getProjectSdk(); if (sdk != null) { @@ -256,11 +257,10 @@ public class SdkConfigurationUtil { * Tries to create an SDK identified by path; if successful, add the SDK to the global SDK table. * * @param path identifies the SDK - * @param sdkType * @return newly created SDK, or null. */ @Nullable - public static Sdk createAndAddSDK(final String path, SdkType sdkType) { + public static Sdk createAndAddSDK(@NotNull String path, @NotNull SdkType sdkType) { VirtualFile sdkHome = WriteAction.compute(() -> LocalFileSystem.getInstance().refreshAndFindFileByPath(path)); if (sdkHome != null) { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/PlatformModifiableModelsProvider.java b/platform/lang-impl/src/com/intellij/openapi/roots/PlatformModifiableModelsProvider.java index 9a32a7fb2817..b797a5f0f5c3 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/PlatformModifiableModelsProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/PlatformModifiableModelsProvider.java @@ -19,37 +19,39 @@ public class PlatformModifiableModelsProvider implements ModifiableModelsProvide } @Override - public void commitModuleModifiableModel(final ModifiableRootModel model) { + public void commitModuleModifiableModel(@NotNull final ModifiableRootModel model) { model.commit(); } @Override - public void disposeModuleModifiableModel(final ModifiableRootModel model) { + public void disposeModuleModifiableModel(@NotNull final ModifiableRootModel model) { model.dispose(); } + @NotNull @Override - public ModifiableFacetModel getFacetModifiableModel(Module module) { + public ModifiableFacetModel getFacetModifiableModel(@NotNull Module module) { return FacetManager.getInstance(module).createModifiableModel(); } @Override - public void commitFacetModifiableModel(Module module, ModifiableFacetModel model) { + public void commitFacetModifiableModel(@NotNull Module module, @NotNull ModifiableFacetModel model) { model.commit(); } + @NotNull @Override public LibraryTable.ModifiableModel getLibraryTableModifiableModel() { return LibraryTablesRegistrar.getInstance().getLibraryTable().getModifiableModel(); } @Override - public LibraryTable.ModifiableModel getLibraryTableModifiableModel(Project project) { + public LibraryTable.ModifiableModel getLibraryTableModifiableModel(@NotNull Project project) { return LibraryTablesRegistrar.getInstance().getLibraryTable(project).getModifiableModel(); } @Override - public void disposeLibraryTableModifiableModel(LibraryTable.ModifiableModel model) { + public void disposeLibraryTableModifiableModel(@NotNull LibraryTable.ModifiableModel model) { Disposer.dispose(model); } } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ExternalProjectSystemRegistryImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ExternalProjectSystemRegistryImpl.java index e3dc8fa78e44..23000936a2bf 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/ExternalProjectSystemRegistryImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/ExternalProjectSystemRegistryImpl.java @@ -31,7 +31,7 @@ public class ExternalProjectSystemRegistryImpl implements ExternalProjectSystemR @Override @NotNull - public ProjectModelExternalSource getSourceById(String id) { + public ProjectModelExternalSource getSourceById(@NotNull String id) { throw new IllegalStateException(); } } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java index f4df1411f985..da778d79f69f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java @@ -117,7 +117,7 @@ public class PushedFilePropertiesUpdaterImpl extends PushedFilePropertiesUpdater } @Override - public void pushRecursively(VirtualFile file, Project project) { + public void pushRecursively(@NotNull VirtualFile file, @NotNull Project project) { queueTasks(ContainerUtil.createMaybeSingletonList(createRecursivePushTask(file, new FilePropertyPusher[]{pusher}))); } }); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java index 9a72d743aaff..5ee10426f30a 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java @@ -57,6 +57,7 @@ public class LibraryTypeServiceImpl extends LibraryTypeService { return doCreate(type, name, roots); } + @NotNull private static

> NewLibraryConfiguration doCreate(final LibraryType

type, final String name, final List roots) { return new NewLibraryConfiguration(name, type, type != null ? type.getKind().createDefaultProperties() : null) { @Override @@ -66,6 +67,7 @@ public class LibraryTypeServiceImpl extends LibraryTypeService { }; } + @NotNull public static String suggestLibraryName(@NotNull VirtualFile[] classesRoots) { if (classesRoots.length >= 1) { return FileUtil.getNameWithoutExtension(PathUtil.getFileName(classesRoots[0].getPath())); @@ -73,6 +75,7 @@ public class LibraryTypeServiceImpl extends LibraryTypeService { return DEFAULT_LIBRARY_NAME; } + @NotNull public static String suggestLibraryName(@NotNull List roots) { if (roots.size() >= 1) { return FileUtil.getNameWithoutExtension(PathUtil.getFileName(roots.get(0).getFile().getPath())); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/RenameLibraryHandler.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/RenameLibraryHandler.java index 380837b3aa51..5da4f7291378 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/RenameLibraryHandler.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/RenameLibraryHandler.java @@ -24,7 +24,6 @@ import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.command.undo.BasicUndoableAction; import com.intellij.openapi.command.undo.UndoManager; import com.intellij.openapi.command.undo.UndoableAction; -import com.intellij.openapi.command.undo.UnexpectedUndoException; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; @@ -36,7 +35,6 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.refactoring.rename.RenameHandler; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * @author Konstantin Bulenkov @@ -78,9 +76,11 @@ public class RenameLibraryHandler implements RenameHandler, TitledHandler { } private static class MyInputValidator implements InputValidator { + @NotNull private final Project myProject; + @NotNull private final Library myLibrary; - MyInputValidator(Project project, Library library) { + MyInputValidator(@NotNull Project project, @NotNull Library library) { myProject = project; myLibrary = library; } @@ -94,24 +94,19 @@ public class RenameLibraryHandler implements RenameHandler, TitledHandler { public boolean canClose(final String inputString) { final String oldName = myLibrary.getName(); final Library.ModifiableModel modifiableModel = renameLibrary(inputString); - if (modifiableModel == null) return false; final Ref success = Ref.create(Boolean.TRUE); CommandProcessor.getInstance().executeCommand(myProject, () -> { UndoableAction action = new BasicUndoableAction() { @Override - public void undo() throws UnexpectedUndoException { + public void undo() { final Library.ModifiableModel modifiableModel1 = renameLibrary(oldName); - if (modifiableModel1 != null) { - modifiableModel1.commit(); - } + modifiableModel1.commit(); } @Override - public void redo() throws UnexpectedUndoException { + public void redo() { final Library.ModifiableModel modifiableModel1 = renameLibrary(inputString); - if (modifiableModel1 != null) { - modifiableModel1.commit(); - } + modifiableModel1.commit(); } }; UndoManager.getInstance(myProject).undoableActionPerformed(action); @@ -120,7 +115,7 @@ public class RenameLibraryHandler implements RenameHandler, TitledHandler { return success.get().booleanValue(); } - @Nullable + @NotNull private Library.ModifiableModel renameLibrary(String inputString) { final Library.ModifiableModel modifiableModel = myLibrary.getModifiableModel(); modifiableModel.setName(inputString); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorageProvider.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorageProvider.java index 11853338ae8e..2900adbf0598 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorageProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorageProvider.java @@ -23,12 +23,14 @@ public interface ClasspathStorageProvider { new ExtensionPointName<>("com.intellij.classpathStorageProvider"); @NonNls + @NotNull String getID(); @Nls + @NotNull String getDescription(); - void assertCompatible(final ModuleRootModel model) throws ConfigurationException; + void assertCompatible(@NotNull ModuleRootModel model) throws ConfigurationException; void detach(@NotNull Module module); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java index 7e7174e1d35f..65e8cb604331 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java @@ -98,11 +98,13 @@ public abstract class LibraryType

extends LibraryPr * @return Root types to collect library files which do not belong to the project and therefore * indicate that the library is external. */ + @NotNull public OrderRootType[] getExternalRootTypes() { return DEFAULT_EXTERNAL_ROOT_TYPES; } - public static LibraryType findByKind(LibraryKind kind) { + @NotNull + public static LibraryType findByKind(@NotNull LibraryKind kind) { for (LibraryType type : EP_NAME.getExtensions()) { if (type.getKind() == kind) { return type; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/NewLibraryConfiguration.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/NewLibraryConfiguration.java index 28e82c65db38..e6f0f8b6c107 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/NewLibraryConfiguration.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/NewLibraryConfiguration.java @@ -45,6 +45,7 @@ public abstract class NewLibraryConfiguration { return myProperties; } + @NotNull public String getDefaultLibraryName() { return myDefaultLibraryName; } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java index a10748047251..6de07db53e14 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java @@ -420,7 +420,7 @@ public class CommonContentEntriesEditor extends ModuleElementsEditor { ProjectBundle.message("module.paths.add.content.action.description"), AllIcons.General.Add); myDescriptor = new FileChooserDescriptor(false, true, true, false, true, true) { @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { validateContentEntriesCandidates(files); } }; diff --git a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java index f7c13f4c5f3a..9df1854db811 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java +++ b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java @@ -281,7 +281,7 @@ public class FileChooserDescriptor implements Cloneable { * @param files - selected files to be checked * @throws Exception if the the files cannot be accepted */ - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { } public boolean isForcedToUseIdeaFileChooser() { diff --git a/platform/platform-impl/src/com/intellij/ide/actions/SwitchBootJdkAction.java b/platform/platform-impl/src/com/intellij/ide/actions/SwitchBootJdkAction.java index 966f5aeecfa2..2444e9df8a1c 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/SwitchBootJdkAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/SwitchBootJdkAction.java @@ -220,7 +220,7 @@ public class SwitchBootJdkAction extends AnAction implements DumbAware { } @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { super.validateSelectedFiles(files); assert files.length == 1 : Arrays.toString(files); if (selectedBundle == null) { diff --git a/platform/platform-tests/testSrc/com/intellij/execution/filters/CompositeFilterTest.java b/platform/platform-tests/testSrc/com/intellij/execution/filters/CompositeFilterTest.java index f6efb338f7d2..a2657bb152ed 100644 --- a/platform/platform-tests/testSrc/com/intellij/execution/filters/CompositeFilterTest.java +++ b/platform/platform-tests/testSrc/com/intellij/execution/filters/CompositeFilterTest.java @@ -16,6 +16,7 @@ package com.intellij.execution.filters; import com.intellij.mock.MockDumbService; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.junit.Assert; import org.junit.Before; @@ -92,7 +93,7 @@ public class CompositeFilterTest { return new Filter() { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { return applyFilter(line, entireLength); } }; @@ -102,7 +103,7 @@ public class CompositeFilterTest { return new Filter() { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { return null; } }; @@ -112,7 +113,7 @@ public class CompositeFilterTest { return new Filter() { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { return createResult(); } }; @@ -122,7 +123,7 @@ public class CompositeFilterTest { return new Filter() { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { Result result = createResult(); result.setNextAction(NextAction.CONTINUE_FILTERING); return result; diff --git a/platform/projectModel-api/src/com/intellij/openapi/components/MainConfigurationStateSplitter.java b/platform/projectModel-api/src/com/intellij/openapi/components/MainConfigurationStateSplitter.java index 590ef057ad02..40b35c8a0e58 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/components/MainConfigurationStateSplitter.java +++ b/platform/projectModel-api/src/com/intellij/openapi/components/MainConfigurationStateSplitter.java @@ -26,6 +26,7 @@ import java.util.Iterator; import java.util.List; public abstract class MainConfigurationStateSplitter extends StateSplitterEx { + @NotNull @Override public final List> splitState(@NotNull Element state) { UniqueNameGenerator generator = new UniqueNameGenerator(); diff --git a/platform/projectModel-api/src/com/intellij/openapi/components/State.java b/platform/projectModel-api/src/com/intellij/openapi/components/State.java index 872c08c82485..55a8444e33bd 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/components/State.java +++ b/platform/projectModel-api/src/com/intellij/openapi/components/State.java @@ -2,6 +2,7 @@ package com.intellij.openapi.components; import com.intellij.openapi.util.Getter; +import org.jetbrains.annotations.NotNull; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -14,6 +15,7 @@ public @interface State { /** * Component name. */ + @NotNull String name(); /** @@ -25,6 +27,7 @@ public @interface State { * *

Module-level: optional, corresponding module file will be used ({@code *.iml}).

*/ + @NotNull Storage[] storages() default {}; /** diff --git a/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitter.java b/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitter.java index 8480f6e3fac4..ebf9a5d92fab 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitter.java +++ b/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitter.java @@ -26,7 +26,8 @@ import java.util.List; */ @Deprecated public interface StateSplitter { - List> splitState(@NotNull Element e); + @NotNull + List> splitState(@NotNull Element e); - void mergeStatesInto(Element target, Element[] elements); + void mergeStatesInto(@NotNull Element target, @NotNull Element[] elements); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitterEx.java b/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitterEx.java index 54184556d068..63320e061aec 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitterEx.java +++ b/platform/projectModel-api/src/com/intellij/openapi/components/StateSplitterEx.java @@ -14,6 +14,7 @@ import java.util.List; @SuppressWarnings("deprecation") public abstract class StateSplitterEx implements StateSplitter { + @NotNull @Override public abstract List> splitState(@NotNull Element state); @@ -22,7 +23,7 @@ public abstract class StateSplitterEx implements StateSplitter { } @Override - public final void mergeStatesInto(Element target, Element[] elements) { + public final void mergeStatesInto(@NotNull Element target, @NotNull Element[] elements) { throw new IllegalStateException(); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/module/ModuleWithNameAlreadyExists.java b/platform/projectModel-api/src/com/intellij/openapi/module/ModuleWithNameAlreadyExists.java index 7997cf8cc34e..86de727e0f92 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/module/ModuleWithNameAlreadyExists.java +++ b/platform/projectModel-api/src/com/intellij/openapi/module/ModuleWithNameAlreadyExists.java @@ -15,14 +15,18 @@ */ package com.intellij.openapi.module; +import org.jetbrains.annotations.NotNull; + public class ModuleWithNameAlreadyExists extends Exception { + @NotNull private final String myModuleName; - public ModuleWithNameAlreadyExists(final String message, final String moduleName) { + public ModuleWithNameAlreadyExists(@NotNull String message, @NotNull String moduleName) { super(message); myModuleName = moduleName; } + @NotNull public String getModuleName() { return myModuleName; } diff --git a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java index 1e92e45a0ee3..57d06d4e2d6f 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java +++ b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java @@ -21,10 +21,10 @@ public abstract class ProjectJdkTable { } @Nullable - public abstract Sdk findJdk(String name); + public abstract Sdk findJdk(@NotNull String name); @Nullable - public abstract Sdk findJdk(String name, String type); + public abstract Sdk findJdk(@NotNull String name, @NotNull String type); @NotNull public abstract Sdk[] getAllJdks(); @@ -39,7 +39,7 @@ public abstract class ProjectJdkTable { /** @deprecated comparing version strings across SDK types makes no sense; use {@link #findMostRecentSdkOfType} (to be removed in IDEA 2019) */ @Deprecated - public Sdk findMostRecentSdk(@NotNull Condition condition) { + public Sdk findMostRecentSdk(@NotNull Condition condition) { Sdk found = null; for (Sdk each : getAllJdks()) { if (condition.value(each) && diff --git a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkModificator.java b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkModificator.java index 1fd2484ddf86..c41a2c0bcf99 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkModificator.java +++ b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkModificator.java @@ -16,9 +16,10 @@ import org.jetbrains.annotations.Nullable; * Last, you must call {@link #commitChanges()} */ public interface SdkModificator { + @NotNull String getName(); - void setName(String name); + void setName(@NotNull String name); String getHomePath(); diff --git a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkTypeId.java b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkTypeId.java index 0592b1c7b046..7ef4e3f5c92f 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkTypeId.java +++ b/platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkTypeId.java @@ -21,7 +21,7 @@ public interface SdkTypeId { void saveAdditionalData(@NotNull SdkAdditionalData additionalData, @NotNull Element additional); @Nullable - SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, Element additional); + SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, @NotNull Element additional); /** * An SDK can be located on a local machine or on a remote or virtual machine. In the latter case this method returns false. @@ -33,6 +33,7 @@ public interface SdkTypeId { /** * Note to implementors: you may need to override this method if SDKs of this type have non-trivial version strings. */ + @NotNull default Comparator versionComparator() { return (sdk1, sdk2) -> { assert sdk1.getSdkType() == this : sdk1; diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ExternalProjectSystemRegistry.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ExternalProjectSystemRegistry.java index 0ab031360f25..931671f8220f 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ExternalProjectSystemRegistry.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ExternalProjectSystemRegistry.java @@ -31,7 +31,7 @@ public interface ExternalProjectSystemRegistry { } @NotNull - ProjectModelExternalSource getSourceById(String id); + ProjectModelExternalSource getSourceById(@NotNull String id); @Nullable ProjectModelExternalSource getExternalSource(@NotNull Module module); diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModifiableRootModel.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModifiableRootModel.java index 2abc2aa39a20..345a043dd4e7 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModifiableRootModel.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModifiableRootModel.java @@ -152,7 +152,7 @@ public interface ModifiableRootModel extends ModuleRootModel { boolean isWritable(); - void replaceEntryOfType(Class entryClass, T entry); + void replaceEntryOfType(@NotNull Class entryClass, T entry); @Nullable String getSdkName(); diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleOrderEntry.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleOrderEntry.java index a4c6ff66e0ab..c71ea235545d 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleOrderEntry.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleOrderEntry.java @@ -16,13 +16,16 @@ package com.intellij.openapi.roots; import com.intellij.openapi.module.Module; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author dsl */ public interface ModuleOrderEntry extends ExportableOrderEntry { - @Nullable Module getModule(); + @Nullable + Module getModule(); + @NotNull String getModuleName(); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootEvent.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootEvent.java index 524b6641674a..1939b82c58fa 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootEvent.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootEvent.java @@ -16,6 +16,7 @@ package com.intellij.openapi.roots; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; import java.util.EventObject; @@ -24,7 +25,7 @@ import java.util.EventObject; */ public abstract class ModuleRootEvent extends EventObject{ - protected ModuleRootEvent(final Project project) { + protected ModuleRootEvent(@NotNull Project project) { super(project); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootManager.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootManager.java index 6ae846488c9d..f815fe79cccf 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootManager.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootManager.java @@ -77,5 +77,5 @@ public abstract class ModuleRootManager implements ModuleRootModel, ProjectModel * @param module the module to check. * @return true if {@code module} is contained in the list of dependencies for the current module, false otherwise. */ - public abstract boolean isDependsOn(Module module); + public abstract boolean isDependsOn(@NotNull Module module); } \ No newline at end of file diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootModel.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootModel.java index 52489e256b3b..c9e27cd60898 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootModel.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootModel.java @@ -178,7 +178,7 @@ public interface ModuleRootModel { * @return the value returned by the visitor. * @see OrderEntry#accept(RootPolicy, Object) */ - R processOrder(RootPolicy policy, R initialValue); + R processOrder(@NotNull RootPolicy policy, R initialValue); /** * Returns {@link OrderEnumerator} instance which can be used to process order entries of the module (with or without dependencies) and diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleSourceOrderEntry.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleSourceOrderEntry.java index 93a86f3f8383..c9fa50ff496e 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleSourceOrderEntry.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ModuleSourceOrderEntry.java @@ -15,10 +15,13 @@ */ package com.intellij.openapi.roots; +import org.jetbrains.annotations.NotNull; + /** * Order entry for content source folders * @author dsl */ public interface ModuleSourceOrderEntry extends OrderEntry { + @NotNull ModuleRootModel getRootModel(); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/OrderEnumerationHandler.java b/platform/projectModel-api/src/com/intellij/openapi/roots/OrderEnumerationHandler.java index cf8273136fe2..861b9617df68 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/OrderEnumerationHandler.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/OrderEnumerationHandler.java @@ -40,6 +40,7 @@ public abstract class OrderEnumerationHandler { public abstract boolean isApplicable(@NotNull Module module); + @NotNull public abstract OrderEnumerationHandler createHandler(@NotNull Module module); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/OrderRootType.java b/platform/projectModel-api/src/com/intellij/openapi/roots/OrderRootType.java index 8fcab2e0c064..7bff8c9fa192 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/OrderRootType.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/OrderRootType.java @@ -20,9 +20,10 @@ public class OrderRootType { public static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.orderRootType"); - protected static PersistentOrderRootType[] ourPersistentOrderRootTypes = new PersistentOrderRootType[0]; + @NotNull + static PersistentOrderRootType[] ourPersistentOrderRootTypes = new PersistentOrderRootType[0]; - protected OrderRootType(String name) { + protected OrderRootType(@NotNull String name) { myName = name; } @@ -65,6 +66,7 @@ public class OrderRootType { } } + @NotNull public String name() { return myName; } @@ -79,10 +81,12 @@ public class OrderRootType { return false; } + @NotNull public static synchronized OrderRootType[] getAllTypes() { return getAllPersistentTypes(); } + @NotNull public static PersistentOrderRootType[] getAllPersistentTypes() { if (!ourExtensionsLoaded) { ourExtensionsLoaded = true; @@ -91,6 +95,7 @@ public class OrderRootType { return ourPersistentOrderRootTypes; } + @NotNull public static List getSortedRootTypes() { List allTypes = new ArrayList<>(); Collections.addAll(allTypes, getAllPersistentTypes()); @@ -111,10 +116,12 @@ public class OrderRootType { return null; } + @Override public final int hashCode() { return super.hashCode(); } + @Override public final boolean equals(Object obj) { return super.equals(obj); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/PersistentOrderRootType.java b/platform/projectModel-api/src/com/intellij/openapi/roots/PersistentOrderRootType.java index 2c76d08f76be..4126cefac80c 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/PersistentOrderRootType.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/PersistentOrderRootType.java @@ -16,8 +16,9 @@ package com.intellij.openapi.roots; -import org.jetbrains.annotations.NonNls; import com.intellij.util.ArrayUtil; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -28,7 +29,7 @@ public class PersistentOrderRootType extends OrderRootType { private final String myModulePathsName; private final String myOldSdkRootName; - protected PersistentOrderRootType(@NonNls String name, @NonNls @Nullable String sdkRootName, @NonNls @Nullable String modulePathsName, @Nullable @NonNls final String oldSdkRootName) { + protected PersistentOrderRootType(@NonNls @NotNull String name, @NonNls @Nullable String sdkRootName, @NonNls @Nullable String modulePathsName, @Nullable @NonNls final String oldSdkRootName) { super(name); mySdkRootName = sdkRootName; myModulePathsName = modulePathsName; diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java index d808f4790c10..b15723b3370e 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java @@ -70,6 +70,7 @@ public abstract class ProjectRootManager extends SimpleModificationTracker { * Unlike getContentRoots(), this includes the project base dir. Is this really necessary? * TODO: remove this method? */ + @NotNull public abstract VirtualFile[] getContentRootsFromAllModules(); /** diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/impl/FilePropertyPusher.java b/platform/projectModel-api/src/com/intellij/openapi/roots/impl/FilePropertyPusher.java index 26c421a52932..eed2df33fedf 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/impl/FilePropertyPusher.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/impl/FilePropertyPusher.java @@ -58,7 +58,7 @@ public interface FilePropertyPusher { interface Engine { void pushAll(); - void pushRecursively(VirtualFile vile, Project project); + void pushRecursively(@NotNull VirtualFile vile, @NotNull Project project); } void afterRootsChanged(@NotNull Project project); diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablePresentation.java b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablePresentation.java index 9aafb683fe97..22f11c2eacc9 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablePresentation.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablePresentation.java @@ -15,15 +15,20 @@ */ package com.intellij.openapi.roots.libraries; +import org.jetbrains.annotations.NotNull; + /** * @author peter */ public abstract class LibraryTablePresentation { + @NotNull public abstract String getDisplayName(boolean plural); + @NotNull public abstract String getDescription(); + @NotNull public abstract String getLibraryTableEditorTitle(); } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java index 29d864c884f2..7adcd29abb6e 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java @@ -58,5 +58,6 @@ public abstract class LibraryTablesRegistrar { */ public abstract void registerLibraryTable(@NotNull LibraryTable libraryTable); + @NotNull public abstract List getCustomLibraryTables(); } \ No newline at end of file diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java index 53fe2881d17c..1cfee5642ac4 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java @@ -26,13 +26,13 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.PathUtil; import com.intellij.util.containers.ContainerUtil; -import java.util.HashSet; import com.intellij.util.text.StringTokenizer; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Set; @@ -40,15 +40,15 @@ public class LibraryUtil { private LibraryUtil() { } - public static boolean isClassAvailableInLibrary(final Library library, final String fqn) { + public static boolean isClassAvailableInLibrary(@NotNull Library library, @NotNull String fqn) { return isClassAvailableInLibrary(library.getFiles(OrderRootType.CLASSES), fqn); } - public static boolean isClassAvailableInLibrary(VirtualFile[] files, final String fqn) { + public static boolean isClassAvailableInLibrary(@NotNull VirtualFile[] files, @NotNull String fqn) { return isClassAvailableInLibrary(Arrays.asList(files), fqn); } - public static boolean isClassAvailableInLibrary(List files, final String fqn) { + public static boolean isClassAvailableInLibrary(@NotNull List files, @NotNull String fqn) { for (VirtualFile file : files) { if (findInFile(file, new StringTokenizer(fqn, "."))) return true; } @@ -56,7 +56,7 @@ public class LibraryUtil { } @Nullable - public static Library findLibraryByClass(final String fqn, @Nullable Project project) { + public static Library findLibraryByClass(@NotNull String fqn, @Nullable Project project) { if (project != null) { final LibraryTable projectTable = LibraryTablesRegistrar.getInstance().getLibraryTable(project); Library library = findInTable(projectTable, fqn); @@ -69,7 +69,7 @@ public class LibraryUtil { } - private static boolean findInFile(VirtualFile file, final StringTokenizer tokenizer) { + private static boolean findInFile(@NotNull VirtualFile file, @NotNull StringTokenizer tokenizer) { if (!tokenizer.hasMoreTokens()) return true; @NonNls StringBuilder name = new StringBuilder(tokenizer.nextToken()); if (!tokenizer.hasMoreTokens()) { @@ -80,7 +80,7 @@ public class LibraryUtil { } @Nullable - private static Library findInTable(LibraryTable table, String fqn) { + private static Library findInTable(@NotNull LibraryTable table, @NotNull String fqn) { for (Library library : table.getLibraries()) { if (isClassAvailableInLibrary(library, fqn)) { return library; @@ -89,7 +89,8 @@ public class LibraryUtil { return null; } - public static Library createLibrary(final LibraryTable libraryTable, @NonNls final String baseName) { + @NotNull + public static Library createLibrary(@NotNull LibraryTable libraryTable, @NonNls @NotNull String baseName) { String name = baseName; int count = 2; while (libraryTable.getLibraryByName(name) != null) { @@ -98,15 +99,18 @@ public class LibraryUtil { return libraryTable.createLibrary(name); } - public static VirtualFile[] getLibraryRoots(final Project project) { + @NotNull + public static VirtualFile[] getLibraryRoots(@NotNull Project project) { return getLibraryRoots(project, true, true); } - public static VirtualFile[] getLibraryRoots(final Project project, final boolean includeSourceFiles, final boolean includeJdk) { + @NotNull + public static VirtualFile[] getLibraryRoots(@NotNull Project project, final boolean includeSourceFiles, final boolean includeJdk) { return getLibraryRoots(ModuleManager.getInstance(project).getModules(), includeSourceFiles, includeJdk); } - public static VirtualFile[] getLibraryRoots(final Module[] modules, final boolean includeSourceFiles, final boolean includeJdk) { + @NotNull + public static VirtualFile[] getLibraryRoots(@NotNull Module[] modules, final boolean includeSourceFiles, final boolean includeJdk) { Set roots = new HashSet<>(); for (Module module : modules) { final ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); @@ -147,8 +151,8 @@ public class LibraryUtil { return result.get(); } - @Nullable - public static OrderEntry findLibraryEntry(VirtualFile file, final Project project) { + @Nullable + public static OrderEntry findLibraryEntry(@NotNull VirtualFile file, @NotNull Project project) { List entries = ProjectRootManager.getInstance(project).getFileIndex().getOrderEntriesForFile(file); for (OrderEntry entry : entries) { if (entry instanceof LibraryOrderEntry || entry instanceof JdkOrderEntry) { diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/PersistentLibraryKind.java b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/PersistentLibraryKind.java index 138707aba253..a22b81b5c83f 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/PersistentLibraryKind.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/PersistentLibraryKind.java @@ -34,6 +34,7 @@ public abstract class PersistentLibraryKind

extends @NotNull public abstract P createDefaultProperties(); + @NotNull public OrderRootType[] getAdditionalRootTypes() { return new OrderRootType[0]; } diff --git a/platform/projectModel-impl/src/com/intellij/core/CoreProjectJdkTable.java b/platform/projectModel-impl/src/com/intellij/core/CoreProjectJdkTable.java index 256b7e642bf2..c4feee702dbd 100644 --- a/platform/projectModel-impl/src/com/intellij/core/CoreProjectJdkTable.java +++ b/platform/projectModel-impl/src/com/intellij/core/CoreProjectJdkTable.java @@ -31,7 +31,7 @@ public class CoreProjectJdkTable extends ProjectJdkTable { private final List mySdks = new ArrayList<>(); @Override - public Sdk findJdk(String name) { + public Sdk findJdk(@NotNull String name) { synchronized (mySdks) { for (Sdk jdk : mySdks) { if (Comparing.strEqual(name, jdk.getName())) { @@ -43,7 +43,7 @@ public class CoreProjectJdkTable extends ProjectJdkTable { } @Override - public Sdk findJdk(String name, String type) { + public Sdk findJdk(@NotNull String name, @NotNull String type) { return findJdk(name); } diff --git a/platform/projectModel-impl/src/com/intellij/core/CoreSdkType.java b/platform/projectModel-impl/src/com/intellij/core/CoreSdkType.java index 63d86aa87526..b284a680756f 100644 --- a/platform/projectModel-impl/src/com/intellij/core/CoreSdkType.java +++ b/platform/projectModel-impl/src/com/intellij/core/CoreSdkType.java @@ -46,7 +46,7 @@ public class CoreSdkType implements SdkTypeId { } @Override - public SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, Element additional) { + public SdkAdditionalData loadAdditionalData(@NotNull Sdk currentSdk, @NotNull Element additional) { return null; } } diff --git a/platform/projectModel-impl/src/com/intellij/ide/projectView/impl/ProjectRootsUtil.java b/platform/projectModel-impl/src/com/intellij/ide/projectView/impl/ProjectRootsUtil.java index ca1aead8e72f..ea5112acf88d 100644 --- a/platform/projectModel-impl/src/com/intellij/ide/projectView/impl/ProjectRootsUtil.java +++ b/platform/projectModel-impl/src/com/intellij/ide/projectView/impl/ProjectRootsUtil.java @@ -20,11 +20,11 @@ import org.jetbrains.annotations.Nullable; public class ProjectRootsUtil { private ProjectRootsUtil() { } - public static boolean isSourceRoot(final PsiDirectory psiDirectory) { + public static boolean isSourceRoot(@NotNull PsiDirectory psiDirectory) { return isSourceRoot(psiDirectory.getVirtualFile(), psiDirectory.getProject()); } - public static boolean isSourceRoot(final VirtualFile directoryFile, final Project project) { + public static boolean isSourceRoot(@NotNull VirtualFile directoryFile, @NotNull Project project) { final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); return directoryFile.equals(fileIndex.getSourceRootForFile(directoryFile)); } @@ -100,8 +100,7 @@ public class ProjectRootsUtil { return psiDirectory.getVirtualFile().equals(psiDirectory.getProject().getBaseDir()); } - public static boolean isOutsideSourceRoot(@Nullable PsiFile psiFile) { - if (psiFile == null) return false; + public static boolean isOutsideSourceRoot(@NotNull PsiFile psiFile) { if (psiFile instanceof PsiCodeFragment) return false; final VirtualFile file = psiFile.getVirtualFile(); if (file == null) return false; @@ -111,7 +110,7 @@ public class ProjectRootsUtil { @Nullable public static SourceFolder findSourceFolder(@NotNull Module module, @NotNull VirtualFile root) { - final ProjectFileIndexImpl index = ((ProjectFileIndexImpl)ProjectRootManager.getInstance(module.getProject()).getFileIndex()); + final ProjectFileIndexImpl index = (ProjectFileIndexImpl)ProjectRootManager.getInstance(module.getProject()).getFileIndex(); SourceFolder folder = index.getModuleForFile(root) == module ? index.getSourceFolder(root) : null; return folder != null && root.equals(folder.getFile()) ? folder : null; } diff --git a/platform/projectModel-impl/src/com/intellij/ide/util/PropertiesComponentImpl.java b/platform/projectModel-impl/src/com/intellij/ide/util/PropertiesComponentImpl.java index 22fc4e93a117..85457ff36473 100644 --- a/platform/projectModel-impl/src/com/intellij/ide/util/PropertiesComponentImpl.java +++ b/platform/projectModel-impl/src/com/intellij/ide/util/PropertiesComponentImpl.java @@ -24,15 +24,10 @@ public class PropertiesComponentImpl extends PropertiesComponent implements Pers @NonNls private static final String ATTRIBUTE_NAME = "name"; @NonNls private static final String ATTRIBUTE_VALUE = "value"; - @NotNull - public String getComponentName() { - return "PropertiesComponent"; - } - PropertiesComponentImpl() { } - private void doPut(String key, String value) { + private void doPut(@NotNull String key, @NotNull String value) { String reason = Verifier.checkCharacterData(key); if (reason != null) { LOG.error(reason); @@ -70,7 +65,7 @@ public class PropertiesComponentImpl extends PropertiesComponent implements Pers } @Override - public String getValue(String name) { + public String getValue(@NotNull String name) { return myMap.get(name); } @@ -125,25 +120,25 @@ public class PropertiesComponentImpl extends PropertiesComponent implements Pers } @Override - public void unsetValue(String name) { + public void unsetValue(@NotNull String name) { myMap.remove(name); incModificationCount(); } @Override - public boolean isValueSet(String name) { + public boolean isValueSet(@NotNull String name) { return myMap.containsKey(name); } @Nullable @Override - public String[] getValues(@NonNls String name) { + public String[] getValues(@NotNull @NonNls String name) { final String value = getValue(name); return value != null ? value.split("\n") : null; } @Override - public void setValues(@NonNls String name, String[] values) { + public void setValues(@NotNull @NonNls String name, String[] values) { if (values == null) { setValue(name, null); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/MockSdk.java b/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/MockSdk.java index ade47243ae7f..56680588448b 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/MockSdk.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/MockSdk.java @@ -134,7 +134,7 @@ public class MockSdk implements Sdk, SdkModificator { } @Override - public void setName(String name) { + public void setName(@NotNull String name) { myName = name; } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java b/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java index 9757700715a3..096660e8ce10 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java @@ -40,12 +40,12 @@ public class ProjectRootUtil { } @NotNull - private static PsiDirectory[] convertRoots(final Project project, VirtualFile[] roots) { + private static PsiDirectory[] convertRoots(@NotNull Project project, @NotNull VirtualFile[] roots) { return convertRoots(((PsiManagerImpl)PsiManager.getInstance(project)).getFileManager(), roots); } @NotNull - private static PsiDirectory[] convertRoots(final FileManager fileManager, VirtualFile[] roots) { + private static PsiDirectory[] convertRoots(@NotNull FileManager fileManager, @NotNull VirtualFile[] roots) { List dirs = new ArrayList<>(); for (VirtualFile root : roots) { @@ -62,13 +62,13 @@ public class ProjectRootUtil { } @NotNull - public static PsiDirectory[] getSourceRootDirectories(final Project project) { + public static PsiDirectory[] getSourceRootDirectories(@NotNull Project project) { VirtualFile[] files = OrderEnumerator.orderEntries(project).sources().usingCache().getRoots(); return convertRoots(project, files); } @NotNull - public static PsiDirectory[] getAllContentRoots(final Project project) { + public static PsiDirectory[] getAllContentRoots(@NotNull Project project) { VirtualFile[] files = ProjectRootManager.getInstance(project).getContentRootsFromAllModules(); return convertRoots(project, files); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentEntry.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentEntry.java index 81882f1d9476..15bddc29fb0f 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentEntry.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentEntry.java @@ -17,10 +17,12 @@ package com.intellij.openapi.roots.impl; import com.intellij.openapi.roots.ContentEntry; +import org.jetbrains.annotations.NotNull; /** * @author dsl */ public interface ClonableContentEntry { - ContentEntry cloneEntry(RootModelImpl rootModel); + @NotNull + ContentEntry cloneEntry(@NotNull RootModelImpl rootModel); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentFolder.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentFolder.java index ca75f5218c6c..f9aadabfd381 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentFolder.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentFolder.java @@ -18,10 +18,12 @@ package com.intellij.openapi.roots.impl; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ContentFolder; +import org.jetbrains.annotations.NotNull; /** * @author dsl */ public interface ClonableContentFolder { - ContentFolder cloneFolder(ContentEntry contentEntry); + @NotNull + ContentFolder cloneFolder(@NotNull ContentEntry contentEntry); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java index e0306e21e975..2a53c3f1942a 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java @@ -66,7 +66,8 @@ public abstract class ContentFolderBaseImpl extends RootModelComponentBase imple myFilePointer = VirtualFilePointerManager.getInstance().duplicate(filePointer,this, getRootModel().getRootsChangedListener()); } - private static String getUrlFrom(Element element) throws InvalidDataException { + @NotNull + private static String getUrlFrom(@NotNull Element element) throws InvalidDataException { String url = element.getAttributeValue(URL_ATTRIBUTE); if (url == null) throw new InvalidDataException(); return url; @@ -86,7 +87,7 @@ public abstract class ContentFolderBaseImpl extends RootModelComponentBase imple return myContentEntry; } - protected void writeFolder(Element element, String elementName) { + protected void writeFolder(@NotNull Element element, @NotNull String elementName) { LOG.assertTrue(element.getName().equals(elementName)); element.setAttribute(URL_ATTRIBUTE, myFilePointer.getUrl()); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java index 51720d98e0e5..0c19b2d1fcec 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java @@ -56,8 +56,9 @@ public class ExcludeFolderImpl extends ContentFolderBaseImpl implements Clonable writeFolder(element, ELEMENT_NAME); } + @NotNull @Override - public ContentFolder cloneFolder(ContentEntry contentEntry) { + public ContentFolder cloneFolder(@NotNull ContentEntry contentEntry) { return new ExcludeFolderImpl(this, (ContentEntryImpl)contentEntry); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/FileIndexBase.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/FileIndexBase.java index c66682740d10..bf0b3f13099f 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/FileIndexBase.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/FileIndexBase.java @@ -66,7 +66,7 @@ public abstract class FileIndexBase implements FileIndex { return iterateContentUnderDirectory(dir, processor, null); } - protected boolean isTestSourcesRoot(DirectoryInfo info) { + protected boolean isTestSourcesRoot(@NotNull DirectoryInfo info) { JpsModuleSourceRootType rootType = myDirectoryIndex.getSourceRootType(info); return rootType != null && rootType.isForTests(); } @@ -93,7 +93,7 @@ public abstract class FileIndexBase implements FileIndex { } @NotNull - protected static VirtualFile[][] getModuleContentAndSourceRoots(Module module) { + protected static VirtualFile[][] getModuleContentAndSourceRoots(@NotNull Module module) { return new VirtualFile[][]{ModuleRootManager.getInstance(module).getContentRoots(), ModuleRootManager.getInstance(module).getSourceRoots()}; } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java index 3f4ca25df8f4..36a2a5026145 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java @@ -74,7 +74,7 @@ public class InheritedJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implem } @Override - public void writeExternal(Element rootElement) throws WriteExternalException { + public void writeExternal(@NotNull Element rootElement) throws WriteExternalException { final Element orderEntryElement = OrderEntryFactory.createOrderEntryElement(ENTRY_TYPE); rootElement.addContent(orderEntryElement); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java index ef547c90dd8c..614231f307c2 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java @@ -250,7 +250,7 @@ class LibraryOrderEntryImpl extends LibraryOrderEntryBaseImpl implements Library } } - private void beforeLibraryRemoved(Library library) { + private void beforeLibraryRemoved(@NotNull Library library) { if (library == myLibrary) { myLibraryName = myLibrary.getName(); myLibraryLevel = myLibrary.getTable().getTableLevel(); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java index f9d334325f7d..1470192d8897 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java @@ -64,7 +64,7 @@ public class ModuleJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implement final String jdkName = jdkNameAttribute.getValue(); final String jdkType = element.getAttributeValue(JDK_TYPE_ATTR); - final Sdk jdkByName = findJdk(jdkName, jdkType); + final Sdk jdkByName = jdkType == null ? null : findJdk(jdkName, jdkType); if (jdkByName == null) { init(null, jdkName, jdkType); } @@ -74,7 +74,7 @@ public class ModuleJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implement } @Nullable - private static Sdk findJdk(final String sdkName, final String sdkType) { + private static Sdk findJdk(@NotNull String sdkName, @NotNull String sdkType) { for (SdkFinder sdkFinder : SdkFinder.EP_NAME.getExtensions()) { final Sdk sdk = sdkFinder.findSdk(sdkName, sdkType); if (sdk != null) { diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java index 4b9ff1b8174d..2be786a351ab 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java @@ -150,7 +150,7 @@ public class ModuleLibraryOrderEntryImpl extends LibraryOrderEntryBaseImpl imple } @Override - public void writeExternal(Element rootElement) throws WriteExternalException { + public void writeExternal(@NotNull Element rootElement) throws WriteExternalException { final Element element = OrderEntryFactory.createOrderEntryElement(ENTRY_TYPE); if (myExported) { element.setAttribute(EXPORTED_ATTR, ""); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryTable.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryTable.java index 28110219c8bc..5262fb8eb7b7 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryTable.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryTable.java @@ -22,7 +22,6 @@ import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.roots.LibraryOrderEntry; import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.roots.ProjectModelExternalSource; -import com.intellij.openapi.roots.impl.libraries.LibraryTableBase; import com.intellij.openapi.roots.impl.libraries.LibraryTableImplUtil; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; @@ -42,7 +41,7 @@ import java.util.Iterator; /** * @author dsl */ -public class ModuleLibraryTable implements LibraryTable, LibraryTableBase.ModifiableModel { +public class ModuleLibraryTable implements LibraryTable, LibraryTable.ModifiableModel { private static final ModuleLibraryOrderEntryCondition MODULE_LIBRARY_ORDER_ENTRY_FILTER = new ModuleLibraryOrderEntryCondition(); private static final OrderEntryToLibraryConvertor ORDER_ENTRY_TO_LIBRARY_CONVERTOR = new OrderEntryToLibraryConvertor(); @NotNull @@ -50,16 +49,19 @@ public class ModuleLibraryTable implements LibraryTable, LibraryTableBase.Modifi @NotNull private final ProjectRootManagerImpl myProjectRootManager; public static final LibraryTablePresentation MODULE_LIBRARY_TABLE_PRESENTATION = new LibraryTablePresentation() { + @NotNull @Override public String getDisplayName(boolean plural) { return ProjectBundle.message("module.library.display.name", plural ? 2 : 1); } + @NotNull @Override public String getDescription() { return ProjectBundle.message("libraries.node.text.module"); } + @NotNull @Override public String getLibraryTableEditorTitle() { return ProjectBundle.message("library.configure.module.title"); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java index 2162e4dbb2ce..e817aa7db42c 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java @@ -143,7 +143,7 @@ public class ModuleOrderEntryImpl extends OrderEntryBaseImpl implements ModuleOr } @Override - public void writeExternal(Element rootElement) throws WriteExternalException { + public void writeExternal(@NotNull Element rootElement) throws WriteExternalException { final Element element = OrderEntryFactory.createOrderEntryElement(ENTRY_TYPE); element.setAttribute(MODULE_NAME_ATTR, getModuleName()); if (myExported) { @@ -157,6 +157,7 @@ public class ModuleOrderEntryImpl extends OrderEntryBaseImpl implements ModuleOr } @Override + @NotNull public String getModuleName() { return myModulePointer.getModuleName(); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEnumerator.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEnumerator.java index dfc6169ea509..f64fc58df466 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEnumerator.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEnumerator.java @@ -23,6 +23,7 @@ import com.intellij.util.PairProcessor; import com.intellij.util.Processor; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -32,7 +33,7 @@ import java.util.List; public class ModuleOrderEnumerator extends OrderEnumeratorBase { private final ModuleRootModel myRootModel; - ModuleOrderEnumerator(@NotNull ModuleRootModel rootModel, OrderRootsCache cache) { + ModuleOrderEnumerator(@NotNull ModuleRootModel rootModel, @Nullable OrderRootsCache cache) { super(cache); myRootModel = rootModel; } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootEventImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootEventImpl.java index e0c02ae3dae1..0b35fb9a6d9a 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootEventImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootEventImpl.java @@ -18,6 +18,7 @@ package com.intellij.openapi.roots.impl; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootEvent; +import org.jetbrains.annotations.NotNull; /** * @author dsl @@ -25,7 +26,7 @@ import com.intellij.openapi.roots.ModuleRootEvent; public class ModuleRootEventImpl extends ModuleRootEvent { private final boolean myFiletypes; - public ModuleRootEventImpl(Project project, boolean filetypes) { + public ModuleRootEventImpl(@NotNull Project project, boolean filetypes) { super(project); myFiletypes = filetypes; } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java index 98aa40abce24..d27652e5be24 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java @@ -205,7 +205,7 @@ public class ModuleRootManagerImpl extends ModuleRootManagerEx implements Dispos } @Override - public boolean isDependsOn(Module module) { + public boolean isDependsOn(@NotNull Module module) { return myRootModel.findModuleOrderEntry(module) != null; } @@ -221,7 +221,7 @@ public class ModuleRootManagerImpl extends ModuleRootManagerEx implements Dispos } @Override - public R processOrder(RootPolicy policy, R initialValue) { + public R processOrder(@NotNull RootPolicy policy, R initialValue) { LOG.assertTrue(!myIsDisposed); return myRootModel.processOrder(policy, initialValue); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java index 27c3ab64aa49..25af597ec83f 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java @@ -51,7 +51,7 @@ public class ModuleSourceOrderEntryImpl extends OrderEntryBaseImpl implements Mo } @Override - public void writeExternal(Element rootElement) throws WriteExternalException { + public void writeExternal(@NotNull Element rootElement) throws WriteExternalException { Element element = OrderEntryFactory.createOrderEntryElement(ENTRY_TYPE); element.setAttribute(OrderEntryFactory.ORDER_ENTRY_TYPE_ATTR, ENTRY_TYPE); element.setAttribute(ATTRIBUTE_FOR_TESTS, Boolean.FALSE.toString()); // compatibility with prev builds diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryUtil.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryUtil.java index ff3d7ad1a6a1..119e2bda1144 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryUtil.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryUtil.java @@ -128,7 +128,7 @@ public class OrderEntryUtil { return true; } - public static void addLibraryToRoots(final LibraryOrderEntry libraryOrderEntry, final Module module) { + public static void addLibraryToRoots(@NotNull LibraryOrderEntry libraryOrderEntry, @NotNull Module module) { Library library = libraryOrderEntry.getLibrary(); if (library == null) return; addLibraryToRoots(module, library); @@ -191,7 +191,7 @@ public class OrderEntryUtil { replaceLibraryByAdded(model, i); } - private static void replaceLibraryByAdded(ModifiableRootModel model, int toReplace) { + private static void replaceLibraryByAdded(@NotNull ModifiableRootModel model, int toReplace) { OrderEntry[] entries = model.getOrderEntries(); LibraryOrderEntry newEntry = (LibraryOrderEntry)entries[entries.length - 1]; LibraryOrderEntry libraryEntry = (LibraryOrderEntry)entries[toReplace]; @@ -220,7 +220,8 @@ public class OrderEntryUtil { } } - public static DependencyScope intersectScopes(DependencyScope scope1, DependencyScope scope2) { + @NotNull + public static DependencyScope intersectScopes(@NotNull DependencyScope scope1, @NotNull DependencyScope scope2) { if (scope1 == scope2) return scope1; if (scope1 == DependencyScope.COMPILE) return scope2; if (scope2 == DependencyScope.COMPILE) return scope1; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEnumeratorBase.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEnumeratorBase.java index b293a44fdefc..8fc24d2debd8 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEnumeratorBase.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEnumeratorBase.java @@ -175,14 +175,15 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume return new OrderRootsEnumeratorImpl(this, rootTypeProvider); } - ModuleRootModel getRootModel(Module module) { + ModuleRootModel getRootModel(@NotNull Module module) { if (myModulesProvider != null) { return myModulesProvider.getRootModel(module); } return ModuleRootManager.getInstance(module); } - public OrderRootsCache getCache() { + @NotNull + OrderRootsCache getCache() { LOG.assertTrue(myCache != null, "Caching is not supported for ModifiableRootModel"); LOG.assertTrue(myCondition == null, "Caching not supported for OrderEnumerator with 'satisfying(Condition)' option"); LOG.assertTrue(myModulesProvider == null, "Caching not supported for OrderEnumerator with 'using(ModulesProvider)' option"); @@ -227,15 +228,17 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume } protected static class ProcessEntryAction { + @NotNull public ProcessEntryActionType type; @Nullable Module recurseOnModule; - private ProcessEntryAction(ProcessEntryActionType type) { + private ProcessEntryAction(@NotNull ProcessEntryActionType type) { this.type = type; } public static final ProcessEntryAction SKIP = new ProcessEntryAction(ProcessEntryActionType.SKIP); + @NotNull static ProcessEntryAction RECURSE(@NotNull Module module) { ProcessEntryAction result = new ProcessEntryAction(ProcessEntryActionType.RECURSE); result.recurseOnModule = module; @@ -245,7 +248,8 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume public static final ProcessEntryAction PROCESS = new ProcessEntryAction(ProcessEntryActionType.PROCESS); } - private ProcessEntryAction shouldAddOrRecurse(OrderEntry entry, boolean firstLevel, List customHandlers) { + @NotNull + private ProcessEntryAction shouldAddOrRecurse(@NotNull OrderEntry entry, boolean firstLevel, @NotNull List customHandlers) { if (myCondition != null && !myCondition.value(entry)) return ProcessEntryAction.SKIP; if (entry instanceof JdkOrderEntry && (myWithoutJdk || !firstLevel)) return ProcessEntryAction.SKIP; @@ -301,8 +305,8 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume return ProcessEntryAction.PROCESS; } - protected void processEntries(final ModuleRootModel rootModel, PairProcessor> processor, - Set processed, boolean firstLevel, final List customHandlers) { + protected void processEntries(@NotNull ModuleRootModel rootModel, @NotNull PairProcessor> processor, + @Nullable Set processed, boolean firstLevel, @NotNull List customHandlers) { if (processed != null && !processed.add(rootModel.getModule())) return; for (OrderEntry entry : rootModel.getOrderEntries()) { @@ -321,7 +325,7 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume } } - private static boolean shouldAddRuntimeDependenciesToTestCompilationClasspath(final List customHandlers) { + private static boolean shouldAddRuntimeDependenciesToTestCompilationClasspath(@NotNull List customHandlers) { for (OrderEnumerationHandler handler : customHandlers) { if (handler.shouldAddRuntimeDependenciesToTestCompilationClasspath()) { return true; @@ -330,7 +334,7 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume return false; } - private static boolean shouldProcessRecursively(final List customHandlers) { + private static boolean shouldProcessRecursively(@NotNull List customHandlers) { for (OrderEnumerationHandler handler : customHandlers) { if (!handler.shouldProcessDependenciesRecursively()) { return false; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsCache.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsCache.java index ac7383d27146..8357fd99d051 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsCache.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsCache.java @@ -57,6 +57,7 @@ class OrderRootsCache { } private static final VirtualFilePointerContainer EMPTY = ObjectUtils.sentinel("Empty roots container", VirtualFilePointerContainer.class); + @NotNull private VirtualFilePointerContainer setCachedRoots(@NotNull CacheKey key, @NotNull Collection urls) { // optimization: avoid creating heavy container for empty list, use 'EMPTY' stub for that case VirtualFilePointerContainer container; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsEnumeratorImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsEnumeratorImpl.java index 489d53844f16..9dcb7f72e39d 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsEnumeratorImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsEnumeratorImpl.java @@ -61,10 +61,8 @@ class OrderRootsEnumeratorImpl implements OrderRootsEnumerator { if (myUsingCache) { checkCanUseCache(); final OrderRootsCache cache = myOrderEnumerator.getCache(); - if (cache != null) { - final int flags = myOrderEnumerator.getFlags(); - return cache.getOrComputeRoots(myRootType, flags, this::computeRootsUrls); - } + final int flags = myOrderEnumerator.getFlags(); + return cache.getOrComputeRoots(myRootType, flags, this::computeRootsUrls); } return VfsUtilCore.toVirtualFileArray(computeRoots()); @@ -76,10 +74,8 @@ class OrderRootsEnumeratorImpl implements OrderRootsEnumerator { if (myUsingCache) { checkCanUseCache(); final OrderRootsCache cache = myOrderEnumerator.getCache(); - if (cache != null) { - final int flags = myOrderEnumerator.getFlags(); - return cache.getOrComputeUrls(myRootType, flags, this::computeRootsUrls); - } + final int flags = myOrderEnumerator.getFlags(); + return cache.getOrComputeUrls(myRootType, flags, this::computeRootsUrls); } return ArrayUtil.toStringArray(computeRootsUrls()); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java index 96aa675359f5..1b7eb34c4779 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java @@ -182,6 +182,7 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Pers return new ModulesOrderEnumerator(modules); } + @NotNull @Override public VirtualFile[] getContentRootsFromAllModules() { List result = new ArrayList<>(); @@ -196,7 +197,9 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Pers @Override public Sdk getProjectSdk() { - return myProjectSdkName == null ? null : ProjectJdkTable.getInstance().findJdk(myProjectSdkName, myProjectSdkType); + return myProjectSdkName == null ? null : + myProjectSdkType == null ? ProjectJdkTable.getInstance().findJdk(myProjectSdkName) : + ProjectJdkTable.getInstance().findJdk(myProjectSdkName, myProjectSdkType); } @Override diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelBase.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelBase.java index 760656a2b88e..fb3ea2312adf 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelBase.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelBase.java @@ -167,7 +167,7 @@ public abstract class RootModelBase implements ModuleRootModel { } @Override - public R processOrder(RootPolicy policy, R initialValue) { + public R processOrder(@NotNull RootPolicy policy, R initialValue) { R result = initialValue; for (OrderEntry orderEntry : getOrderEntries()) { result = orderEntry.accept(policy, result); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SdkFinder.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SdkFinder.java index 7d5674a228a0..526a3d0a2c57 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SdkFinder.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SdkFinder.java @@ -17,13 +17,14 @@ package com.intellij.openapi.roots.impl; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.projectRoots.Sdk; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public abstract class SdkFinder { public static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.sdkFinder"); @Nullable - public Sdk findSdk(String name, String sdkType) { + public Sdk findSdk(@NotNull String name, @NotNull String sdkType) { return null; } } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java index c23a09c048f1..7cdb8d241999 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java @@ -95,8 +95,9 @@ public class SourceFolderImpl extends ContentFolderBaseImpl implements SourceFol return myJpsElement.getRootType(); } + @NotNull @Override - public ContentFolder cloneFolder(ContentEntry contentEntry) { + public ContentFolder cloneFolder(@NotNull ContentEntry contentEntry) { assert !((ContentEntryImpl)contentEntry).isDisposed() : "target entry already disposed: " + contentEntry; assert !isDisposed() : "Already disposed: " + this; return new SourceFolderImpl(this, (ContentEntryImpl)contentEntry); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/WritableOrderEntry.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/WritableOrderEntry.java index d19fb06ac2aa..8865b6fcd084 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/WritableOrderEntry.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/WritableOrderEntry.java @@ -18,10 +18,11 @@ package com.intellij.openapi.roots.impl; import com.intellij.openapi.util.WriteExternalException; import org.jdom.Element; +import org.jetbrains.annotations.NotNull; /** * @author dsl */ interface WritableOrderEntry { - void writeExternal(Element rootElement) throws WriteExternalException; + void writeExternal(@NotNull Element rootElement) throws WriteExternalException; } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java index 7df3ec6f9d0f..20948f59da1a 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java @@ -27,16 +27,19 @@ import org.jetbrains.annotations.NotNull; */ public class ApplicationLibraryTable extends LibraryTableBase { private static final LibraryTablePresentation GLOBAL_LIBRARY_TABLE_PRESENTATION = new LibraryTablePresentation() { + @NotNull @Override public String getDisplayName(boolean plural) { return ProjectBundle.message("global.library.display.name", plural ? 2 : 1); } + @NotNull @Override public String getDescription() { return ProjectBundle.message("libraries.node.text.ide"); } + @NotNull @Override public String getLibraryTableEditorTitle() { return ProjectBundle.message("library.configure.global.title"); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java index 18fb371040ff..35f7854cd648 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java @@ -111,7 +111,7 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi } @Nullable - private static ProjectModelExternalSource findExternalSource(Element element) { + private static ProjectModelExternalSource findExternalSource(@NotNull Element element) { @Nullable String externalSourceId = element.getAttributeValue(SerializationConstants.EXTERNAL_SYSTEM_ID_ATTRIBUTE); return externalSourceId != null ? ExternalProjectSystemRegistry.getInstance().getSourceById(externalSourceId) : null; } @@ -282,7 +282,7 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi // just to maintain .xml compatibility // VirtualFilePointerContainerImpl does the same but stores its jar dirs attributes inside element @Deprecated // todo to remove sometime later - private void readJarDirectories(Element element) { + private void readJarDirectories(@NotNull Element element) { final List jarDirs = element.getChildren(VirtualFilePointerContainerImpl.JAR_DIRECTORY_ELEMENT); for (Element jarDir : jarDirs) { final String url = jarDir.getAttributeValue(VirtualFilePointerContainerImpl.URL_ATTR); @@ -296,6 +296,7 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi } } + @NotNull private static OrderRootType getJarDirectoryRootType(@Nullable String type) { for (PersistentOrderRootType rootType : OrderRootType.getAllPersistentTypes()) { if (rootType.name().equals(type)) { @@ -305,7 +306,7 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi return DEFAULT_JAR_DIRECTORY_TYPE; } - private void readProperties(Element element) { + private void readProperties(@NotNull Element element) { final String typeId = element.getAttributeValue(LIBRARY_TYPE_ATTR); if (typeId == null) return; @@ -421,7 +422,7 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi // just to maintain .xml compatibility // VirtualFilePointerContainerImpl does the same but stores its jar dirs attributes inside element @Deprecated // todo to remove sometime later - private void writeJarDirectories(Element element) { + private void writeJarDirectories(@NotNull Element element) { final List rootTypes = sortRootTypes(myRoots.keySet()); for (OrderRootType rootType : rootTypes) { VirtualFilePointerContainer container = myRoots.get(rootType); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTablesRegistrarImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTablesRegistrarImpl.java index 4ad05a52df90..52cf5f717093 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTablesRegistrarImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTablesRegistrarImpl.java @@ -57,6 +57,7 @@ public class LibraryTablesRegistrarImpl extends LibraryTablesRegistrar implement } } + @NotNull @Override public List getCustomLibraryTables() { return new SmartList<>(myLibraryTables.values()); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ProjectLibraryTable.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ProjectLibraryTable.java index 07e5ab681a11..d1ec17bb83d6 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ProjectLibraryTable.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ProjectLibraryTable.java @@ -4,11 +4,13 @@ package com.intellij.openapi.roots.impl.libraries; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.libraries.LibraryTable; +import org.jetbrains.annotations.NotNull; public interface ProjectLibraryTable extends LibraryTable { static LibraryTable getInstance(Project project) { return ServiceManager.getService(project, ProjectLibraryTable.class); } + @NotNull Project getProject(); } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/JpsOrderEntryFactory.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/JpsOrderEntryFactory.java index 2d010ed97ccd..0b83fe2e6cf0 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/JpsOrderEntryFactory.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/JpsOrderEntryFactory.java @@ -16,30 +16,29 @@ package com.intellij.project.model.impl.module; import com.intellij.project.model.impl.module.dependencies.*; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.module.*; /** * @author nik */ public class JpsOrderEntryFactory { - public static JpsOrderEntry createOrderEntry(JpsRootModel model, JpsDependencyElement dependencyElement) { + public static JpsOrderEntry createOrderEntry(@NotNull JpsRootModel model, JpsDependencyElement dependencyElement) { if (dependencyElement instanceof JpsModuleSourceDependency) { return new JpsModuleSourceOrderEntry(model, (JpsModuleSourceDependency)dependencyElement); } - else if (dependencyElement instanceof JpsModuleDependency) { + if (dependencyElement instanceof JpsModuleDependency) { return new JpsModuleOrderEntry(model, (JpsModuleDependency)dependencyElement); } - else if (dependencyElement instanceof JpsLibraryDependency) { + if (dependencyElement instanceof JpsLibraryDependency) { return new JpsLibraryOrderEntry(model, (JpsLibraryDependency)dependencyElement); } - else if (dependencyElement instanceof JpsSdkDependency) { + if (dependencyElement instanceof JpsSdkDependency) { final JpsSdkDependency sdkDependency = (JpsSdkDependency)dependencyElement; if (sdkDependency.isInherited()) { return new JpsInheritedSdkOrderEntry(model, sdkDependency); } - else { - return new JpsModuleSdkOrderEntry(model, sdkDependency); - } + return new JpsModuleSdkOrderEntry(model, sdkDependency); } throw new UnsupportedOperationException(); } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsExportableOrderEntry.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsExportableOrderEntry.java index 3944484c44c8..2ba7616617b1 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsExportableOrderEntry.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsExportableOrderEntry.java @@ -29,7 +29,7 @@ import org.jetbrains.jps.model.module.JpsDependencyElement; * @author nik */ public abstract class JpsExportableOrderEntry extends JpsOrderEntry implements ExportableOrderEntry { - public JpsExportableOrderEntry(JpsRootModel rootModel, E dependencyElement) { + public JpsExportableOrderEntry(@NotNull JpsRootModel rootModel, @NotNull E dependencyElement) { super(rootModel, dependencyElement); } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsInheritedSdkOrderEntry.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsInheritedSdkOrderEntry.java index df2729595050..7008c3190f45 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsInheritedSdkOrderEntry.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsInheritedSdkOrderEntry.java @@ -26,7 +26,7 @@ import org.jetbrains.jps.model.module.JpsSdkDependency; * @author nik */ public class JpsInheritedSdkOrderEntry extends JpsSdkOrderEntryBase implements InheritedJdkOrderEntry { - public JpsInheritedSdkOrderEntry(JpsRootModel rootModel, JpsSdkDependency dependencyElement) { + public JpsInheritedSdkOrderEntry(@NotNull JpsRootModel rootModel, @NotNull JpsSdkDependency dependencyElement) { super(rootModel, dependencyElement); } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsLibraryOrderEntry.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsLibraryOrderEntry.java index 0b5325e88ac7..7b2046936450 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsLibraryOrderEntry.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsLibraryOrderEntry.java @@ -37,7 +37,7 @@ import org.jetbrains.jps.model.module.JpsModule; * @author nik */ public class JpsLibraryOrderEntry extends JpsExportableOrderEntry implements LibraryOrderEntry { - public JpsLibraryOrderEntry(JpsRootModel rootModel, JpsLibraryDependency dependencyElement) { + public JpsLibraryOrderEntry(@NotNull JpsRootModel rootModel, @NotNull JpsLibraryDependency dependencyElement) { super(rootModel, dependencyElement); } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleOrderEntry.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleOrderEntry.java index 0ecd0d307d7a..540d4fe56dd5 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleOrderEntry.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleOrderEntry.java @@ -32,7 +32,7 @@ import org.jetbrains.jps.model.module.JpsModuleDependency; * @author nik */ public class JpsModuleOrderEntry extends JpsExportableOrderEntry implements ModuleOrderEntry { - public JpsModuleOrderEntry(JpsRootModel rootModel, JpsModuleDependency dependencyElement) { + public JpsModuleOrderEntry(@NotNull JpsRootModel rootModel, JpsModuleDependency dependencyElement) { super(rootModel, dependencyElement); } @@ -41,6 +41,7 @@ public class JpsModuleOrderEntry extends JpsExportableOrderEntry implements ModuleSourceOrderEntry { - public JpsModuleSourceOrderEntry(JpsRootModel rootModel, JpsModuleSourceDependency dependencyElement) { + public JpsModuleSourceOrderEntry(@NotNull JpsRootModel rootModel, @NotNull JpsModuleSourceDependency dependencyElement) { super(rootModel, dependencyElement); } @@ -74,6 +74,7 @@ public class JpsModuleSourceOrderEntry extends JpsOrderEntry implements OrderEntry { + @NotNull protected final JpsRootModel myRootModel; + @NotNull protected final E myDependencyElement; - protected JpsOrderEntry(JpsRootModel rootModel, E dependencyElement) { + protected JpsOrderEntry(@NotNull JpsRootModel rootModel, @NotNull E dependencyElement) { myRootModel = rootModel; myDependencyElement = dependencyElement; } diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsSdkOrderEntryBase.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsSdkOrderEntryBase.java index 81b2ce7d8f03..0516e69e3c43 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsSdkOrderEntryBase.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsSdkOrderEntryBase.java @@ -31,7 +31,7 @@ import org.jetbrains.jps.model.module.JpsSdkDependency; * @author nik */ public abstract class JpsSdkOrderEntryBase extends JpsOrderEntry implements JdkOrderEntry { - public JpsSdkOrderEntryBase(JpsRootModel rootModel, JpsSdkDependency dependencyElement) { + public JpsSdkOrderEntryBase(@NotNull JpsRootModel rootModel, @NotNull JpsSdkDependency dependencyElement) { super(rootModel, dependencyElement); } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/execution/PlainTextView.java b/plugins/ant/src/com/intellij/lang/ant/config/execution/PlainTextView.java index 558cddbfa8d3..185104b21448 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/execution/PlainTextView.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/execution/PlainTextView.java @@ -154,7 +154,7 @@ public final class PlainTextView implements AntOutputView { private final class JUnitFilter implements Filter { @Override @Nullable - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { HyperlinkUtil.PlaceInfo placeInfo = HyperlinkUtil.parseJUnitMessage(myProject, line); if (placeInfo == null) { return null; @@ -171,7 +171,7 @@ public final class PlainTextView implements AntOutputView { private final class AntMessageFilter implements Filter { @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { int afterLineNumberIndex = line.indexOf(": "); // end of file_name_and_line_number sequence if (afterLineNumberIndex == -1) { return null; diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/MigrateRootDialog.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/MigrateRootDialog.java index e0706d31c6b1..f21e2ccf622d 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/MigrateRootDialog.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/MigrateRootDialog.java @@ -28,6 +28,7 @@ import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.EmptyBorder; @@ -60,7 +61,7 @@ public class MigrateRootDialog extends DialogWrapper { myDirectoryField.setText(directory.getPath()); final FileChooserDescriptor descriptor = new FileChooserDescriptor(false, true, false, false, false, false) { @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { for (VirtualFile vFile : files) { final File file = CvsVfsUtil.getFileFor(vFile); final String root = CvsUtil.loadRootFrom(file); diff --git a/plugins/devkit/devkit-core/src/projectRoots/IdeaJdk.java b/plugins/devkit/devkit-core/src/projectRoots/IdeaJdk.java index ae68a8d3758b..54898c5de7e3 100644 --- a/plugins/devkit/devkit-core/src/projectRoots/IdeaJdk.java +++ b/plugins/devkit/devkit-core/src/projectRoots/IdeaJdk.java @@ -531,7 +531,7 @@ public class IdeaJdk extends JavaDependentSdkType implements JavaSdkType { } @Override - public SdkAdditionalData loadAdditionalData(@NotNull Sdk sdk, Element additional) { + public SdkAdditionalData loadAdditionalData(@NotNull Sdk sdk, @NotNull Element additional) { Sandbox sandbox = new Sandbox(sdk); try { sandbox.readExternal(additional); diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseClasspathStorageProvider.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseClasspathStorageProvider.java index 5022f55338b7..a0401f804294 100644 --- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseClasspathStorageProvider.java +++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseClasspathStorageProvider.java @@ -46,12 +46,14 @@ import java.io.IOException; public class EclipseClasspathStorageProvider implements ClasspathStorageProvider { public static final String DESCR = EclipseBundle.message("eclipse.classpath.storage.description"); + @NotNull @Override @NonNls public String getID() { return JpsEclipseClasspathSerializer.CLASSPATH_STORAGE_ID; } + @NotNull @Override @Nls public String getDescription() { @@ -59,7 +61,7 @@ public class EclipseClasspathStorageProvider implements ClasspathStorageProvider } @Override - public void assertCompatible(final ModuleRootModel model) throws ConfigurationException { + public void assertCompatible(@NotNull final ModuleRootModel model) throws ConfigurationException { final String moduleName = model.getModule().getName(); for (OrderEntry entry : model.getOrderEntries()) { if (entry instanceof LibraryOrderEntry) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilter.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilter.java index dade9e84cccc..cd8a5a58660e 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilter.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilter.java @@ -26,6 +26,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; @@ -47,7 +48,7 @@ public class GradleConsoleFilter implements Filter { @Nullable @Override - public Result applyFilter(final String line, final int entireLength) { + public Result applyFilter(@NotNull final String line, final int entireLength) { String[] filePrefixes = new String[]{"Build file '", "build file '"}; String[] linePrefixes = new String[]{"' line: ", "': "}; String filePrefix = null; diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilterProvider.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilterProvider.java index a55895952191..523593ea5a29 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilterProvider.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilterProvider.java @@ -42,7 +42,7 @@ public class GradleConsoleFilterProvider implements ConsoleFilterProvider { () -> CachedValueProvider.Result.create(isGradleProject(), ProjectRootModificationTracker.getInstance(project))); @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { if (line == null || !FileUtil.isAbsolutePlatformIndependent(line)) return null; if (Boolean.FALSE.equals(myIsGradleProject.getValue())) return null; Result result = super.applyFilter(line, entireLength); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleOrderEnumeratorHandler.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleOrderEnumeratorHandler.java index 54319f771e20..9861535700c4 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleOrderEnumeratorHandler.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleOrderEnumeratorHandler.java @@ -71,6 +71,7 @@ public class GradleOrderEnumeratorHandler extends OrderEnumerationHandler { return ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, module); } + @NotNull @Override public GradleOrderEnumeratorHandler createHandler(@NotNull Module module) { for (FactoryImpl factory : EP_NAME.getExtensions()) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/filters/GradleReRunBuildFilter.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/filters/GradleReRunBuildFilter.java index 8c8cf9ad6d6e..7f57863fe573 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/filters/GradleReRunBuildFilter.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/filters/GradleReRunBuildFilter.java @@ -43,7 +43,7 @@ public abstract class GradleReRunBuildFilter implements Filter { } @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { if (line == null) { return null; } diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/ui/HgInitDialog.java b/plugins/hg4idea/src/org/zmlx/hg4idea/ui/HgInitDialog.java index dbc336ed2367..e7c831235c9b 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/ui/HgInitDialog.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/ui/HgInitDialog.java @@ -9,6 +9,7 @@ import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.vcsUtil.VcsUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.zmlx.hg4idea.HgVcsMessages; import org.zmlx.hg4idea.util.HgUtil; @@ -48,7 +49,7 @@ public class HgInitDialog extends DialogWrapper { myFileDescriptor = new FileChooserDescriptor(false, true, false, false, false, false) { @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { if (HgUtil.isHgRoot(files[0])) { throw new ConfigurationException(HgVcsMessages.message("hg4idea.init.this.is.hg.root", files[0].getPresentableUrl())); } diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitExternalLibraryDescriptor.java b/plugins/junit/src/com/intellij/execution/junit/JUnitExternalLibraryDescriptor.java index ba7938214055..04cc0db87074 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitExternalLibraryDescriptor.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitExternalLibraryDescriptor.java @@ -16,6 +16,7 @@ package com.intellij.execution.junit; import com.intellij.openapi.roots.ExternalLibraryDescriptor; +import org.jetbrains.annotations.NotNull; /** * @author nik @@ -39,6 +40,7 @@ public class JUnitExternalLibraryDescriptor extends ExternalLibraryDescriptor { myVersion = version; } + @NotNull @Override public String getPresentableName() { return "JUnit" + myVersion; diff --git a/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerIndexerImpl.java b/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerIndexerImpl.java index c0bc3e87518d..87c90ca7a63a 100644 --- a/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerIndexerImpl.java +++ b/plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerIndexerImpl.java @@ -29,14 +29,12 @@ import org.apache.maven.archetype.source.ArchetypeDataSource; import org.apache.maven.archetype.source.ArchetypeDataSourceException; import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.execution.MavenExecutionRequest; -import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.repository.RepositorySystem; import org.apache.maven.wagon.events.TransferEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.model.MavenArchetype; import org.jetbrains.idea.maven.model.MavenArtifactInfo; -import org.sonatype.nexus.artifact.IllegalArtifactCoordinateException; import org.sonatype.nexus.index.*; import org.sonatype.nexus.index.context.IndexUtils; import org.sonatype.nexus.index.context.IndexingContext; @@ -44,7 +42,6 @@ import org.sonatype.nexus.index.creator.JarFileContentsIndexCreator; import org.sonatype.nexus.index.creator.MinimalArtifactInfoIndexCreator; import org.sonatype.nexus.index.updater.IndexUpdateRequest; import org.sonatype.nexus.index.updater.IndexUpdater; -import org.apache.maven.shared.dependency.tree.DependencyNode; import java.io.File; import java.io.IOException; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenOrderEnumeratorHandler.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenOrderEnumeratorHandler.java index 08cf82377e21..c972ced94e23 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenOrderEnumeratorHandler.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenOrderEnumeratorHandler.java @@ -29,6 +29,7 @@ public class MavenOrderEnumeratorHandler extends OrderEnumerationHandler { return manager.isMavenizedModule(module); } + @NotNull @Override public OrderEnumerationHandler createHandler(@NotNull Module module) { return INSTANCE; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/AbstractMavenConsoleFilter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/AbstractMavenConsoleFilter.java index 430c1693a35e..529c9eafa026 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/AbstractMavenConsoleFilter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/AbstractMavenConsoleFilter.java @@ -11,6 +11,7 @@ import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.JBColor; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; @@ -35,7 +36,7 @@ public abstract class AbstractMavenConsoleFilter implements Filter { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { if (!lightCheck(line)) return null; Matcher matcher = myPattern.matcher(line); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java index 333fbb4dcf27..acedc4518a3f 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java @@ -19,6 +19,7 @@ import com.intellij.execution.filters.Filter; import com.intellij.execution.filters.HyperlinkInfo; import com.intellij.ide.actions.ShowFilePathAction; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; @@ -34,7 +35,7 @@ public class MavenTestConsoleFilter implements Filter { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { Matcher matcherReportDir = REPORT_DIR_PATTERN.matcher(line); if (matcherReportDir.matches()) { final String path = matcherReportDir.group(1); diff --git a/plugins/testng/src/com/theoryinpractice/testng/inspection/JUnitConvertTool.java b/plugins/testng/src/com/theoryinpractice/testng/inspection/JUnitConvertTool.java index 31ab5477188d..4d25f59efff9 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/inspection/JUnitConvertTool.java +++ b/plugins/testng/src/com/theoryinpractice/testng/inspection/JUnitConvertTool.java @@ -241,7 +241,7 @@ public class JUnitConvertTool extends AbstractBaseJavaLocalInspectionTool { private static PsiMethodCallExpression[] getTestCaseCalls(PsiMethod method) { PsiElement[] methodCalls = PsiTreeUtil.collectElements(method, new PsiElementFilter() { @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { if (!(element instanceof PsiMethodCallExpression)) return false; final PsiMethodCallExpression methodCall = (PsiMethodCallExpression)element; final PsiMethod method = methodCall.resolveMethod(); diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/CustomRegexpFilter.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/CustomRegexpFilter.java index 05442f6b4b06..188ffa944bf5 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/CustomRegexpFilter.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/CustomRegexpFilter.java @@ -30,6 +30,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.util.io.URLUtil; +import org.jetbrains.annotations.NotNull; import java.io.File; import java.net.MalformedURLException; @@ -161,7 +162,7 @@ public class CustomRegexpFilter implements Filter { return expression; } - public Result applyFilter(final String line, final int entireLength) { + public Result applyFilter(@NotNull final String line, final int entireLength) { final Matcher matcher = myPattern.matcher(line); if (matcher.find()) { diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java index eb7fb3d7f585..9bc869f862b9 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java @@ -42,7 +42,7 @@ import java.util.*; public class XsltCodeInsightUtil { public static final PsiElementFilter XSLT_PARAM_FILTER = new PsiElementFilter() { @Override - public boolean isAccepted(PsiElement element) { + public boolean isAccepted(@NotNull PsiElement element) { return element instanceof XmlTag && XsltSupport.isParam((XmlTag)element); } }; diff --git a/python/ide/src/com/jetbrains/python/PythonSdkConfigurator.kt b/python/ide/src/com/jetbrains/python/PythonSdkConfigurator.kt index c9ab76d05227..7b14bf053730 100644 --- a/python/ide/src/com/jetbrains/python/PythonSdkConfigurator.kt +++ b/python/ide/src/com/jetbrains/python/PythonSdkConfigurator.kt @@ -78,7 +78,7 @@ class PythonSdkConfigurator : DirectoryProjectConfigurator { } findDetectedSystemWideSdk(module, existingSdks)?.let { - SdkConfigurationUtil.createAndAddSDK(it.homePath, PythonSdkType.getInstance())?.apply { + SdkConfigurationUtil.createAndAddSDK(it.homePath!!, PythonSdkType.getInstance())?.apply { SdkConfigurationUtil.setDirectoryProjectSdk(project, this) } } diff --git a/python/src/com/jetbrains/python/console/PyDebugConsoleBuilder.java b/python/src/com/jetbrains/python/console/PyDebugConsoleBuilder.java index 26982250327f..b505c99f0ace 100644 --- a/python/src/com/jetbrains/python/console/PyDebugConsoleBuilder.java +++ b/python/src/com/jetbrains/python/console/PyDebugConsoleBuilder.java @@ -27,6 +27,7 @@ public class PyDebugConsoleBuilder extends TextConsoleBuilder { mySdk = sdk; } + @NotNull @Override public ConsoleView getConsole() { final ConsoleView consoleView = createConsole(); diff --git a/python/src/com/jetbrains/python/remote/PythonRemoteInterpreterManager.java b/python/src/com/jetbrains/python/remote/PythonRemoteInterpreterManager.java index d7d52ee42de9..4387c12ce801 100644 --- a/python/src/com/jetbrains/python/remote/PythonRemoteInterpreterManager.java +++ b/python/src/com/jetbrains/python/remote/PythonRemoteInterpreterManager.java @@ -170,6 +170,7 @@ public abstract class PythonRemoteInterpreterManager implements PyRemoteFilesCho @NotNull PyRemoteSdkAdditionalDataBase data, @Nullable PyRemotePathMapper pathMapper); + @NotNull public abstract SdkAdditionalData loadRemoteSdkData(Sdk sdk, Element additional); public abstract PyConsoleProcessHandler createConsoleProcessHandler(@NotNull Process process, diff --git a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java index c1119bd3d7ea..8ae17b022607 100644 --- a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java @@ -146,7 +146,7 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { ((ConsoleView)console).addMessageFilter(new Filter() { @Nullable @Override - public Result applyFilter(String line, int entireLength) { + public Result applyFilter(@NotNull String line, int entireLength) { int position = line.indexOf(INPUT_FILE_MESSAGE); if (position >= 0) { VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(filePath)); diff --git a/python/src/com/jetbrains/python/sdk/PythonSdkType.java b/python/src/com/jetbrains/python/sdk/PythonSdkType.java index a09019d32085..6c71307e2c07 100644 --- a/python/src/com/jetbrains/python/sdk/PythonSdkType.java +++ b/python/src/com/jetbrains/python/sdk/PythonSdkType.java @@ -201,7 +201,7 @@ public final class PythonSdkType extends SdkType { final boolean isWindows = SystemInfo.isWindows; return new FileChooserDescriptor(true, false, false, false, false, false) { @Override - public void validateSelectedFiles(VirtualFile[] files) throws Exception { + public void validateSelectedFiles(@NotNull VirtualFile[] files) throws Exception { if (files.length != 0) { if (!isValidSdkHome(files[0].getPath())) { throw new Exception(PyBundle.message("sdk.error.invalid.interpreter.name.$0", files[0].getName())); @@ -414,7 +414,7 @@ public final class PythonSdkType extends SdkType { } @Override - public SdkAdditionalData loadAdditionalData(@NotNull final Sdk currentSdk, @Nullable final Element additional) { + public SdkAdditionalData loadAdditionalData(@NotNull final Sdk currentSdk, @NotNull final Element additional) { if (RemoteSdkCredentialsHolder.isRemoteSdk(currentSdk.getHomePath())) { PythonRemoteInterpreterManager manager = PythonRemoteInterpreterManager.getInstance(); if (manager != null) { @@ -422,11 +422,9 @@ public final class PythonSdkType extends SdkType { } } // TODO: Extract loading additional SDK data into a Python SDK provider - if (additional != null) { - final PyPipEnvSdkAdditionalData pipEnvData = PyPipEnvSdkAdditionalData.load(additional); - if (pipEnvData != null) { - return pipEnvData; - } + final PyPipEnvSdkAdditionalData pipEnvData = PyPipEnvSdkAdditionalData.load(additional); + if (pipEnvData != null) { + return pipEnvData; } return PythonSdkAdditionalData.load(currentSdk, additional); } @@ -442,6 +440,7 @@ public final class PythonSdkType extends SdkType { return "Python SDK"; } + @NotNull @Override public String sdkPath(@NotNull VirtualFile homePath) { String path = super.sdkPath(homePath); diff --git a/python/tools/src/com/jetbrains/python/tools/BuildStubsForSdk.kt b/python/tools/src/com/jetbrains/python/tools/BuildStubsForSdk.kt index 5328021c4bb1..9ad0cf11fa92 100644 --- a/python/tools/src/com/jetbrains/python/tools/BuildStubsForSdk.kt +++ b/python/tools/src/com/jetbrains/python/tools/BuildStubsForSdk.kt @@ -92,7 +92,7 @@ class PyProjectSdkStubsGenerator : ProjectSdkStubsGenerator() { override val moduleTypeId: String get() = PythonModuleTypeBase.PYTHON_MODULE - override fun createSdkProducer(sdkPath: String): (Project, Module) -> Sdk? = createPythonSdkProducer(sdkPath) + override fun createSdkProducer(sdkPath: String): (Project, Module) -> Sdk = createPythonSdkProducer(sdkPath) override fun createStubsGenerator(stubsFilePath: String): PyStubsGenerator = PyStubsGenerator(stubsFilePath) diff --git a/python/tools/src/com/jetbrains/python/tools/Utils.kt b/python/tools/src/com/jetbrains/python/tools/Utils.kt index 9a5d32d4357b..b21cf1dac6c0 100644 --- a/python/tools/src/com/jetbrains/python/tools/Utils.kt +++ b/python/tools/src/com/jetbrains/python/tools/Utils.kt @@ -43,23 +43,20 @@ fun createSdkForPerformance(module: Module, } -fun openProjectWithPythonSdk(projectPath: String, sdkHome: String?): Pair { - val sdkProducer = createPythonSdkProducer(sdkHome) +fun openProjectWithPythonSdk(projectPath: String, sdkHome: String?): Pair { + val sdkProducer = if (sdkHome == null) {_,_->null} else createPythonSdkProducer(sdkHome) return openProjectWithSdk(projectPath, PythonModuleTypeBase.PYTHON_MODULE, sdkProducer) } -fun createPythonSdkProducer(sdkHome: String?): (Project, Module) -> Sdk? { +fun createPythonSdkProducer(sdkHome: String): (Project, Module) -> Sdk { return { project: Project, module: Module -> - if (sdkHome != null) { + run { val sdk = createSdkForPerformance(module, SdkCreationType.SDK_PACKAGES_AND_SKELETONS, sdkHome) UIUtil.invokeAndWaitIfNeeded(Runnable { ApplicationManager.getApplication().runWriteAction({ PythonSdkUpdater.update(sdk, null, project, null) }) }) sdk } - else { - null - } } } diff --git a/spellchecker/src/com/intellij/spellchecker/state/ProjectDictionarySplitter.java b/spellchecker/src/com/intellij/spellchecker/state/ProjectDictionarySplitter.java index 9bddcb10d9fd..ea4d0259365d 100644 --- a/spellchecker/src/com/intellij/spellchecker/state/ProjectDictionarySplitter.java +++ b/spellchecker/src/com/intellij/spellchecker/state/ProjectDictionarySplitter.java @@ -26,6 +26,7 @@ import java.util.List; * @author shkate@jetbrains.com */ public class ProjectDictionarySplitter extends StateSplitterEx { + @NotNull @Override public List> splitState(@NotNull Element state) { return splitState(state, DictionaryState.NAME_ATTRIBUTE); diff --git a/tools/index-tools/src/org/jetbrains/index/stubs/SdkUtils.kt b/tools/index-tools/src/org/jetbrains/index/stubs/SdkUtils.kt index d20b9d790938..0195b8244805 100644 --- a/tools/index-tools/src/org/jetbrains/index/stubs/SdkUtils.kt +++ b/tools/index-tools/src/org/jetbrains/index/stubs/SdkUtils.kt @@ -21,7 +21,7 @@ import java.io.File fun openProjectWithSdk(projectPath: String, moduleTypeId: String, - sdkProducer: (Project, Module) -> Sdk?): Pair { + sdkProducer: (Project, Module) -> Sdk?): Pair { println("Opening project at $projectPath") val project: Project? = ProjectManager.getInstance().loadAndOpenProject(projectPath) diff --git a/tools/index-tools/src/org/jetbrains/index/stubs/StubsSdkGenerator.kt b/tools/index-tools/src/org/jetbrains/index/stubs/StubsSdkGenerator.kt index 1f72233fdabc..ff34f5a8f445 100644 --- a/tools/index-tools/src/org/jetbrains/index/stubs/StubsSdkGenerator.kt +++ b/tools/index-tools/src/org/jetbrains/index/stubs/StubsSdkGenerator.kt @@ -38,7 +38,7 @@ abstract class ProjectSdkStubsGenerator { abstract val moduleTypeId: String - abstract fun createSdkProducer(sdkPath: String): (Project, Module) -> Sdk? + abstract fun createSdkProducer(sdkPath: String): (Project, Module) -> Sdk open val root: String? = System.getenv("SDK_ROOT") @@ -90,7 +90,7 @@ abstract class ProjectSdkStubsGenerator { ProjectManager.getInstance().closeProject(project!!) WriteAction.run { Disposer.dispose(project) - SdkConfigurationUtil.removeSdk(sdk) + SdkConfigurationUtil.removeSdk(sdk!!) } }) }