Skip to content

Commit

Permalink
fieldgenerator: Remove annotations from import types, Fix #271
Browse files Browse the repository at this point in the history
  • Loading branch information
julgus committed Sep 2, 2022
1 parent 8c79f3c commit 681baa9
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,11 @@ void generateFields(final Element annotatedElement, final Writer writer) throws
// todo: Filter out methods only returning boolean or Boolean
.map(Element::getSimpleName)
.map(Object::toString)
.filter(n -> n.startsWith(IS_PREFIX))
.map(n -> n.substring(2))
.map(Formatting::lcfirst)
.collect(toSet());

// Retrieve all declared non-final instance fields of the annotated class
Map<? extends Element, String> enclosedFields = annotatedElement.getEnclosedElements().stream()
.filter(ee -> ee.getKind().isField()
Expand Down Expand Up @@ -177,10 +180,8 @@ private String findGetter(final Element field,
final String standardJavaName = javaNameFromExternal(fieldName);

final String standardGetterName = getterPrefix + standardJavaName;

final Element standardGetter = getters.get(standardGetterName);

if (standardGetter != null) {

if (getters.get(standardGetterName) != null || isGetters.contains(standardGetterName)) {
// We got lucky because the user elected to conform
// to the standard JavaBean notation.
return entityName + "::" + standardGetterName;
Expand Down Expand Up @@ -324,9 +325,15 @@ private Type referenceType(Element field, String entityName) {

private Type fieldType(Element field) {
TypeParser typeParser = new TypeParser();
return typeParser.render(field.asType().toString());
return typeParser.render(trimAnnotations(field));
}

private String trimAnnotations(Element field) {
final String fieldType = field.asType().toString();
final int index = fieldType.lastIndexOf(' ');
return index < 0 ? fieldType : fieldType.substring(index + 1);
}

private Type primitiveFieldType(Type fieldType, Type entityType) {
Type primitiveFieldType;
switch (fieldType.getTypeName()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ class TypeParserTest {
final TypeParser typeParser = new TypeParser();

@Test
void renderString() {
void renderStringTest() {
String type = "java.lang.String";
SimpleType expected = SimpleType.create(type);
Type actual = typeParser.render(type);
assertEquals(expected, actual);
}

@Test
void renderMapOfString() {
void renderMapOfStringTest() {
String type = "java.util.Map<java.lang.String>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.Map"), SimpleType.create("java.lang.String"));
Expand All @@ -42,7 +42,7 @@ void renderMapOfString() {
}

@Test
void renderListOfInteger() {
void renderListOfIntegerTest() {
String type = "java.util.List<java.lang.Integer>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.List"), SimpleType.create("java.lang.Integer"));
Expand All @@ -51,7 +51,7 @@ void renderListOfInteger() {
}

@Test
void renderListOfListOfNumber() {
void renderListOfListOfNumberTest() {
String type = "java.util.List<java.util.List<java.lang.Number>>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.List"), SimpleParameterizedType.create(
Expand All @@ -61,7 +61,7 @@ void renderListOfListOfNumber() {
}

@Test
void renderListOfMapOfListOfSetOfDoubleAndInteger() {
void renderListOfMapOfListOfSetOfDoubleAndIntegerTest() {
String type = "java.util.List<java.util.Map<java.util.List<java.util.Set<java.lang.Double>>, java.lang.Integer>>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.List"), SimpleParameterizedType.create(
Expand All @@ -77,7 +77,7 @@ void renderListOfMapOfListOfSetOfDoubleAndInteger() {
}

@Test
void renderMapOfMapOfQuartetOfStringAndStringAndStringAndStringAndIntegerAndInteger() {
void renderMapOfMapOfQuartetOfStringAndStringAndStringAndStringAndIntegerAndIntegerTest() {
String type = "java.util.Map<java.util.Map<Quartet<java.lang.String, java.lang.String, java.lang.String, java.lang.String>, java.lang.Integer>, java.lang.Integer>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.Map"), SimpleParameterizedType.create(
Expand All @@ -91,7 +91,7 @@ void renderMapOfMapOfQuartetOfStringAndStringAndStringAndStringAndIntegerAndInte
}

@Test
void renderMapOfMapOfListOfSetOfDoubleAndIntegerAndLong() {
void renderMapOfMapOfListOfSetOfDoubleAndIntegerAndLongTest() {
String type = "java.util.Map<java.util.Map<java.util.List<java.util.Set<java.lang.Double>>,java.lang.Integer>,java.lang.Long>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.Map"), SimpleParameterizedType.create(
Expand All @@ -106,23 +106,23 @@ void renderMapOfMapOfListOfSetOfDoubleAndIntegerAndLong() {
}

@Test
void renderStringWithAnnotations() {
void renderStringWithAnnotationsTest() {
String type = "@javax.validation.constraints.Email,@javax.validation.constraints.Size(max=255) java.lang.String";
SimpleType expected = SimpleType.create("java.lang.String");
Type actual = typeParser.render(type);
assertEquals(expected, actual);
}

@Test
void renderStringWithAnnotation() {
void renderStringWithAnnotationTest() {
String type = "@javax.validation.constraints.Size(max=255) java.lang.String";
SimpleType expected = SimpleType.create("java.lang.String");
Type actual = typeParser.render(type);
assertEquals(expected, actual);
}

@Test
void renderMapOfStringWithAnnotations() {
void renderMapOfStringWithAnnotationsTest() {
String type = "@javax.validation.constraints.Email,@javax.validation.constraints.Size(max=255) java.util.Map<java.lang.String>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.Map"), SimpleType.create("java.lang.String"));
Expand All @@ -131,7 +131,7 @@ void renderMapOfStringWithAnnotations() {
}

@Test
void renderMapOfStringWithAnnotation() {
void renderMapOfStringWithAnnotationTest() {
String type = "@javax.validation.constraints.Size(max=255) java.util.Map<java.lang.String>";
SimpleParameterizedType expected = SimpleParameterizedType.create(
SimpleType.create("java.util.Map"), SimpleType.create("java.lang.String"));
Expand All @@ -140,11 +140,11 @@ void renderMapOfStringWithAnnotation() {
}

@Test
void renderWithNotEmptyAnnotation() {
void renderWithNotEmptyAnnotationTest() {
String type = "@javax.validation.constraints.NotEmpty java.lang.String";
SimpleType expected = SimpleType.create("java.lang.String");
Type actual = typeParser.render(type);
assertEquals(expected, actual);
}

}

0 comments on commit 681baa9

Please sign in to comment.