notnull
authorAlexey Kudravtsev <cdr@intellij.com>
Tue, 29 Jan 2019 13:40:08 +0000 (16:40 +0300)
committerAlexey Kudravtsev <cdr@intellij.com>
Tue, 29 Jan 2019 13:52:11 +0000 (16:52 +0300)
166 files changed:
RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpBackrefImpl.java
java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerStateSplitter.java
java/debugger/impl/src/com/intellij/debugger/impl/AlternativeJreClassFinder.java
java/execution/impl/src/com/intellij/execution/filters/DefaultConsoleFiltersProvider.java
java/execution/impl/src/com/intellij/execution/filters/YourkitFilter.java
java/execution/openapi/src/com/intellij/execution/filters/ExceptionBaseFilterFactory.java
java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java
java/execution/openapi/src/com/intellij/execution/filters/ExceptionFilter.java
java/idea-ui/src/com/intellij/framework/library/DownloadableLibraryType.java
java/idea-ui/src/com/intellij/openapi/projectRoots/ui/SdkEditor.java
java/idea-ui/src/com/intellij/openapi/roots/IdeaModifiableModelsProvider.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModuleEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraries/LibraryEditingUtil.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/BaseLibrariesConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureLibraryTableModifiableModelProvider.java
java/java-analysis-impl/src/com/intellij/openapi/roots/JavaProjectRootsUtil.java
java/java-impl/src/com/intellij/codeInspection/concurrencyAnnotations/JCiPExternalLibraryResolver.java
java/java-impl/src/com/intellij/openapi/projectRoots/ex/JavaSdkUtil.java
java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaAwareProjectJdkTableImpl.java
java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaDependentSdkType.java
java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java
java/java-impl/src/com/intellij/openapi/roots/ExternalLibraryDescriptor.java
java/java-impl/src/com/intellij/openapi/roots/JdkUtils.java
java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilter.java
java/java-impl/src/com/intellij/openapi/vcs/contentAnnotation/VcsContentAnnotationExceptionFilterFactory.java
java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java
java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java
java/java-tests/testSrc/com/intellij/roots/InheritedJdkTest.java
java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java
platform/configuration-store-impl/src/StateAnnotation.java
platform/core-api/src/com/intellij/ide/util/PropertiesComponent.java
platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java
platform/core-api/src/com/intellij/openapi/roots/FileIndexFacade.java
platform/core-api/src/com/intellij/psi/util/PsiElementFilter.java
platform/extensions/src/com/intellij/openapi/util/KeyedExtensionFactory.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java
platform/lang-api/src/com/intellij/execution/filters/CompositeFilter.java
platform/lang-api/src/com/intellij/execution/filters/ConsoleFilterProviderEx.java
platform/lang-api/src/com/intellij/execution/filters/Filter.java
platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java
platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilder.java
platform/lang-api/src/com/intellij/execution/filters/TextConsoleBuilderFactory.java
platform/lang-api/src/com/intellij/execution/filters/UrlFilter.java
platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java
platform/lang-api/src/com/intellij/openapi/projectRoots/SdkType.java
platform/lang-api/src/com/intellij/openapi/roots/ModifiableModelsProvider.java
platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java
platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/DefaultModulesProvider.java
platform/lang-api/src/com/intellij/openapi/roots/ui/configuration/ModulesProvider.java
platform/lang-impl/src/com/intellij/diagnostic/logging/OutputFileUtil.java
platform/lang-impl/src/com/intellij/execution/filters/AbstractFileHyperlinkFilter.java
platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderFactoryImpl.java
platform/lang-impl/src/com/intellij/execution/filters/TextConsoleBuilderImpl.java
platform/lang-impl/src/com/intellij/openapi/projectRoots/ex/PathUtilEx.java
platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/DependentSdkType.java
platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java
platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/SdkConfigurationUtil.java
platform/lang-impl/src/com/intellij/openapi/roots/PlatformModifiableModelsProvider.java
platform/lang-impl/src/com/intellij/openapi/roots/impl/ExternalProjectSystemRegistryImpl.java
platform/lang-impl/src/com/intellij/openapi/roots/impl/PushedFilePropertiesUpdaterImpl.java
platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java
platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/RenameLibraryHandler.java
platform/lang-impl/src/com/intellij/openapi/roots/impl/storage/ClasspathStorageProvider.java
platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryType.java
platform/lang-impl/src/com/intellij/openapi/roots/libraries/NewLibraryConfiguration.java
platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java
platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java
platform/platform-impl/src/com/intellij/ide/actions/SwitchBootJdkAction.java
platform/platform-tests/testSrc/com/intellij/execution/filters/CompositeFilterTest.java
platform/projectModel-api/src/com/intellij/openapi/components/MainConfigurationStateSplitter.java
platform/projectModel-api/src/com/intellij/openapi/components/State.java
platform/projectModel-api/src/com/intellij/openapi/components/StateSplitter.java
platform/projectModel-api/src/com/intellij/openapi/components/StateSplitterEx.java
platform/projectModel-api/src/com/intellij/openapi/module/ModuleWithNameAlreadyExists.java
platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java
platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkModificator.java
platform/projectModel-api/src/com/intellij/openapi/projectRoots/SdkTypeId.java
platform/projectModel-api/src/com/intellij/openapi/roots/ExternalProjectSystemRegistry.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModifiableRootModel.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModuleOrderEntry.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootEvent.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootManager.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModuleRootModel.java
platform/projectModel-api/src/com/intellij/openapi/roots/ModuleSourceOrderEntry.java
platform/projectModel-api/src/com/intellij/openapi/roots/OrderEnumerationHandler.java
platform/projectModel-api/src/com/intellij/openapi/roots/OrderRootType.java
platform/projectModel-api/src/com/intellij/openapi/roots/PersistentOrderRootType.java
platform/projectModel-api/src/com/intellij/openapi/roots/ProjectRootManager.java
platform/projectModel-api/src/com/intellij/openapi/roots/impl/FilePropertyPusher.java
platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablePresentation.java
platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java
platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryUtil.java
platform/projectModel-api/src/com/intellij/openapi/roots/libraries/PersistentLibraryKind.java
platform/projectModel-impl/src/com/intellij/core/CoreProjectJdkTable.java
platform/projectModel-impl/src/com/intellij/core/CoreSdkType.java
platform/projectModel-impl/src/com/intellij/ide/projectView/impl/ProjectRootsUtil.java
platform/projectModel-impl/src/com/intellij/ide/util/PropertiesComponentImpl.java
platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/MockSdk.java
platform/projectModel-impl/src/com/intellij/openapi/projectRoots/impl/ProjectRootUtil.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentEntry.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ClonableContentFolder.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/FileIndexBase.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryTable.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEnumerator.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootEventImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleRootManagerImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryUtil.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEnumeratorBase.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsCache.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderRootsEnumeratorImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelBase.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SdkFinder.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/WritableOrderEntry.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ApplicationLibraryTable.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTablesRegistrarImpl.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/ProjectLibraryTable.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/JpsOrderEntryFactory.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsExportableOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsInheritedSdkOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsLibraryOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleSdkOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsModuleSourceOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsOrderEntry.java
platform/projectModel-impl/src/com/intellij/project/model/impl/module/dependencies/JpsSdkOrderEntryBase.java
plugins/ant/src/com/intellij/lang/ant/config/execution/PlainTextView.java
plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/MigrateRootDialog.java
plugins/devkit/devkit-core/src/projectRoots/IdeaJdk.java
plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseClasspathStorageProvider.java
plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilter.java
plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleConsoleFilterProvider.java
plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleOrderEnumeratorHandler.java
plugins/gradle/src/org/jetbrains/plugins/gradle/execution/filters/GradleReRunBuildFilter.java
plugins/hg4idea/src/org/zmlx/hg4idea/ui/HgInitDialog.java
plugins/junit/src/com/intellij/execution/junit/JUnitExternalLibraryDescriptor.java
plugins/maven/maven3-server-common/src/org/jetbrains/idea/maven/server/Maven3ServerIndexerImpl.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenOrderEnumeratorHandler.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/AbstractMavenConsoleFilter.java
plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenTestConsoleFilter.java
plugins/testng/src/com/theoryinpractice/testng/inspection/JUnitConvertTool.java
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/CustomRegexpFilter.java
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java
python/ide/src/com/jetbrains/python/PythonSdkConfigurator.kt
python/src/com/jetbrains/python/console/PyDebugConsoleBuilder.java
python/src/com/jetbrains/python/remote/PythonRemoteInterpreterManager.java
python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java
python/src/com/jetbrains/python/sdk/PythonSdkType.java
python/tools/src/com/jetbrains/python/tools/BuildStubsForSdk.kt
python/tools/src/com/jetbrains/python/tools/Utils.kt
spellchecker/src/com/intellij/spellchecker/state/ProjectDictionarySplitter.java
tools/index-tools/src/org/jetbrains/index/stubs/SdkUtils.kt
tools/index-tools/src/org/jetbrains/index/stubs/StubsSdkGenerator.kt

index d79c63fed648fab245bd9dfdad415d17212502c1..e99eaa72fcab97509a41808f657aa710dbaed024 100644 (file)
@@ -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;
index 641257ac5e56a7f6c22c8fa5941de09e2f6a5c84..af2e8fc43b6062f9b2ce47aa3747b378fc3c903e 100644 (file)
@@ -27,6 +27,7 @@ import java.util.List;
  * @author nik
  */
 final class ArtifactManagerStateSplitter extends StateSplitterEx {
+  @NotNull
   @Override
   public List<Pair<Element, String>> splitState(@NotNull Element state) {
     return splitState(state, ArtifactState.NAME_ATTRIBUTE);
index b8743ddbf6254cf2400d9f1046454c8da5d40031..2da0bbb78d46fe62bc8a6478bafab7352fc71fc6 100644 (file)
@@ -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;
index 4b2b59426919c82d4613df3c6fe9402e2b36f737..02761d83ae3a4829adf88f57800d9e4abbd4493c 100644 (file)
@@ -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<Filter> filters = ExceptionFilters.getFilters(scope);
index 51d4b5e93fd238585f741add55aa2b6a7f418037..8d57928a7789a8440f174dd5a977dfe065fb520d 100644 (file)
@@ -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;
     }
index 86c2307b6ca1617f3b8638cae6612b4ac12fc7e4..897adca6ce62a14f398c3405a4c745110b4340d0 100644 (file)
 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);
   }
 }
index 210cd93bf29e4441a37f3837db3eaabfc15ca4fa..0afd297dc7bf33e06309b5f1110637fd4ae99b81 100644 (file)
@@ -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();
index e105d11edd97bb8004ed88b94686b7f05935bbae..8946159c02c68b3558940c2a48e1a265df33dd70 100644 (file)
@@ -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 -> {
index 9fa119a7ef79a58f0acd17d9f44a8277c9835a99..eee1695e9594bf4fc79cd93175ed7b241a278111 100644 (file)
@@ -128,6 +128,7 @@ public abstract class DownloadableLibraryType extends LibraryType<LibraryVersion
     return getLibraryTypeIcon();
   }
 
+  @NotNull
   protected abstract String[] getDetectionClassNames();
 
   @Override
index 2f14048bfbec47474ee940c15d96f1dfeec6823d..9c7fb40323d5615a295e1519b792e82155db2eef 100644 (file)
@@ -380,13 +380,14 @@ public class SdkEditor implements Configurable, Place.Navigator {
   }
 
   private class EditedSdkModificator implements SdkModificator {
+    @NotNull
     @Override
     public String getName() {
       return mySdk.getName();
     }
 
     @Override
-    public void setName(String name) {
+    public void setName(@NotNull String name) {
       ((ProjectJdkImpl)mySdk).setName(name);
     }
 
index 30e9989f85627e175765b05730c867a27a7f5436..90a0c25ea28bb2b0cad1b661dc990b1308d01856 100644 (file)
@@ -15,6 +15,7 @@ import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesModifiableModel;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
 import com.intellij.openapi.util.Disposer;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import java.lang.reflect.Proxy;
@@ -25,7 +26,7 @@ import java.lang.reflect.Proxy;
 public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   @Override
   @Nullable
-  public ModifiableRootModel getModuleModifiableModel(final Module module) {
+  public ModifiableRootModel getModuleModifiableModel(@NotNull final Module module) {
     final Project project = module.getProject();
     final ModulesConfigurator configurator = getModulesConfigurator(project);
     if (configurator != null) {
@@ -40,13 +41,13 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Nullable
-  private static ModulesConfigurator getModulesConfigurator(Project project) {
+  private static ModulesConfigurator getModulesConfigurator(@NotNull Project project) {
     StructureConfigurableContext context = getProjectStructureContext(project);
     return context != null ? context.getModulesConfigurator() : null;
   }
 
   @Override
-  public void commitModuleModifiableModel(final ModifiableRootModel model) {
+  public void commitModuleModifiableModel(@NotNull final ModifiableRootModel model) {
     if (!(model instanceof Proxy)) {
       model.commit();
     }
@@ -54,15 +55,16 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Override
-  public void disposeModuleModifiableModel(final ModifiableRootModel model) {
+  public void disposeModuleModifiableModel(@NotNull final ModifiableRootModel model) {
     if (!(model instanceof Proxy)) {
       model.dispose();
     }
     //IDEA should dispose this model instead of us, because it is was given from StructureConfigurableContext
   }
 
+  @NotNull
   @Override
-  public ModifiableFacetModel getFacetModifiableModel(Module module) {
+  public ModifiableFacetModel getFacetModifiableModel(@NotNull Module module) {
     final ModulesConfigurator configurator = getModulesConfigurator(module.getProject());
     if (configurator != null) {
       return configurator.getFacetsConfigurator().getOrCreateModifiableModel(module);
@@ -71,13 +73,14 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Override
-  public void commitFacetModifiableModel(Module module, ModifiableFacetModel model) {
+  public void commitFacetModifiableModel(@NotNull Module module, @NotNull ModifiableFacetModel model) {
     final ModulesConfigurator configurator = getModulesConfigurator(module.getProject());
     if (configurator == null || !(configurator.getFacetsConfigurator().getFacetModel(module) instanceof ModifiableFacetModel)) {
       model.commit();
     }
   }
 
+  @NotNull
   @Override
   public LibraryTable.ModifiableModel getLibraryTableModifiableModel() {
     final Project[] projects = ProjectManager.getInstance().getOpenProjects();
@@ -96,7 +99,7 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Override
-  public LibraryTable.ModifiableModel getLibraryTableModifiableModel(Project project) {
+  public LibraryTable.ModifiableModel getLibraryTableModifiableModel(@NotNull Project project) {
     StructureConfigurableContext context = getProjectStructureContext(project);
     if (context != null) {
       LibraryTableModifiableModelProvider provider = context.createModifiableModelProvider(LibraryTablesRegistrar.PROJECT_LEVEL);
@@ -106,7 +109,7 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Override
-  public void disposeLibraryTableModifiableModel(LibraryTable.ModifiableModel model) {
+  public void disposeLibraryTableModifiableModel(@NotNull LibraryTable.ModifiableModel model) {
     //IDEA should dispose this model instead of us, because it is was given from StructureConfigurableContext
     if (!(model instanceof LibrariesModifiableModel)) {
       Disposer.dispose(model);
@@ -114,7 +117,7 @@ public class IdeaModifiableModelsProvider implements ModifiableModelsProvider {
   }
 
   @Nullable
-  private static StructureConfigurableContext getProjectStructureContext(Project project) {
+  private static StructureConfigurableContext getProjectStructureContext(@NotNull Project project) {
     if (ApplicationManager.getApplication().isHeadlessEnvironment()) return null;
 
     final ProjectStructureConfigurable structureConfigurable = ProjectStructureConfigurable.getInstance(project);
index f918a450f903e80ea981001742bbaddbbcc8bd29..3080472833daf33ebf63b36a1a7257026765bbc6 100644 (file)
@@ -17,7 +17,6 @@ import com.intellij.openapi.options.ModuleConfigurableEP;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.*;
 import com.intellij.openapi.roots.impl.libraries.LibraryEx;
-import com.intellij.openapi.roots.impl.libraries.LibraryTableBase;
 import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.roots.libraries.LibraryTable;
 import com.intellij.ui.navigation.History;
@@ -132,13 +131,12 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable {
     return myModifiableRootModel;
   }
 
+  @NotNull
   public OrderEntry[] getOrderEntries() {
     if (myModifiableRootModel == null) { // do not clone all model if not necessary
       return ModuleRootManager.getInstance(getModule()).getOrderEntries();
     }
-    else {
-      return myModifiableRootModel.getOrderEntries();
-    }
+    return myModifiableRootModel.getOrderEntries();
   }
 
   public ModifiableRootModel getModifiableRootModelProxy() {
@@ -207,12 +205,13 @@ public abstract class ModuleEditor implements Place.Navigator, Disposable {
   }
 
   private static final Set<Class<?>> 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<ModuleConfigurationEditorProvider> 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<String> 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;
   }
 
index b206679779e89841b8866ec90d020a7a12aa6137..c3560ce934b73b8518db3a2f952dfb2d9eaacfa8 100644 (file)
@@ -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);
index 9da7a9f3efd3079b996591f3096c41b7b4338752..6e9d2f8923221f690fe59ead1e47acb831471218 100644 (file)
@@ -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;
         }
       }
index 74cf292186d05e5e6b0a00b241f34607f3edb5ca..5db898a1b9d8abb478661bec2098e098e9efc522 100644 (file)
@@ -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;
   }
index 1a2a7f2d4ac2b03306c9c8f143c8140c3b9ca288..a846f8d111215c4bbfa9432c44ca566b39fd3fc6 100644 (file)
@@ -30,7 +30,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable<Modu
   private final ModuleProjectStructureElement myProjectStructureElement;
   private final StructureConfigurableContext myContext;
 
-  public ModuleConfigurable(ModulesConfigurator modulesConfigurator, Module module, Runnable updateTree, ModuleGrouper moduleGrouper) {
+  public ModuleConfigurable(ModulesConfigurator modulesConfigurator, @NotNull Module module, Runnable updateTree, ModuleGrouper moduleGrouper) {
     super(true, updateTree);
     myModule = module;
     myModuleGrouper = moduleGrouper;
@@ -79,6 +79,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable<Modu
   }
 
   @Override
+  @NotNull
   public Module getEditableObject() {
     return myModule;
   }
@@ -98,6 +99,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable<Modu
     return myModule.isDisposed() ? null : ModuleType.get(myModule).getIcon();
   }
 
+  @NotNull
   public Module getModule() {
     return myModule;
   }
index fce902cf68974f17ea1cd738b5930bf166482e80..a2cc351f80db6c795e1ff05c7f72dfc2ca4027bf 100644 (file)
@@ -112,14 +112,17 @@ public class StructureConfigurableContext implements Disposable, LibraryEditorLi
     myLibraryEditorListeners.getMulticaster().libraryRenamed(library, oldName, newName);
   }
 
+  @NotNull
   public StructureLibraryTableModifiableModelProvider getGlobalLibrariesProvider() {
     return createModifiableModelProvider(LibraryTablesRegistrar.APPLICATION_LEVEL);
   }
 
-  public StructureLibraryTableModifiableModelProvider createModifiableModelProvider(final String level) {
+  @NotNull
+  public StructureLibraryTableModifiableModelProvider createModifiableModelProvider(@NotNull String level) {
     return new StructureLibraryTableModifiableModelProvider(level, this);
   }
 
+  @NotNull
   public StructureLibraryTableModifiableModelProvider getProjectLibrariesProvider() {
     return createModifiableModelProvider(LibraryTablesRegistrar.PROJECT_LEVEL);
   }
@@ -134,14 +137,14 @@ public class StructureConfigurableContext implements Disposable, LibraryEditorLi
   }
 
   @Nullable
-  public Library getLibrary(final String libraryName, final String libraryLevel) {
+  public Library getLibrary(final String libraryName, @NotNull String libraryLevel) {
 /* the null check is added only to prevent NPE when called from getLibrary */
     final LibrariesModifiableModel model = myLevel2Providers.get(libraryLevel);
     return model == null ? null : findLibraryModel(libraryName, model);
   }
 
   @Nullable
-  private static Library findLibraryModel(final @NotNull String libraryName, @NotNull LibrariesModifiableModel model) {
+  private static Library findLibraryModel(@NotNull final String libraryName, @NotNull LibrariesModifiableModel model) {
     for (Library library : model.getLibraries()) {
       final Library libraryModel = findLibraryModel(library, model);
       if (libraryModel != null && libraryName.equals(libraryModel.getName())) {
index fb36f9ec0855841b553042a939fd9b3b1c8d958c..0a30ef9e0179b66336c08b3e4df2ab0fb9b76a19 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.openapi.roots.ui.configuration.projectRoot;
 
 import com.intellij.openapi.roots.ui.configuration.LibraryTableModifiableModelProvider;
+import org.jetbrains.annotations.NotNull;
 
 /**
 * @author nik
@@ -24,8 +25,8 @@ public class StructureLibraryTableModifiableModelProvider implements LibraryTabl
   private final String myLevel;
   private final StructureConfigurableContext myContext;
 
-  public StructureLibraryTableModifiableModelProvider(String level,
-                                                      final StructureConfigurableContext context) {
+  StructureLibraryTableModifiableModelProvider(@NotNull String level,
+                                               @NotNull StructureConfigurableContext context) {
     myLevel = level;
     myContext = context;
   }
index 73ecd45d0091a2d27f0a247ff568eb002dc704a1..a8961d5e7aca212b2b76a898f6001ec9a7ed39e8 100644 (file)
@@ -2,7 +2,6 @@
 package com.intellij.openapi.roots;
 
 import com.intellij.ide.projectView.impl.ProjectRootsUtil;
-import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleManager;
 import com.intellij.openapi.project.Project;
@@ -28,8 +27,6 @@ import java.util.*;
  * @author nik
  */
 public class JavaProjectRootsUtil {
-  private static final Logger LOG = Logger.getInstance(JavaProjectRootsUtil.class);
-
   public static boolean isOutsideJavaSourceRoot(@Nullable PsiFile psiFile) {
     if (psiFile == null) return false;
     if (psiFile instanceof PsiCodeFragment) return false;
@@ -62,7 +59,7 @@ public class JavaProjectRootsUtil {
     }
   }
 
-  public static boolean isForGeneratedSources(SourceFolder sourceFolder) {
+  public static boolean isForGeneratedSources(@NotNull SourceFolder sourceFolder) {
     JavaSourceRootProperties properties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.SOURCES);
     JavaResourceRootProperties resourceProperties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.RESOURCES);
     return properties != null && properties.isForGeneratedSources() || resourceProperties != null && resourceProperties.isForGeneratedSources();
@@ -82,6 +79,7 @@ public class JavaProjectRootsUtil {
     return folder != null && isForGeneratedSources(folder);
   }
 
+  @NotNull
   public static GlobalSearchScope getScopeWithoutGeneratedSources(@NotNull GlobalSearchScope baseScope, @NotNull Project project) {
     return new NonGeneratedSourceScope(baseScope, project);
   }
index 0c7133eb860431bcc853e79201501363903380f1..9dfc0cc90de98169c7ca06be0dc5e4004a2b0a7f 100644 (file)
@@ -28,6 +28,7 @@ import org.jetbrains.annotations.Nullable;
 public class JCiPExternalLibraryResolver extends ExternalLibraryResolver {
   private static final ExternalLibraryDescriptor JDCIP_LIBRARY_DESCRIPTOR =
     new ExternalLibraryDescriptor("net.jcip", "jcip-annotations", null, null, "1.0") {
+      @NotNull
       @Override
       public String getPresentableName() {
         return "jcip-annotations.jar";
index f58ac13c6f077f69b87b68844ff4b616aad1d56d..e78a07f8961fd67f93232610ce7473fefabd3c06 100644 (file)
@@ -21,7 +21,7 @@ import java.util.List;
 public class JavaSdkUtil {
   private static final String IDEA_PREPEND_RT_JAR = "idea.prepend.rtjar";
 
-  public static void addRtJar(PathsList pathsList) {
+  public static void addRtJar(@NotNull PathsList pathsList) {
     String ideaRtJarPath = getIdeaRtJarPath();
     if (Boolean.getBoolean(IDEA_PREPEND_RT_JAR)) {
       pathsList.addFirst(ideaRtJarPath);
@@ -31,14 +31,17 @@ public class JavaSdkUtil {
     }
   }
 
+  @NotNull
   public static String getJunit4JarPath() {
     return PathUtil.getJarPathForClass(ReflectionUtil.forName("org.junit.Test"));
   }
 
+  @NotNull
   public static String getJunit3JarPath() {
     return PathUtil.getJarPathForClass(ReflectionUtil.forName("junit.runner.TestSuiteLoader")); //junit3 specific class
   }
 
+  @NotNull
   public static String getIdeaRtJarPath() {
     return PathUtil.getJarPathForClass(JavacRunner.class);
   }
index d16e89bd8a957ee131b82082f91e72a9a54fa34e..2367e92d499c76268b6466312470464b41761df9 100644 (file)
@@ -61,11 +61,6 @@ public class JavaAwareProjectJdkTableImpl extends ProjectJdkTableImpl {
     }
   }
 
-  @Override
-  protected String getSdkTypeName(String type) {
-    return type != null ? type : JavaSdk.getInstance().getName();
-  }
-
   @TestOnly
   public static void removeInternalJdkInTests() {
     WriteAction.run(()-> {
index 282a39faab7dc831b5aa34dbfabc139ebfaadc64..c8232a398fc30432af6d9dd7f0177bba4beceec2 100644 (file)
@@ -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();
index 0bf2787423aec94a50f481a4c15d023281c56fc9..e6a3dab610afb9c5065e875f0f0dd13bcc26f4bd 100644 (file)
@@ -142,6 +142,7 @@ public class JavaSdkImpl extends JavaSdk {
   @Override
   public void saveAdditionalData(@NotNull SdkAdditionalData additionalData, @NotNull Element additional) { }
 
+  @NotNull
   @Override
   public Comparator<Sdk> versionComparator() {
     return (sdk1, sdk2) -> {
@@ -351,8 +352,9 @@ public class JavaSdkImpl extends JavaSdk {
 
     MultiMap<OrderRootType, VirtualFile> 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(); }
index aeac559cf3db2c50f3e1ebd0fc37b62d2ad79725..eea8abe05184e8597e3b49e159b00491fdbbc6e5 100644 (file)
@@ -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;
   }
index a52a6926c17ddbdd3be8fec1adfa99f1f5ae2c58..94d4e3ba532098b421502a889444b75e64293163 100644 (file)
@@ -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<OrderEntry> 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;
   }
 }
index f2014071b63f5c6576655d265b3b54be916f89d8..140457ed07d3416395824ebbf2ab9346dde4544b 100644 (file)
@@ -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;
   }
 }
index bc6281915e8f10aa6196a3dbf56c2fa2a1792b27..471fcda7f46b67695d726e5260cbba4cbaaed3e7 100644 (file)
@@ -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);
   }
 }
index 27afc07a6bf2507c815a094a1b6de2c82bb20055..2b72096a5a14013fa3f047170c033b5b078f149b 100644 (file)
@@ -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) {
index 7765ef90ca6d3c585003ea4c9b287a31b645cffc..9e535228446e33330e9088d0d8384ab3135d4951 100644 (file)
@@ -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) {
index 31550730613cc74968ad6460f1781bceaaabf8cd..6f79c55f761471ce97cb9f0f4efb769002ddb86f 100644 (file)
@@ -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);
 
index 671cf321bff56f92426e0dfeffcf548c72842e91..379d756a1ef629230c5375e0dfbcf3eecc92a015 100644 (file)
@@ -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("<init>")) {
         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;
index 0dd0f10ec82f96f0d630ffca309cd2ad68b12d17..9711d1335a9afa36139b07bd45c5beceb884b758 100644 (file)
@@ -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;
index a4a8cc7f9690afa1d5b2c378742896e43983c0d9..7c7c256d94b7bcf4e74618b0be519f5868cce2c1 100644 (file)
@@ -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));
index a65aff0c91ee26f1c715ec7eeb88b23413fe5602..0d264fb500379e4f8d8318c11c3b1ca156b487eb 100644 (file)
@@ -31,6 +31,7 @@ public class FileTypeExtensionFactory<T> extends KeyedExtensionFactory<T, FileTy
     super(interfaceClass, epName, ApplicationManager.getApplication().getPicoContainer());
   }
 
+  @NotNull
   @Override
   public String getKey(@NotNull final FileType key) {
     return key.getName();
index 8573184b809344a4fc3f35ff145358ed9a6f49f3..69994d478e39e49b5466b07301254a082b3e4b8f 100644 (file)
@@ -64,7 +64,7 @@ public abstract class FileIndexFacade {
    */
   public abstract boolean isValidAncestor(@NotNull VirtualFile baseDir, @NotNull VirtualFile child);
 
-  public boolean shouldBeFound(GlobalSearchScope scope, VirtualFile virtualFile) {
+  public boolean shouldBeFound(@NotNull GlobalSearchScope scope, @NotNull VirtualFile virtualFile) {
     return scope.isSearchOutsideRootModel() || isInContent(virtualFile) || isInLibrarySource(virtualFile);
   }
 
index a5db7d06c2d04ca7be487434c7c9990d2ca637e9..609bbc932ba55725cb8e7d50a30183b75117c691 100644 (file)
@@ -16,7 +16,9 @@
 package com.intellij.psi.util;
 
 import com.intellij.psi.PsiElement;
+import org.jetbrains.annotations.NotNull;
 
+@FunctionalInterface
 public interface PsiElementFilter {
-  boolean isAccepted(PsiElement element);
+  boolean isAccepted(@NotNull PsiElement element);
 }
index cbe1988424cee5ecc646ae838a69528f61a60db3..80d56ba7a30d1c4e9496a6d517482791f8b4faae 100644 (file)
@@ -109,6 +109,7 @@ public abstract class KeyedExtensionFactory<T, KeyT> {
     return (T)result;
   }
 
+  @NotNull
   public abstract String getKey(@NotNull KeyT key);
 }
 
index 5a01cf529a1d9642e733cb5578ebd6dab8e5b59e..35a568ddf29cbfb78b38a447e086d1fba0b38a59 100644 (file)
@@ -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);
index e5ec581021ee292ff92fefc7ad462c473e386735..951fa32ec739fd773df9b9fa7f004406b09615f8 100644 (file)
@@ -46,19 +46,17 @@ public class CompositeFilter implements Filter, FilterMixin {
   public CompositeFilter(@NotNull Project project, @NotNull List<Filter> 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<Filter> 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<ResultItem> resultItems) {
     if (resultItems == null) {
       return null;
     }
+    return createFinalResult(resultItems);
+  }
+
+  @NotNull
+  private static Result createFinalResult(@NotNull List<ResultItem> 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<ResultItem> merge(@Nullable List<ResultItem> resultItems, @Nullable Result newResult, int entireLength, Filter filter) {
-    if (newResult != null) {
-      if (resultItems == null) {
-        resultItems = new ArrayList<>();
-      }
-      List<ResultItem> 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<ResultItem> merge(@Nullable List<ResultItem> resultItems, @NotNull Result newResult, int entireLength, @NotNull Filter filter) {
+    if (resultItems == null) {
+      resultItems = new ArrayList<>();
+    }
+    List<ResultItem> 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<? extends ResultItem> items, ResultItem newItem) {
+  protected static boolean intersects(@NotNull List<? extends ResultItem> 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;
         }
       }
index 875696fbe80ceb21bf6e6ca7b9eb8c3762b5541d..fb22260b38183cd532d7ff591fc153421f19d8da 100644 (file)
@@ -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
index 892d096a4c7a5d03582935e12788f881961b12c9..fadace6bc176311ce67966bb193c822ba5bc3f44 100644 (file)
@@ -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 <tt>null</tt>, 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);
 }
index 0b5d7f77beee8cdb2d22b2400b064d7d89cae355..d690047e60ebc67dd7b4bd129f3771ceae0323b0 100644 (file)
@@ -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;
index d4528535d81e9d7d441aa07b28cc52d35d9bff14..0e6a1e01bfc6c85bc111ee175b7ef7c413838e5e 100644 (file)
@@ -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<Filter> filters) {
+  @NotNull
+  public TextConsoleBuilder filters(@NotNull List<? extends Filter> filters) {
     for (Filter filter : filters) {
       addFilter(filter);
     }
index e5296b4ea1fecbd95662e0a6e327202890acc1c0..5c6b26c2c417e350b1be7208f99460284e754800 100644 (file)
@@ -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() {
index edfd85b89e0e86adf82fac41afefadcea861220f..c56df0be9f295d6ec2c819856ad0bcf0d4dc42a1 100644 (file)
@@ -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)};
index 65d3b76a0aaf4c562fe67ce9ce0f6c88f2ef7e0a..27a98af784f5cef27374027be3228375f7228280 100644 (file)
@@ -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<String> getMainClassParams(SimpleJavaParameters javaParameters) throws CantRunException {
+  @NotNull
+  private static List<String> getMainClassParams(@NotNull SimpleJavaParameters javaParameters) throws CantRunException {
     String mainClass = javaParameters.getMainClass();
     String moduleName = javaParameters.getModuleName();
     String jarPath = javaParameters.getJarPath();
index 2d197e6c4e8ab897d81046d24b2443d7fddea281..5eadec80f82092878b446c6e52a27be4faeab4a1 100644 (file)
@@ -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();
   }
index 3b6c5d99c216484fd01673dad1f1608e2fd91f44..01fc69122869921bd6a666d5a5741b8803f0f973 100644 (file)
@@ -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);
 }
index 98ec70e72bd6506a4882735d7ae51d8e51bcd119..59e23201f37f68285417cdeb633d0c35d20e401e 100644 (file)
@@ -35,6 +35,7 @@ public interface OrderRootTypeUIFactory {
 
   KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType> FACTORY =
     new KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType>(OrderRootTypeUIFactory.class, EP_NAME, ApplicationManager.getApplication().getPicoContainer()) {
+      @NotNull
       @Override
       public String getKey(@NotNull final OrderRootType key) {
         return key.name();
index 8277777321a49244da2e6779cd802285e52f0a30..9cdff823539e86a0bf330770cf73eb4f0e40b6b4 100644 (file)
@@ -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);
index 711072f9d24696aca6ba8ec76b8fd274f0a3e3fe..a83a195a6c0f2b9420c57d1be8b00f715ec197c0 100644 (file)
@@ -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);
 }
index 422099498c389e5c51f37f4501a5a266fa6ffa57..6294a25fe18df88613970f0fca2c69c01a8d5106 100644 (file)
@@ -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");
 
index 0cad3a80ee3a5eeaf1173cae6edef3eb42c97a18..8b094666eb20a7e19c0fa5c21105c24eba698e83 100644 (file)
@@ -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<FileHyperlinkRawData> links;
     try {
       links = parse(line);
index 8011e198465387603ce085f905b67a9e0786179a..1f5eb6105935abc4fd4e9944918a44b65a3a3a5a 100644 (file)
@@ -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);
index 2a9e07ae47700d479a129c72b810625ea9fc8b18..150cd909f034ca2dea26f89d7661eaa509ace2e0 100644 (file)
@@ -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<Filter> filters) {
+  public TextConsoleBuilder filters(@NotNull List<? extends Filter> filters) {
     myFilters.addAll(filters);
     return this;
   }
index 40c327748cc4955b9b61034f752dc43fc0ca9b6c..32057f7050517f3180c332965a268eba94c01629 100644 (file)
@@ -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<Sdk, String> 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<? extends Module> modules) {
+  public static Sdk chooseJdk(@NotNull Project project, @NotNull Collection<? extends Module> 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<? extends Module> modules) {
+  public static Sdk chooseJdk(@NotNull Collection<? extends Module> modules) {
     List<Sdk> jdks = skipNulls(map(skipNulls(modules), MODULE_JDK));
     if (jdks.isEmpty()) {
       return null;
index a6f6a05aca5ee5718b9d4ed94ddc1b62b643682f..4a9d3789a4a17699073fe67492131cd91a9fa81d 100644 (file)
@@ -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<Sdk> sdkCreatedCallback) {
+  protected Sdk fixDependency(@NotNull SdkModel sdkModel, @NotNull Consumer<? super Sdk> sdkCreatedCallback) {
     return createSdkOfType(sdkModel, getDependencyType(), sdkCreatedCallback);
   }
 
-  protected static Sdk createSdkOfType(final SdkModel sdkModel,
-                                  final SdkType sdkType,
-                                  final Consumer<? super Sdk> sdkCreatedCallback) {
+  protected static Sdk createSdkOfType(@NotNull SdkModel sdkModel,
+                                       @NotNull SdkType sdkType,
+                                       @NotNull Consumer<? super Sdk> sdkCreatedCallback) {
     final Ref<Sdk> result = new Ref<>(null);
     SdkConfigurationUtil.selectSdkHome(sdkType, home -> {
       String newSdkName = SdkConfigurationUtil.createUniqueSdkName(sdkType, home, Arrays.asList(sdkModel.getSdks()));
index a86ccc61fffa76ff224a85863192ebadb02cc715..1737a4c9a79e72e434cc560cc65d26e85d752efc 100644 (file)
@@ -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() {
index 2dac361e01d86d3ebcf7795814b7b67886302fa5..3d496aa47abecbd041cced4c2354b49f60c21749 100644 (file)
@@ -53,19 +53,19 @@ public class SdkConfigurationUtil {
   private SdkConfigurationUtil() { }
 
   public static void createSdk(@Nullable final Project project,
-                               final Sdk[] existingSdks,
-                               final NullableConsumer<? super Sdk> onSdkCreatedCallBack,
+                               @NotNull Sdk[] existingSdks,
+                               @NotNull NullableConsumer<? super Sdk> 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<? super Sdk> onSdkCreatedCallBack,
+                               @NotNull Sdk[] existingSdks,
+                               @NotNull NullableConsumer<? super Sdk> 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<? super Sdk> onSdkCreatedCallBack,
-                               final SdkType... sdkTypes) {
+                               @NotNull Sdk[] existingSdks,
+                               @NotNull NullableConsumer<? super Sdk> 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<Sdk> 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<? super Sdk> 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<? super Sdk> comparator, final SdkType... sdkTypes) {
+  public static Sdk findOrCreateSdk(@Nullable Comparator<? super Sdk> 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) {
index 9a32a7fb28173b5800bf031a3c3f9769b353fc0d..b797a5f0f5c3eb0078ba784b9c2f64604f1d3c70 100644 (file)
@@ -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);
   }
 }
index e3dc8fa78e442bd63b1386e0f747cedc6c436623..23000936a2bfff6aa3ef002c4487aa74ce52075d 100644 (file)
@@ -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();
   }
 }
index f4df1411f985867cb9f066d5d982db867d76d64c..da778d79f69fb2b21d898eb34fc46ffe4263f457 100644 (file)
@@ -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})));
         }
       });
index 9a72d743aaff9ef429948d41278425799663ad0e..5ee10426f30a83989134c6020ef2df0cdebc98aa 100644 (file)
@@ -57,6 +57,7 @@ public class LibraryTypeServiceImpl extends LibraryTypeService {
     return doCreate(type, name, roots);
   }
 
+  @NotNull
   private static <P extends LibraryProperties<?>> NewLibraryConfiguration doCreate(final LibraryType<P> type, final String name, final List<? extends OrderRoot> 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<? extends OrderRoot> roots) {
     if (roots.size() >= 1) {
       return FileUtil.getNameWithoutExtension(PathUtil.getFileName(roots.get(0).getFile().getPath()));
index 380837b3aa5122077fc991086e16ace2c12df815..5da4f72913780f971353a60a671fb09ba7ee3f4e 100644 (file)
@@ -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<Boolean> 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);
index 11853338ae8e3ee7584a5631d95a7385590bce82..2900adbf05984d4a5c476046f165824604bb1165 100644 (file)
@@ -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);
 
index 7e7174e1d35f4112b002884e90fc3b9236edec52..65e8cb604331003d22f2f949619320809b93d3f9 100644 (file)
@@ -98,11 +98,13 @@ public abstract class LibraryType<P extends LibraryProperties> 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;
index 28e82c65db38cc6e763ab81508768e91a86a8faa..e6f0f8b6c107f0fb67491f43541631555190d49b 100644 (file)
@@ -45,6 +45,7 @@ public abstract class NewLibraryConfiguration {
     return myProperties;
   }
 
+  @NotNull
   public String getDefaultLibraryName() {
     return myDefaultLibraryName;
   }
index a10748047251187495f7ed3602d3faa1b2293b21..6de07db53e14983a262737b1fbd45878a241d7a5 100644 (file)
@@ -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);
         }
       };
index f7c13f4c5f3a658842224502f18e07a545d1c0cc..9df1854db8112e694ccaa1edbb40651e55b47545 100644 (file)
@@ -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() {
index 966f5aeecfa2b9754716b10b87579a7c26c473d3..2444e9df8a1cb0d2e2e43b83c46bd7ecebf19670 100644 (file)
@@ -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) {
index f6efb338f7d24ad0efc4609d12b53b8c69cbf8ca..a2657bb152ed055063c193d4f17ea9a42d29b132 100644 (file)
@@ -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;
index 590ef057ad02ad3e634613e2ce79470d77c8902c..40b35c8a0e587f12d31d4147319cee547df18ad7 100644 (file)
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 
 public abstract class MainConfigurationStateSplitter extends StateSplitterEx {
+  @NotNull
   @Override
   public final List<Pair<Element, String>> splitState(@NotNull Element state) {
     UniqueNameGenerator generator = new UniqueNameGenerator();
index 872c08c824859b64a368711916d8cbdba88dc704..55a8444e33bd2deb7d8e27fa12692b8f4707ec16 100644 (file)
@@ -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 {
    *
    * <p>Module-level: optional, corresponding module file will be used ({@code *.iml}).</p>
    */
+  @NotNull
   Storage[] storages() default {};
 
   /**
index 8480f6e3fac4fcf1677991b9e10926da49bebf01..ebf9a5d92fab07f6ba2d2a644fd3394ef83cd692 100644 (file)
@@ -26,7 +26,8 @@ import java.util.List;
  */
 @Deprecated
 public interface StateSplitter {
-  List<Pair<Element, String>> splitState(@NotNull  Element e);
+  @NotNull
+  List<Pair<Element, String>> splitState(@NotNull Element e);
 
-  void mergeStatesInto(Element target, Element[] elements);
+  void mergeStatesInto(@NotNull Element target, @NotNull Element[] elements);
 }
index 54184556d06867f0ca3e1acbefc3d954e039f201..63320e061aec026b3de5c6b83cde6b882e50a3e6 100644 (file)
@@ -14,6 +14,7 @@ import java.util.List;
 
 @SuppressWarnings("deprecation")
 public abstract class StateSplitterEx implements StateSplitter {
+  @NotNull
   @Override
   public abstract List<Pair<Element, String>> 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();
   }
 
index 7997cf8cc34e3df47fb4a5e79533c7516ff7ad70..86de727e0f92a40a067e8d098fc2837dd08382fb 100644 (file)
  */
 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;
   }
index 1e92e45a0ee3824d1557d375b70b39d6fbc03aa1..57d06d4e2d6fe271cd8d2fce9d43d410bea0c8d1 100644 (file)
@@ -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<Sdk> condition) {
+  public Sdk findMostRecentSdk(@NotNull Condition<? super Sdk> condition) {
     Sdk found = null;
     for (Sdk each : getAllJdks()) {
       if (condition.value(each) &&
index 1fd2484ddf861627333f233291aacd1234859fae..c41a2c0bcf99a067ae13e51335376b39b7ff67fe 100644 (file)
@@ -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();
 
index 0592b1c7b046e5e0681d27235ff0ec2a06b5b092..7ef4e3f5c92fb11f9658a754030cb19b3a7ed8fd 100644 (file)
@@ -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<Sdk> versionComparator() {
     return (sdk1, sdk2) -> {
       assert sdk1.getSdkType() == this : sdk1;
index 0ab031360f25cb17438285150da6b5e7b4184751..931671f8220feb4114818b5511f0bf2ea2ff1ab8 100644 (file)
@@ -31,7 +31,7 @@ public interface ExternalProjectSystemRegistry {
   }
 
   @NotNull
-  ProjectModelExternalSource getSourceById(String id);
+  ProjectModelExternalSource getSourceById(@NotNull String id);
 
   @Nullable
   ProjectModelExternalSource getExternalSource(@NotNull Module module);
index 2abc2aa39a208c1fa23abb73911f8b8312d7671a..345a043dd4e7c0d89629dc1eb37af65569c03203 100644 (file)
@@ -152,7 +152,7 @@ public interface ModifiableRootModel extends ModuleRootModel {
 
   boolean isWritable();
 
-  <T extends OrderEntry> void replaceEntryOfType(Class<T> entryClass, T entry);
+  <T extends OrderEntry> void replaceEntryOfType(@NotNull Class<T> entryClass, T entry);
 
   @Nullable
   String getSdkName();
index a4c6ff66e0ab565799d749608c2a6bf03ea54fc1..c71ea235545de926ee6c0c3b0f2114c03c7619f6 100644 (file)
 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();
 }
index 524b6641674a1364876e05e9717b4c65f25169e5..1939b82c58fac74047abcf96d83270934756ef56 100644 (file)
@@ -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);
   }
 
index 6ae846488c9dcee303e6146b645325be6ada9efe..f815fe79cccfd07532d6ce195828c57d992e9d94 100644 (file)
@@ -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
index 52489e256b3b888a0a44a85aad7b7a625ae91ffd..c9e27cd608982a58619be9641641e21d6c057767 100644 (file)
@@ -178,7 +178,7 @@ public interface ModuleRootModel {
    * @return the value returned by the visitor.
    * @see OrderEntry#accept(RootPolicy, Object)
    */
-  <R> R processOrder(RootPolicy<R> policy, R initialValue);
+  <R> R processOrder(@NotNull RootPolicy<R> policy, R initialValue);
 
   /**
    * Returns {@link OrderEnumerator} instance which can be used to process order entries of the module (with or without dependencies) and
index 93a86f3f83834d2be8ba9ce0b5444a0c8dfa778a..c9fa50ff496ef26f3a264610db8345eef5fb4033 100644 (file)
  */
 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();
 }
index cf8273136fe2852b2eadcced088e424858a2628b..861b9617df68d6799b52b379013da1da2c320354 100644 (file)
@@ -40,6 +40,7 @@ public abstract class OrderEnumerationHandler {
 
     public abstract boolean isApplicable(@NotNull Module module);
 
+    @NotNull
     public abstract OrderEnumerationHandler createHandler(@NotNull Module module);
   }
 
index 8fcab2e0c06466edf288fdd6b5ec7c1ad07a6ead..7bff8c9fa192b5882c25829c0a6575c9e8d5ddab 100644 (file)
@@ -20,9 +20,10 @@ public class OrderRootType {
 
   public static final ExtensionPointName<OrderRootType> 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<PersistentOrderRootType> getSortedRootTypes() {
     List<PersistentOrderRootType> 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);
   }
index 2c76d08f76be6a1d5d128a0b1f9cb845014e2c17..4126cefac80c34e3e842b62910a8f2c63bcb3411 100644 (file)
@@ -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;
index d808f4790c109e8336ce399c786df2285c769640..b15723b3370e1b872f13528f4cf2fac07f71f5f1 100644 (file)
@@ -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();
 
   /**
index 26c421a52932f135ee2ae810398c474d3ff659af..eed2df33fedf3e0941b0b9fc0ff6fa049b8abfd5 100644 (file)
@@ -58,7 +58,7 @@ public interface FilePropertyPusher<T> {
 
   interface Engine {
     void pushAll();
-    void pushRecursively(VirtualFile vile, Project project);
+    void pushRecursively(@NotNull VirtualFile vile, @NotNull Project project);
   }
 
   void afterRootsChanged(@NotNull Project project);
index 9aafb683fe97c8d22ef92dfdd91dffb73493228c..22f11c2eacc904b065846667f318a5c10ba08888 100644 (file)
  */
 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();
 
 }
index 29d864c884f28ffbb0f84a5c4b732526bcce7e15..7adcd29abb6e1d7493325530cefafbd21f871a77 100644 (file)
@@ -58,5 +58,6 @@ public abstract class LibraryTablesRegistrar {
    */
   public abstract void registerLibraryTable(@NotNull LibraryTable libraryTable);
 
+  @NotNull
   public abstract List<LibraryTable> getCustomLibraryTables();
 }
\ No newline at end of file
index 53fe2881d17c95bf85e728d8265439e59ac84387..1cfee5642ac408ba4d9473917eb6ce0a397dc731 100644 (file)
@@ -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<? extends VirtualFile> files, final String fqn) {
+  public static boolean isClassAvailableInLibrary(@NotNull List<? extends VirtualFile> 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<VirtualFile> 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<OrderEntry> entries = ProjectRootManager.getInstance(project).getFileIndex().getOrderEntriesForFile(file);
     for (OrderEntry entry : entries) {
       if (entry instanceof LibraryOrderEntry || entry instanceof JdkOrderEntry) {
index 138707aba253baa5afdc111694dfb3979d83e4d9..a22b81b5c83ff41b39037c9d572eacb1579b3bef 100644 (file)
@@ -34,6 +34,7 @@ public abstract class PersistentLibraryKind<P extends LibraryProperties> extends
   @NotNull
   public abstract P createDefaultProperties();
 
+  @NotNull
   public OrderRootType[] getAdditionalRootTypes() {
     return new OrderRootType[0];
   }
index 256b7e642bf2a7c852a2c66092a9559cf7c5f898..c4feee702dbd390c3033996c77e2f0bd5842944c 100644 (file)
@@ -31,7 +31,7 @@ public class CoreProjectJdkTable extends ProjectJdkTable {
   private final List<Sdk> 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);
   }
 
index 63d86aa87526ffaa2219070929729b2aad175e21..b284a680756fb8b223c32abfc8a0fa68f6502192 100644 (file)
@@ -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;
   }
 }
index ca1aead8e72ff549133e201c1b3799950b993ebd..ea5112acf88d76ff766a50a8752e264290337c45 100644 (file)
@@ -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;
   }
index 22fc4e93a1178b2ee466e5140c48b71238fd5cd7..85457ff364738934810e7af6b4fb8c2e149c5588 100644 (file)
@@ -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);
     }
index ade47243ae7fac0a4ae2b912425b2c3ea4abe4c5..56680588448bf0ebe3143c88f51d2082f085151e 100644 (file)
@@ -134,7 +134,7 @@ public class MockSdk implements Sdk, SdkModificator {
   }
 
   @Override
-  public void setName(String name) {
+  public void setName(@NotNull String name) {
     myName = name;
   }
 
index 9757700715a3a2d1663166e065d9ba2c0d88e0b5..096660e8ce10becd603ac53c9a08d2fcea25f6da 100644 (file)
@@ -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<PsiDirectory> 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);
   }
index 81882f1d94761f4481cef740ecd43be7000a07e9..15bddc29fb0f4db8567011efb3ba9dd748a1d64e 100644 (file)
 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);
 }
index ca75f5218c6c5bbdb9a84bb51fcb1fab99ac335a..f9aadabfd381d69692b701219d812a8bf78a7379 100644 (file)
@@ -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);
 }
index e0306e21e97518cc5d1457c0a3124d1a5c193bb2..2a53c3f1942a642460d2098d23b3a4ecdfc15003 100644 (file)
@@ -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());
   }
index 51720d98e0e5a9d75413ca569e282accd59dfe10..0c19b2d1fcecacedb4e0a538981de0651b771698 100644 (file)
@@ -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);
   }
 
index c66682740d101d313fad6f716090a3ce1e91fcce..bf0b3f13099fd22a2866b64afb0b69f780c161c4 100644 (file)
@@ -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()};
   }
index 3f4ca25df8f42bae56a321c0ab1f04c5a446dad5..36a2a50261452718ebf3a92249f8bb962d77ffc3 100644 (file)
@@ -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);
   }
index ef547c90dd8c7e2adbc7699d6c962700fbf9c33b..614231f307c2d6f245fd31366b8a0f72d726a792 100644 (file)
@@ -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();
index f9d334325f7d3cc7d0ec1bb3dea84dc0ff3553bb..1470192d88978ce84cf72d9da0e10ed491f24432 100644 (file)
@@ -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) {
index 4b9ff1b8174d6cf1cfd5d207d732c7953be3c300..2be786a351abd24a415623251080aa05f6f23c38 100644 (file)
@@ -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, "");
index 28110219c8bca887839a0b2f868dcd73f05918fb..5262fb8eb7b794249dc73ff3319e812336cbef6d 100644 (file)
@@ -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");
index 2162e4dbb2ce9ecda1b26f2bf585c1ad110ec710..e817aa7db42c6d4574f901d3ce91c18a79759891 100644 (file)
@@ -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();
   }
index dfc6169ea509edab7cee925662d42cb93d8eff89..f64fc58df466aecd300f6510da2b2c87f11148cf 100644 (file)
@@ -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;
   }
index e0c02ae3dae1706f59b2c4eeeb21b2a6465cdae8..0b35fb9a6d9a432dc6a67a9bd5d09635747e0586 100644 (file)
@@ -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;
   }
index 98aa40abce244e94f1f582f6489846286e56904b..d27652e5be24beb810407cdcc9d82b5e54dd848b 100644 (file)
@@ -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> R processOrder(RootPolicy<R> policy, R initialValue) {
+  public <R> R processOrder(@NotNull RootPolicy<R> policy, R initialValue) {
     LOG.assertTrue(!myIsDisposed);
     return myRootModel.processOrder(policy, initialValue);
   }
index 27c3ab64aa49e8d1a450038eb72a66fbcaca3472..25af597ec83f23b7415f6ab6c4599f42b46a75c7 100644 (file)
@@ -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
index ff3d7ad1a6a12513e476d212f463d1eda83e4b48..119e2bda11440e9006db39ee2e55fb86415fa95c 100644 (file)
@@ -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;
index b293a44fdefc1ddd9eb2647824d2282010eeb92c..8fc24d2debd874201d875df3173b5ac9fbf8f7d7 100644 (file)
@@ -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<? extends OrderEnumerationHandler> customHandlers) {
+  @NotNull
+  private ProcessEntryAction shouldAddOrRecurse(@NotNull OrderEntry entry, boolean firstLevel, @NotNull List<? extends OrderEnumerationHandler> 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<? super OrderEntry, ? super List<OrderEnumerationHandler>> processor,
-                                Set<? super Module> processed, boolean firstLevel, final List<OrderEnumerationHandler> customHandlers) {
+  protected void processEntries(@NotNull ModuleRootModel rootModel, @NotNull PairProcessor<? super OrderEntry, ? super List<OrderEnumerationHandler>> processor,
+                                @Nullable Set<? super Module> processed, boolean firstLevel, @NotNull List<OrderEnumerationHandler> 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<? extends OrderEnumerationHandler> customHandlers) {
+  private static boolean shouldAddRuntimeDependenciesToTestCompilationClasspath(@NotNull List<? extends OrderEnumerationHandler> 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<? extends OrderEnumerationHandler> customHandlers) {
+  private static boolean shouldProcessRecursively(@NotNull List<? extends OrderEnumerationHandler> customHandlers) {
     for (OrderEnumerationHandler handler : customHandlers) {
       if (!handler.shouldProcessDependenciesRecursively()) {
         return false;
index ac7383d27146b6cbbac346444af91b29357d984c..8357fd99d051d3accb34d27318730e89aa5a1b5d 100644 (file)
@@ -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<String> urls) {
     // optimization: avoid creating heavy container for empty list, use 'EMPTY' stub for that case
     VirtualFilePointerContainer container;
index 489d53844f160bb236c3b0b3bdfeeb9963fb3275..9dcb7f72e39dd01749cc352978b878f2286cb414 100644 (file)
@@ -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());
   }
index 96aa675359f5d04aeb667a85fe0927b09a25e1c5..1b7eb34c47795e00cdeeb0017da042ce026bc530 100644 (file)
@@ -182,6 +182,7 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Pers
     return new ModulesOrderEnumerator(modules);
   }
 
+  @NotNull
   @Override
   public VirtualFile[] getContentRootsFromAllModules() {
     List<VirtualFile> 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
index 760656a2b88e4f02fb5ab7b2ae7999315a7f81e7..fb3ea2312adfc3dcacaa622ea513d5c234471ff2 100644 (file)
@@ -167,7 +167,7 @@ public abstract class RootModelBase implements ModuleRootModel {
   }
 
   @Override
-  public <R> R processOrder(RootPolicy<R> policy, R initialValue) {
+  public <R> R processOrder(@NotNull RootPolicy<R> policy, R initialValue) {
     R result = initialValue;
     for (OrderEntry orderEntry : getOrderEntries()) {
       result = orderEntry.accept(policy, result);
index 7d5674a228a02f18013ab8435b7979652bb8b7db..526a3d0a2c577d23acd79cd3b09fdf0330d35f8d 100644 (file)
@@ -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<SdkFinder> 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;
   }
 }
index c23a09c048f197bfaebf814ed70b09ff57f7794f..7cdb8d241999d815a363996fb528404a36864272 100644 (file)
@@ -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);
index d19fb06ac2aa5d703bfdcf6e672db3d53264488b..8865b6fcd084721df3a2c41c25b22ad7012c3c2b 100644 (file)
@@ -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;
 }
index 7df3ec6f9d0f6d2561cd9173f7dbc9b13c7f601d..20948f59da1a13f1b2226e0812cb93e396b5c2b6 100644 (file)
@@ -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");
index 18fb371040ff773b19de78137ef07385f26d2436..35f7854cd648606ab7c7d74dc6c366a137eeaf62 100644 (file)
@@ -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 <root> element
   @Deprecated // todo to remove sometime later
-  private void readJarDirectories(Element element) {
+  private void readJarDirectories(@NotNull Element element) {
     final List<Element> 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 <root> element
   @Deprecated // todo to remove sometime later
-  private void writeJarDirectories(Element element) {
+  private void writeJarDirectories(@NotNull Element element) {
     final List<OrderRootType> rootTypes = sortRootTypes(myRoots.keySet());
     for (OrderRootType rootType : rootTypes) {
       VirtualFilePointerContainer container = myRoots.get(rootType);
index 4ad05a52df907c8bd43da230a36c56c683409e66..52cf5f71709309c691090795048edb261f971098 100644 (file)
@@ -57,6 +57,7 @@ public class LibraryTablesRegistrarImpl extends LibraryTablesRegistrar implement
     }
   }
 
+  @NotNull
   @Override
   public List<LibraryTable> getCustomLibraryTables() {
     return new SmartList<>(myLibraryTables.values());
index 07e5ab681a1154ba91afef77a0ac9ec65e6a2fba..d1ec17bb83d6f3aadaa79996dd72f0780034144f 100644 (file)
@@ -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();
 }
index 2d010ed97ccd95ab06b04d7d388782d431d894cd..0b83fe2e6cf0af378bcffc3c4b91f30deeca9958 100644 (file)
 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();
   }
index 3944484c44c807fe0c6659320a00079bb17c7df9..2ba7616617b16218a2326b7493c665efcb909e42 100644 (file)
@@ -29,7 +29,7 @@ import org.jetbrains.jps.model.module.JpsDependencyElement;
  * @author nik
  */
 public abstract class JpsExportableOrderEntry<E extends JpsDependencyElement> extends JpsOrderEntry<E> implements ExportableOrderEntry {
-  public JpsExportableOrderEntry(JpsRootModel rootModel, E dependencyElement) {
+  public JpsExportableOrderEntry(@NotNull JpsRootModel rootModel, @NotNull E dependencyElement) {
     super(rootModel, dependencyElement);
   }
 
index df27295950501984cd269351ac78dec0ca3a3d96..7008c3190f453b819fbdbfee7f5a010258eb8b9c 100644 (file)
@@ -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);
   }
 
index 0b5325e88ac74e81efd3de4f12ef436a428ae3ae..7b20469364503835d1a00fe5f969a92490ceeb37 100644 (file)
@@ -37,7 +37,7 @@ import org.jetbrains.jps.model.module.JpsModule;
  * @author nik
  */
 public class JpsLibraryOrderEntry extends JpsExportableOrderEntry<JpsLibraryDependency> implements LibraryOrderEntry {
-  public JpsLibraryOrderEntry(JpsRootModel rootModel, JpsLibraryDependency dependencyElement) {
+  public JpsLibraryOrderEntry(@NotNull JpsRootModel rootModel, @NotNull JpsLibraryDependency dependencyElement) {
     super(rootModel, dependencyElement);
   }
 
index 0ecd0d307d7a3fd11662f562529b064f509cbb06..540d4fe56dd5816a3c7857f7ade137822dadbdad 100644 (file)
@@ -32,7 +32,7 @@ import org.jetbrains.jps.model.module.JpsModuleDependency;
  * @author nik
  */
 public class JpsModuleOrderEntry extends JpsExportableOrderEntry<JpsModuleDependency> 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<JpsModuleDepend
     return null;
   }
 
+  @NotNull
   @Override
   public String getModuleName() {
     return myDependencyElement.getModuleReference().getModuleName();
index 5662caa198ebdb97204e0fcd9edc2f736930f5ce..ce9d8dac279466e46d1d4430829a01e588f91caa 100644 (file)
@@ -26,7 +26,7 @@ import org.jetbrains.jps.model.module.JpsSdkDependency;
  * @author nik
  */
 public class JpsModuleSdkOrderEntry extends JpsSdkOrderEntryBase implements ModuleJdkOrderEntry {
-  public JpsModuleSdkOrderEntry(JpsRootModel rootModel, JpsSdkDependency dependencyElement) {
+  public JpsModuleSdkOrderEntry(@NotNull JpsRootModel rootModel, @NotNull JpsSdkDependency dependencyElement) {
     super(rootModel, dependencyElement);
   }
 
index 4e9bc957b9ef6442697da5f976e8fd9f1981da75..7cbacc265d83e42fc34c984e8596312eeee20fb6 100644 (file)
@@ -31,7 +31,7 @@ import java.util.List;
  * @author nik
  */
 public class JpsModuleSourceOrderEntry extends JpsOrderEntry<JpsModuleSourceDependency> 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<JpsModuleSourceDepe
   }
 
   @Override
+  @NotNull
   public ModuleRootModel getRootModel() {
     return myRootModel;
   }
index 256354e198071841a971769ce0cc325eeafbcff9..b0d000aae13cf6658b7e94f63f8e6ca415914a4f 100644 (file)
@@ -25,10 +25,12 @@ import org.jetbrains.jps.model.module.JpsDependencyElement;
  * @author nik
  */
 public abstract class JpsOrderEntry<E extends JpsDependencyElement> 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;
   }
index 81b2ce7d8f037654a206d09d78f02a687d395db1..0516e69e3c433b63e3babc5001df3b18f03be7b3 100644 (file)
@@ -31,7 +31,7 @@ import org.jetbrains.jps.model.module.JpsSdkDependency;
  * @author nik
  */
 public abstract class JpsSdkOrderEntryBase extends JpsOrderEntry<JpsSdkDependency> implements JdkOrderEntry {
-  public JpsSdkOrderEntryBase(JpsRootModel rootModel, JpsSdkDependency dependencyElement) {
+  public JpsSdkOrderEntryBase(@NotNull JpsRootModel rootModel, @NotNull JpsSdkDependency dependencyElement) {
     super(rootModel, dependencyElement);
   }
 
index 558cddbfa8d36dd384cf2591568d5ea486f76c73..185104b214487a8481fcfd08ea99f79fd27207c2 100644 (file)
@@ -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;
index e0706d31c6b12f19f240906085600ca41880ded5..f21e2ccf622dcabb5863cf4b82c15b7075de3156 100644 (file)
@@ -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);
index ae68a8d3758b8feddbb0b028272e0e24cb332275..54898c5de7e3956d4928d0ac1ce1a5fc09e4fe25 100644 (file)
@@ -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);
index 5022f55338b7f019c0f936c67615ffe7b88f2695..a0401f8042943e638e46134d67ad5c96e5c40d61 100644 (file)
@@ -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) {
index dade9e84cccc33a1fd7459827e47abb5764ed06b..cd8a5a58660e34a5b176401aebb7ffe6a466c4de 100644 (file)
@@ -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;
index a558959521918eee42cfd649baaeaf690fe48d6a..523593ea5a29266debeff4218d7994b07e896436 100644 (file)
@@ -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);
index 54319f771e20f43aab3d3c16926c69c426ea314c..9861535700c48de90139ef06d262d9452b7e2793 100644 (file)
@@ -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()) {
index 8c8cf9ad6d6e8679042f5cfb7673ba16a22d7bd8..7f57863fe573fadbcff06ac17a157a7c5406b0d8 100644 (file)
@@ -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;
     }
index dbc336ed2367126a6bd707f8d9e0d29a8ab94097..e7c831235c9b925e18913f2061ef7022253c2c6e 100644 (file)
@@ -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()));
         }
index ba793821405556fd0f1a02c1d9b8653d32911439..04cc0db87074d50904adbd76b3e16a5aa1fc6218 100644 (file)
@@ -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;
index c0bc3e87518d12959b93b7fc3940bffda15d66b4..87c90ca7a63af7f6a848d65afbd9eecb3ffcfb95 100644 (file)
@@ -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;
index 08cf82377e210131e8f38209dba0245426299dbe..c972ced94e232de6c71a7e82a8ff73302c53ff49 100644 (file)
@@ -29,6 +29,7 @@ public class MavenOrderEnumeratorHandler extends OrderEnumerationHandler {
       return manager.isMavenizedModule(module);
     }
 
+    @NotNull
     @Override
     public OrderEnumerationHandler createHandler(@NotNull Module module) {
       return INSTANCE;
index 430c1693a35e86fc34d98e81228c1f75e816f660..529c9eafa026ec23d9d2e917ee904b02ebbac71e 100644 (file)
@@ -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);
index 333fbb4dcf27a81788a9a5d1f7848547dfabbfe9..acedc4518a3fdf5cc4f83ded1a0c01b6ee4587d6 100644 (file)
@@ -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);
index 31ab5477188dca6e4b3feab847da5751e117f003..4d25f59efff9d9b473579920d88f96fdf7d56294 100644 (file)
@@ -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();
index 05442f6b4b06004922f0db74ee3b0e0b9415dffe..188ffa944bf58a3c78768663270dab1cc38a64a3 100644 (file)
@@ -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()) {
index eb7fb3d7f58578ce3de268eff6f9f61fa89b2687..9bc869f862b92e567ca61c3a41e921aaa6980865 100644 (file)
@@ -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);
         }
     };
index c9ab76d05227175a80fcd2334890167111546651..7b14bf053730453187270e7fca3c45a910318db7 100644 (file)
@@ -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)
       }
     }
index 26982250327f5b5d1139e9d2d62acaaff7ff36af..b505c99f0ace3f17dc18e4f5575c417aa0f4dc80 100644 (file)
@@ -27,6 +27,7 @@ public class PyDebugConsoleBuilder extends TextConsoleBuilder {
     mySdk = sdk;
   }
 
+  @NotNull
   @Override
   public ConsoleView getConsole() {
     final ConsoleView consoleView = createConsole();
index d7d52ee42de9c6a5e829ae70c12fc7e592e40ee3..4387c12ce80153edc3486d4b68ef23d1682adbfa 100644 (file)
@@ -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,
index c1119bd3d7ead2e382d758a5550616f6c4b6cb5a..8ae17b022607885077b0295fc378c1fd82287431 100644 (file)
@@ -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));
index a09019d32085dcc89e4e63316baaec04f665f9c0..6c71307e2c07cf5083b5fb9316d6f6edb7db55e5 100644 (file)
@@ -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);
index 5328021c4bb1a496f0542f8014f76f1db9b67643..9ad0cf11fa9237ae214f0be37a6e4604072c13cd 100644 (file)
@@ -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)
 
index 9a5d32d4357b3909afff5c9b0aa9e6504444e963..b21cf1dac6c01a00342856a3ba48979b9d537866 100644 (file)
@@ -43,23 +43,20 @@ fun createSdkForPerformance(module: Module,
 }
 
 
-fun openProjectWithPythonSdk(projectPath: String, sdkHome: String?): Pair<Project?, Sdk?> {
-  val sdkProducer = createPythonSdkProducer(sdkHome)
+fun openProjectWithPythonSdk(projectPath: String, sdkHome: String?): Pair<Project, Sdk?> {
+  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
-    }
   }
 }
 
index 9bddcb10d9fd83dffab340035491cecdedce3f53..ea4d0259365d7475056846b10bf0cdb66cd3e782 100644 (file)
@@ -26,6 +26,7 @@ import java.util.List;
  * @author shkate@jetbrains.com
  */
 public class ProjectDictionarySplitter extends StateSplitterEx {
+  @NotNull
   @Override
   public List<Pair<Element, String>> splitState(@NotNull Element state) {
     return splitState(state, DictionaryState.NAME_ATTRIBUTE);
index d20b9d790938ca4f68d19de5637cd1714ec22866..0195b8244805ee6a06273689e624b0305da465a0 100644 (file)
@@ -21,7 +21,7 @@ import java.io.File
 
 fun openProjectWithSdk(projectPath: String,
                        moduleTypeId: String,
-                       sdkProducer: (Project, Module) -> Sdk?): Pair<Project?, Sdk?> {
+                       sdkProducer: (Project, Module) -> Sdk?): Pair<Project, Sdk?> {
   println("Opening project at $projectPath")
 
   val project: Project? = ProjectManager.getInstance().loadAndOpenProject(projectPath)
index 1f72233fdabcc1249cf1fe00f4c1002552fa717f..ff34f5a8f445e887265a3e0f71e50003b49f0a3f 100644 (file)
@@ -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<Throwable> {
           Disposer.dispose(project)
-          SdkConfigurationUtil.removeSdk(sdk)
+          SdkConfigurationUtil.removeSdk(sdk!!)
         }
       })
     }