[JAVA] 4709: codegen with parcelableMode fails to build if using arrays in swagger. (#7867)

This commit is contained in:
SergeyLyakhov
2018-03-20 18:10:24 +02:00
committed by William Cheng
parent f943332d62
commit f023327558
35 changed files with 324 additions and 284 deletions

View File

@@ -67,6 +67,19 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#parcela
{{/isContainer}}
{{/vars}}
{{#parcelableModel}}
public {{classname}}() {
{{#parent}}
super();
{{/parent}}
{{#gson}}
{{#discriminator}}
this.{{discriminator}} = this.getClass().getSimpleName();
{{/discriminator}}
{{/gson}}
}
{{/parcelableModel}}
{{^parcelableModel}}
{{#gson}}
{{#discriminator}}
public {{classname}}() {
@@ -74,6 +87,7 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#parcela
}
{{/discriminator}}
{{/gson}}
{{/parcelableModel}}
{{#vars}}
{{^isReadOnly}}
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
@@ -203,27 +217,41 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#parcela
return o.toString().replace("\n", "\n ");
}
{{#parcelableModel}}
public void writeToParcel(Parcel out, int flags) {
{{#parent}} super.writeToParcel(out, flags); {{/parent}} {{#vars}}
out.writeValue({{name}});
{{/vars}}
}
{{#parcelableModel}}
public {{classname}}() {
super();
public void writeToParcel(Parcel out, int flags) {
{{#model}}
{{#isArrayModel}}
out.writeList(this);
{{/isArrayModel}}
{{^isArrayModel}}
{{#parent}}
super.writeToParcel(out, flags);
{{/parent}}
{{#vars}}
out.writeValue({{name}});
{{/vars}}
{{/isArrayModel}}
{{/model}}
}
{{classname}}(Parcel in) {
{{#parent}} super(in); {{/parent}}
{{#vars}}
{{#isPrimitiveType}}
{{#isArrayModel}}
in.readTypedList(this, {{arrayModelType}}.CREATOR);
{{/isArrayModel}}
{{^isArrayModel}}
{{#parent}}
super(in);
{{/parent}}
{{#vars}}
{{#isPrimitiveType}}
{{name}} = ({{{datatypeWithEnum}}})in.readValue(null);
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{name}} = ({{{datatypeWithEnum}}})in.readValue({{complexType}}.class.getClassLoader());
{{/isPrimitiveType}}
{{/vars}}
{{/isPrimitiveType}}
{{/vars}}
{{/isArrayModel}}
}
public int describeContents() {
@@ -232,11 +260,20 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#parcela
public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() {
public {{classname}} createFromParcel(Parcel in) {
{{#model}}
{{#isArrayModel}}
{{classname}} result = new {{classname}}();
result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader()));
return result;
{{/isArrayModel}}
{{^isArrayModel}}
return new {{classname}}(in);
{{/isArrayModel}}
{{/model}}
}
public {{classname}}[] newArray(int size) {
return new {{classname}}[size];
}
};
{{/parcelableModel}}
{{/parcelableModel}}
}