This commit is contained in:
Phillip Webb
2018-01-18 21:41:43 -08:00
parent 71ab5dd748
commit 8e783cdae9
8 changed files with 47 additions and 45 deletions

View File

@@ -168,7 +168,6 @@ class TypeUtils {
return WRAPPER_TO_PRIMITIVE.get(type.toString());
}
/**
* A visitor that extracts the full qualified name of a type, including generic
* information.
@@ -188,21 +187,24 @@ class TypeUtils {
return getQualifiedName(enclosingElement) + "$"
+ type.asElement().getSimpleName().toString();
}
StringBuilder sb = new StringBuilder();
sb.append(getQualifiedName(type.asElement()));
StringBuilder name = new StringBuilder();
name.append(getQualifiedName(type.asElement()));
if (!type.getTypeArguments().isEmpty()) {
sb.append("<");
Iterator<?> it = type.getTypeArguments().iterator();
while (it.hasNext()) {
sb.append(it.next());
if (it.hasNext()) {
sb.append(",");
}
}
sb.append(">");
appendTypeArguments(type, name);
}
return sb.toString();
return name.toString();
}
private void appendTypeArguments(DeclaredType type, StringBuilder name) {
name.append("<");
Iterator<?> iterator = type.getTypeArguments().iterator();
while (iterator.hasNext()) {
name.append(iterator.next());
if (iterator.hasNext()) {
name.append(",");
}
}
name.append(">");
}
@Override
@@ -223,7 +225,7 @@ class TypeUtils {
if (enclosingElement != null) {
return getQualifiedName(enclosingElement) + "$"
+ ((DeclaredType) element.asType()).asElement().getSimpleName()
.toString();
.toString();
}
if (element instanceof TypeElement) {
return ((TypeElement) element).getQualifiedName().toString();

View File

@@ -261,12 +261,12 @@ public class ConfigurationMetadataAnnotationProcessorTests {
@Test
public void parseArrayConfig() throws Exception {
ConfigurationMetadata metadata = compile(SimpleArrayProperties.class);
assertThat(metadata).has(Metadata.withGroup("array")
.ofType(SimpleArrayProperties.class));
assertThat(metadata).has(Metadata.withProperty("array.primitive",
"java.lang.Integer[]"));
assertThat(metadata).has(Metadata.withProperty("array.simple",
"java.lang.String[]"));
assertThat(metadata)
.has(Metadata.withGroup("array").ofType(SimpleArrayProperties.class));
assertThat(metadata)
.has(Metadata.withProperty("array.primitive", "java.lang.Integer[]"));
assertThat(metadata)
.has(Metadata.withProperty("array.simple", "java.lang.String[]"));
assertThat(metadata).has(Metadata.withProperty("array.inner",
"org.springframework.boot.configurationsample.simple.SimpleArrayProperties$Holder[]"));
assertThat(metadata).has(Metadata.withProperty("array.name-to-integer",
@@ -464,8 +464,8 @@ public class ConfigurationMetadataAnnotationProcessorTests {
@Test
public void wildcardTypes() throws IOException {
ConfigurationMetadata metadata = compile(WildcardConfig.class);
assertThat(metadata).has(Metadata.withGroup("wildcard")
.ofType(WildcardConfig.class));
assertThat(metadata)
.has(Metadata.withGroup("wildcard").ofType(WildcardConfig.class));
assertThat(metadata).has(Metadata.withProperty("wildcard.string-to-number")
.ofType("java.util.Map<java.lang.String,? extends java.lang.Number>")
.fromSource(WildcardConfig.class));

View File

@@ -89,6 +89,7 @@ public class SimpleCollectionProperties {
public static class Holder<T> {
@SuppressWarnings("unused")
private T target;
public void setTarget(T target) {