WebServicesPlugin becomes a service +

suppress old-style templates
This commit is contained in:
Dmitry Avdeev
2012-04-11 16:20:10 +04:00
parent 6a5fd7837a
commit 69ea5b4335
2 changed files with 20 additions and 7 deletions
@@ -17,12 +17,22 @@
package com.intellij.codeInsight.template.impl;
import com.intellij.openapi.options.CompoundScheme;
import org.jetbrains.annotations.Nullable;
public class TemplateGroup extends CompoundScheme<TemplateImpl> {
private final String myReplace;
public TemplateGroup(final String name) {
super(name);
this(name, null);
}
public TemplateGroup(String name, @Nullable String replace) {
super(name);
myReplace = replace;
}
public String getReplace() {
return myReplace;
}
}
@@ -487,7 +487,14 @@ public class TemplateSettings implements PersistentStateComponent<Element>, Expo
String templateName = getDefaultTemplateName(defTemplate);
InputStream inputStream = DecodeDefaultsUtil.getDefaultsInputStream(provider, defTemplate);
if (inputStream != null) {
readDefTemplateFile(inputStream, templateName, provider.getClass().getClassLoader(), registerTemplate);
TemplateGroup group =
readTemplateFile(JDOMUtil.loadDocument(inputStream), templateName, true, registerTemplate, provider.getClass().getClassLoader());
if (group != null && group.getReplace() != null) {
Collection<TemplateImpl> templates = myTemplates.get(group.getReplace());
for (TemplateImpl template : templates) {
removeTemplate(template);
}
}
}
}
@@ -495,10 +502,6 @@ public class TemplateSettings implements PersistentStateComponent<Element>, Expo
return defTemplate.substring(defTemplate.lastIndexOf("/") + 1);
}
private void readDefTemplateFile(InputStream inputStream, String defGroupName, ClassLoader classLoader, boolean registerTemplate) throws JDOMException, InvalidDataException, IOException {
readTemplateFile(JDOMUtil.loadDocument(inputStream), defGroupName, true, registerTemplate, classLoader);
}
@Nullable
private TemplateGroup readTemplateFile(Document document, @NonNls String defGroupName, boolean isDefault, boolean registerTemplate, ClassLoader classLoader) throws InvalidDataException {
if (document == null) {
@@ -512,7 +515,7 @@ public class TemplateSettings implements PersistentStateComponent<Element>, Expo
String groupName = root.getAttributeValue(GROUP);
if (groupName == null || groupName.length() == 0) groupName = defGroupName;
TemplateGroup result = new TemplateGroup(groupName);
TemplateGroup result = new TemplateGroup(groupName, root.getAttributeValue("REPLACE"));
Map<String, TemplateImpl> created = new LinkedHashMap<String, TemplateImpl>();