Change Log
JavaPoet 1.5.1 (2016-01-10)
- Fix: Annotated
TypeName
instances are only equal if their annotations are equal.
JavaPoet 1.5.0 (2016-01-10)
- New:
import static
! See JavaFile.Builder.addStaticImport()
variants. - New: Overload
NameAllocator.newName(String)
for creating a one-off name without a tag. - Fix: AnnotationSpec escapes character literals properly.
- Fix: Don't stack overflow when
TypeVariableName
is part of ParameterizedTypeName
. - Fix: Reporting not used indexed arguments in like
add("$1S", "a", "b")
. - Fix: Prevent import of types located in the default package, i.e. have no package name.
JavaPoet 1.4.0 (2015-11-13)
- New:
AnnotationSpec.get(Annotation)
. - New: Type annotations!
TypeName.annotated()
can attach annotations like @Nullable
directly to types. This works for both top-level types and type parameters as in List<@Nullable String>
. - New:
equals()
and hashCode()
on AnnotationSpec
, CodeBlock
, FieldSpec
, JavaFile
, MethodSpec
, ParameterSpec
, TypeName
, and TypeSpec
. - New:
NameAllocator.clone()
to refine a NameAllocator for use in an inner scope code block. - Fix: Don't stack overflow when
TypeVariableName
gets a self-referential type. - Fix: Better handling of name collisions on imports. Previously JavaPoet did the wrong thing when a referenced type and a nested types had the same name.
JavaPoet 1.3.0 (2015-09-20)
- New:
NameAllocator
API makes it easy to declare non-conflicting names. - New: Support annotations on enum values.
- Fix: Avoid infinite recursion in
TypeName.get(TypeMirror)
. - Fix: Use qualified name for conflicting simple names in the same file.
- Fix: Better messages for parameter indexing errors.
JavaPoet 1.2.0 (2015-07-04)
- New: Arguments may have positional indexes like
$1T
and $2N
. Indexes can be used to refer to the same argument multiple times in a single format string. - New: Permit Javadoc on enum constants.
- New: Class initializer blocks with
addStaticBlock()
. - Fix:
MethodSpec.overriding()
retains annotations.
JavaPoet 1.1.0 (2015-05-25)
- New: Eager validation of argument types like
$T
and $N
. - New:
MethodSpec.varargs(boolean)
to generate varags methods. - New:
AnnotationSpec.get()
and MethodSpec.overriding()
to create annotations and methods from the javax.lang.model
API. - New:
JavaFile.toJavaFileObject()
. - New: Java 8
DEFAULT
modifier. - New:
toBuilder()
methods to build upon objects already constructed. - New: Generate
@interface
annotation types. - New:
TypeName.box()
and TypeName.unbox()
convenience APIs. - Fix:
nextControlFlow()
accepts arguments. - Fix: Reject duplicate calls to set the superclass.
- Fix:
WildcardTypeName.get(WildcardType)
no longer throws a NullPointerException
. - Fix: Don't allow double field initialization.
JavaPoet 1.0.0 (2015-01-28)
- This update is a complete rewrite. The project name is now
javapoet
. We renamed the it so you can simultaneously use the old JavaWriter API and our new builder-based APIs in one project. - Immutable value objects and builders. Instead of streaming the
.java
file from top to bottom, you now define members in whatever way is convenient. - We now use our own models for type names.
- Imports are now added automatically.
JavaWriter 2.5.1 (2014-12-03)
- New:
StringLiteral
type which encapsulates the behavior of stringLiteral
. - Fix: Use canonical name when emitting a class import.
- Fix: Apply type compression to varargs and array types.
- Fix: Restore binary compatibility with pre-2.5 versions.
JavaWriter 2.5.0 (2014-04-18)
- New: Methods in interfaces will always have no body declaration.
- New: Control flow begin declaration now supports String format arguments.
- Fix: Truncate any generic type when emitting constructors.
- Fix: Do not emit trailing whitespace after ‘=’ at end-of-line.
JavaWriter 2.4.0 (2014-01-10)
- New: Properly indent hanging lines in field initializers.
- New:
emitEnumValue
variant which exposes a boolean of whether the current value is the last.
JavaWriter 2.3.1 (2013-12-16)
- Fix: Properly handle subpackages of
java.lang
in compressType
.
JavaWriter 2.3.0 (2013-11-24)
- New: Configurable indent level via
setIndent
. - New:
beginConstructor
method is a semantically clearer alternative for constructors. - New:
emitEnumValues
method emits a list of values followed by semicolon. emitImports
now supports Class
arguments directly.- Previously-deprecated,
int
-based modifier methods have been removed.
JavaWriter 2.2.1 (2013-10-23)
- Fix: Do not emit trailing whitespace for empty Javadoc lines.
JavaWriter 2.2.0 (2013-09-25)
setCompressingTypes
controls whether types are emitted as fully-qualified or not.
JavaWriter 2.1.2 (2013-08-23)
- Attempt to keep annotations on a single line.
JavaWriter 2.1.1 (2013-07-23)
- Fix:
stringLiteral
now correctly handles escapes and control characters.
JavaWriter 2.1.0 (2013-07-15)
- New: All methods now take a
Set
of Modifier
s rather than an int
. The int
methods are now deprecated for removal in JavaPoet 1.0. - Annotations with a single “value” attribute will now omit the key.
JavaWriter 2.0.1 (2013-06-17)
- Correct casing of
emitSingleLineComment
.
JavaWriter 2.0.0 (2013-06-06)
- Package name is now
com.squareup.javawriter
. - Support declaring
throws
clause on methods.
JavaWriter 1.0.5 (2013-05-08)
- Fix: Fully qualify types whose simple name matches an import.
JavaWriter 1.0.4 (2013-03-15)
- Fix: Static import emit now properly supports method imports.
JavaWriter 1.0.3 (2013-02-21)
- Add support for emitting static imports.
JavaWriter 1.0.2 (2013-02-11)
- Add
type
API for helping build generic types. - Minor performance improvements.
JavaWriter 1.0.1 (2013-02-03)
JavaWriter 1.0.0 (2013-02-01)
Initial release.