aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/squareup/javapoet/ClassName.java
diff options
context:
space:
mode:
authorChristian Stein <sormuras@gmail.com>2015-10-24 04:17:02 +0200
committerChristian Stein <sormuras@gmail.com>2015-10-24 15:58:16 +0200
commit9d49d102e48c052b71ed64b5e575a38d784f5d49 (patch)
treeb5bec26e2d477ba7b7866e423bf49d6b50bab19a /src/main/java/com/squareup/javapoet/ClassName.java
parent3bdc6b5c3faa4884684fd0b7ab2457e4bb7e45ff (diff)
downloadjavapoet-9d49d102e48c052b71ed64b5e575a38d784f5d49.tar.gz
Enhanced TypeName(s) with List<AnnotationSpec> #136
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ClassName.java')
-rw-r--r--src/main/java/com/squareup/javapoet/ClassName.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/com/squareup/javapoet/ClassName.java b/src/main/java/com/squareup/javapoet/ClassName.java
index fdfe81f..0f6d7ce 100644
--- a/src/main/java/com/squareup/javapoet/ClassName.java
+++ b/src/main/java/com/squareup/javapoet/ClassName.java
@@ -17,6 +17,7 @@ package com.squareup.javapoet;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -40,6 +41,11 @@ public final class ClassName extends TypeName implements Comparable<ClassName> {
final String canonicalName;
private ClassName(List<String> names) {
+ this(names, new ArrayList<AnnotationSpec>());
+ }
+
+ private ClassName(List<String> names, List<AnnotationSpec> annotations) {
+ super(annotations);
for (int i = 1; i < names.size(); i++) {
checkArgument(SourceVersion.isName(names.get(i)), "part '%s' is keyword", names.get(i));
}
@@ -49,6 +55,14 @@ public final class ClassName extends TypeName implements Comparable<ClassName> {
: Util.join(".", names);
}
+ @Override public ClassName annotated(AnnotationSpec... annotations) {
+ return annotated(Arrays.asList(annotations));
+ }
+
+ @Override public ClassName annotated(List<AnnotationSpec> annotations) {
+ return new ClassName(names, annotations);
+ }
+
/** Returns the package name, like {@code "java.util"} for {@code Map.Entry}. */
public String packageName() {
return names.get(0);
@@ -203,6 +217,6 @@ public final class ClassName extends TypeName implements Comparable<ClassName> {
}
@Override CodeWriter emit(CodeWriter out) throws IOException {
- return out.emitAndIndent(out.lookupName(this));
+ return emitAnnotations(out).emitAndIndent(out.lookupName(this));
}
}