cleanup PropertyUtil

This commit is contained in:
peter
2013-09-28 18:17:22 +02:00
parent 82f005cb0c
commit e018581366
12 changed files with 41 additions and 68 deletions
@@ -388,7 +388,7 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor {
if (staticContext && (modifierList != null && !modifierList.hasModifierProperty(PsiModifier.STATIC))) continue;
if (fieldType.equals(varType)) {
final String getterName = PropertyUtil.suggestGetterName(field.getProject(), field);
final String getterName = PropertyUtil.suggestGetterName(field);
if ((psiClass.findMethodsByName(getterName, true).length == 0 ||
psiClass.findMethodBySignature(PropertyUtil.generateGetterPrototype(field), true) == null)) {
propertyHandlers.add(getterName);
@@ -396,7 +396,7 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor {
}
if (PsiType.VOID.equals(varType)) {
final String setterName = PropertyUtil.suggestSetterName(field.getProject(), field);
final String setterName = PropertyUtil.suggestSetterName(field);
if ((psiClass.findMethodsByName(setterName, true).length == 0 ||
psiClass.findMethodBySignature(PropertyUtil.generateSetterPrototype(field), true) == null)) {
propertyHandlers.add(setterName);
@@ -320,13 +320,13 @@ public class JavaEncapsulateFieldHelper extends EncapsulateFieldHelper {
@Override
@NotNull
public String suggestSetterName(@NotNull PsiField field) {
return PropertyUtil.suggestSetterName(field.getProject(), field);
return PropertyUtil.suggestSetterName(field);
}
@Override
@NotNull
public String suggestGetterName(@NotNull PsiField field) {
return PropertyUtil.suggestGetterName(field.getProject(), field);
return PropertyUtil.suggestGetterName(field);
}
@Override
@@ -253,7 +253,7 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor {
myInnerClass.add(outputField);
field = outputField;
} else {
field = PropertyUtil.findPropertyField(myProject, myInnerClass, name, false);
field = PropertyUtil.findPropertyField(myInnerClass, name, false);
}
LOG.assertTrue(field != null, "i:" + i + "; output variables: " + Arrays.toString(outputVariables) + "; parameters: " + Arrays.toString(getMethod().getParameterList().getParameters()) + "; output field: " + outputField );
myInnerClass.add(GenerateMembersUtil.generateGetterPrototype(field));
@@ -763,7 +763,8 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor {
PsiStatement st = null;
final String pureName = getPureName(variable);
final int varIdxInOutput = ArrayUtil.find(myOutputVariables, variable);
final String getterName = varIdxInOutput > -1 && myOutputFields[varIdxInOutput] != null ? PropertyUtil.suggestGetterName(myProject, myOutputFields[varIdxInOutput]) : PropertyUtil.suggestGetterName(pureName, variable.getType());
final String getterName = varIdxInOutput > -1 && myOutputFields[varIdxInOutput] != null ? PropertyUtil.suggestGetterName(
myOutputFields[varIdxInOutput]) : PropertyUtil.suggestGetterName(pureName, variable.getType());
if (isDeclaredInside(variable)) {
st = myElementFactory.createStatementFromText(
variable.getType().getCanonicalText() + " " + name + " = " + object + "." + getterName + "();",
@@ -597,7 +597,7 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor {
final String qualifiedName = StringUtil.getQualifiedName(newPackageName, newClassName);
@NonNls String getter = null;
if (myGenerateAccessors) {
getter = PropertyUtil.suggestGetterName(myProject, field);
getter = PropertyUtil.suggestGetterName(field);
} else {
final PsiMethod fieldGetter = PropertyUtil.findPropertyGetter(sourceClass, field.getName(), false, false);
if (fieldGetter != null && isInMovedElement(fieldGetter)) {
@@ -607,7 +607,7 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor {
@NonNls String setter = null;
if (myGenerateAccessors) {
setter = PropertyUtil.suggestSetterName(myProject, field);
setter = PropertyUtil.suggestSetterName(field);
} else {
final PsiMethod fieldSetter = PropertyUtil.findPropertySetter(sourceClass, field.getName(), false, false);
if (fieldSetter != null && isInMovedElement(fieldSetter)) {
@@ -433,7 +433,7 @@ class ExtractedClassBuilder {
}
}
else {
out.append(backPointerName + '.' + PropertyUtil.suggestGetterName(field.getProject(), field) + "()");
out.append(backPointerName + '.' + PropertyUtil.suggestGetterName(field) + "()");
}
}
}
@@ -476,16 +476,16 @@ class ExtractedClassBuilder {
private void delegate(final PsiExpression rhs, final PsiField field, final PsiJavaToken sign, final IElementType tokenType,
final String fieldName) {
if (tokenType.equals(JavaTokenType.EQ)) {
final String setterName = PropertyUtil.suggestSetterName(field.getProject(), field);
final String setterName = PropertyUtil.suggestSetterName(field);
out.append(fieldName + '.' + setterName + '(');
rhs.accept(this);
out.append(')');
}
else {
final String operator = sign.getText().substring(0, sign.getTextLength() - 1);
final String setterName = PropertyUtil.suggestSetterName(field.getProject(), field);
final String setterName = PropertyUtil.suggestSetterName(field);
out.append(fieldName + '.' + setterName + '(');
final String getterName = PropertyUtil.suggestGetterName(field.getProject(), field);
final String getterName = PropertyUtil.suggestGetterName(field);
out.append(fieldName + '.' + getterName + "()");
out.append(operator);
rhs.accept(this);
@@ -521,10 +521,10 @@ class ExtractedClassBuilder {
assert field != null;
if (!field.hasModifierProperty(PsiModifier.STATIC)) {
out.append(backPointerName +
'.' + PropertyUtil.suggestSetterName(field.getProject(), field) +
'.' + PropertyUtil.suggestSetterName(field) +
'(' +
backPointerName +
'.' + PropertyUtil.suggestGetterName(field.getProject(), field) +
'.' + PropertyUtil.suggestGetterName(field) +
"()" +
operator +
"1)");
@@ -66,7 +66,7 @@ public class RemoveMiddlemanProcessor extends FixableUsagesRefactoringProcessor
if (!memberInfo.isChecked()) continue;
final PsiMethod method = (PsiMethod)memberInfo.getMember();
final Project project = method.getProject();
final String getterName = PropertyUtil.suggestGetterName(project, field);
final String getterName = PropertyUtil.suggestGetterName(field);
final int[] paramPermutation = DelegationUtils.getParameterPermutation(method);
final PsiMethod delegatedMethod = DelegationUtils.getDelegatedMethod(method);
LOG.assertTrue(!DelegationUtils.isAbstract(method));
@@ -288,7 +288,7 @@ public class PropertyUtil {
return null;
}
@Nullable public static PsiField findPropertyField(Project project, PsiClass aClass, String propertyName, boolean isStatic) {
@Nullable public static PsiField findPropertyField(PsiClass aClass, String propertyName, boolean isStatic) {
PsiField[] fields = aClass.getAllFields();
for (PsiField field : fields) {
@@ -299,19 +299,6 @@ public class PropertyUtil {
return null;
}
@Nullable public static PsiField findPropertyFieldWithType(Project project, String propertyName,
boolean isStatic, PsiType type, Iterator<PsiField> fields) {
while (fields.hasNext()) {
PsiField field = fields.next();
if (field.hasModifierProperty(PsiModifier.STATIC) != isStatic) continue;
if (propertyName.equals(suggestPropertyName(field))) {
if (type.equals(field.getType())) return field;
}
}
return null;
}
@Nullable public static String getPropertyName(@NonNls String methodName) {
return StringUtil.getPropertyName(methodName);
}
@@ -321,7 +308,7 @@ public class PropertyUtil {
}
public static String suggestGetterName(@NotNull String propertyName, @Nullable PsiType propertyType, @NonNls String existingGetterName) {
@NonNls StringBuffer name = new StringBuffer(StringUtil.capitalizeWithJavaBeanConvention(propertyName));
@NonNls StringBuilder name = new StringBuilder(StringUtil.capitalizeWithJavaBeanConvention(propertyName));
if (isBoolean(propertyType)) {
if (existingGetterName == null || !existingGetterName.startsWith("get")) {
name.insert(0, IS_PREFIX);
@@ -348,7 +335,7 @@ public class PropertyUtil {
}
public static String suggestSetterName(@NonNls String propertyName) {
@NonNls StringBuffer name = new StringBuffer(StringUtil.capitalizeWithJavaBeanConvention(propertyName));
@NonNls StringBuilder name = new StringBuilder(StringUtil.capitalizeWithJavaBeanConvention(propertyName));
name.insert(0, "set");
return name.toString();
}
@@ -407,7 +394,7 @@ public class PropertyUtil {
PsiElementFactory factory = JavaPsiFacade.getInstance(field.getProject()).getElementFactory();
Project project = field.getProject();
String name = field.getName();
String getName = suggestGetterName(project, field);
String getName = suggestGetterName(field);
try {
PsiMethod getMethod = factory.createMethod(getName, field.getType());
PsiUtil.setModifierProperty(getMethod, PsiModifier.PUBLIC, true);
@@ -460,7 +447,7 @@ public class PropertyUtil {
boolean isStatic = field.hasModifierProperty(PsiModifier.STATIC);
VariableKind kind = codeStyleManager.getVariableKind(field);
String propertyName = codeStyleManager.variableNameToPropertyName(name, kind);
String setName = suggestSetterName(project, field);
String setName = suggestSetterName(field);
try {
PsiMethod setMethod = factory.createMethodFromText(factory.createMethod(setName, returnSelf ? factory.createType(containingClass) : PsiType.VOID).getText(), field);
String parameterName = codeStyleManager.propertyNameToVariableName(propertyName, VariableKind.PARAMETER);
@@ -472,7 +459,7 @@ public class PropertyUtil {
PsiUtil.setModifierProperty(setMethod, PsiModifier.PUBLIC, true);
PsiUtil.setModifierProperty(setMethod, PsiModifier.STATIC, isStatic);
@NonNls StringBuffer buffer = new StringBuffer();
@NonNls StringBuilder buffer = new StringBuilder();
buffer.append("{\n");
if (name.equals(parameterName)) {
if (!isStatic) {
@@ -543,31 +530,16 @@ public class PropertyUtil {
return name;
}
public static String suggestGetterName(Project project, PsiField field) {
public static String suggestGetterName(PsiField field) {
String propertyName = suggestPropertyName(field);
return suggestGetterName(propertyName, field.getType());
}
public static String suggestSetterName(Project project, PsiField field) {
public static String suggestSetterName(PsiField field) {
String propertyName = suggestPropertyName(field);
return suggestSetterName(propertyName);
}
/**
* "xxx", "void setMyProperty(String pp)" -> "setXxx"
*/
@Nullable
public static String suggestPropertyAccessor(String name, PsiMethod accessorTemplate) {
if (isSimplePropertyGetter(accessorTemplate)) {
PsiType type = accessorTemplate.getReturnType();
return suggestGetterName(name, type, accessorTemplate.getName());
}
if (isSimplePropertySetter(accessorTemplate)) {
return suggestSetterName(name);
}
return null;
}
@Nullable
public static String getPropertyName(final PsiMember member) {
if (member instanceof PsiMethod) {
@@ -17,27 +17,27 @@ public class PropertyUtilTest extends LightCodeInsightTestCase {
public void testSuggestGetterName() throws Exception {
assertEquals("isValid", PropertyUtil.suggestGetterName("valid", getType("boolean")));
assertEquals("getValid", PropertyUtil.suggestGetterName("valid", getType("Object")));
assertEquals("isValid", PropertyUtil.suggestGetterName(ourProject, createField("valid", "boolean")));
assertEquals("getValid", PropertyUtil.suggestGetterName(ourProject, createField("valid", "Object")));
assertEquals("isValid", PropertyUtil.suggestGetterName(createField("valid", "boolean")));
assertEquals("getValid", PropertyUtil.suggestGetterName(createField("valid", "Object")));
assertEquals("getURL", PropertyUtil.suggestGetterName("URL", getType("Object")));
assertEquals("getURL", PropertyUtil.suggestGetterName(ourProject, createField("URL", "Object")));
assertEquals("getURL", PropertyUtil.suggestGetterName(createField("URL", "Object")));
assertEquals("isaURL", PropertyUtil.suggestGetterName(ourProject, createField("aURL", "boolean")));
assertEquals("getaURL", PropertyUtil.suggestGetterName(ourProject, createField("aURL", "Object")));
assertEquals("getBool", PropertyUtil.suggestGetterName(ourProject, createField("bool", "java.lang.Boolean")));
assertEquals("isaURL", PropertyUtil.suggestGetterName(createField("aURL", "boolean")));
assertEquals("getaURL", PropertyUtil.suggestGetterName(createField("aURL", "Object")));
assertEquals("getBool", PropertyUtil.suggestGetterName(createField("bool", "java.lang.Boolean")));
}
public void testSuggestSetterName() throws Exception {
assertEquals("setValid", PropertyUtil.suggestSetterName("valid"));
assertEquals("setValid", PropertyUtil.suggestSetterName(ourProject, createField("valid", "Object")));
assertEquals("setValid", PropertyUtil.suggestSetterName(createField("valid", "Object")));
assertEquals("setURL", PropertyUtil.suggestSetterName("URL"));
assertEquals("setURL", PropertyUtil.suggestSetterName(ourProject, createField("URL", "Object")));
assertEquals("setURL", PropertyUtil.suggestSetterName(createField("URL", "Object")));
assertEquals("setaURL", PropertyUtil.suggestSetterName("aURL"));
assertEquals("setaURL", PropertyUtil.suggestSetterName(ourProject, createField("aURL", "Object")));
assertEquals("setBool", PropertyUtil.suggestSetterName(ourProject, createField("bool", "java.lang.Boolean")));
assertEquals("setaURL", PropertyUtil.suggestSetterName(createField("aURL", "Object")));
assertEquals("setBool", PropertyUtil.suggestSetterName(createField("bool", "java.lang.Boolean")));
}
public void testSuggestPropertyName() throws Exception {
@@ -113,8 +113,8 @@ public class EncapsulateFieldsTest extends MultiFileTestCase{
public FieldDescriptor[] getSelectedFields() {
return new FieldDescriptor[]{new FieldDescriptorImpl(
field,
PropertyUtil.suggestGetterName(project, field),
PropertyUtil.suggestSetterName(project, field),
PropertyUtil.suggestGetterName(field),
PropertyUtil.suggestSetterName(field),
isToEncapsulateGet() ? PropertyUtil.generateGetterPrototype(field) : null,
isToEncapsulateSet() ? PropertyUtil.generateSetterPrototype(field) : null
)};
@@ -92,7 +92,7 @@ public class GppReferenceContributor extends PsiReferenceContributor {
if (setter != null) {
applicable.add(new PsiElementResolveResult(setter));
} else {
final PsiField field = PropertyUtil.findPropertyField(psiClass.getProject(), psiClass, memberName, false);
final PsiField field = PropertyUtil.findPropertyField(psiClass, memberName, false);
if (field != null) {
applicable.add(new PsiElementResolveResult(field));
}
@@ -61,13 +61,13 @@ public class GroovyEncapsulateFieldHelper extends EncapsulateFieldHelper {
@Override
@NotNull
public String suggestSetterName(@NotNull PsiField field) {
return PropertyUtil.suggestSetterName(field.getProject(), field);
return PropertyUtil.suggestSetterName(field);
}
@Override
@NotNull
public String suggestGetterName(@NotNull PsiField field) {
return PropertyUtil.suggestGetterName(field.getProject(), field);
return PropertyUtil.suggestGetterName(field);
}
@Override
@@ -226,8 +226,8 @@ public class A {
final Project project = myFixture.getProject()
if (!getterName) getterName = PropertyUtil.suggestGetterName(project, aField)
if (!setterName) setterName = PropertyUtil.suggestSetterName(project, aField)
if (!getterName) getterName = PropertyUtil.suggestGetterName(aField)
if (!setterName) setterName = PropertyUtil.suggestSetterName(aField)
try {
final EncapsulateFieldsDescriptor descriptor = createMockDescriptor(aClass, aField, generateGetters, generateSetters, getterName,