aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ParameterizedTypeName.java')
-rw-r--r--src/main/java/com/squareup/javapoet/ParameterizedTypeName.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java b/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java
index d46aba8..3a8bf62 100644
--- a/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java
+++ b/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java
@@ -41,7 +41,7 @@ public final class ParameterizedTypeName extends TypeName {
private ParameterizedTypeName(ParameterizedTypeName enclosingType, ClassName rawType,
List<TypeName> typeArguments, List<AnnotationSpec> annotations) {
super(annotations);
- this.rawType = checkNotNull(rawType, "rawType == null");
+ this.rawType = checkNotNull(rawType, "rawType == null").annotated(annotations);
this.enclosingType = enclosingType;
this.typeArguments = Util.immutableList(typeArguments);
@@ -58,17 +58,22 @@ public final class ParameterizedTypeName extends TypeName {
enclosingType, rawType, typeArguments, concatAnnotations(annotations));
}
- @Override public TypeName withoutAnnotations() {
- return new ParameterizedTypeName(enclosingType, rawType, typeArguments, new ArrayList<>());
+ @Override
+ public TypeName withoutAnnotations() {
+ return new ParameterizedTypeName(
+ enclosingType, rawType.withoutAnnotations(), typeArguments, new ArrayList<>());
}
@Override CodeWriter emit(CodeWriter out) throws IOException {
if (enclosingType != null) {
- enclosingType.emitAnnotations(out);
enclosingType.emit(out);
- out.emit("." + rawType.simpleName());
+ out.emit(".");
+ if (isAnnotated()) {
+ out.emit(" ");
+ emitAnnotations(out);
+ }
+ out.emit(rawType.simpleName());
} else {
- rawType.emitAnnotations(out);
rawType.emit(out);
}
if (!typeArguments.isEmpty()) {
@@ -76,7 +81,6 @@ public final class ParameterizedTypeName extends TypeName {
boolean firstParameter = true;
for (TypeName parameter : typeArguments) {
if (!firstParameter) out.emitAndIndent(", ");
- parameter.emitAnnotations(out);
parameter.emit(out);
firstParameter = false;
}