public JavaWriter emitAnnotation(String annotation, Object value) throws IOException {
    indent();
    out.write("@");
    emitCompressedType(annotation);
    out.write("(");
    emitAnnotationValue(value);
    out.write(")");
    out.write("\n");
    return this;
  }
public JavaWriter emitAnnotation(String annotation, Object value) throws IOException {
    indent();
    out.write("@");
    emitCompressedType(annotation);
    out.write("(");
    emitAnnotationValue(value);
    out.write(")");
    out.write("\n");
    return this;
  }
public JavaWriter emitAnnotation ( String annotation , Object value ) throws IOException { indent ( ) ; out . write ( "@" ) ; emitCompressedType ( annotation ) ; out . write ( "(" ) ; emitAnnotationValue ( value ) ; out . write ( ")" ) ; out . write ( "\n" ) ; return this ; }
Annotates the next element with {@code annotation} and a {@code value}.

@param value an object used as the default (value) parameter of the annotation. The value will
be encoded using Object.toString(); use {@link #stringLiteral} for String values. Object
arrays are written one element per line.
Annotates the next element with { @code annotation } and a { @code value } .