jtd-codegen 0.1.4

Generate code from JSON Typedef schemas
package {{package}};

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonValue;

import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;

{{ comment 80 "/**" " * " " */" description }}
{{#if discriminator}}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = {{discriminator}})
@JsonSubTypes({
  {{#each ../discriminator_variants}}
    @JsonSubTypes.Type(name = "{{json_name}}", value = {{class_name}}.class),
  {{/each}}
})
{{/if}}
public {{#if is_abstract}}abstract {{/if}}class {{name}} {{#if extends}}extends {{extends}} {{/if}}{
{{#each properties}}
{{ comment 80 "  /**" "   * " "   */" description }}
  {{#if entire_value}}@JsonValue{{/if}}
  {{#if rename}}@JsonProperty({{rename}}){{/if}}
  private {{value}} {{name}};
{{/each}}

  {{#unless is_abstract}}
  public {{name}}() {
  }
  {{/unless}}

{{#each properties}}
{{ comment 80 "  /**" "   * " "   */" description }}
  public {{value}} get{{method_name}}() {
    return {{name}};
  }

{{ comment 80 "  /**" "   * " "   */" description }}
  public void set{{method_name}}({{value}} {{name}}) {
    this.{{name}} = {{name}};
  }
{{/each}}
}