Skip to content

Commit

Permalink
show field type when generating accessors
Browse files Browse the repository at this point in the history
Signed-off-by: Shi Chen <[email protected]>
  • Loading branch information
CsCherrYY committed May 20, 2022
1 parent 786fe7d commit cca14ae
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
import org.eclipse.jdt.core.dom.AnonymousClassDeclaration;
Expand Down Expand Up @@ -88,7 +89,7 @@ public static AccessorField[] getUnimplementedAccessors(IType type) throws JavaM
boolean generateGetter = (GetterSetterUtil.getGetter(field) == null);
boolean generateSetter = (!Flags.isFinal(flags) && GetterSetterUtil.getSetter(field) == null);
if (generateGetter || generateSetter) {
unimplemented.add(new AccessorField(field.getElementName(), isStatic, generateGetter, generateSetter));
unimplemented.add(new AccessorField(field.getElementName(), isStatic, generateGetter, generateSetter, Signature.getSignatureSimpleName(field.getTypeSignature())));
}
}
}
Expand Down Expand Up @@ -187,12 +188,14 @@ public static class AccessorField {
public boolean isStatic;
public boolean generateGetter;
public boolean generateSetter;
public String typeName;

public AccessorField(String fieldName, boolean isStatic, boolean generateGetter, boolean generateSetter) {
public AccessorField(String fieldName, boolean isStatic, boolean generateGetter, boolean generateSetter, String typeName) {
this.fieldName = fieldName;
this.isStatic = isStatic;
this.generateGetter = generateGetter;
this.generateSetter = generateSetter;
this.typeName = typeName;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,32 @@ public void testResolveUnimplementedAccessors() throws JavaModelException {
" private static String staticField = \"23434343\";\r\n" +
" private final String finalField;\r\n" +
" String name;\r\n" +
" List<String> names;\r\n" +
"}"
, true, null);
//@formatter:on
AccessorField[] accessors = GenerateAccessorsHandler.getUnimplementedAccessors(unit.findPrimaryType());
assertNotNull(accessors);
assertEquals(3, accessors.length);
assertEquals(4, accessors.length);
assertEquals("staticField", accessors[0].fieldName);
assertTrue(accessors[0].isStatic);
assertTrue(accessors[0].generateGetter && accessors[0].generateSetter);
assertEquals("String", accessors[0].typeName);
assertEquals("finalField", accessors[1].fieldName);
assertFalse(accessors[1].isStatic);
assertTrue(accessors[1].generateGetter);
assertFalse(accessors[1].generateSetter);
assertEquals("String", accessors[1].typeName);
assertEquals("name", accessors[2].fieldName);
assertFalse(accessors[2].isStatic);
assertTrue(accessors[2].generateGetter);
assertTrue(accessors[2].generateSetter);
assertEquals("String", accessors[2].typeName);
assertEquals("names", accessors[3].fieldName);
assertFalse(accessors[3].isStatic);
assertTrue(accessors[3].generateGetter);
assertTrue(accessors[3].generateSetter);
assertEquals("List<String>", accessors[3].typeName);
}

@Test
Expand Down Expand Up @@ -88,6 +97,7 @@ public void testResolveUnimplementedAccessors_methodsExist() throws JavaModelExc
assertEquals("id", accessors[0].fieldName);
assertFalse(accessors[0].generateGetter);
assertTrue(accessors[0].generateSetter);
assertEquals("int", accessors[0].typeName);
}

@Test
Expand Down Expand Up @@ -162,7 +172,7 @@ public void testGenerateAccessorsAfterCursorPosition() throws ValidateEditExcept
, true, null);
//@formatter:on
IType classB = unit.getType("B");
Range cursor = CodeActionUtil.getRange(unit, "/*|*/");
Range cursor = CodeActionUtil.getRange(unit, "/*|*/");
generateAccessors(classB, cursor);

/* @formatter:off */
Expand Down Expand Up @@ -225,7 +235,7 @@ public void testGenerateAccessorsBeforeCursorPosition() throws ValidateEditExcep
, true, null);
//@formatter:on
IType classB = unit.getType("B");
Range cursor = CodeActionUtil.getRange(unit, "/*|*/");
Range cursor = CodeActionUtil.getRange(unit, "/*|*/");
generateAccessors(classB, cursor);

/* @formatter:off */
Expand Down

0 comments on commit cca14ae

Please sign in to comment.