diff options
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ClassName.java')
-rw-r--r-- | src/main/java/com/squareup/javapoet/ClassName.java | 16 |
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)); } } |