Skip to content

tsp, investigate the handling of duplicate property in subclass #3243

@weidongxu-microsoft

Description

@weidongxu-microsoft

source https://github.com/Azure/azure-rest-api-specs/blob/f90340347ba9ad02aeb78152a2e67adfc25561c6/specification/search/data-plane/Search/models-service.tsp#L3764-L3781

model SearchIndexerKnowledgeStoreTableProjectionSelector
  extends SearchIndexerKnowledgeStoreProjectionSelector {
  generatedKeyName?: string;
}

model SearchIndexerKnowledgeStoreProjectionSelector {
  generatedKeyName?: string;
}
    @Generated
    @Override
    public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
        jsonWriter.writeStartObject();
        jsonWriter.writeStringField("generatedKeyName", getGeneratedKeyName());
        jsonWriter.writeStringField("generatedKeyName", this.generatedKeyName);
        return jsonWriter.writeEndObject();
    }

    @Generated
    public static SearchIndexerKnowledgeStoreTableProjectionSelector fromJson(JsonReader jsonReader)
        throws IOException {
        return jsonReader.readObject(reader -> {
            String generatedKeyName = null;
            String generatedKeyName = null;
            while (reader.nextToken() != JsonToken.END_OBJECT) {
                String fieldName = reader.getFieldName();
                reader.nextToken();
                if ("generatedKeyName".equals(fieldName)) {
                    generatedKeyName = reader.getString();
                } else {
                    reader.skipChildren();
                }
            }
            SearchIndexerKnowledgeStoreTableProjectionSelector deserializedSearchIndexerKnowledgeStoreTableProjectionSelector
                = new SearchIndexerKnowledgeStoreTableProjectionSelector(generatedKeyName);
            deserializedSearchIndexerKnowledgeStoreTableProjectionSelector.setGeneratedKeyName(generatedKeyName);
            return deserializedSearchIndexerKnowledgeStoreTableProjectionSelector;
        });
    }

Unsure the problem was cased by the duplicated property + change of optionality.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions