This document provides a high-level view of the changes introduced in Kotlin Data Model Processor by release. For an even more detailed look at what has changed, refer to the {uri-repo}/commits/master[commit history].
This project utilizes semantic versioning.
New features and improvements:
-
New
ImplementModel
annotation arguments:templateSuffix
, defaults toTemplate
. -
Immutable
ObjectModel
interface can be generated either fromObjectTemplate
interface or skipped so Template itself can be ImmutableModel. -
GeneratedClass hints processor about properties of types that are generated from Template but not inherited from it.
-
Comparable
implementation, see ImplementComparable Annotation -
Option to completely disable default class (and DSL initializer) generation.
-
Option to generate abstract class (with no DSL initializer).
-
hashCode
/equals
implementations, see ImplementHashCode Annotation and ImplementEquals Annotation to overcome Limitations on Data Classes -
Basic support of TypeScript data model generation by partial rewriting of ts-generator to make it work on top of kotlinpoet.
-
Generate multiple implementations with annotation Implementations.
-
Enforce to use named arguments in implementation class constructors, setting is ignored for data classes.
New features and improvements:
-
Support nested inheritance.
-
ConstructorInitializer
annotation allows to use custom constructor initializers. -
PreventOverride
annotation allows to mark certain properties of interface to be excluded from model implementations. -
Better type handling of kotlin classes.