Skip to content

Commit

Permalink
show field type when generating accessors (#2093)
Browse files Browse the repository at this point in the history
Signed-off-by: Shi Chen <[email protected]>
  • Loading branch information
CsCherrYY authored May 23, 2022
1 parent 54a0253 commit 2130d70
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 @@ -90,17 +91,17 @@ public static AccessorField[] getUnimplementedAccessors(IType type, AccessorKind
switch (kind) {
case BOTH:
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())));
}
break;
case GETTER:
if (generateGetter) {
unimplemented.add(new AccessorField(field.getElementName(), isStatic, generateGetter, false));
unimplemented.add(new AccessorField(field.getElementName(), isStatic, generateGetter, false, Signature.getSignatureSimpleName(field.getTypeSignature())));
}
break;
case SETTER:
if (generateSetter) {
unimplemented.add(new AccessorField(field.getElementName(), isStatic, false, generateSetter));
unimplemented.add(new AccessorField(field.getElementName(), isStatic, false, generateSetter, Signature.getSignatureSimpleName(field.getTypeSignature())));
}
break;
default:
Expand Down Expand Up @@ -204,12 +205,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 @@ -44,23 +44,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(), AccessorKind.BOTH);
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 @@ -141,6 +150,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

0 comments on commit 2130d70

Please sign in to comment.