From ff60001d0c78e9d8df93a225c82e6d2db3761638 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Mon, 14 Mar 2016 14:00:17 +0300 Subject: [PATCH] Javafx: Cleanup. Use utility methods, extract lambda, rename utility method (IDEA-103956) --- .../plugins/javaFX/fxml/JavaFxPsiUtil.java | 26 ++++++----------- .../inspections/JavaFxColorRgbInspection.java | 3 +- .../JavaFxClassBackedElementDescriptor.java | 29 +++++++------------ .../JavaFxPropertyAttributeDescriptor.java | 2 +- .../JavaFxPropertyElementDescriptor.java | 2 +- 5 files changed, 23 insertions(+), 39 deletions(-) diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java index d77ac9ec227e..07608b6e1949 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java @@ -344,7 +344,7 @@ public class JavaFxPsiUtil { if (descriptor != null) { final PsiElement declaration = descriptor.getDeclaration(); if (declaration instanceof PsiClass) { - return !collectProperties((PsiClass)declaration).containsKey(attributeName); + return !collectWritableProperties((PsiClass)declaration).containsKey(attributeName); } } return false; @@ -719,7 +719,7 @@ public class JavaFxPsiUtil { } @NotNull - public static Map collectProperties(@Nullable PsiClass psiClass) { + public static Map collectWritableProperties(@Nullable PsiClass psiClass) { if (psiClass != null) { return CachedValuesManager.getCachedValue(psiClass, () -> CachedValueProvider.Result.create(prepareWritableProperties(psiClass), PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT)); @@ -785,21 +785,13 @@ public class JavaFxPsiUtil { @Nullable private static String getPropertyNameFromNamedArgAnnotation(@NotNull PsiParameter parameter) { - final PsiModifierList modifierList = parameter.getModifierList(); - if (modifierList == null) return null; - for (PsiAnnotation annotation : modifierList.getAnnotations()) { - if (JavaFxCommonNames.JAVAFX_BEANS_NAMED_ARG.equals(annotation.getQualifiedName())) { - for (PsiNameValuePair pair : annotation.getParameterList().getAttributes()) { - final PsiIdentifier nameIdentifier = pair.getNameIdentifier(); - if (nameIdentifier == null || JavaFxCommonNames.VALUE.equals(nameIdentifier.getText())) { - final PsiAnnotationMemberValue psiValue = pair.getValue(); - if (psiValue instanceof PsiLiteralExpression) { - final Object value = ((PsiLiteralExpression)psiValue).getValue(); - if (value instanceof String) { - return (String)value; - } - } - } + final PsiAnnotation annotation = AnnotationUtil.findAnnotation(parameter, JavaFxCommonNames.JAVAFX_BEANS_NAMED_ARG); + if (annotation != null) { + final PsiAnnotationMemberValue psiValue = annotation.findAttributeValue(JavaFxCommonNames.VALUE); + if (psiValue instanceof PsiLiteralExpression) { + final Object value = ((PsiLiteralExpression)psiValue).getValue(); + if (value instanceof String) { + return (String)value; } } } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/inspections/JavaFxColorRgbInspection.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/inspections/JavaFxColorRgbInspection.java index f2f99a924eeb..1477b1395fcc 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/inspections/JavaFxColorRgbInspection.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/inspections/JavaFxColorRgbInspection.java @@ -7,7 +7,6 @@ import com.intellij.psi.xml.*; import com.intellij.xml.XmlAttributeDescriptor; import com.intellij.xml.XmlElementDescriptor; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.javaFX.fxml.JavaFxCommonNames; import org.jetbrains.plugins.javaFX.fxml.JavaFxFileTypeFactory; import org.jetbrains.plugins.javaFX.fxml.JavaFxPsiUtil; @@ -66,7 +65,7 @@ public class JavaFxColorRgbInspection extends XmlSuppressableInspectionTool { @NotNull String propertyName, @NotNull String propertyValue, @NotNull PsiElement location) { - final PsiMember declaration = JavaFxPsiUtil.collectProperties(psiClass).get(propertyName); + final PsiMember declaration = JavaFxPsiUtil.collectWritableProperties(psiClass).get(propertyName); final String boxedQName = JavaFxPsiUtil.getBoxedPropertyType(psiClass, declaration); if (CommonClassNames.JAVA_LANG_FLOAT.equals(boxedQName) || CommonClassNames.JAVA_LANG_DOUBLE.equals(boxedQName)) { try { diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java index e5991a7b2808..9a66ff40adea 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxClassBackedElementDescriptor.java @@ -61,17 +61,14 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, if (context != null) { if (myPsiClass != null) { final List children = new ArrayList(); - collectProperties(children, new Function() { - @Override - public XmlElementDescriptor fun(PsiMember member) { - return new JavaFxPropertyElementDescriptor(myPsiClass, member instanceof PsiMethod ? PropertyUtil.getPropertyName(member) : member.getName(), false); - } - }); + collectWritableProperties(children, + (member) -> new JavaFxPropertyElementDescriptor(myPsiClass, PropertyUtil.getPropertyName(member), false)); final JavaFxPropertyElementDescriptor defaultPropertyDescriptor = getDefaultPropertyDescriptor(); if (defaultPropertyDescriptor != null) { Collections.addAll(children, defaultPropertyDescriptor.getElementsDescriptors(context)); - } else { + } + else { for (String name : FxmlConstants.FX_DEFAULT_ELEMENTS) { children.add(new JavaFxDefaultPropertyElementDescriptor(name, null)); } @@ -179,7 +176,7 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, if (myPsiClass != null) { if (!FxmlConstants.FX_DEFINE.equals(parentTagName)) { if (FxmlConstants.FX_ROOT.equals(parentTagName)) { - final Map properties = JavaFxPsiUtil.collectProperties(myPsiClass); + final Map properties = JavaFxPsiUtil.collectWritableProperties(myPsiClass); if (properties.get(name) != null) { return new JavaFxPropertyElementDescriptor(myPsiClass, name, false); } @@ -194,7 +191,7 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, } } } - final Map properties = JavaFxPsiUtil.collectProperties(myPsiClass); + final Map properties = JavaFxPsiUtil.collectWritableProperties(myPsiClass); if (properties.get(name) != null) { return new JavaFxPropertyElementDescriptor(myPsiClass, name, false); } @@ -225,16 +222,12 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, } protected void collectInstanceProperties(List simpleAttrs) { - collectProperties(simpleAttrs, new Function() { - @Override - public XmlAttributeDescriptor fun(PsiMember member) { - return new JavaFxPropertyAttributeDescriptor(member instanceof PsiMethod ? PropertyUtil.getPropertyName(member) : member.getName(), myPsiClass); - } - }); + collectWritableProperties(simpleAttrs, + (member) -> new JavaFxPropertyAttributeDescriptor(PropertyUtil.getPropertyName(member), myPsiClass)); } - private void collectProperties(final List children, final Function factory) { - final Map fieldList = JavaFxPsiUtil.collectProperties(myPsiClass); + private void collectWritableProperties(final List children, final Function factory) { + final Map fieldList = JavaFxPsiUtil.collectWritableProperties(myPsiClass); for (PsiMember field : fieldList.values()) { children.add(factory.fun(field)); } @@ -251,7 +244,7 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor, if (propertySetter != null) { return new JavaFxStaticSetterAttributeDescriptor(propertySetter, attributeName); } - final PsiMember psiMember = JavaFxPsiUtil.collectProperties(myPsiClass).get(attributeName); + final PsiMember psiMember = JavaFxPsiUtil.collectWritableProperties(myPsiClass).get(attributeName); if (psiMember != null) { return new JavaFxPropertyAttributeDescriptor(attributeName, myPsiClass); } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java index 74e6642074ac..234cad42772b 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyAttributeDescriptor.java @@ -242,7 +242,7 @@ public class JavaFxPropertyAttributeDescriptor extends BasicXmlAttributeDescript } private PsiMember getDeclarationImpl() { - return JavaFxPsiUtil.collectProperties(myPsiClass).get(myName); + return JavaFxPsiUtil.collectWritableProperties(myPsiClass).get(myName); } @Override diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyElementDescriptor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyElementDescriptor.java index 00e621961540..d6bf5dbc2660 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyElementDescriptor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/descriptors/JavaFxPropertyElementDescriptor.java @@ -153,7 +153,7 @@ public class JavaFxPropertyElementDescriptor implements XmlElementDescriptor { public PsiElement getDeclaration() { if (myPsiClass == null) return null; if (myStatic) return JavaFxPsiUtil.findStaticPropertySetter(myName, myPsiClass); - return JavaFxPsiUtil.collectProperties(myPsiClass).get(myName); + return JavaFxPsiUtil.collectWritableProperties(myPsiClass).get(myName); } @Override