Skip to content

Commit

Permalink
Records: implement
Browse files Browse the repository at this point in the history
  • Loading branch information
sschnabe committed Aug 17, 2023
1 parent 6f797bb commit 73d7649
Show file tree
Hide file tree
Showing 53 changed files with 337 additions and 3,633 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ Include in your `pom.xml`:
* generateExamples: generate example objects for the model, based on example and default values (default `false`)
* generateAuthentication: generate Àuthentication into controller interfaces if responsecode 401 is present (default `false`)
* sealed: generate sealed interfaces (default `true`)
* record: generate records instead of pojos (default `true`)

For examples see [integration tests](src/it).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,72 +1,11 @@
package testmodel.micronaut_record;

@jakarta.annotation.Generated("org.openapitools.codegen.languages.MicronautCodegen")
@io.micronaut.serde.annotation.Serdeable
public class AdditionalPropertiesModel {

public static final java.lang.String JSON_PROPERTY_ID = "id";
public record AdditionalPropertiesModel(

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_ID)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.lang.String id;

private java.util.Map<java.lang.String, AdditionalPropertiesModelValue> additionalProperties;

// methods

@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (object == null || getClass() != object.getClass()) {
return false;
}
AdditionalPropertiesModel other = (AdditionalPropertiesModel) object;
return java.util.Objects.equals(id, other.id);
}

@Override
public int hashCode() {
return java.util.Objects.hash(id);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("AdditionalPropertiesModel[")
.append("id=").append(id)
.append("]")
.toString();
}
java.lang.String id) {

// fluent

public AdditionalPropertiesModel id(java.lang.String newId) {
this.id = newId;
return this;
}

@com.fasterxml.jackson.annotation.JsonAnyGetter
public java.util.Map<java.lang.String, AdditionalPropertiesModelValue> getAdditionalProperties() {
return additionalProperties;
}

@com.fasterxml.jackson.annotation.JsonAnySetter
public void setAdditionalProperties(java.lang.String propertyKey, AdditionalPropertiesModelValue value) {
if (this.additionalProperties == null) {
this.additionalProperties = new java.util.HashMap<>();
}
this.additionalProperties.put(propertyKey, value);
}

// getter/setter

public java.lang.String getId() {
return id;
}

public void setId(java.lang.String newId) {
this.id = newId;
}
public static final java.lang.String JSON_PROPERTY_ID = "id";
}
109 changes: 9 additions & 100 deletions gen/main/java/testmodel/micronaut_record/EnumerationModel.java
Original file line number Diff line number Diff line change
@@ -1,119 +1,28 @@
package testmodel.micronaut_record;

@jakarta.annotation.Generated("org.openapitools.codegen.languages.MicronautCodegen")
@io.micronaut.serde.annotation.Serdeable
public class EnumerationModel {

public static final java.lang.String JSON_PROPERTY_STRING = "string";
public static final java.lang.String JSON_PROPERTY_STRING_DEFAULT = "string-default";
public static final java.lang.String JSON_PROPERTY_EMBEDDED = "embedded";
public static final java.lang.String JSON_PROPERTY_EMBEDDED_DEFAULT = "embedded-default";
public record EnumerationModel(

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_STRING)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private EnumerationString string;
EnumerationString string,

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_STRING_DEFAULT)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private EnumerationStringDefault stringDefault = EnumerationStringDefault.THREE;
EnumerationStringDefault stringDefault,

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_EMBEDDED)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private Embedded embedded;
Embedded embedded,

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_EMBEDDED_DEFAULT)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private EmbeddedDefault embeddedDefault = EmbeddedDefault.FOUR;

// methods

@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (object == null || getClass() != object.getClass()) {
return false;
}
EnumerationModel other = (EnumerationModel) object;
return java.util.Objects.equals(string, other.string)
&& java.util.Objects.equals(stringDefault, other.stringDefault)
&& java.util.Objects.equals(embedded, other.embedded)
&& java.util.Objects.equals(embeddedDefault, other.embeddedDefault);
}

@Override
public int hashCode() {
return java.util.Objects.hash(string, stringDefault, embedded, embeddedDefault);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("EnumerationModel[")
.append("string=").append(string).append(",")
.append("stringDefault=").append(stringDefault).append(",")
.append("embedded=").append(embedded).append(",")
.append("embeddedDefault=").append(embeddedDefault)
.append("]")
.toString();
}

// fluent

public EnumerationModel string(EnumerationString newString) {
this.string = newString;
return this;
}

public EnumerationModel stringDefault(EnumerationStringDefault newStringDefault) {
this.stringDefault = newStringDefault;
return this;
}

public EnumerationModel embedded(Embedded newEmbedded) {
this.embedded = newEmbedded;
return this;
}

public EnumerationModel embeddedDefault(EmbeddedDefault newEmbeddedDefault) {
this.embeddedDefault = newEmbeddedDefault;
return this;
}

// getter/setter
EmbeddedDefault embeddedDefault) {

public EnumerationString getString() {
return string;
}

public void setString(EnumerationString newString) {
this.string = newString;
}

public EnumerationStringDefault getStringDefault() {
return stringDefault;
}

public void setStringDefault(EnumerationStringDefault newStringDefault) {
this.stringDefault = newStringDefault;
}

public Embedded getEmbedded() {
return embedded;
}

public void setEmbedded(Embedded newEmbedded) {
this.embedded = newEmbedded;
}

public EmbeddedDefault getEmbeddedDefault() {
return embeddedDefault;
}

public void setEmbeddedDefault(EmbeddedDefault newEmbeddedDefault) {
this.embeddedDefault = newEmbeddedDefault;
}
public static final java.lang.String JSON_PROPERTY_STRING = "string";
public static final java.lang.String JSON_PROPERTY_STRING_DEFAULT = "string-default";
public static final java.lang.String JSON_PROPERTY_EMBEDDED = "embedded";
public static final java.lang.String JSON_PROPERTY_EMBEDDED_DEFAULT = "embedded-default";

public enum Embedded {

Expand Down
87 changes: 6 additions & 81 deletions gen/main/java/testmodel/micronaut_record/FirstModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,95 +4,20 @@
@io.micronaut.serde.annotation.Serdeable
public final class FirstModel implements OneOfModel {

public static final java.lang.String JSON_PROPERTY_TYPE = "type";
public static final java.lang.String JSON_PROPERTY_FIRST = "first";
public static final java.lang.String JSON_PROPERTY_SECOND_LEVEL = "secondLevel";

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_TYPE)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.lang.String type;
java.lang.String type,

@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_FIRST)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private java.lang.String first;
java.lang.String first,

@jakarta.validation.Valid
@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_SECOND_LEVEL)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
private SecondLevelModel secondLevel;

// methods

@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (object == null || getClass() != object.getClass()) {
return false;
}
FirstModel other = (FirstModel) object;
return java.util.Objects.equals(type, other.type)
&& java.util.Objects.equals(first, other.first)
&& java.util.Objects.equals(secondLevel, other.secondLevel);
}

@Override
public int hashCode() {
return java.util.Objects.hash(type, first, secondLevel);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("FirstModel[")
.append("type=").append(type).append(",")
.append("first=").append(first).append(",")
.append("secondLevel=").append(secondLevel)
.append("]")
.toString();
}

// fluent

public FirstModel type(java.lang.String newType) {
this.type = newType;
return this;
}

public FirstModel first(java.lang.String newFirst) {
this.first = newFirst;
return this;
}
SecondLevelModel secondLevel) implements OneOfModel {

public FirstModel secondLevel(SecondLevelModel newSecondLevel) {
this.secondLevel = newSecondLevel;
return this;
}

// getter/setter

public java.lang.String getType() {
return type;
}

public void setType(java.lang.String newType) {
this.type = newType;
}

public java.lang.String getFirst() {
return first;
}

public void setFirst(java.lang.String newFirst) {
this.first = newFirst;
}

public SecondLevelModel getSecondLevel() {
return secondLevel;
}

public void setSecondLevel(SecondLevelModel newSecondLevel) {
this.secondLevel = newSecondLevel;
}
public static final java.lang.String JSON_PROPERTY_TYPE = "type";
public static final java.lang.String JSON_PROPERTY_FIRST = "first";
public static final java.lang.String JSON_PROPERTY_SECOND_LEVEL = "secondLevel";
}
66 changes: 3 additions & 63 deletions gen/main/java/testmodel/micronaut_record/InheritanceExtended.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,75 +4,15 @@
@io.micronaut.serde.annotation.Serdeable
public final class InheritanceExtended implements InheritanceSimple {

public static final java.lang.String JSON_PROPERTY_BAR = "bar";

@jakarta.validation.constraints.NotNull
@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_FOO)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS)
private java.lang.String foo;
java.lang.String foo,

@jakarta.validation.constraints.NotNull
@com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_BAR)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS)
private java.lang.String bar;

// methods

@Override
public boolean equals(Object object) {
if (object == this) {
return true;
}
if (object == null || getClass() != object.getClass()) {
return false;
}
InheritanceExtended other = (InheritanceExtended) object;
return java.util.Objects.equals(foo, other.foo)
&& java.util.Objects.equals(bar, other.bar);
}

@Override
public int hashCode() {
return java.util.Objects.hash(foo, bar);
}

@Override
public java.lang.String toString() {
return new java.lang.StringBuilder()
.append("InheritanceExtended[")
.append("foo=").append(foo).append(",")
.append("bar=").append(bar)
.append("]")
.toString();
}

// fluent
java.lang.String bar) implements InheritanceSimple {

public InheritanceExtended foo(java.lang.String newFoo) {
this.foo = newFoo;
return this;
}

public InheritanceExtended bar(java.lang.String newBar) {
this.bar = newBar;
return this;
}

// getter/setter

public java.lang.String getFoo() {
return foo;
}

public void setFoo(java.lang.String newFoo) {
this.foo = newFoo;
}

public java.lang.String getBar() {
return bar;
}

public void setBar(java.lang.String newBar) {
this.bar = newBar;
}
public static final java.lang.String JSON_PROPERTY_BAR = "bar";
}
Loading

0 comments on commit 73d7649

Please sign in to comment.