com.github.upachler.swagger.codegen.jaxrslean.templates.pojo.mustache Maven / Gradle / Ivy
The newest version!
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}}
{{>enumPropertyClass}}{{/isEnum}}{{#items.isEnum}}{{#items}}
{{>enumPropertyClass}}{{/items}}{{/items.isEnum}}
{{#useJaxbAnnotations}}
@XmlElement(name="{{baseName}}")
{{/useJaxbAnnotations}}
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}};{{/vars}}
{{#vars}}
/**{{#description}}
* {{description}}{{/description}}{{#minimum}}
* minimum: {{minimum}}{{/minimum}}{{#maximum}}
* maximum: {{maximum}}{{/maximum}}
* @return {{name}}
**/{{#vendorExtensions.extraAnnotation}}
{{vendorExtensions.extraAnnotation}}{{/vendorExtensions.extraAnnotation}}
public {{{datatypeWithEnum}}} {{getter}}() {
return {{name}};
}
/**
* @param {{name}} Set the {{name}} property.
*/
public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
this.{{name}} = {{name}};
}
{{/vars}}
/**
* Creates a builder for {{classname}} instances
* @return the new {{classname}} builder.
*/
public static Builder builder() {
return new Builder();
}
/**
* A builder class for building {{classname}} objects with a fluent API. So to
* build an instance, use a pattern like this:
*
* {{classname}} instance = {{classname}}.builder()
* // set properties of the new instance...
* {{#vars}} .{{name}}({{name}}Value)
* {{/vars}} // ...and finally build the object!
* .build();
*
*/
public static class Builder {{#parent}} extends {{parent}}.Builder{{/parent}}{
private final {{classname}} o = new {{classname}}();
/**
* Finish building the instance and return it
* @return the newly built {{classname}} instance
*/
public {{classname}} build() {
return o;
}
{{#vars}}
/**
* Set the {{name}} property
* @param {{name}} value to set
* @return This builder
*/
public Builder {{name}}({{{datatypeWithEnum}}} {{name}}) {
o.{{setter}}({{name}});
return this;
}
/**
* Set the {{name}} property if the given optional is present.
* @param {{name}}Opt optional value to set, if present
* @return This builder
*/
public Builder {{name}}(Optional<{{{vendorExtensions.boxedType}}}> {{name}}Opt) {
{{name}}Opt.ifPresent(this::{{name}});
return this;
}
{{/vars}}
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{#hasMore}} &&
{{/hasMore}}{{^hasMore}};{{/hasMore}}{{/vars}}{{/hasVars}}{{^hasVars}}
return true;{{/hasVars}}
}
@Override
public int hashCode() {
return Objects.hash({{#vars}}{{name}}{{#hasMore}}, {{/hasMore}}{{/vars}});
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class {{classname}} {\n");
{{#parent}}sb.append(" ").append(toIndentedString(super.toString())).append("\n");{{/parent}}
{{#vars}}sb.append(" {{name}}: ").append(toIndentedString({{name}})).append("\n");
{{/vars}}sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy