1.2.0 • Published 4 months ago

jsoncodegen-generator-java-jackson v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 months ago

generator-java-jackson

jsoncodegen JSON to Java code generator for Jackson.

Interfaces are converted to POJOs for Jackson JSON. The POJOs exhibit the builder pattern. They should be instantiated like this:

MyObject myObject = new MyObject(
  MyObject.Builder.create()
    .withName("Budapest")
    .withFlag(true)
    .withCount(3)
);

The order of the with... calls is not fixed.

The Builder will display a compile-time error if any of the required parameters is missing. This is ensured by generics. The error message can be a bit overwhelming:

[ERROR] Test.java:[20,39] constructor MyObject in class MyObject cannot be applied to given types;
[ERROR]   required: MyObject.Builder<MyObject.__OK__, ...>
[ERROR]   found: MyObject.Builder<MyObject.__MISSING_flag__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__,MyObject.__OK__>
[ERROR]   reason: actual argument MyObject.Builder<MyObject.__MISSING_flag__, ...> cannot be converted to MyObject.Builder<MyObject.__OK__, ...> by method invocation conversion

You should look for MyObject.__MISSING_foo__ where foo will be the name of the missing field – meaning you should add a call to .withFoo(...). All other generic parameters should have a value of MyObject.__OK__.

Enums are mapped to Java enums.

Numbers are mapped to Double.

Nullability is enforced by calls to org.apache.commons.lang.Validate.notNull(). If null is given, it will throw a java.lang.IllegalArgumentException: Argument 'foo' must not be null.

Install

npm i -D jsoncodegen-generator-java-jackson

The generated code depends on:

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.6</version>
</dependency>

Configure

Configuration can be put in jsoncodegen-generator-java-jackson.config.js and passed to jsoncodegen in the config parameter:

jsoncodegen --generator java-jackson --config jsoncodegen-generator-java-jackson.config.js ...

jsoncodegen-generator-java-jackson.config.js

export default {
	package: 'com.example',
}

package?: string

The name of the target package. All generated classes will be in this package. Example: "com.example"

License

MIT

History

1.2.0 require → import

1.0.0 Initial version.

1.2.0

4 months ago

1.1.0

3 years ago

1.0.1

4 years ago

1.0.0

4 years ago