Javafx: Cleanup. Use utility methods, extract lambda, rename utility method (IDEA-103956)

This commit is contained in:
Pavel Dolgov
2016-03-14 14:00:17 +03:00
parent 2d0cc2f802
commit ff60001d0c
5 changed files with 23 additions and 39 deletions
@@ -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<String, PsiMember> collectProperties(@Nullable PsiClass psiClass) {
public static Map<String, PsiMember> 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;
}
}
}
@@ -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 {
@@ -61,17 +61,14 @@ public class JavaFxClassBackedElementDescriptor implements XmlElementDescriptor,
if (context != null) {
if (myPsiClass != null) {
final List<XmlElementDescriptor> children = new ArrayList<XmlElementDescriptor>();
collectProperties(children, new Function<PsiMember, XmlElementDescriptor>() {
@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<String, PsiMember> properties = JavaFxPsiUtil.collectProperties(myPsiClass);
final Map<String, PsiMember> 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<String, PsiMember> properties = JavaFxPsiUtil.collectProperties(myPsiClass);
final Map<String, PsiMember> 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<XmlAttributeDescriptor> simpleAttrs) {
collectProperties(simpleAttrs, new Function<PsiMember, XmlAttributeDescriptor>() {
@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 <T> void collectProperties(final List<T> children, final Function<PsiMember, T> factory) {
final Map<String, PsiMember> fieldList = JavaFxPsiUtil.collectProperties(myPsiClass);
private <T> void collectWritableProperties(final List<T> children, final Function<PsiMember, T> factory) {
final Map<String, PsiMember> 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);
}
@@ -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
@@ -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