mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
template manager notnull
This commit is contained in:
@@ -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
|
||||
|
||||
+12
-38
@@ -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<String> 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<String> getRecentNames(int max) {
|
||||
Collection<String> 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<String> validNames) {
|
||||
void validateNames(List<String> validNames) {
|
||||
RECENT_TEMPLATES.retainAll(validNames);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user