Skip to content

Version 0.7

Compare
Choose a tag to compare
@UnquietCode UnquietCode released this 23 Jan 06:47
· 73 commits to master since this release

The latest version includes some new features for modifying the output
of the generated source code. As well, better type handling is availble
for arrays and generics.

Features and Improvements

+ [#197]: pluggable class and method name generator
+ [#14]: support for disabling the printing of timestamps
+ [#194, #208]: support for generic parameters in annotated helpers
+ [#94]: support for multi-dimensional array types
+ [#47]: new `*Factory` interfaces and static factory method
+ [#33]: update to JDK7, and enable JDK8 builds

Disabling Timestamps

Timestamps in the generated source can be disabled by calling the new disableTimestamps()
method on the fluent builder.

Pluggable Name Generator

It is now possible to customize the generated names by using different implementations
of the new NameGenerator interface. An instance can be provided by calling the new
useCustomNameGenerator(..) method on the fluent builder. Several name generators are
provided out of the box:

  • DefaultNameGenerator - makes no alterations
  • CondensedNameGenerator - shortens method names
  • TinyNameGenerator - shortens method and class names
  • HashedNameGenerator - shortens method and class names using an MD5 hash

Generics in Annotated Helpers and Return Types

Improving upon the annotations introduced in version 0.6, you can now use generic
parameters and return types in your annotated helper classes. Additionally, all
methods can make use of generic return types.

Factory Methods

A new Factory interface is now created for each descriptor, and contains a
single parameter-less method which can be used to start a new builder. The
Generator classes correspondingly have a new method which binds parameters
to a new factory instance and returns it. This functionality is provided as
a shortcut to defining your own factory for downstream consumers.

BREAKING CHANGE - @BlockChain annotation does not have a value

The value for the block chain marker annotation for use in annotated helpers
has been removed through better resolution of generics.

The full list of tasks and issues included in the release is available on the project's
Issue Tracker.