Skip to content

Commit

Permalink
Java model - _bits field should be deserialized if it's present in th…
Browse files Browse the repository at this point in the history
…e JSON (#221)
  • Loading branch information
RicoYao authored and rahul-malik committed Jul 13, 2019
1 parent bc8c8fd commit 7b054be
Show file tree
Hide file tree
Showing 8 changed files with 117 additions and 1 deletion.
14 changes: 14 additions & 0 deletions Examples/Java/Sources/Board.java
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,7 @@ public Board read(JsonReader reader) throws IOException {
return null;
}
Builder builder = Board.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand Down Expand Up @@ -521,11 +522,24 @@ public Board read(JsonReader reader) throws IOException {
case ("url"):
builder.setUrl(stringTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[10];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 10) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/Everything.java
Original file line number Diff line number Diff line change
Expand Up @@ -1573,6 +1573,7 @@ public Everything read(JsonReader reader) throws IOException {
return null;
}
Builder builder = Everything.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand Down Expand Up @@ -1685,11 +1686,24 @@ public Everything read(JsonReader reader) throws IOException {
case ("uri_prop"):
builder.setUriProp(stringTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[36];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 36) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/Image.java
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ public Image read(JsonReader reader) throws IOException {
return null;
}
Builder builder = Image.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand All @@ -249,11 +250,24 @@ public Image read(JsonReader reader) throws IOException {
case ("width"):
builder.setWidth(integerTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[3];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 3) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/Model.java
Original file line number Diff line number Diff line change
Expand Up @@ -162,18 +162,32 @@ public Model read(JsonReader reader) throws IOException {
return null;
}
Builder builder = Model.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
switch (name) {
case ("id"):
builder.setUid(stringTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[1];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 1) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/Pin.java
Original file line number Diff line number Diff line change
Expand Up @@ -760,6 +760,7 @@ public Pin read(JsonReader reader) throws IOException {
return null;
}
Builder builder = Pin.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand Down Expand Up @@ -815,11 +816,24 @@ public Pin read(JsonReader reader) throws IOException {
case ("visual_search_attrs"):
builder.setVisualSearchAttrs(map_String__Object_TypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[17];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 17) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,7 @@ public User read(JsonReader reader) throws IOException {
return null;
}
Builder builder = User.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand Down Expand Up @@ -523,11 +524,24 @@ public User read(JsonReader reader) throws IOException {
case ("username"):
builder.setUsername(stringTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[10];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 10) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
14 changes: 14 additions & 0 deletions Examples/Java/Sources/VariableSubtitution.java
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ public VariableSubtitution read(JsonReader reader) throws IOException {
return null;
}
Builder builder = VariableSubtitution.builder();
boolean[] bits = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
Expand All @@ -287,11 +288,24 @@ public VariableSubtitution read(JsonReader reader) throws IOException {
case ("new_prop"):
builder.setNewProp(integerTypeAdapter.read(reader));
break;
case ("_bits"):
bits = new boolean[4];
int i = 0;
reader.beginArray();
while (reader.hasNext() && i < 4) {
bits[i] = reader.nextBoolean();
i++;
}
reader.endArray();
break;
default:
reader.skipValue();
}
}
reader.endObject();
if (bits != null) {
builder._bits = bits;
}
return builder.build();
}
}
Expand Down
20 changes: 19 additions & 1 deletion Sources/Core/JavaModelRenderer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ public struct JavaModelRenderer: JavaFileRenderer {
"return null;",
] },
"Builder builder = \(className).builder();",
"boolean[] bits = null;",
"reader.beginObject();",
JavaIR.whileBlock(condition: "reader.hasNext()") { [
"String name = reader.nextName();",
Expand All @@ -331,10 +332,27 @@ public struct JavaModelRenderer: JavaFileRenderer {
"builder.set" + Languages.java.snakeCaseToCapitalizedPropertyName(param) + "(" + typeAdapterVariableNameForType(unwrappedTypeFromSchema(param, schemaObj.schema)) + ".read(reader));",
]
)
}
} + [
JavaIR.Case(
variableEquals: "\"_bits\"",
body: [
"bits = new boolean[" + String(transitiveProperties.count) + "];",
"int i = 0;",
"reader.beginArray();",
JavaIR.whileBlock(condition: "reader.hasNext() && i < " + String(transitiveProperties.count)) { [
"bits[i] = reader.nextBoolean();",
"i++;",
] },
"reader.endArray();",
]
),
]
},
] },
"reader.endObject();",
JavaIR.ifBlock(condition: "bits != null") { [
"builder._bits = bits;",
] },
"return builder.build();",
] }

Expand Down

0 comments on commit 7b054be

Please sign in to comment.