diff --git a/aop-common/src/main/java/com/intellij/aop/jam/DeclareParentsInspection.java b/aop-common/src/main/java/com/intellij/aop/jam/DeclareParentsInspection.java index 76ce93c..b49f36f 100644 --- a/aop-common/src/main/java/com/intellij/aop/jam/DeclareParentsInspection.java +++ b/aop-common/src/main/java/com/intellij/aop/jam/DeclareParentsInspection.java @@ -8,14 +8,13 @@ import com.intellij.aop.psi.AopPointcutExpressionFile; import com.intellij.java.language.psi.PsiClass; import com.intellij.java.language.psi.PsiLiteralExpression; -import com.intellij.java.language.psi.PsiMethod; -import com.intellij.java.language.psi.PsiModifier; +import com.intellij.java.language.psi.PsiMember; +import consulo.annotation.access.RequiredReadAction; import consulo.annotation.component.ExtensionImpl; import consulo.aop.localize.AopLocalize; import consulo.document.util.TextRange; import consulo.language.editor.inspection.LocalQuickFix; import consulo.language.editor.inspection.ProblemDescriptor; -import consulo.language.editor.inspection.ProblemHighlightType; import consulo.language.editor.inspection.ProblemsHolder; import consulo.language.editor.rawHighlight.HighlightDisplayLevel; import consulo.language.inject.InjectedLanguageManager; @@ -27,13 +26,11 @@ import consulo.logging.Logger; import consulo.project.Project; import consulo.util.collection.ContainerUtil; -import consulo.util.lang.function.Condition; import consulo.virtualFileSystem.ReadonlyStatusHandler; import consulo.xml.editor.XmlSuppressableInspectionTool; import consulo.xml.language.psi.XmlAttributeValue; import consulo.xml.language.psi.XmlElement; import jakarta.annotation.Nonnull; -import org.jetbrains.annotations.NonNls; /** * @author peter @@ -42,11 +39,13 @@ public class DeclareParentsInspection extends XmlSuppressableInspectionTool { private static final Logger LOG = Logger.getInstance(DeclareParentsInspection.class); + @Override public boolean isEnabledByDefault() { return true; } @Nonnull + @Override public HighlightDisplayLevel getDefaultLevel() { return HighlightDisplayLevel.ERROR; } @@ -64,9 +63,11 @@ public String getShortName() { } @Nonnull + @Override public PsiElementVisitor buildVisitor(@Nonnull final ProblemsHolder holder, boolean isOnTheFly) { return new PsiElementVisitor() { @Override + @RequiredReadAction public void visitElement(PsiElement element) { if (element instanceof PsiLiteralExpression || element instanceof XmlAttributeValue) { PsiElement injectedElement = @@ -76,9 +77,8 @@ public void visitElement(PsiElement element) { ); PsiFile file = injectedElement == null ? null : injectedElement.getContainingFile(); - if (file instanceof AopPointcutExpressionFile) { - final IntroductionManipulator manipulator = - ((AopPointcutExpressionFile) file).getAopModel().getIntroductionManipulator(); + if (file instanceof AopPointcutExpressionFile pointcutExpressionFile) { + final IntroductionManipulator manipulator = pointcutExpressionFile.getAopModel().getIntroductionManipulator(); if (manipulator == null) { return; } @@ -90,7 +90,7 @@ public void visitElement(PsiElement element) { PsiClass intf = introduction.getImplementInterface().getValue(); if (intf == null && introduction.getImplementInterface().getStringValue() != null || intf != null && !intf.isInterface()) { - registerProblem(manipulator.getInterfaceElement(), AopLocalize.errorInterfaceExpected().get(), holder); + registerProblem(manipulator.getInterfaceElement(), AopLocalize.errorInterfaceExpected(), holder); return; } if (intf == null) { @@ -99,14 +99,8 @@ public void visitElement(PsiElement element) { PsiClass defaultImpl = introduction.getDefaultImpl().getValue(); if (defaultImpl == null) { - if (!(element instanceof XmlElement) && !ContainerUtil.findAll( - intf.getAllMethods(), - new Condition() { - public boolean value(PsiMethod method) { - return method.hasModifierProperty(PsiModifier.ABSTRACT); - } - } - ).isEmpty()) { + if (!(element instanceof XmlElement) + && !ContainerUtil.findAll(intf.getAllMethods(), PsiMember::isAbstract).isEmpty()) { holder.newProblem(AopLocalize.errorDefaultImplementationClassShouldBeSpecified()) .range(manipulator.getCommonProblemElement()) .withFix(new LocalQuickFix() { @@ -116,6 +110,7 @@ public LocalizeValue getName() { return AopLocalize.quickfixNameDefineAttribute(manipulator.getDefaultImplAttributeName()); } + @Override public void applyFix(@Nonnull Project project, @Nonnull ProblemDescriptor descriptor) { try { if (ReadonlyStatusHandler.getInstance(project) @@ -137,12 +132,12 @@ public void applyFix(@Nonnull Project project, @Nonnull ProblemDescriptor descri } return; } - if (defaultImpl.hasModifierProperty(PsiModifier.ABSTRACT) || !defaultImpl.isInheritor(intf, true)) { + if (defaultImpl.isAbstract() || !defaultImpl.isInheritor(intf, true)) { PsiElement defaultImplElement = manipulator.getDefaultImplElement(); assert defaultImplElement != null; registerProblem( defaultImplElement, - AopLocalize.errorNonAbstractClassImplemention0Expected(intf.getQualifiedName()).get(), + AopLocalize.errorNonAbstractClassImplemention0Expected(intf.getQualifiedName()), holder ); } @@ -152,16 +147,12 @@ public void applyFix(@Nonnull Project project, @Nonnull ProblemDescriptor descri }; } - private static void registerProblem(PsiElement element, String descriptionTemplate, ProblemsHolder holder) { + @RequiredReadAction + private static void registerProblem(PsiElement element, LocalizeValue descriptionTemplate, ProblemsHolder holder) { int startOffset = element.getTextRange().getStartOffset(); int quotes = element.getText().startsWith("\"") ? 1 : 0; TextRange range = TextRange.from(quotes, Math.max(element.getTextLength() - 2 * quotes, 1)); - holder.registerProblem(holder.getManager().createProblemDescriptor( - element, - range, - descriptionTemplate, - ProblemHighlightType.GENERIC_ERROR_OR_WARNING - )); + holder.registerProblem(holder.getManager().newProblemDescriptor(descriptionTemplate).range(element, range).create()); } @Nonnull diff --git a/aop-common/src/main/java/com/intellij/aop/psi/AopReferenceHolder.java b/aop-common/src/main/java/com/intellij/aop/psi/AopReferenceHolder.java index b602063..5b8c257 100644 --- a/aop-common/src/main/java/com/intellij/aop/psi/AopReferenceHolder.java +++ b/aop-common/src/main/java/com/intellij/aop/psi/AopReferenceHolder.java @@ -4,6 +4,7 @@ package com.intellij.aop.psi; import com.intellij.java.language.psi.*; +import consulo.annotation.access.RequiredReadAction; import consulo.language.ast.ASTNode; import consulo.language.psi.PsiElement; @@ -22,20 +23,26 @@ public AopReferenceHolder(@Nonnull ASTNode node) { } @Nullable + @RequiredReadAction public AopTypeExpression getTypeExpression() { return findChildByClass(AopTypeExpression.class); } + @Override public String toString() { return "AopReferenceHolder"; } + @Override + @RequiredReadAction public PointcutMatchDegree accepts(@Nonnull PsiType psiType) { AopTypeExpression typeExpression = getTypeExpression(); return typeExpression != null ? AopPsiTypePattern.accepts(typeExpression, psiType) : PointcutMatchDegree.FALSE; } @Nullable + @Override + @RequiredReadAction public String getTypePattern() { AopTypeExpression expression = getTypeExpression(); if (expression == null) return null; @@ -43,31 +50,33 @@ public String getTypePattern() { return expression.getTypePattern(); } + @RequiredReadAction public final Collection getPatterns() { AopTypeExpression expression = getTypeExpression(); return expression == null ? Collections.emptyList() : expression.getPatterns(); } @Nullable + @Override + @RequiredReadAction public PsiClass findClass() { AopTypeExpression expression = getTypeExpression(); - if (expression instanceof AopReferenceExpression) { - PsiElement psiElement = ((AopReferenceExpression)expression).resolve(); - if (psiElement instanceof PsiClass) { - return (PsiClass)psiElement; - } + if (expression instanceof AopReferenceExpression refExpr && refExpr.resolve() instanceof PsiClass psiClass) { + return psiClass; } return null; } + @Override + @RequiredReadAction public boolean isAssignableFrom(PsiType type) { AopTypeExpression expression = getTypeExpression(); return expression != null && isAssignable(expression, type); } + @RequiredReadAction private static boolean isAssignable(@Nonnull AopTypeExpression expression, PsiType type) { - if (type instanceof PsiArrayType) { - PsiArrayType arrayType = (PsiArrayType)type; + if (type instanceof PsiArrayType arrayType) { if (expression instanceof AopArrayExpression) { AopArrayExpression arrayExpression = (AopArrayExpression)expression; return arrayExpression.isVarargs() == arrayType instanceof PsiEllipsisType && isAssignable(arrayExpression.getTypeReference(), arrayType.getComponentType()); @@ -75,13 +84,13 @@ private static boolean isAssignable(@Nonnull AopTypeExpression expression, PsiTy return false; } PsiType exprType; - if (expression instanceof AopReferenceExpression) { - PsiElement superClass = ((AopReferenceExpression)expression).resolve(); + if (expression instanceof AopReferenceExpression refExpr) { + PsiElement superClass = refExpr.resolve(); if (!(superClass instanceof PsiClass)) return false; exprType = JavaPsiFacade.getInstance(expression.getProject()).getElementFactory().createType((PsiClass)superClass); - } else if (expression instanceof AopPrimitiveTypeExpression) { - exprType = ((AopPrimitiveTypeExpression) expression).getPsiType(); + } else if (expression instanceof AopPrimitiveTypeExpression primitiveTypeExpr) { + exprType = primitiveTypeExpr.getPsiType(); } else { return false; } @@ -92,19 +101,22 @@ private static boolean isAssignable(@Nonnull AopTypeExpression expression, PsiTy } @Nonnull + @Override + @RequiredReadAction public String getQualifiedName() { PsiClass psiClass = findClass(); if (psiClass != null) { - String qname = psiClass.getQualifiedName(); - if (qname != null) { - return qname; + String qName = psiClass.getQualifiedName(); + if (qName != null) { + return qName; } } return getText().trim(); } + @Override + @RequiredReadAction public PointcutMatchDegree canBeInstance(PsiClass psiClass, boolean allowPatterns) { return PsiTargetExpression.canBeInstanceOf(psiClass, allowPatterns, getTypeExpression()); } - } diff --git a/aop-common/src/main/java/com/intellij/aop/psi/ConcatenationPattern.java b/aop-common/src/main/java/com/intellij/aop/psi/ConcatenationPattern.java index 3073ac9..85112ad 100644 --- a/aop-common/src/main/java/com/intellij/aop/psi/ConcatenationPattern.java +++ b/aop-common/src/main/java/com/intellij/aop/psi/ConcatenationPattern.java @@ -35,13 +35,13 @@ public AopPsiTypePattern getRight() { return myRight; } + @Override public boolean accepts(@Nonnull PsiType type) { - if (type instanceof PsiClassType) { - PsiClassType classType = (PsiClassType)type; + if (type instanceof PsiClassType classType) { PsiClass psiClass = classType.resolve(); if (psiClass != null) { - String qname = psiClass.getQualifiedName(); - if (qname != null && accepts(qname)) { + String qName = psiClass.getQualifiedName(); + if (qName != null && accepts(qName)) { return true; } } @@ -49,6 +49,7 @@ public boolean accepts(@Nonnull PsiType type) { return false; } + @Override public boolean accepts(@Nonnull String qualifiedName) { String[] strings = qualifiedName.split("\\."); int[] indices = new int[strings.length]; diff --git a/aop-common/src/main/java/com/intellij/aop/psi/FieldPatternPointcut.java b/aop-common/src/main/java/com/intellij/aop/psi/FieldPatternPointcut.java index 3417cf3..e29a8c8 100644 --- a/aop-common/src/main/java/com/intellij/aop/psi/FieldPatternPointcut.java +++ b/aop-common/src/main/java/com/intellij/aop/psi/FieldPatternPointcut.java @@ -5,6 +5,7 @@ package com.intellij.aop.psi; import com.intellij.java.language.psi.PsiMember; +import consulo.annotation.access.RequiredReadAction; import consulo.language.ast.ASTNode; import jakarta.annotation.Nonnull; @@ -26,21 +27,25 @@ public String toString() { } @Nullable + @RequiredReadAction public AopModifierList getModifierList() { return findChildByClass(AopModifierList.class); } @Nullable + @RequiredReadAction public AopAnnotationHolder getAnnotationHolder() { return findChildByClass(AopAnnotationHolder.class); } @Nonnull + @Override public PointcutMatchDegree acceptsSubject(PointcutContext context, PsiMember member) { return PointcutMatchDegree.FALSE; } @Nonnull + @Override public Collection getPatterns() { return Collections.emptyList(); } diff --git a/aop-common/src/main/java/com/intellij/aop/psi/FieldPointcutDescriptor.java b/aop-common/src/main/java/com/intellij/aop/psi/FieldPointcutDescriptor.java index 2f54b2a..dddd900 100644 --- a/aop-common/src/main/java/com/intellij/aop/psi/FieldPointcutDescriptor.java +++ b/aop-common/src/main/java/com/intellij/aop/psi/FieldPointcutDescriptor.java @@ -4,37 +4,35 @@ */ package com.intellij.aop.psi; -import com.intellij.aop.AopBundle; +import consulo.aop.localize.AopLocalize; import consulo.language.pratt.MutableMarker; import consulo.language.pratt.PrattBuilder; -import org.jetbrains.annotations.NonNls; import static com.intellij.aop.psi.AopElementTypes.*; import static com.intellij.aop.psi.AopPrattParser.TYPE_PATTERN; /** * @author peter -*/ -public abstract class FieldPointcutDescriptor extends PointcutDescriptor{ - -protected FieldPointcutDescriptor(@NonNls String tokenText) { - super(tokenText); + */ +public abstract class FieldPointcutDescriptor extends PointcutDescriptor { + protected FieldPointcutDescriptor(String tokenText) { + super(tokenText); + } + + @Override + public void parseToken(PrattBuilder builder) { + if (builder.assertToken(AOP_LEFT_PAR, AopLocalize.error0Expected("(").get())) { + MethodPointcutDescriptor.parseAnnotationsWithModifiers(builder); + + MutableMarker type = builder.mark(); + builder.parseChildren(TYPE_PATTERN, AopLocalize.errorTypeNamePatternExpected().get()); + type.finish(AOP_REFERENCE_HOLDER); + + MutableMarker fieldName = builder.mark(); + builder.parseChildren(TYPE_PATTERN, AopLocalize.errorFieldNamePatternExpected().get()); + fieldName.finish(AOP_MEMBER_REFERENCE_EXPRESSION); + + builder.assertToken(AOP_RIGHT_PAR, AopLocalize.error0Expected(")").get()); + } + } } - - public void parseToken(PrattBuilder builder) { - if (builder.assertToken(AOP_LEFT_PAR, AopBundle.message("error.0.expected", "("))) { - MethodPointcutDescriptor.parseAnnotationsWithModifiers(builder); - - MutableMarker type = builder.mark(); - builder.parseChildren(TYPE_PATTERN, AopBundle.message("error.type.name.pattern.expected")); - type.finish(AOP_REFERENCE_HOLDER); - - MutableMarker fieldName = builder.mark(); - builder.parseChildren(TYPE_PATTERN, AopBundle.message("error.field.name.pattern.expected")); - fieldName.finish(AOP_MEMBER_REFERENCE_EXPRESSION); - - builder.assertToken(AOP_RIGHT_PAR, AopBundle.message("error.0.expected", ")")); - } - - } -} \ No newline at end of file diff --git a/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParser.java b/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParser.java index 416ac3c..e109415 100644 --- a/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParser.java +++ b/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParser.java @@ -17,6 +17,7 @@ private CustomBeanParser() { public static void main(String[] args) { Logger.getLogger("").setLevel(Level.FINE); Logger.getLogger("").addHandler(new Handler() { + @Override public void publish(LogRecord record) { Throwable throwable = record.getThrown(); if (throwable != null) { @@ -24,9 +25,11 @@ public void publish(LogRecord record) { } } + @Override public void flush() { } + @Override public void close() throws SecurityException { } }); @@ -117,7 +120,7 @@ static String decode(String s1) { case'u': if (idx + 4 < length) { try { - int code = Integer.valueOf(s1.substring(idx + 1, idx + 5), 16).intValue(); + int code = Integer.valueOf(s1.substring(idx + 1, idx + 5), 16); idx += 4; buffer.append((char)code); } diff --git a/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParserUtil.java b/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParserUtil.java index 3b4a064..7f43a96 100644 --- a/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParserUtil.java +++ b/obsolete/customNs/src/com/intellij/spring/model/xml/custom/CustomBeanParserUtil.java @@ -118,6 +118,7 @@ public Object extractSource(Object sourceCandidate, Resource definingResource) { reads.down(); final Throwable[] exception = new Throwable[1]; Thread thread = new Thread() { + @Override public void run() { try { reader.loadBeanDefinitions(resource); diff --git a/obsolete/spring-tests/tests/com/intellij/spring/model/xml/BasicSpringTestCase.java b/obsolete/spring-tests/tests/com/intellij/spring/model/xml/BasicSpringTestCase.java index 31bae6b..81d747a 100644 --- a/obsolete/spring-tests/tests/com/intellij/spring/model/xml/BasicSpringTestCase.java +++ b/obsolete/spring-tests/tests/com/intellij/spring/model/xml/BasicSpringTestCase.java @@ -26,14 +26,11 @@ public abstract class BasicSpringTestCase extends UsefulTestCase { @Nullable - protected static VirtualFile getFile(final String path) { - - final Ref result = new Ref(null); - ApplicationManager.getApplication().runWriteAction(new Runnable() { - public void run() { - VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByPath(path); - result.set(file); - } + protected static VirtualFile getFile(String path) { + Ref result = new Ref(null); + ApplicationManager.getApplication().runWriteAction((Runnable) () -> { + VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByPath(path); + result.set(file); }); return result.get(); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/BeansExtender.java b/plugin/src/main/java/com/intellij/spring/impl/ide/BeansExtender.java index 3fcfa0e..909c381 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/BeansExtender.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/BeansExtender.java @@ -19,6 +19,7 @@ public Class getElementClass() { return Beans.class; } + @Override public void registerExtensions(@Nonnull Beans element, @Nonnull DomExtensionsRegistrar registrar) { SpringDefaultDomExtender.registerDefaultBeanExtensions(registrar); diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/CustomBeanRegistry.java b/plugin/src/main/java/com/intellij/spring/impl/ide/CustomBeanRegistry.java index 6aea05f..fa47d29 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/CustomBeanRegistry.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/CustomBeanRegistry.java @@ -7,6 +7,7 @@ import com.intellij.spring.impl.ide.constants.SpringConstants; import com.intellij.spring.impl.ide.schemas.SpringSchemaProvider; import com.intellij.spring.impl.model.CustomBeanWrapperImpl; +import consulo.annotation.access.RequiredReadAction; import consulo.annotation.component.ComponentScope; import consulo.annotation.component.ServiceAPI; import consulo.annotation.component.ServiceImpl; @@ -22,6 +23,7 @@ import consulo.language.content.LanguageContentFolderScopes; import consulo.language.util.IncorrectOperationException; import consulo.language.util.ModuleUtilCore; +import consulo.localize.LocalizeValue; import consulo.logging.Logger; import consulo.module.Module; import consulo.module.content.ModuleRootManager; @@ -33,28 +35,28 @@ import consulo.process.event.ProcessAdapter; import consulo.process.event.ProcessEvent; import consulo.project.Project; +import consulo.spring.localize.SpringLocalize; import consulo.util.collection.ContainerUtil; import consulo.util.collection.SmartList; import consulo.util.dataholder.Key; import consulo.util.io.ClassPathUtil; import consulo.util.jdom.JDOMUtil; import consulo.util.lang.ExceptionUtil; +import consulo.util.lang.StringEscapeUtil; import consulo.util.lang.StringUtil; -import consulo.util.lang.function.Condition; -import consulo.util.lang.ref.Ref; +import consulo.util.lang.ref.SimpleReference; import consulo.virtualFileSystem.VirtualFile; import consulo.virtualFileSystem.util.PathsList; import consulo.xml.language.psi.XmlAttribute; import consulo.xml.language.psi.XmlElementFactory; import consulo.xml.language.psi.XmlElementVisitor; import consulo.xml.language.psi.XmlTag; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.inject.Singleton; import org.jdom.Document; import org.jdom.JDOMException; -import org.jetbrains.annotations.NonNls; -import jakarta.annotation.Nonnull; -import jakarta.annotation.Nullable; import java.io.File; import java.io.IOException; import java.io.PrintWriter; @@ -75,14 +77,11 @@ private static boolean isDebug() { private static final int CURRENT_VERSION = 1; private static final Logger LOG = Logger.getInstance(CustomBeanRegistry.class); - @NonNls private static final String CUSTOM_BEAN_PARSER = "com.intellij.spring.model.xml.custom.CustomBeanParser"; - private Map> myText2Infos = new HashMap>(); - private Map myPolicies = new HashMap(); - @NonNls + private Map> myText2Infos = new HashMap<>(); + private Map myPolicies = new HashMap<>(); private static final String FAKE_ID = "IntelliJIDEARulezzz"; - @NonNls public static final String CUSTOM_SPRING_BEANS_PARSING_TIMEOUT = "custom.spring.beans.parsing.timeout"; private static int getTimeout() { @@ -94,9 +93,10 @@ private static int getTimeout() { } } + @Override public MyBean getState() { MyBean bean = new MyBean(); - bean.map = new HashMap>(); + bean.map = new HashMap<>(); for (String s : myText2Infos.keySet()) { List infos = myText2Infos.get(s); if (infos != null && !infos.isEmpty()) { @@ -107,6 +107,7 @@ public MyBean getState() { return bean; } + @Override public void loadState(MyBean state) { if (state.version == CURRENT_VERSION) { myText2Infos = state.map; @@ -114,6 +115,7 @@ public void loadState(MyBean state) { } } + @RequiredReadAction public ParseResult parseBeans(Collection tags) { ParseResult result = ParseResult.EMPTY_PARSE_RESULT; for (XmlTag tag : tags) { @@ -124,10 +126,11 @@ public ParseResult parseBeans(Collection tags) { return result; } + @RequiredReadAction public ParseResult parseBean(XmlTag tag) { String text = getIdealBeanText(tag); try { - consulo.module.Module module = ModuleUtilCore.findModuleForPsiElement(tag); + Module module = tag.getModule(); if (module == null) return ParseResult.EMPTY_PARSE_RESULT; ParseResult result = getCustomBeans(createTag(text, tag.getProject()), module); @@ -144,6 +147,7 @@ public static CustomBeanRegistry getInstance(Project project) { } @Nullable + @RequiredReadAction public List getParseResult(XmlTag tag) { CustomBeanInfo policy = myPolicies.get(new MyQName(tag.getNamespace(), tag.getLocalName())); if (policy != null) { @@ -156,6 +160,7 @@ public List getParseResult(XmlTag tag) { } @Nonnull + @RequiredReadAction public static String getIdealBeanText(XmlTag tag) { Set usedNamespaces = collectReferencedNamespaces(tag); @@ -197,7 +202,7 @@ public static String getIdealBeanText(XmlTag tag) { } private static Set collectReferencedNamespaces(XmlTag tag) { - final Set usedNamespaces = new HashSet(); + final Set usedNamespaces = new HashSet<>(); tag.accept(new XmlElementVisitor() { @Override public final void visitXmlTag(XmlTag tag) { @@ -223,12 +228,13 @@ private static XmlTag createTag(String text, Project project) throws IncorrectOp } @Nonnull + @RequiredReadAction public static XmlTag getActualSourceTag(CustomBeanInfo info, XmlTag tag) { List path = info.path; for (Integer index : path) { XmlTag parent = tag; XmlTag[] subTags = parent.getSubTags(); - int i = index.intValue(); + int i = index; tag = subTags[i]; if (tag == null) { LOG.error("parent: " + parent.getText() + "\nindex: " + i + "\nsubTags: " + Arrays.toString(subTags)); @@ -246,8 +252,8 @@ public void addBeanPolicy(@Nonnull String namespace, @Nonnull String localName, public static class MyBean { public int version = CURRENT_VERSION; - public Map> map = new HashMap>(); - public Map policies = new HashMap(); + public Map> map = new HashMap<>(); + public Map policies = new HashMap<>(); } public static class MyQName { @@ -263,16 +269,11 @@ public MyQName(String namespace, String localName) { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) return true; - if (!(o instanceof MyQName)) return false; - - MyQName myQName = (MyQName)o; - - if (!localName.equals(myQName.localName)) return false; - if (!namespace.equals(myQName.namespace)) return false; - - return true; + return o instanceof MyQName that + && localName.equals(that.localName) + && namespace.equals(that.namespace); } @Override @@ -292,18 +293,19 @@ private static void computeUrls(consulo.module.Module module, PathsList list) { else {//development mode list.add(new File(springPluginClassesLocation.getParent(), "spring-customNs").getAbsolutePath()); } - JspSpiUtil.processClassPathItems(null, module, file -> list.add(file)); + JspSpiUtil.processClassPathItems(null, module, list::add); for (VirtualFile file : ModuleRootManager.getInstance(module).getContentFolderFiles(LanguageContentFolderScopes.production())) { list.add(file); } } @Nonnull + @RequiredReadAction private static ParseResult getCustomBeans(@Nonnull XmlTag tag, @Nonnull consulo.module.Module module) { Map handlersToRun = findHandlersToRun(module, tag); String namespace = tag.getNamespace(); if (!handlersToRun.containsKey(namespace)) { - return new ParseResult(SpringBundle.message("parse.no.namespace.handler", namespace)); + return new ParseResult(SpringLocalize.parseNoNamespaceHandler(namespace)); } OwnJavaParameters javaParameters = new OwnJavaParameters(); @@ -325,7 +327,7 @@ private static ParseResult getCustomBeans(@Nonnull XmlTag tag, @Nonnull consulo. try { handler = ProcessHandlerBuilder.create(cmd).build(); - @NonNls PrintWriter writer = new PrintWriter(handler.getProcessInput()); + PrintWriter writer = new PrintWriter(handler.getProcessInput()); handler.startNotify(); int timeout = Math.max(getTimeout(), tag.getTextLength() * 150); @@ -370,9 +372,9 @@ private static ParseResult getCustomBeans(@Nonnull XmlTag tag, @Nonnull consulo. } @Nonnull - private static ParseResult invokeParser(@NonNls PrintWriter writer, final ProcessHandler handler, XmlTag tag, - int timeout) { - final Ref result = Ref.create(null); + @RequiredReadAction + private static ParseResult invokeParser(PrintWriter writer, final ProcessHandler handler, XmlTag tag, int timeout) { + final SimpleReference result = SimpleReference.create(null); final Semaphore semaphore = new Semaphore(); semaphore.down(); @@ -393,30 +395,30 @@ public void onTextAvailable(ProcessEvent event, Key outputType) { int i = sb.indexOf("\n\n"); if (i < 0) return; - @NonNls String input = sb.substring(0, i); + String input = sb.substring(0, i); sb.delete(0, i + 2); String[] lines = input.split("\n"); int k = 0; while (k < lines.length && !"exception".equals(lines[k]) && !"timeout".equals(lines[k]) && !"result".equals(lines[k])) k++; if (k >= lines.length) { - setResult(new ParseResult("Internal error parsing bean; output:\n" + input)); + setResult(new ParseResult(LocalizeValue.localizeTODO("Internal error parsing bean; output:\n" + input))); return; } - @NonNls String first = lines[k]; + String first = lines[k]; if ("exception".equals(first)) { assert lines.length == k + 2; - setResult(new ParseResult(StringUtil.unescapeStringCharacters(lines[k + 1]), true)); + setResult(new ParseResult(StringEscapeUtil.unescape(lines[k + 1]), true)); return; } if ("timeout".equals(first)) { assert lines.length == k + 1; - setResult(new ParseResult(SpringBundle.message("timeout.parsing.bean"))); + setResult(new ParseResult(SpringLocalize.timeoutParsingBean())); return; } if ("result".equals(first)) { - List list = new SmartList(); + List list = new SmartList<>(); String nextLine = lines[k + 1]; boolean hasInfras = "has_infrastructures".equals(nextLine); if (!hasInfras) { @@ -428,8 +430,8 @@ public void onTextAvailable(ProcessEvent event, Key outputType) { assert "info".equals(nextLine); CustomBeanInfo info = new CustomBeanInfo(); while (!"info_end".equals(lines[j])) { - @NonNls String prop = lines[j++]; - @NonNls String propValue = StringUtil.unescapeStringCharacters(lines[j++]); + String prop = lines[j++]; + String propValue = StringEscapeUtil.unescape(lines[j++]); if ("beanName".equals(prop)) { info.beanName = propValue; } @@ -451,7 +453,7 @@ else if ("factoryBeanName".equals(prop)) { String separated = propValue.substring(1); info.path = StringUtil.isEmpty(separated) ? Collections.emptyList() - : ContainerUtil.map(separated.split(";"), s -> Integer.parseInt(s)); + : ContainerUtil.map(separated.split(";"), Integer::parseInt); } } list.add(info); @@ -474,16 +476,16 @@ private void setResult(ParseResult value) { @Override public void processTerminated(ProcessEvent event) { if (other.length() == 0 || sb.length() == 0) { - setResult(new ParseResult(SpringBundle.message("process.unexpectedly.terminated", ""))); + setResult(new ParseResult(SpringLocalize.processUnexpectedlyTerminated(""))); return; } - @NonNls String output = ":\n\nSTDOUT:\n" + sb + "\n\nOTHER:\n" + other; - setResult(new ParseResult(SpringBundle.message("process.unexpectedly.terminated", output))); + String output = ":\n\nSTDOUT:\n" + sb + "\n\nOTHER:\n" + other; + setResult(new ParseResult(SpringLocalize.processUnexpectedlyTerminated(output))); } }); writer.println("input"); - writer.println(StringUtil.escapeStringCharacters(tag.getText())); + writer.println(StringEscapeUtil.escape(tag.getText(), '"')); writer.flush(); boolean inTime = semaphore.waitFor(timeout); @@ -494,12 +496,13 @@ public void processTerminated(ProcessEvent event) { return new ParseResult(other.toString(), true); } - return new ParseResult(SpringBundle.message("timeout.parsing.bean")); + return new ParseResult(SpringLocalize.timeoutParsingBean()); } return parseResult; } - private static void guessIdAttributeNames(@NonNls PrintWriter writer, + @RequiredReadAction + private static void guessIdAttributeNames(PrintWriter writer, ProcessHandler reader, XmlTag tag, List list, @@ -513,12 +516,11 @@ private static void guessIdAttributeNames(@NonNls PrintWriter writer, if (info.idAttribute != null) continue; XmlTag sourceTag = getActualSourceTag(info, tag); - final String id = info.beanName; - XmlAttribute idAttr = id == null ? null : ContainerUtil.find(sourceTag.getAttributes(), new Condition() { - public boolean value(XmlAttribute xmlAttribute) { - return !xmlAttribute.isNamespaceDeclaration() && id.equals(xmlAttribute.getDisplayValue()); - } - }); + String id = info.beanName; + XmlAttribute idAttr = id == null ? null : ContainerUtil.find( + sourceTag.getAttributes(), + xmlAttribute -> !xmlAttribute.isNamespaceDeclaration() && id.equals(xmlAttribute.getDisplayValue()) + ); if (idAttr != null) { String fakeName = FAKE_ID + i; fakeNames[i] = fakeName; @@ -549,7 +551,7 @@ private static Map findHandlersToRun(@Nonnull Module module, @No Set referencedNamespaces = collectReferencedNamespaces(tag); - HashMap handlersToRun = new HashMap(referencedNamespaces.size()); + Map handlersToRun = new HashMap<>(referencedNamespaces.size()); for (String namespace : handlers.keySet()) { if (referencedNamespaces.contains(namespace)) { handlersToRun.put(namespace, handlers.get(namespace)); @@ -559,7 +561,6 @@ private static Map findHandlersToRun(@Nonnull Module module, @No return handlersToRun; } - public static class ParseResult { static final ParseResult EMPTY_PARSE_RESULT = new ParseResult(Collections.emptyList(), false); @@ -580,16 +581,15 @@ private static String getStackTrace(Throwable e) { return ExceptionUtil.getThrowableText(e); } - private ParseResult(Throwable t) { this(getStackTrace(t), true); } - private ParseResult(String errorMessage) { - this(errorMessage, false); + private ParseResult(LocalizeValue errorMessage) { + this(errorMessage.get(), false); } - private ParseResult(String errorMessage, boolean isStackTrace) { + private ParseResult(@Nullable String errorMessage, boolean isStackTrace) { if (!isStackTrace) { this.errorMessage = errorMessage; } @@ -636,7 +636,6 @@ public ParseResult merge(ParseResult with) { return result; } } - } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/BeanReferenceFactoryBeanTypeResolver.java b/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/BeanReferenceFactoryBeanTypeResolver.java index f038159..6aa6e6e 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/BeanReferenceFactoryBeanTypeResolver.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/BeanReferenceFactoryBeanTypeResolver.java @@ -3,9 +3,8 @@ import com.intellij.java.language.psi.PsiClassType; import com.intellij.spring.impl.ide.model.xml.CommonSpringBean; import com.intellij.spring.impl.ide.model.xml.beans.SpringBean; -import org.jetbrains.annotations.NonNls; - import jakarta.annotation.Nonnull; + import java.util.Collections; import java.util.Set; @@ -13,13 +12,13 @@ * @author Taras Tielkes */ public class BeanReferenceFactoryBeanTypeResolver extends AbstractTypeResolver { - @NonNls private static final String FACTORY_CLASS = "org.springframework.beans.factory.config.BeanReferenceFactoryBean"; - @NonNls private static final String TARGET_NAME_PROPERTY_NAME = "targetBeanName"; + private static final String FACTORY_CLASS = "org.springframework.beans.factory.config.BeanReferenceFactoryBean"; + private static final String TARGET_NAME_PROPERTY_NAME = "targetBeanName"; @Nonnull + @Override public Set getObjectType(@Nonnull CommonSpringBean context) { - if (context instanceof SpringBean) { - SpringBean bean = (SpringBean)context; + if (context instanceof SpringBean bean) { String targetBeanName = getPropertyValue(context, TARGET_NAME_PROPERTY_NAME); if (targetBeanName != null) { PsiClassType fromTargetName = getTypeFromBeanName(bean, targetBeanName); @@ -31,6 +30,7 @@ public Set getObjectType(@Nonnull CommonSpringBean context) { return Collections.emptySet(); } + @Override public boolean accept(@Nonnull String factoryClassName) { return FACTORY_CLASS.equals(factoryClassName); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/FactoryPropertiesDependentTypeResolver.java b/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/FactoryPropertiesDependentTypeResolver.java index 767207c..0b012cc 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/FactoryPropertiesDependentTypeResolver.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/factories/resolvers/FactoryPropertiesDependentTypeResolver.java @@ -1,7 +1,6 @@ /* * Copyright (c) 2000-2007 JetBrains s.r.o. All Rights Reserved. */ - package com.intellij.spring.impl.ide.factories.resolvers; import com.intellij.spring.impl.ide.model.xml.CommonSpringBean; @@ -19,6 +18,7 @@ public FactoryPropertiesDependentTypeResolver(List propertyNames) { } @Nonnull + @Override public Set getObjectType(@Nonnull CommonSpringBean context) { for (String propertyName : myPropertyNames) { String propertyValue = getPropertyValue(context, propertyName); @@ -29,6 +29,7 @@ public Set getObjectType(@Nonnull CommonSpringBean context) { return Collections.emptySet(); } + @Override public boolean accept(@Nonnull String factoryClassName) { return true; } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/gutter/DomElementListCellRenderer.java b/plugin/src/main/java/com/intellij/spring/impl/ide/gutter/DomElementListCellRenderer.java index f669bc3..a2bc079 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/gutter/DomElementListCellRenderer.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/gutter/DomElementListCellRenderer.java @@ -1,30 +1,28 @@ /* * Copyright (c) 2000-2007 JetBrains s.r.o. All Rights Reserved. */ - package com.intellij.spring.impl.ide.gutter; +import consulo.annotation.access.RequiredReadAction; import consulo.language.editor.ui.PsiElementListCellRenderer; import consulo.language.psi.PsiElement; import consulo.ui.image.Image; -import consulo.xml.language.psi.XmlTag; import consulo.xml.dom.DomElement; import consulo.xml.dom.DomManager; -import org.jetbrains.annotations.Nls; - +import consulo.xml.language.psi.XmlTag; import jakarta.annotation.Nullable; /** * @author Dmitry Avdeev */ public class DomElementListCellRenderer extends PsiElementListCellRenderer { - protected final String myUnknown; - public DomElementListCellRenderer(@Nls String unknownElementText) { + public DomElementListCellRenderer(String unknownElementText) { myUnknown = unknownElementText; } + @Override public String getElementText(XmlTag element) { DomElement domElement = getDomElement(element); if (domElement == null) return element.getName(); @@ -33,18 +31,23 @@ public String getElementText(XmlTag element) { return elementName == null ? myUnknown : elementName; } + @Override + @RequiredReadAction protected String getContainerText(XmlTag element, String name) { return getContainerText(element); } + @RequiredReadAction public static String getContainerText(PsiElement element) { return " (" + element.getContainingFile().getName() + ")"; } + @Override protected int getIconFlags() { return 0; } + @Override protected Image getIcon(PsiElement element) { DomElement domElement = getDomElement((XmlTag)element); if (domElement != null && domElement.getPresentation().getIcon() != null) { diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/GenerateSpringDomElementActionGroup.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/GenerateSpringDomElementActionGroup.java index 3067c27..a486346 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/GenerateSpringDomElementActionGroup.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/GenerateSpringDomElementActionGroup.java @@ -1,33 +1,36 @@ package com.intellij.spring.impl.ide.model.actions; +import consulo.spring.impl.icon.SpringImplIconGroup; +import consulo.spring.localize.SpringLocalize; import consulo.ui.ex.action.DefaultActionGroup; -import com.intellij.spring.impl.ide.SpringBundle; -import com.intellij.spring.impl.ide.SpringIcons; import com.intellij.spring.impl.ide.model.actions.generate.SpringBeanGenerateProvider; import com.intellij.spring.impl.ide.model.actions.generate.SpringConstructorDependenciesGenerateProvider; import com.intellij.spring.impl.ide.model.actions.generate.SpringPropertiesGenerateProvider; import com.intellij.spring.impl.ide.model.actions.generate.SpringSetterDependenciesGenerateProvider; import consulo.ui.ex.action.AnSeparator; -public class GenerateSpringDomElementActionGroup extends DefaultActionGroup -{ - - public GenerateSpringDomElementActionGroup() { - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringBundle.message("spring.bean"), "spring-bean"), SpringIcons.SPRING_BEAN_ICON)) ; - add(new GenerateSpringDomElementAction( - new SpringBeanGenerateProvider((SpringBundle.message("spring.bean.instantiation.by.factory")), "spring-bean-with-factory-method"), SpringIcons.SPRING_BEAN_ICON)); - add(new GenerateSpringDomElementAction( - new SpringBeanGenerateProvider((SpringBundle.message("spring.bean.instantiation.using.factory.method")), "spring-bean-with-factory-bean"), SpringIcons.SPRING_BEAN_ICON)); - - //add(new GenerateSpringDomElementAction(new SpringAliasGenerateProvider(), SpringIcons.SPRING_ALIAS_ICON )); - //add(new GenerateSpringDomElementAction(new SpringImportGenerateProvider(), SpringIcons.CONFIG_FILE)); - - add(AnSeparator.getInstance()); - - add(new GenerateSpringBeanBodyAction(new SpringPropertiesGenerateProvider())); - add(new GenerateSpringBeanBodyAction(new SpringSetterDependenciesGenerateProvider(), SpringIcons.SPRING_BEAN_ICON)); - add(new GenerateSpringBeanBodyAction(new SpringConstructorDependenciesGenerateProvider(), SpringIcons.SPRING_BEAN_ICON)); - } - +public class GenerateSpringDomElementActionGroup extends DefaultActionGroup { + public GenerateSpringDomElementActionGroup() { + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springBean(), "spring-bean"), + SpringImplIconGroup.springbean() + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider((SpringLocalize.springBeanInstantiationByFactory()), "spring-bean-with-factory-method"), + SpringImplIconGroup.springbean() + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springBeanInstantiationUsingFactoryMethod(), "spring-bean-with-factory-bean"), + SpringImplIconGroup.springbean() + )); + + //add(new GenerateSpringDomElementAction(new SpringAliasGenerateProvider(), SpringIcons.SPRING_ALIAS_ICON)); + //add(new GenerateSpringDomElementAction(new SpringImportGenerateProvider(), SpringIcons.CONFIG_FILE)); + + add(AnSeparator.getInstance()); + + add(new GenerateSpringBeanBodyAction(new SpringPropertiesGenerateProvider())); + add(new GenerateSpringBeanBodyAction(new SpringSetterDependenciesGenerateProvider(), SpringImplIconGroup.springbean())); + add(new GenerateSpringBeanBodyAction(new SpringConstructorDependenciesGenerateProvider(), SpringImplIconGroup.springbean())); + } } - diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/create/CreateSpringConfigAction.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/create/CreateSpringConfigAction.java index 50a48f0..be840ca 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/create/CreateSpringConfigAction.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/create/CreateSpringConfigAction.java @@ -1,34 +1,38 @@ package com.intellij.spring.impl.ide.model.actions.create; import com.intellij.java.language.psi.JavaPsiFacade; -import com.intellij.spring.impl.ide.SpringBundle; -import com.intellij.spring.impl.ide.SpringIcons; +import consulo.annotation.access.RequiredReadAction; import consulo.dataContext.DataContext; import consulo.fileTemplate.FileTemplate; import consulo.fileTemplate.FileTemplateUtil; -import consulo.ide.IdeBundle; import consulo.ide.action.CreateFileAction; +import consulo.ide.localize.IdeLocalize; import consulo.language.editor.LangDataKeys; import consulo.language.psi.PsiDirectory; import consulo.language.psi.PsiElement; -import consulo.language.util.ModuleUtilCore; import consulo.module.Module; import consulo.project.Project; +import consulo.spring.impl.icon.SpringImplIconGroup; +import consulo.spring.localize.SpringLocalize; +import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.awt.Messages; +import consulo.ui.ex.awt.UIUtil; import consulo.util.io.FileUtil; -import org.jetbrains.annotations.NonNls; - import jakarta.annotation.Nonnull; + import java.util.Map; public class CreateSpringConfigAction extends CreateFileAction { - public CreateSpringConfigAction() { - super(SpringBundle.message("config.new.file"), - SpringBundle.message("create.new.spring.configuration.file"), - SpringIcons.CONFIG_FILE); + super( + SpringLocalize.configNewFile(), + SpringLocalize.createNewSpringConfigurationFile(), + SpringImplIconGroup.springconfig() + ); } + @Override + @RequiredReadAction protected boolean isAvailable(DataContext dataContext) { if (!super.isAvailable(dataContext)) { return false; @@ -38,18 +42,26 @@ protected boolean isAvailable(DataContext dataContext) { } @Nonnull + @RequiredUIAccess protected PsiElement[] invokeDialog(Project project, PsiDirectory directory) { MyInputValidator validator = new MyInputValidator(project, directory); - Messages.showInputDialog(project, IdeBundle.message("prompt.enter.new.file.name"), - IdeBundle.message("title.new.file"), Messages.getQuestionIcon(), null, validator); + Messages.showInputDialog( + project, + IdeLocalize.promptEnterNewFileName().get(), + IdeLocalize.titleNewFile().get(), + UIUtil.getQuestionIcon(), + null, + validator + ); return validator.getCreatedElements(); } @Nonnull + @RequiredUIAccess protected PsiElement[] create(String newName, PsiDirectory directory) throws Exception { - Module module = ModuleUtilCore.findModuleForPsiElement(directory); + Module module = directory.getModule(); FileTemplate template = null;///SpringFrameworkSupportProvider.chooseTemplate(module); - @NonNls String fileName = FileUtil.getExtension(newName).length() == 0 ? newName + ".xml" : newName; + String fileName = FileUtil.getExtension(newName).length() == 0 ? newName + ".xml" : newName; PsiElement psiElement = FileTemplateUtil.createFromTemplate(template, fileName, (Map) null, directory); return new PsiElement[]{psiElement}; } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/BasicSpringDomGenerateProvider.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/BasicSpringDomGenerateProvider.java index eb7b9e1..b7d60ce 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/BasicSpringDomGenerateProvider.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/BasicSpringDomGenerateProvider.java @@ -4,6 +4,7 @@ import com.intellij.spring.impl.ide.SpringModel; import consulo.codeEditor.Editor; import consulo.language.psi.PsiFile; +import consulo.localize.LocalizeValue; import consulo.project.Project; import consulo.spring.impl.DomSpringModel; import consulo.xml.language.psi.XmlFile; @@ -11,23 +12,22 @@ import consulo.xml.util.xml.actions.generate.AbstractDomGenerateProvider; /** - * User: Sergey.Vasiliev + * @author Sergey.Vasiliev */ public abstract class BasicSpringDomGenerateProvider extends AbstractDomGenerateProvider { - - protected BasicSpringDomGenerateProvider(String description, Class tClass) { - super(description, tClass); + protected BasicSpringDomGenerateProvider(LocalizeValue description, Class tClass) { + super(description.get(), tClass); } - protected BasicSpringDomGenerateProvider(String description, Class tClass, String mappingId) { - super(description, tClass, mappingId); + protected BasicSpringDomGenerateProvider(LocalizeValue description, Class tClass, String mappingId) { + super(description.get(), tClass, mappingId); } @Override protected DomElement getParentDomElement(Project project, Editor editor, PsiFile file) { SpringModel springModel = SpringManager.getInstance(project).getLocalSpringModel((XmlFile)file); - if(springModel instanceof DomSpringModel) { - return ((DomSpringModel) springModel).getDomModel().getMergedModel(); + if(springModel instanceof DomSpringModel domSpringModel) { + return domSpringModel.getDomModel().getMergedModel(); } return null; } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringAliasGenerateProvider.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringAliasGenerateProvider.java index da34ae5..ded1c1e 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringAliasGenerateProvider.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringAliasGenerateProvider.java @@ -1,5 +1,6 @@ package com.intellij.spring.impl.ide.model.actions.generate; +import consulo.localize.LocalizeValue; import jakarta.annotation.Nullable; import consulo.codeEditor.Editor; @@ -9,9 +10,10 @@ public class SpringAliasGenerateProvider extends BasicSpringDomGenerateProvider { public SpringAliasGenerateProvider() { - super(getDescription(Alias.class), Alias.class); + super(LocalizeValue.of(getDescription(Alias.class)), Alias.class); } + @Override public Alias generate(@Nullable DomElement parent, Editor editor) { Alias alias = super.generate(parent, editor); @@ -23,10 +25,12 @@ public Alias generate(@Nullable DomElement parent, Editor editor) { return alias; } + @Override protected DomElement getElementToNavigate(Alias alias) { return alias.getAliasedBean(); } + @Override protected void doNavigate(DomElementNavigationProvider navigateProvider, DomElement element) { navigateProvider.navigate(((Alias)element).getAliasedBean(), true); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringBeanGenerateProvider.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringBeanGenerateProvider.java index b510eb4..d3a00af 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringBeanGenerateProvider.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringBeanGenerateProvider.java @@ -1,17 +1,17 @@ package com.intellij.spring.impl.ide.model.actions.generate; import com.intellij.spring.impl.ide.model.xml.beans.SpringBean; +import consulo.localize.LocalizeValue; import consulo.xml.dom.DomElement; -import org.jetbrains.annotations.NonNls; import jakarta.annotation.Nullable; public class SpringBeanGenerateProvider extends BasicSpringDomGenerateProvider { - - public SpringBeanGenerateProvider(String description, @NonNls String template) { + public SpringBeanGenerateProvider(LocalizeValue description, String template) { super(description, SpringBean.class, template); } @Nullable + @Override protected DomElement getElementToNavigate(SpringBean springBean) { return null; } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringImportGenerateProvider.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringImportGenerateProvider.java index 2943b1e..6e6d0dd 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringImportGenerateProvider.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/generate/SpringImportGenerateProvider.java @@ -1,16 +1,17 @@ package com.intellij.spring.impl.ide.model.actions.generate; -import consulo.codeEditor.Editor; -import com.intellij.spring.impl.ide.SpringBundle; import com.intellij.spring.impl.ide.model.xml.beans.SpringImport; +import consulo.codeEditor.Editor; +import consulo.spring.localize.SpringLocalize; import consulo.xml.dom.DomElement; import jakarta.annotation.Nullable; public class SpringImportGenerateProvider extends BasicSpringDomGenerateProvider { public SpringImportGenerateProvider() { - super(SpringBundle.message("spring.import"), SpringImport.class); + super(SpringLocalize.springImport(), SpringImport.class); } + @Override public SpringImport generate(@Nullable DomElement parent, Editor editor) { SpringImport springImport = super.generate(parent, editor); @@ -21,6 +22,7 @@ public SpringImport generate(@Nullable DomElement parent, Editor editor) { return springImport; } + @Override protected DomElement getElementToNavigate(SpringImport springImport) { return springImport.getResource(); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/aop/AopPatternsGroup.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/aop/AopPatternsGroup.java index 001a4e9..59f5240 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/aop/AopPatternsGroup.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/aop/AopPatternsGroup.java @@ -7,16 +7,17 @@ import consulo.ui.ex.action.DefaultActionGroup; public class AopPatternsGroup extends DefaultActionGroup { - public AopPatternsGroup() { super(SpringLocalize.springPatternsAopGroupName(), SpringLocalize.springPatternsAopGroupName(), AopIconGroup.gutterIntroduction()); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsAopAutoProxyCreator().get(), - "aop-auto-proxy-creator"), - AopIconGroup.gutterIntroduction())); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsAopAutoProxy().get(), - "aop-auto-proxy"), - AopIconGroup.gutterIntroduction())); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsAopAutoProxyCreator(), "aop-auto-proxy-creator"), + AopIconGroup.gutterIntroduction() + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsAopAutoProxy(), "aop-auto-proxy"), + AopIconGroup.gutterIntroduction() + )); setPopup(true); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/dataAccess/GenerateDataAccessPatternsGroup.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/dataAccess/GenerateDataAccessPatternsGroup.java index 2bf005c..d02c202 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/dataAccess/GenerateDataAccessPatternsGroup.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/dataAccess/GenerateDataAccessPatternsGroup.java @@ -1,36 +1,74 @@ package com.intellij.spring.impl.ide.model.actions.patterns.dataAccess; -import com.intellij.spring.impl.ide.SpringBundle; import com.intellij.spring.impl.ide.model.actions.GenerateSpringDomElementAction; import com.intellij.spring.impl.ide.model.actions.generate.SpringBeanGenerateProvider; import com.intellij.spring.impl.ide.model.actions.patterns.PatternIcons; import consulo.spring.localize.SpringLocalize; -import consulo.ui.ex.action.AnActionEvent; -import consulo.ui.ex.action.AnActionWithSyncUpdate; import consulo.ui.ex.action.DefaultActionGroup; import consulo.ui.image.Image; public class GenerateDataAccessPatternsGroup extends DefaultActionGroup { - public GenerateDataAccessPatternsGroup() { super(SpringLocalize.springPatternsDataAccessGroupName(), SpringLocalize.springPatternsDataAccessGroupName(), PatternIcons.DATA_ACCESS_GROUP_ICON); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessDataSource().get(), "datasource"), Image.empty())); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJndiDataSource().get(), "jndi-datasource"), Image.empty())); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessTransactionManager().get(), "transaction-manager"), PatternIcons.TRANSACTION_MANAGER_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessDataSource(), "datasource"), + Image.empty() + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJndiDataSource(), "jndi-datasource"), + Image.empty() + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessTransactionManager(), "transaction-manager"), + PatternIcons.TRANSACTION_MANAGER_ICON + )); + addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessHibernateSessionFactory().get(), "hibernatefactory"), PatternIcons.HIBERNATE_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessHibernateTransactionManager().get(), "hibernate-tm"), PatternIcons.HIBERNATE_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessHibernateSessionFactory(), "hibernatefactory"), + PatternIcons.HIBERNATE_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessHibernateTransactionManager(), "hibernate-tm"), + PatternIcons.HIBERNATE_ICON + )); + addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoPersistenceManager().get(), "jdo-persistance-manager"), PatternIcons.JDO_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoJpoxPersistenceManager().get(), "jpox-pmf"), PatternIcons.JDO_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoPersistenceManagerProxy().get(), "jdo-persistance-manager-proxy"), PatternIcons.JDO_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoTransactionManager().get(), "jdo-transaction-manager"), PatternIcons.JDO_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoPersistenceManager(), "jdo-persistance-manager"), + PatternIcons.JDO_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoJpoxPersistenceManager(), "jpox-pmf"), + PatternIcons.JDO_ICON + )); + + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoPersistenceManagerProxy(), "jdo-persistance-manager-proxy"), + PatternIcons.JDO_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessJdoTransactionManager(), "jdo-transaction-manager"), + PatternIcons.JDO_ICON + )); addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkSessionFactory().get(), "toplink-session-factory"), PatternIcons.TOPLINK_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkTransactionAwareSessionAdapter().get(), "toplink-session-adapter"), PatternIcons.TOPLINK_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkTransactionManager().get(), "toplink-transaction-manager"), PatternIcons.TOPLINK_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkSessionFactory(), "toplink-session-factory"), + PatternIcons.TOPLINK_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkTransactionAwareSessionAdapter(), "toplink-session-adapter"), + PatternIcons.TOPLINK_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessToplinkTransactionManager(), "toplink-transaction-manager"), + PatternIcons.TOPLINK_ICON + )); addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessIbatisClientFactory().get(), "ibatis-client-factory"), PatternIcons.IBATIS_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsDataAccessIbatisClientFactory(), "ibatis-client-factory"), + PatternIcons.IBATIS_ICON + )); setPopup(true); } diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/factoryBeans/GenerateCommonBeansPatternsGroup.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/factoryBeans/GenerateCommonBeansPatternsGroup.java index c5d657e..bd71cea 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/factoryBeans/GenerateCommonBeansPatternsGroup.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/factoryBeans/GenerateCommonBeansPatternsGroup.java @@ -1,30 +1,55 @@ package com.intellij.spring.impl.ide.model.actions.patterns.factoryBeans; -import com.intellij.spring.impl.ide.SpringIcons; import com.intellij.spring.impl.ide.model.actions.GenerateSpringDomElementAction; import com.intellij.spring.impl.ide.model.actions.generate.SpringBeanGenerateProvider; import com.intellij.spring.impl.ide.model.actions.patterns.PatternIcons; +import consulo.spring.impl.icon.SpringImplIconGroup; import consulo.spring.localize.SpringLocalize; -import consulo.ui.ex.action.AnActionEvent; import consulo.ui.ex.action.DefaultActionGroup; public class GenerateCommonBeansPatternsGroup extends DefaultActionGroup { public GenerateCommonBeansPatternsGroup() { super(SpringLocalize.springPatternsCommonBeansGroupName(), SpringLocalize.springPatternsCommonBeansGroupName(), PatternIcons.FACTORY_BEAN_ICON); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsCommonBeansPlaceholder().get(), "placeholder-configurer"), SpringIcons.SPRING_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsCommonBeansPropertyOverrideConfigurer().get(), "property-override-configurer"), SpringIcons.SPRING_BEAN_ICON)); + add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider( + SpringLocalize.springPatternsCommonBeansPlaceholder(), "placeholder-configurer"), + SpringImplIconGroup.springbean() + )); + add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider( + SpringLocalize.springPatternsCommonBeansPropertyOverrideConfigurer(), "property-override-configurer"), + SpringImplIconGroup.springbean() + )); addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansResource().get(), "resource-factory"), PatternIcons.FACTORY_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansCommonsLog().get(), "commons-log-factory"), PatternIcons.FACTORY_BEAN_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansResource(), "resource-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansCommonsLog(), "commons-log-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); addSeparator(); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansSet().get(), "set-factory"), PatternIcons.FACTORY_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansList().get(), "list-factory"), PatternIcons.FACTORY_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansMap().get(), "map-factory"), PatternIcons.FACTORY_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansProperties().get(), "properties-factory"), PatternIcons.FACTORY_BEAN_ICON)); - add(new GenerateSpringDomElementAction(new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansFieldRetrieving().get(), "field-factory"), PatternIcons.FACTORY_BEAN_ICON)); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansSet(), "set-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansList(), "list-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansMap(), "map-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansProperties(), "properties-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); + add(new GenerateSpringDomElementAction( + new SpringBeanGenerateProvider(SpringLocalize.springPatternsFactoryBeansFieldRetrieving(), "field-factory"), + PatternIcons.FACTORY_BEAN_ICON + )); setPopup(true); } - } \ No newline at end of file diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/FrameworkIntegrationActionGroup.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/FrameworkIntegrationActionGroup.java index 8a2cbf2..df5dca9 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/FrameworkIntegrationActionGroup.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/FrameworkIntegrationActionGroup.java @@ -1,37 +1,37 @@ package com.intellij.spring.impl.ide.model.actions.patterns.frameworks; -import com.intellij.spring.impl.ide.SpringBundle; import com.intellij.spring.impl.ide.model.actions.patterns.AbstarctSpringConfigActionGroup; import consulo.spring.impl.icon.SpringImplIconGroup; +import consulo.spring.localize.SpringLocalize; import consulo.ui.image.Image; - import jakarta.annotation.Nullable; public class FrameworkIntegrationActionGroup extends AbstarctSpringConfigActionGroup { - - public FrameworkIntegrationActionGroup() { - super(); - add(new AddHibernateAction()); - add(new AddJdoAction()); - add(new AddToplinkAction()); - add(new AddIbatisAction()); - - addSeparator(); - - add(new AddWebflowAction()); - - addSeparator(); - - add(new AddOpenSymphonyTimerAction()); - add(new AddJdkTimerAction()); - } - - protected String getDescription() { - return SpringBundle.message("spring.patterns"); - } - - @Nullable - protected Image getIcon() { - return SpringImplIconGroup.spring(); - } -} \ No newline at end of file + public FrameworkIntegrationActionGroup() { + super(); + add(new AddHibernateAction()); + add(new AddJdoAction()); + add(new AddToplinkAction()); + add(new AddIbatisAction()); + + addSeparator(); + + add(new AddWebflowAction()); + + addSeparator(); + + add(new AddOpenSymphonyTimerAction()); + add(new AddJdkTimerAction()); + } + + @Override + protected String getDescription() { + return SpringLocalize.springPatterns().get(); + } + + @Nullable + @Override + protected Image getIcon() { + return SpringImplIconGroup.spring(); + } +} diff --git a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/ui/ChooseTemplatesDialogWrapper.java b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/ui/ChooseTemplatesDialogWrapper.java index 6a242f3..2797083 100644 --- a/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/ui/ChooseTemplatesDialogWrapper.java +++ b/plugin/src/main/java/com/intellij/spring/impl/ide/model/actions/patterns/frameworks/ui/ChooseTemplatesDialogWrapper.java @@ -1,11 +1,11 @@ package com.intellij.spring.impl.ide.model.actions.patterns.frameworks.ui; +import consulo.disposer.Disposer; import consulo.language.editor.template.Template; -import consulo.java.ex.facet.LibrariesValidationComponent; import consulo.project.Project; +import consulo.spring.localize.SpringLocalize; +import consulo.ui.annotation.RequiredUIAccess; import consulo.ui.ex.awt.DialogWrapper; -import consulo.disposer.Disposer; -import com.intellij.spring.impl.ide.SpringBundle; import javax.swing.*; import java.util.LinkedList; @@ -18,25 +18,25 @@ public ChooseTemplatesDialogWrapper(Project project, List infos, L super(project, true); myTemplatesForm = new ChooseTemplatesForm(infos, libInfo); - myTemplatesForm.getLibrariesValidationComponent().addValidityListener(new LibrariesValidationComponent.ValidityListener() { - public void valididyChanged(boolean isValid) { - setOKActionEnabled(isValid); - } - }); + myTemplatesForm.getLibrariesValidationComponent().addValidityListener(this::setOKActionEnabled); setOKActionEnabled(myTemplatesForm.getLibrariesValidationComponent().isValid()); - setTitle(SpringBundle.message("spring.choose.bean.templates.dialog.title", frameworkTitle)); + setTitle(SpringLocalize.springChooseBeanTemplatesDialogTitle(frameworkTitle)); init(); } + @Override protected Action[] createActions() { return new Action[]{getOKAction(), getCancelAction()}; } + @Override protected JComponent createCenterPanel() { return myTemplatesForm.getComponent(); } + @Override + @RequiredUIAccess public JComponent getPreferredFocusedComponent() { return myTemplatesForm.getComponent(); } @@ -46,7 +46,7 @@ public ChooseTemplatesForm getTemplatesForm() { } public List