From 07e1cf805eb7b004950234beb964cd681630e086 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 14 Sep 2018 15:45:51 +0300 Subject: [PATCH] template manager notnull --- .../fileTemplates/FileTemplateManager.java | 7 ++- .../impl/FileTemplateManagerImpl.java | 50 +++++-------------- 2 files changed, 18 insertions(+), 39 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplateManager.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplateManager.java index cd7358feb425..8796a0ee4e85 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplateManager.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/FileTemplateManager.java @@ -54,6 +54,7 @@ public abstract class FileTemplateManager{ return ServiceManager.getService(project, FileTemplateManager.class).checkInitialized(); } + @NotNull protected FileTemplateManager checkInitialized() { return this; } /** Use {@link #getInstance(Project)} instead */ @@ -76,7 +77,8 @@ public abstract class FileTemplateManager{ */ public abstract FileTemplatesScheme getProjectScheme(); - public abstract FileTemplate[] getTemplates(String category); + @NotNull + public abstract FileTemplate[] getTemplates(@NotNull String category); /** * Returns all templates from "Default" category. @@ -115,13 +117,16 @@ public abstract class FileTemplateManager{ public abstract void addRecentName(@NotNull @NonNls String name); + @NotNull public abstract FileTemplate getInternalTemplate(@NotNull @NonNls String templateName); public abstract FileTemplate findInternalTemplate(@NotNull @NonNls String templateName); @NotNull public abstract FileTemplate[] getInternalTemplates(); + @NotNull public abstract FileTemplate getJ2eeTemplate(@NotNull @NonNls String templateName); + @NotNull public abstract FileTemplate getCodeTemplate(@NotNull @NonNls String templateName); @NotNull diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateManagerImpl.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateManagerImpl.java index 39add2f34fd3..c8b9251ab066 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateManagerImpl.java @@ -2,13 +2,11 @@ package com.intellij.ide.fileTemplates.impl; -import com.intellij.ide.IdeBundle; import com.intellij.ide.fileTemplates.FileTemplate; import com.intellij.ide.fileTemplates.FileTemplateManager; import com.intellij.ide.fileTemplates.FileTemplatesScheme; import com.intellij.ide.fileTemplates.InternalTemplateBean; import com.intellij.openapi.Disposable; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.State; @@ -20,7 +18,6 @@ import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.io.FileUtilRt; -import com.intellij.openapi.util.text.StringUtil; import com.intellij.project.ProjectKt; import com.intellij.util.ArrayUtil; import com.intellij.util.SystemProperties; @@ -100,6 +97,7 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers myInitialized = true; } + @NotNull @Override protected FileTemplateManager checkInitialized() { if (!myInitialized) { @@ -115,8 +113,9 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers return myProjectScheme; } + @NotNull @Override - public FileTemplate[] getTemplates(String category) { + public FileTemplate[] getTemplates(@NotNull String category) { if (DEFAULT_TEMPLATES_CATEGORY.equals(category)) return ArrayUtil.mergeArrays(getInternalTemplates(), getAllTemplates()); if (INCLUDES_TEMPLATES_CATEGORY.equals(category)) return getAllPatterns(); if (CODE_TEMPLATES_CATEGORY.equals(category)) return getAllCodeTemplates(); @@ -201,7 +200,7 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers @NotNull public Collection getRecentNames() { validateRecentNames(); // todo: no need to do it lazily - return myState.getRecentNames(RECENT_TEMPLATES_SIZE); + return myState.getRecentNames(); } @Override @@ -229,20 +228,14 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers return result; } + @NotNull @Override public FileTemplate getInternalTemplate(@NotNull @NonNls String templateName) { FileTemplateBase template = (FileTemplateBase)findInternalTemplate(templateName); if (template == null) { template = (FileTemplateBase)getJ2eeTemplate(templateName); // Hack to be able to register class templates from the plugin. - if (template != null) { - template.setReformatCode(true); - } - else { - final String text = normalizeText(getDefaultClassTemplateText(templateName)); - template = getSettings().getInternalTemplatesManager().addTemplate(templateName, "java"); - template.setText(text); - } + template.setReformatCode(true); } return template; } @@ -258,17 +251,6 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers return template; } - @NotNull - public static String normalizeText(@NotNull String text) { - text = StringUtil.convertLineSeparators(text); - text = StringUtil.replace(text, "$NAME$", "${NAME}"); - text = StringUtil.replace(text, "$PACKAGE_NAME$", "${PACKAGE_NAME}"); - text = StringUtil.replace(text, "$DATE$", "${DATE}"); - text = StringUtil.replace(text, "$TIME$", "${TIME}"); - text = StringUtil.replace(text, "$USER$", "${USER}"); - return text; - } - @Override @NotNull public String internalTemplateToSubject(@NotNull @NonNls String templateName) { @@ -281,24 +263,19 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers return templateName.toLowerCase(); } - @NonNls @NotNull - private String getDefaultClassTemplateText(@NotNull @NonNls String templateName) { - return IdeBundle.message("template.default.class.comment", ApplicationNamesInfo.getInstance().getFullProductName()) + - "package $PACKAGE_NAME$;\n" + "public " + internalTemplateToSubject(templateName) + " $NAME$ { }"; - } - @Override public FileTemplate getCodeTemplate(@NotNull @NonNls String templateName) { return getTemplateFromManager(templateName, getSettings().getCodeTemplatesManager()); } + @NotNull @Override public FileTemplate getJ2eeTemplate(@NotNull @NonNls String templateName) { return getTemplateFromManager(templateName, getSettings().getJ2eeTemplatesManager()); } - @Nullable + @NotNull private static FileTemplate getTemplateFromManager(@NotNull final String templateName, @NotNull final FTManager ftManager) { FileTemplateBase template = ftManager.getTemplate(templateName); if (template != null) { @@ -308,13 +285,10 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers if (template != null) { return template; } - if (templateName.endsWith("ForTest") && ApplicationManager.getApplication().isUnitTestMode()) { - return null; - } String message = "Template not found: " + templateName/*ftManager.templateNotFoundMessage(templateName)*/; LOG.error(message); - return null; + throw new IllegalStateException(message); } @Override @@ -478,13 +452,13 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers } @NotNull - public Collection getRecentNames(int max) { + Collection getRecentNames() { int size = RECENT_TEMPLATES.size(); - int resultSize = Math.min(max, size); + int resultSize = Math.min(FileTemplateManager.RECENT_TEMPLATES_SIZE, size); return RECENT_TEMPLATES.subList(size - resultSize, size); } - public void validateNames(List validNames) { + void validateNames(List validNames) { RECENT_TEMPLATES.retainAll(validNames); } }