Skip to content

Commit 457aa34

Browse files
authored
Simplify StreamSerializationModelTemplate (#2928)
* Simplify StreamSerializationModelTemplate * Put shared JsonSerializable code behind a feature flag * Fix override missing
1 parent fdc7347 commit 457aa34

File tree

82 files changed

+3405
-2513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3405
-2513
lines changed

Generate.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ $job = @(
8888
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-boolean.json --namespace=fixtures.bodyboolean --client-logger",
8989
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-boolean.quirks.json --namespace=fixtures.bodyboolean.quirks",
9090
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.bodycomplex --required-fields-as-ctor-args --client-logger --output-model-immutable --generate-tests --stream-style-serialization=false",
91-
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserialization --enable-sync-stack --client-logger",
92-
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserializationimmutableoutput --enable-sync-stack --output-model-immutable --client-logger",
93-
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserializationctorargs --enable-sync-stack --required-fields-as-ctor-args --client-logger",
91+
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserialization --enable-sync-stack --client-logger --share-jsonserializable-code",
92+
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserializationimmutableoutput --enable-sync-stack --output-model-immutable --client-logger --share-jsonserializable-code",
93+
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-complex.json --namespace=fixtures.streamstyleserializationctorargs --enable-sync-stack --required-fields-as-ctor-args --client-logger --share-jsonserializable-code",
9494
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-file.json --namespace=fixtures.bodyfile",
9595
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/body-string.json --namespace=fixtures.bodystring --generate-client-interfaces",
9696
"$VANILLA_ARGUMENTS --input-file=$SWAGGER_PATH/custom-baseUrl.json --namespace=fixtures.custombaseuri",

azure-dataplane-tests/src/main/java/com/azure/ai/formrecognizer/documentanalysis/implementation/models/DocumentModelBuildOperationDetails.java

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,25 @@
55
package com.azure.ai.formrecognizer.documentanalysis.implementation.models;
66

77
import com.azure.core.annotation.Fluent;
8+
import com.azure.core.util.CoreUtils;
89
import com.azure.json.JsonReader;
910
import com.azure.json.JsonToken;
1011
import com.azure.json.JsonWriter;
1112
import java.io.IOException;
1213
import java.time.OffsetDateTime;
14+
import java.time.format.DateTimeFormatter;
1315
import java.util.Map;
1416

1517
/**
1618
* Get Operation response object.
1719
*/
1820
@Fluent
1921
public final class DocumentModelBuildOperationDetails extends OperationDetails {
22+
/*
23+
* Type of operation.
24+
*/
25+
private String kind = "documentModelBuild";
26+
2027
/*
2128
* Operation result upon success.
2229
*/
@@ -26,7 +33,16 @@ public final class DocumentModelBuildOperationDetails extends OperationDetails {
2633
* Creates an instance of DocumentModelBuildOperationDetails class.
2734
*/
2835
public DocumentModelBuildOperationDetails() {
29-
this.kind = "documentModelBuild";
36+
}
37+
38+
/**
39+
* Get the kind property: Type of operation.
40+
*
41+
* @return the kind value.
42+
*/
43+
@Override
44+
public String getKind() {
45+
return this.kind;
3046
}
3147

3248
/**
@@ -136,7 +152,20 @@ public DocumentModelBuildOperationDetails setError(Error error) {
136152
@Override
137153
public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
138154
jsonWriter.writeStartObject();
139-
toJsonShared(jsonWriter);
155+
jsonWriter.writeStringField("operationId", getOperationId());
156+
jsonWriter.writeStringField("status", getStatus() == null ? null : getStatus().toString());
157+
jsonWriter.writeStringField("createdDateTime",
158+
getCreatedDateTime() == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getCreatedDateTime()));
159+
jsonWriter.writeStringField("lastUpdatedDateTime",
160+
getLastUpdatedDateTime() == null
161+
? null
162+
: DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getLastUpdatedDateTime()));
163+
jsonWriter.writeStringField("resourceLocation", getResourceLocation());
164+
jsonWriter.writeNumberField("percentCompleted", getPercentCompleted());
165+
jsonWriter.writeStringField("apiVersion", getApiVersion());
166+
jsonWriter.writeMapField("tags", getTags(), (writer, element) -> writer.writeString(element));
167+
jsonWriter.writeJsonField("error", getError());
168+
jsonWriter.writeStringField("kind", this.kind);
140169
jsonWriter.writeJsonField("result", this.result);
141170
return jsonWriter.writeEndObject();
142171
}
@@ -158,9 +187,31 @@ public static DocumentModelBuildOperationDetails fromJson(JsonReader jsonReader)
158187
String fieldName = reader.getFieldName();
159188
reader.nextToken();
160189

161-
if (OperationDetails.fromJsonShared(reader, fieldName,
162-
deserializedDocumentModelBuildOperationDetails)) {
163-
continue;
190+
if ("operationId".equals(fieldName)) {
191+
deserializedDocumentModelBuildOperationDetails.setOperationId(reader.getString());
192+
} else if ("status".equals(fieldName)) {
193+
deserializedDocumentModelBuildOperationDetails
194+
.setStatus(OperationStatus.fromString(reader.getString()));
195+
} else if ("createdDateTime".equals(fieldName)) {
196+
deserializedDocumentModelBuildOperationDetails.setCreatedDateTime(reader
197+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
198+
} else if ("lastUpdatedDateTime".equals(fieldName)) {
199+
deserializedDocumentModelBuildOperationDetails.setLastUpdatedDateTime(reader
200+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
201+
} else if ("resourceLocation".equals(fieldName)) {
202+
deserializedDocumentModelBuildOperationDetails.setResourceLocation(reader.getString());
203+
} else if ("percentCompleted".equals(fieldName)) {
204+
deserializedDocumentModelBuildOperationDetails
205+
.setPercentCompleted(reader.getNullable(JsonReader::getInt));
206+
} else if ("apiVersion".equals(fieldName)) {
207+
deserializedDocumentModelBuildOperationDetails.setApiVersion(reader.getString());
208+
} else if ("tags".equals(fieldName)) {
209+
Map<String, String> tags = reader.readMap(reader1 -> reader1.getString());
210+
deserializedDocumentModelBuildOperationDetails.setTags(tags);
211+
} else if ("error".equals(fieldName)) {
212+
deserializedDocumentModelBuildOperationDetails.setError(Error.fromJson(reader));
213+
} else if ("kind".equals(fieldName)) {
214+
deserializedDocumentModelBuildOperationDetails.kind = reader.getString();
164215
} else if ("result".equals(fieldName)) {
165216
deserializedDocumentModelBuildOperationDetails.result = DocumentModelDetails.fromJson(reader);
166217
} else {

azure-dataplane-tests/src/main/java/com/azure/ai/formrecognizer/documentanalysis/implementation/models/DocumentModelComposeOperationDetails.java

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,25 @@
55
package com.azure.ai.formrecognizer.documentanalysis.implementation.models;
66

77
import com.azure.core.annotation.Fluent;
8+
import com.azure.core.util.CoreUtils;
89
import com.azure.json.JsonReader;
910
import com.azure.json.JsonToken;
1011
import com.azure.json.JsonWriter;
1112
import java.io.IOException;
1213
import java.time.OffsetDateTime;
14+
import java.time.format.DateTimeFormatter;
1315
import java.util.Map;
1416

1517
/**
1618
* Get Operation response object.
1719
*/
1820
@Fluent
1921
public final class DocumentModelComposeOperationDetails extends OperationDetails {
22+
/*
23+
* Type of operation.
24+
*/
25+
private String kind = "documentModelCompose";
26+
2027
/*
2128
* Operation result upon success.
2229
*/
@@ -26,7 +33,16 @@ public final class DocumentModelComposeOperationDetails extends OperationDetails
2633
* Creates an instance of DocumentModelComposeOperationDetails class.
2734
*/
2835
public DocumentModelComposeOperationDetails() {
29-
this.kind = "documentModelCompose";
36+
}
37+
38+
/**
39+
* Get the kind property: Type of operation.
40+
*
41+
* @return the kind value.
42+
*/
43+
@Override
44+
public String getKind() {
45+
return this.kind;
3046
}
3147

3248
/**
@@ -136,7 +152,20 @@ public DocumentModelComposeOperationDetails setError(Error error) {
136152
@Override
137153
public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
138154
jsonWriter.writeStartObject();
139-
toJsonShared(jsonWriter);
155+
jsonWriter.writeStringField("operationId", getOperationId());
156+
jsonWriter.writeStringField("status", getStatus() == null ? null : getStatus().toString());
157+
jsonWriter.writeStringField("createdDateTime",
158+
getCreatedDateTime() == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getCreatedDateTime()));
159+
jsonWriter.writeStringField("lastUpdatedDateTime",
160+
getLastUpdatedDateTime() == null
161+
? null
162+
: DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getLastUpdatedDateTime()));
163+
jsonWriter.writeStringField("resourceLocation", getResourceLocation());
164+
jsonWriter.writeNumberField("percentCompleted", getPercentCompleted());
165+
jsonWriter.writeStringField("apiVersion", getApiVersion());
166+
jsonWriter.writeMapField("tags", getTags(), (writer, element) -> writer.writeString(element));
167+
jsonWriter.writeJsonField("error", getError());
168+
jsonWriter.writeStringField("kind", this.kind);
140169
jsonWriter.writeJsonField("result", this.result);
141170
return jsonWriter.writeEndObject();
142171
}
@@ -158,9 +187,31 @@ public static DocumentModelComposeOperationDetails fromJson(JsonReader jsonReade
158187
String fieldName = reader.getFieldName();
159188
reader.nextToken();
160189

161-
if (OperationDetails.fromJsonShared(reader, fieldName,
162-
deserializedDocumentModelComposeOperationDetails)) {
163-
continue;
190+
if ("operationId".equals(fieldName)) {
191+
deserializedDocumentModelComposeOperationDetails.setOperationId(reader.getString());
192+
} else if ("status".equals(fieldName)) {
193+
deserializedDocumentModelComposeOperationDetails
194+
.setStatus(OperationStatus.fromString(reader.getString()));
195+
} else if ("createdDateTime".equals(fieldName)) {
196+
deserializedDocumentModelComposeOperationDetails.setCreatedDateTime(reader
197+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
198+
} else if ("lastUpdatedDateTime".equals(fieldName)) {
199+
deserializedDocumentModelComposeOperationDetails.setLastUpdatedDateTime(reader
200+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
201+
} else if ("resourceLocation".equals(fieldName)) {
202+
deserializedDocumentModelComposeOperationDetails.setResourceLocation(reader.getString());
203+
} else if ("percentCompleted".equals(fieldName)) {
204+
deserializedDocumentModelComposeOperationDetails
205+
.setPercentCompleted(reader.getNullable(JsonReader::getInt));
206+
} else if ("apiVersion".equals(fieldName)) {
207+
deserializedDocumentModelComposeOperationDetails.setApiVersion(reader.getString());
208+
} else if ("tags".equals(fieldName)) {
209+
Map<String, String> tags = reader.readMap(reader1 -> reader1.getString());
210+
deserializedDocumentModelComposeOperationDetails.setTags(tags);
211+
} else if ("error".equals(fieldName)) {
212+
deserializedDocumentModelComposeOperationDetails.setError(Error.fromJson(reader));
213+
} else if ("kind".equals(fieldName)) {
214+
deserializedDocumentModelComposeOperationDetails.kind = reader.getString();
164215
} else if ("result".equals(fieldName)) {
165216
deserializedDocumentModelComposeOperationDetails.result = DocumentModelDetails.fromJson(reader);
166217
} else {

azure-dataplane-tests/src/main/java/com/azure/ai/formrecognizer/documentanalysis/implementation/models/DocumentModelCopyToOperationDetails.java

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,25 @@
55
package com.azure.ai.formrecognizer.documentanalysis.implementation.models;
66

77
import com.azure.core.annotation.Fluent;
8+
import com.azure.core.util.CoreUtils;
89
import com.azure.json.JsonReader;
910
import com.azure.json.JsonToken;
1011
import com.azure.json.JsonWriter;
1112
import java.io.IOException;
1213
import java.time.OffsetDateTime;
14+
import java.time.format.DateTimeFormatter;
1315
import java.util.Map;
1416

1517
/**
1618
* Get Operation response object.
1719
*/
1820
@Fluent
1921
public final class DocumentModelCopyToOperationDetails extends OperationDetails {
22+
/*
23+
* Type of operation.
24+
*/
25+
private String kind = "documentModelCopyTo";
26+
2027
/*
2128
* Operation result upon success.
2229
*/
@@ -26,7 +33,16 @@ public final class DocumentModelCopyToOperationDetails extends OperationDetails
2633
* Creates an instance of DocumentModelCopyToOperationDetails class.
2734
*/
2835
public DocumentModelCopyToOperationDetails() {
29-
this.kind = "documentModelCopyTo";
36+
}
37+
38+
/**
39+
* Get the kind property: Type of operation.
40+
*
41+
* @return the kind value.
42+
*/
43+
@Override
44+
public String getKind() {
45+
return this.kind;
3046
}
3147

3248
/**
@@ -136,7 +152,20 @@ public DocumentModelCopyToOperationDetails setError(Error error) {
136152
@Override
137153
public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
138154
jsonWriter.writeStartObject();
139-
toJsonShared(jsonWriter);
155+
jsonWriter.writeStringField("operationId", getOperationId());
156+
jsonWriter.writeStringField("status", getStatus() == null ? null : getStatus().toString());
157+
jsonWriter.writeStringField("createdDateTime",
158+
getCreatedDateTime() == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getCreatedDateTime()));
159+
jsonWriter.writeStringField("lastUpdatedDateTime",
160+
getLastUpdatedDateTime() == null
161+
? null
162+
: DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(getLastUpdatedDateTime()));
163+
jsonWriter.writeStringField("resourceLocation", getResourceLocation());
164+
jsonWriter.writeNumberField("percentCompleted", getPercentCompleted());
165+
jsonWriter.writeStringField("apiVersion", getApiVersion());
166+
jsonWriter.writeMapField("tags", getTags(), (writer, element) -> writer.writeString(element));
167+
jsonWriter.writeJsonField("error", getError());
168+
jsonWriter.writeStringField("kind", this.kind);
140169
jsonWriter.writeJsonField("result", this.result);
141170
return jsonWriter.writeEndObject();
142171
}
@@ -158,9 +187,31 @@ public static DocumentModelCopyToOperationDetails fromJson(JsonReader jsonReader
158187
String fieldName = reader.getFieldName();
159188
reader.nextToken();
160189

161-
if (OperationDetails.fromJsonShared(reader, fieldName,
162-
deserializedDocumentModelCopyToOperationDetails)) {
163-
continue;
190+
if ("operationId".equals(fieldName)) {
191+
deserializedDocumentModelCopyToOperationDetails.setOperationId(reader.getString());
192+
} else if ("status".equals(fieldName)) {
193+
deserializedDocumentModelCopyToOperationDetails
194+
.setStatus(OperationStatus.fromString(reader.getString()));
195+
} else if ("createdDateTime".equals(fieldName)) {
196+
deserializedDocumentModelCopyToOperationDetails.setCreatedDateTime(reader
197+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
198+
} else if ("lastUpdatedDateTime".equals(fieldName)) {
199+
deserializedDocumentModelCopyToOperationDetails.setLastUpdatedDateTime(reader
200+
.getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())));
201+
} else if ("resourceLocation".equals(fieldName)) {
202+
deserializedDocumentModelCopyToOperationDetails.setResourceLocation(reader.getString());
203+
} else if ("percentCompleted".equals(fieldName)) {
204+
deserializedDocumentModelCopyToOperationDetails
205+
.setPercentCompleted(reader.getNullable(JsonReader::getInt));
206+
} else if ("apiVersion".equals(fieldName)) {
207+
deserializedDocumentModelCopyToOperationDetails.setApiVersion(reader.getString());
208+
} else if ("tags".equals(fieldName)) {
209+
Map<String, String> tags = reader.readMap(reader1 -> reader1.getString());
210+
deserializedDocumentModelCopyToOperationDetails.setTags(tags);
211+
} else if ("error".equals(fieldName)) {
212+
deserializedDocumentModelCopyToOperationDetails.setError(Error.fromJson(reader));
213+
} else if ("kind".equals(fieldName)) {
214+
deserializedDocumentModelCopyToOperationDetails.kind = reader.getString();
164215
} else if ("result".equals(fieldName)) {
165216
deserializedDocumentModelCopyToOperationDetails.result = DocumentModelDetails.fromJson(reader);
166217
} else {

0 commit comments

Comments
 (0)