Merge branch '1.2.x'

This commit is contained in:
Phillip Webb
2015-12-10 15:01:29 +00:00
7 changed files with 62 additions and 50 deletions

View File

@@ -276,19 +276,8 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
String name = entry.getKey();
ExecutableElement getter = entry.getValue();
VariableElement field = members.getFields().get(name);
Element returnType = this.processingEnv.getTypeUtils()
.asElement(getter.getReturnType());
AnnotationMirror annotation = getAnnotation(getter,
configurationPropertiesAnnotation());
boolean isNested = isNested(returnType, field, element);
if (returnType != null && returnType instanceof TypeElement
&& annotation == null && isNested) {
String nestedPrefix = ConfigurationMetadata.nestedPrefix(prefix, name);
this.metadataCollector.add(ItemMetadata.newGroup(nestedPrefix,
this.typeUtils.getType(returnType),
this.typeUtils.getType(element), getter.toString()));
processTypeElement(nestedPrefix, (TypeElement) returnType);
}
processNestedType(prefix, element, name, getter, field,
getter.getReturnType());
}
}
@@ -297,19 +286,8 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
for (Map.Entry<String, VariableElement> entry : members.getFields().entrySet()) {
String name = entry.getKey();
VariableElement field = entry.getValue();
if (!isLombokField(field, element)) {
continue;
}
Element returnType = this.processingEnv.getTypeUtils()
.asElement(field.asType());
boolean isNested = isNested(returnType, field, element);
if (returnType != null && returnType instanceof TypeElement
&& isNested) {
String nestedPrefix = ConfigurationMetadata.nestedPrefix(prefix, name);
this.metadataCollector.add(ItemMetadata.newGroup(nestedPrefix,
this.typeUtils.getType(returnType),
this.typeUtils.getType(element), null));
processTypeElement(nestedPrefix, (TypeElement) returnType);
if (isLombokField(field, element)) {
processNestedType(prefix, element, name, null, field, field.asType());
}
}
}
@@ -327,6 +305,23 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
|| hasAnnotation(element, LOMBOK_DATA_ANNOTATION));
}
private void processNestedType(String prefix, TypeElement element, String name,
ExecutableElement getter, VariableElement field, TypeMirror returnType) {
Element returnElement = this.processingEnv.getTypeUtils().asElement(returnType);
boolean isNested = isNested(returnElement, field, element);
AnnotationMirror annotation = getAnnotation(getter,
configurationPropertiesAnnotation());
if (returnElement != null && returnElement instanceof TypeElement
&& annotation == null && isNested) {
String nestedPrefix = ConfigurationMetadata.nestedPrefix(prefix, name);
this.metadataCollector.add(ItemMetadata.newGroup(nestedPrefix,
this.typeUtils.getType(returnElement),
this.typeUtils.getType(element),
(getter == null ? null : getter.toString())));
processTypeElement(nestedPrefix, (TypeElement) returnElement);
}
}
private boolean isNested(Element returnType, VariableElement field,
TypeElement element) {
if (hasAnnotation(field, nestedConfigurationPropertyAnnotation())) {