aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/squareup/javapoet/ArrayTypeName.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ArrayTypeName.java')
-rw-r--r--src/main/java/com/squareup/javapoet/ArrayTypeName.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/com/squareup/javapoet/ArrayTypeName.java b/src/main/java/com/squareup/javapoet/ArrayTypeName.java
index 46653ea..6f1e2c4 100644
--- a/src/main/java/com/squareup/javapoet/ArrayTypeName.java
+++ b/src/main/java/com/squareup/javapoet/ArrayTypeName.java
@@ -18,7 +18,10 @@ package com.squareup.javapoet;
import java.io.IOException;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import javax.lang.model.element.TypeParameterElement;
@@ -30,9 +33,22 @@ public final class ArrayTypeName extends TypeName {
public final TypeName componentType;
private ArrayTypeName(TypeName componentType) {
+ this(componentType, new ArrayList<AnnotationSpec>());
+ }
+
+ private ArrayTypeName(TypeName componentType, List<AnnotationSpec> annotations) {
+ super(annotations);
this.componentType = checkNotNull(componentType, "rawType == null");
}
+ @Override public ArrayTypeName annotated(AnnotationSpec... annotations) {
+ return annotated(Arrays.asList(annotations));
+ }
+
+ @Override public ArrayTypeName annotated(List<AnnotationSpec> annotations) {
+ return new ArrayTypeName(componentType, annotations);
+ }
+
@Override public boolean equals(Object o) {
return o instanceof ArrayTypeName
&& ((ArrayTypeName) o).componentType.equals(componentType);
@@ -43,7 +59,7 @@ public final class ArrayTypeName extends TypeName {
}
@Override CodeWriter emit(CodeWriter out) throws IOException {
- return out.emit("$T[]", componentType);
+ return emitAnnotations(out).emit("$T[]", componentType);
}
/** Returns an array type whose elements are all instances of {@code componentType}. */