templates.java-micronaut.common.model.pojo.mustache Maven / Gradle / Ivy
{{#formatNoEmptyLines}}
/**
* {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}}
{{#isDeprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/isDeprecated}}
*/
{{#isDeprecated}}
@Deprecated
{{/isDeprecated}}
{{#description}}
{{#generateSwagger2Annotations}}
@Schema({{#name}}name = "{{name}}", {{/name}}description = "{{{description}}}"{{#isDeprecated}}, deprecated = true{{/isDeprecated}})
{{/generateSwagger2Annotations}}
{{/description}}
{{#lombok}}
{{#parent}}
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
{{/parent}}
@Accessors(chain = true)
{{#requiredPropertiesInConstructor}}
{{#vendorExtensions.withRequiredVars}}
{{^parent}}
@EqualsAndHashCode
@ToString
{{/parent}}
@Getter
@Setter
{{/vendorExtensions.withRequiredVars}}
{{^vendorExtensions.withRequiredVars}}
@NoArgsConstructor
@AllArgsConstructor
@Data
{{/vendorExtensions.withRequiredVars}}
{{/requiredPropertiesInConstructor}}
{{^requiredPropertiesInConstructor}}
@NoArgsConstructor
@AllArgsConstructor
@Data
{{/requiredPropertiesInConstructor}}
{{/lombok}}
{{#micronaut_serde_jackson}}
@Serdeable
{{/micronaut_serde_jackson}}
{{#jackson}}
{{#vendorExtensions.hasOwnVars}}
{{#vendorExtensions.withMultipleVars}}
@JsonPropertyOrder({{openbrace}}
{{#vars}}
{{classname}}.JSON_PROPERTY_{{nameInSnakeCase}},
{{/vars}}
{{closebrace}})
{{/vendorExtensions.withMultipleVars}}
{{^vendorExtensions.withMultipleVars}}
@JsonPropertyOrder({{#vars}}{{classname}}.JSON_PROPERTY_{{nameInSnakeCase}}{{/vars}})
{{/vendorExtensions.withMultipleVars}}
{{/vendorExtensions.hasOwnVars}}
{{/jackson}}
{{#additionalModelTypeAnnotations}}
{{{.}}}
{{/additionalModelTypeAnnotations}}
{{#generatedAnnotation}}
{{>common/generatedAnnotation}}
{{/generatedAnnotation}}
{{>common/model/typeInfoAnnotation}}
{{>common/model/xmlAnnotation}}
{{#useBeanValidation}}
{{^micronaut_serde_jackson}}
@Introspected
{{/micronaut_serde_jackson}}
{{/useBeanValidation}}
{{#vendorExtensions.x-class-extra-annotation}}
{{{.}}}
{{/vendorExtensions.x-class-extra-annotation}}
{{!Declare the class with extends and implements}}
public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{#-last}} {{/-last}}{{/vendorExtensions.x-implements}}{
{{/formatNoEmptyLines}}
{{#serializableModel}}
@Serial
private static final long serialVersionUID = {{{vendorExtensions.serialId}}}L;
{{/serializableModel}}
{{#vars}}
public static final String JSON_PROPERTY_{{nameInSnakeCase}} = "{{baseName}}";
{{/vars}}
{{#vars}}
{{#formatNoEmptyLines}}
{{#description}}
/**
* {{description}}
{{#deprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/deprecated}}
*/
{{/description}}
{{^description}}
{{#deprecated}}
/**
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
*/
{{/deprecated}}
{{/description}}
{{#deprecated}}
@Deprecated
{{/deprecated}}
{{>common/params/validation}}
{{#withXml}}
{{#isXmlAttribute}}
@XmlAttribute(name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"
{{/isXmlAttribute}}
{{^isXmlAttribute}}
{{^isContainer}}
@XmlElement({{#xmlNamespace}}namespace = "{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
{{/isContainer}}
{{#isContainer}}
// Is a container wrapped = {{isXmlWrapped}}
{{#items}}
// items.name = {{name}} items.baseName = {{baseName}} items.xmlName = {{xmlName}} items.xmlNamespace = {{xmlNamespace}}
// items.example = {{example}} items.type = {{dataType}}
@XmlElement({{#xmlNamespace}}namespace = "{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
{{/items}}
{{#isXmlWrapped}}
@XmlElementWrapper({{#xmlNamespace}}namespace = "{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}")
{{/isXmlWrapped}}
{{/isContainer}}
{{/isXmlAttribute}}
{{/withXml}}
{{#generateSwagger2Annotations}}
@Schema(name = "{{{baseName}}}"{{#isReadOnly}}, accessMode = Schema.AccessMode.READ_ONLY{{/isReadOnly}}{{#example}}, example = "{{{.}}}"{{/example}}{{#description}}, description = "{{{.}}}"{{/description}}, requiredMode = {{#required}}Schema.RequiredMode.REQUIRED{{/required}}{{^required}}Schema.RequiredMode.NOT_REQUIRED{{/required}}{{#deprecated}}, deprecated = true{{/deprecated}})
{{/generateSwagger2Annotations}}
{{#vendorExtensions.x-is-jackson-optional-nullable}}
{{!Unannotated, Jackson would pick this up automatically and add it *in addition* to the _JsonNullable getter field}}
@JsonIgnore
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
{{#jackson}}
{{>common/model/jackson_annotations}}
{{/jackson}}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{#vendorExtensions.x-field-extra-annotation}}
{{{.}}}
{{/vendorExtensions.x-field-extra-annotation}}
{{#vendorExtensions.x-is-jackson-optional-nullable}}
{{#isContainer}}
private JsonNullable<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}> {{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>undefined();
{{/isContainer}}
{{^isContainer}}
private JsonNullable<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}> {{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
{{/isContainer}}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
{{#isContainer}}
private {{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}{{#required}}{{^requiredPropertiesInConstructor}}{{#vendorExtensions.defaultValueIsNotNull}}{{#vendorExtensions.defaultValueInit}} = {{{.}}}{{/vendorExtensions.defaultValueInit}}{{/vendorExtensions.defaultValueIsNotNull}}{{/requiredPropertiesInConstructor}}{{/required}};
{{/isContainer}}
{{^isContainer}}
{{#isDiscriminator}}protected{{/isDiscriminator}}{{^isDiscriminator}}private{{/isDiscriminator}} {{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}{{#vendorExtensions.defaultValueIsNotNull}}{{#vendorExtensions.defaultValueInit}} = {{{.}}}{{/vendorExtensions.defaultValueInit}}{{/vendorExtensions.defaultValueIsNotNull}};
{{/isContainer}}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{/formatNoEmptyLines}}
{{/vars}}
{{#requiredPropertiesInConstructor}}
{{^micronaut_serde_jackson}}
{{#vendorExtensions.withRequiredVars}}
private {{classname}}() {
}
{{/vendorExtensions.withRequiredVars}}
{{/micronaut_serde_jackson}}
{{#formatNoEmptyLines}}
{{#vendorExtensions.withRequiredVars}}
public {{classname}}({{#vendorExtensions.requiredVarsWithoutDiscriminator}}{{#isReadOnly}}{{#vendorExtensions.isServer}}{{^-first}}, {{/-first}}{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}{{/vendorExtensions.isServer}}{{/isReadOnly}}{{^isReadOnly}}{{^-first}}, {{/-first}}{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}{{/isReadOnly}}{{/vendorExtensions.requiredVarsWithoutDiscriminator}}) {
{{#parent}}
{{#vendorExtensions.requiredParentVarsWithoutDiscriminator.0}}super({{/vendorExtensions.requiredParentVarsWithoutDiscriminator.0}}{{#vendorExtensions.requiredParentVarsWithoutDiscriminator}}{{#vendorExtensions.isServerOrNotReadOnly}}{{^-first}}, {{/-first}}{{name}}{{/vendorExtensions.isServerOrNotReadOnly}}{{/vendorExtensions.requiredParentVarsWithoutDiscriminator}}{{#vendorExtensions.requiredParentVarsWithoutDiscriminator.0}});{{/vendorExtensions.requiredParentVarsWithoutDiscriminator.0}}
{{/parent}}
{{#vendorExtensions.requiredVars}}
{{#isDiscriminator}}
{{#useOneOfInterfaces}}
{{#vendorExtensions.x-implements}}
this.{{name}} = {{name}};
{{/vendorExtensions.x-implements}}
{{/useOneOfInterfaces}}
{{/isDiscriminator}}
{{^isDiscriminator}}
{{#isReadOnly}}
{{#vendorExtensions.isServer}}
this.{{name}} = {{name}};
{{/vendorExtensions.isServer}}
{{/isReadOnly}}
{{^isReadOnly}}
this.{{name}} = {{name}};
{{/isReadOnly}}
{{/isDiscriminator}}
{{/vendorExtensions.requiredVars}}
}
{{/vendorExtensions.withRequiredVars}}
{{/formatNoEmptyLines}}
{{/requiredPropertiesInConstructor}}
{{#vars}}
{{^vendorExtensions.lombok}}
/**
{{#description}}
* {{description}}
*
{{/description}}
* @return the {{name}} property value
{{#deprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/deprecated}}
*/
{{#vendorExtensions.x-extra-annotation}}
{{{.}}}
{{/vendorExtensions.x-extra-annotation}}
{{#deprecated}}
@Deprecated
{{/deprecated}}
{{#isDiscriminator}}
{{#parent}}
@Override
{{/parent}}
{{^parent}}
{{#vendorExtensions.overridden}}
@Override
{{/vendorExtensions.overridden}}
{{/parent}}
{{/isDiscriminator}}
public {{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{getter}}() {
{{#vendorExtensions.x-is-jackson-optional-nullable}}
{{#isReadOnly}}
{{! A readonly attribute doesn't have setter => jackson will set null directly if explicitly returned by API, so make sure we have an empty JsonNullable}}
if ({{name}} == null) {
{{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
}
{{/isReadOnly}}
return {{name}}.orElse(null);
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
return {{name}};
{{/vendorExtensions.x-is-jackson-optional-nullable}}
}
{{/vendorExtensions.lombok}}
{{#useOptional}}
{{^required}}
/**
{{#description}}
* {{description}}
*
{{/description}}
* @return the {{name}} property value wrapped in an optional
{{#deprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/deprecated}}
*/
{{#jackson}}
@JsonIgnore
{{/jackson}}
{{#deprecated}}
@Deprecated
{{/deprecated}}
public Optional<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}> {{getter}}Optional() {
{{^vendorExtensions.x-is-jackson-optional-nullable}}
return Optional.ofNullable({{name}});
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{#vendorExtensions.x-is-jackson-optional-nullable}}
return Optional.ofNullable({{getter}});
{{/vendorExtensions.x-is-jackson-optional-nullable}}
}
{{/required}}
{{/useOptional}}
{{^vendorExtensions.lombok}}
/**
* Set the {{name}} property value
*
* @param {{name}} property value to set
{{#deprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/deprecated}}
*/
{{#vendorExtensions.x-setter-extra-annotation}}
{{{.}}}
{{/vendorExtensions.x-setter-extra-annotation}}
{{#deprecated}}
@Deprecated
{{/deprecated}}
public void {{setter}}({{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}) {
{{#vendorExtensions.x-is-jackson-optional-nullable}}
this.{{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>of({{name}});
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
this.{{name}} = {{name}};
{{/vendorExtensions.x-is-jackson-optional-nullable}}
}
{{/vendorExtensions.lombok}}
{{#vendorExtensions.x-is-jackson-optional-nullable}}
/**
* A JsonNullable getter that will be used for JSON serialization.
*
* @return JsonNullable version of {{name}}
*/
{{>common/model/jackson_annotations}}
public JsonNullable<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}> {{getter}}_JsonNullable() {
return {{name}};
}
@JsonProperty(JSON_PROPERTY_{{nameInSnakeCase}})
public void {{setter}}_JsonNullable(JsonNullable<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}> {{name}}) {
{{! For getters/setters that have name differing from attribute name, we must include setter (albeit private) for jackson to be able to set the attribute}} this.{{name}} = {{name}};
}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^isReadOnly}}
{{^vendorExtensions.lombok}}
/**
* Set {{name}} in a chainable fashion.
*
* @return The same instance of {{classname}} for chaining.
{{#deprecated}}
*
* @deprecated{{#vendorExtensions.x-deprecated-message}} {{{.}}}{{/vendorExtensions.x-deprecated-message}}
{{/deprecated}}
*/
{{#deprecated}}
@Deprecated
{{/deprecated}}
public {{classname}} {{name}}({{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}) {
{{#vendorExtensions.x-is-jackson-optional-nullable}}
this.{{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>of({{name}});
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
this.{{name}} = {{name}};
{{/vendorExtensions.x-is-jackson-optional-nullable}}
return this;
}
{{/vendorExtensions.lombok}}
{{#isArray}}
/**
* Add an item to the {{name}} property in a chainable fashion.
*
* @return The same instance of {{classname}} for chaining.
*/
public {{classname}} add{{nameInCamelCase}}Item({{{items.vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}Item) {
{{#vendorExtensions.x-is-jackson-optional-nullable}}
if ({{name}} == null || !{{name}}.isPresent()) {
{{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>of({{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/defaultValue}});
}
try {
{{name}}.get().add({{name}}Item);
} catch (java.util.NoSuchElementException e) {
// this can never happen, as we make sure above that the value is present
}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
{{^required}}
if ({{name}} == null) {
{{name}} = {{#vendorExtensions.defaultValueInit}}{{{.}}}{{/vendorExtensions.defaultValueInit}}{{^vendorExtensions.defaultValueInit}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/vendorExtensions.defaultValueInit}};
}
{{/required}}
{{name}}.add({{name}}Item);
{{/vendorExtensions.x-is-jackson-optional-nullable}}
return this;
}
{{/isArray}}
{{#isMap}}
/**
* Set the value for the key for the {{name}} map property in a chainable fashion.
*
* @return The same instance of {{classname}} for chaining.
*/
public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) {
{{#vendorExtensions.x-is-jackson-optional-nullable}}
if ({{name}} == null || !{{name}}.isPresent()) {
{{name}} = JsonNullable.<{{{vendorExtensions.typeWithEnumWithGenericAnnotations}}}>of({{{defaultValue}}}{{^defaultValue}}new HashMap<>(){{/defaultValue}});
}
try {
{{name}}.get().put(key, {{name}}Item);
} catch (java.util.NoSuchElementException e) {
// this can never happen, as we make sure above that the value is present
}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
{{^required}}
if ({{name}} == null) {
{{name}} = {{#vendorExtensions.defaultValueInit}}{{{.}}}{{/vendorExtensions.defaultValueInit}}{{^vendorExtensions.defaultValueInit}}new HashMap<>(){{/vendorExtensions.defaultValueInit}};
}
{{/required}}
{{name}}.put(key, {{name}}Item);
{{/vendorExtensions.x-is-jackson-optional-nullable}}
return this;
}
{{/isMap}}
{{/isReadOnly}}
{{/vars}}
{{#parentVars}}
{{^isReadOnly}}
@Override
public {{classname}} {{#lombok}}{{{setter}}}{{/lombok}}{{^lombok}}{{name}}{{/lombok}}({{{vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}) {
super.{{{setter}}}({{name}});
return this;
}
{{#isArray}}
@Override
public {{classname}} add{{nameInCamelCase}}Item({{{items.vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}Item) {
super.add{{nameInCamelCase}}Item({{name}}Item);
return this;
}
{{/isArray}}
{{#isMap}}
@Override
public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.vendorExtensions.typeWithEnumWithGenericAnnotations}}} {{name}}Item) {
super.put{{nameInCamelCase}}Item(key, {{name}}Item);
return this;
}
{{/isMap}}
{{/isReadOnly}}
{{/parentVars}}
{{^lombok}}
@Override
public boolean equals(Object o) {
{{#useReflectionEqualsHashCode}}
return EqualsBuilder.reflectionEquals(this, o, false, null, true);
{{/useReflectionEqualsHashCode}}
{{^useReflectionEqualsHashCode}}
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
{{#vendorExtensions.hasOwnVars}}
var {{classVarName}} = ({{classname}}) o;
return {{#vars}}{{#isByteArray}}Arrays{{/isByteArray}}{{^isByteArray}}Objects{{/isByteArray}}.equals({{name}}, {{classVarName}}.{{name}}){{^-last}}
&& {{/-last}}{{/vars}}{{#parent}}
&& super.equals(o){{/parent}};
{{/vendorExtensions.hasOwnVars}}
{{^vendorExtensions.hasOwnVars}}
return {{#parent}}super.equals(o){{/parent}}{{^parent}}true{{/parent}};
{{/vendorExtensions.hasOwnVars}}
{{/useReflectionEqualsHashCode}}
}
@Override
public int hashCode() {
{{#useReflectionEqualsHashCode}}
return HashCodeBuilder.reflectionHashCode(this);
{{/useReflectionEqualsHashCode}}
{{^useReflectionEqualsHashCode}}
return Objects.hash({{#vars}}{{^isByteArray}}{{name}}{{/isByteArray}}{{#isByteArray}}Arrays.hashCode({{name}}){{/isByteArray}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#vendorExtensions.hasOwnVars}}, {{/vendorExtensions.hasOwnVars}}super.hashCode(){{/parent}});
{{/useReflectionEqualsHashCode}}
}
@Override
public String toString() {
{{#hasVars}}
return "{{classname}}("
{{#allVars}}
+ "{{name}}: " + {{{getter}}}(){{^-last}} + ", "{{/-last}}
{{/allVars}}
+ ")";
{{/hasVars}}
{{^hasVars}}
return "{{classname}}()";
{{/hasVars}}
}
{{/lombok}}
{{#parcelableModel}}
public void writeToParcel(Parcel out, int flags) {
{{#model}}
{{#isArray}}
out.writeList(this);
{{/isArray}}
{{^isArray}}
{{#parent}}
super.writeToParcel(out, flags);
{{/parent}}
{{#vars}}
out.writeValue({{name}});
{{/vars}}
{{/isArray}}
{{/model}}
}
{{classname}}(Parcel in) {
{{#isArray}}
in.readTypedList(this, {{arrayModelType}}.CREATOR);
{{/isArray}}
{{^isArray}}
{{#parent}}
super(in);
{{/parent}}
{{#vars}}
{{#isPrimitiveType}}
{{name}} = ({{{vendorExtensions.typeWithEnumWithGenericAnnotations}}})in.readValue(null);
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{name}} = ({{{vendorExtensions.typeWithEnumWithGenericAnnotations}}})in.readValue({{complexType}}.class.getClassLoader());
{{/isPrimitiveType}}
{{/vars}}
{{/isArray}}
}
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() {
public {{classname}} createFromParcel(Parcel in) {
{{#model}}
{{#isArray}}
{{classname}} result = new {{classname}}();
result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader()));
return result;
{{/isArray}}
{{^isArray}}
return new {{classname}}(in);
{{/isArray}}
{{/model}}
}
public {{classname}}[] newArray(int size) {
return new {{classname}}[size];
}
};
{{/parcelableModel}}
{{#visitable}}
{{#discriminator}}
/**
* Accept the visitor and invoke it for the specific {{classname}} type.
*
* @param visitor the {{classname}} visitor
* @param the return type of the visitor
* @return the result from the visitor
*/
public T accept(Visitor visitor) {
return visitor.visit{{classname}}(this);
}
/**
* A {{classname}} visitor implementation allows visiting the various {{classname}} types.
*
* @param the return type of the visitor
*/
public interface Visitor {
{{#discriminator.mappedModels}}
R visit{{modelName}}({{modelName}} value);
{{/discriminator.mappedModels}}
R visit{{classname}}({{classname}} value);
}
{{/discriminator}}
{{#parent}}
{{#interfaces.0}}
@Override
public T accept({{{parent}}}.Visitor visitor) {
return visitor.visit{{classname}}(this);
}
{{/interfaces.0}}
{{/parent}}
{{/visitable}}
{{#vars}}
{{#isEnum}}
{{^isContainer}}
{{#indent}}
{{>common/model/enum}}
{{/indent}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{#indent}}
{{>common/model/enum}}
{{/indent}}
{{/mostInnerItems}}
{{/isContainer}}
{{/isEnum}}
{{/vars}}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy