From 1e9342bf54f0fc05534726e54a7bc4608d0328fc Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 13 Aug 2025 11:11:58 +0800 Subject: [PATCH 1/4] fix parent resource name, when adaptForParentSchema --- .../mgmt/transformer/ResourceTypeNormalization.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java index 7018b974bf6..0c54337c993 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java @@ -238,23 +238,29 @@ private static Optional getSchemaResourceType(ObjectSchema composi if (javaName.equals(ResourceTypeName.SUB_RESOURCE) || javaName.startsWith(ResourceTypeName.SUB_RESOURCE_AUTO_GENERATED)) { type = ResourceType.SUB_RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); } else if (javaName.equals(ResourceTypeName.PROXY_RESOURCE) || javaName.startsWith(ResourceTypeName.PROXY_RESOURCE_AUTO_GENERATED) || javaName.equals(ResourceTypeName.EXTENSION_RESOURCE)) { type = ResourceType.PROXY_RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); } else if (javaName.equals(ResourceTypeName.TRACKED_RESOURCE) || javaName.startsWith(ResourceTypeName.TRACKED_RESOURCE_AUTO_GENERATED)) { type = ResourceType.RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.TRACKED_RESOURCE); } else if (javaName.equals(ResourceTypeName.RESOURCE) || javaName.startsWith(ResourceTypeName.RESOURCE_AUTO_GENERATED) || javaName.equals(ResourceTypeName.AZURE_RESOURCE) || javaName.startsWith(ResourceTypeName.AZURE_RESOURCE_AUTO_GENERATED)) { if (hasProperties(compositeType, RESOURCE_EXTRA_FIELDS)) { type = ResourceType.RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.RESOURCE); } else if (hasProperties(compositeType, PROXY_RESOURCE_FIELDS)) { type = ResourceType.PROXY_RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); } else if (hasProperties(compositeType, SUB_RESOURCE_FIELDS)) { type = ResourceType.SUB_RESOURCE; + compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); } } From 3ca282e7eb9e05af4b6be16a94a9f102b23fdc65 Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 13 Aug 2025 11:45:20 +0800 Subject: [PATCH 2/4] move rename part to renameSchemaOnResourceType func --- .../ResourceTypeNormalization.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java index 0c54337c993..64b8dbf4eaa 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java @@ -63,8 +63,10 @@ public CodeModel process(CodeModel codeModel) { objectSchemas.forEach(compositeType -> { Optional parentType = getObjectParent(compositeType); if (parentType.isPresent()) { - getSchemaResourceType(parentType.get()) - .ifPresent(type -> adaptForParentSchema(compositeType, parentType.get(), type)); + getSchemaResourceType(parentType.get()).ifPresent(type -> { + renameSchemaOnResourceType(compositeType, type); + adaptForParentSchema(compositeType, parentType.get(), type); + }); if (FluentType.SYSTEM_DATA.getName().equals(Utils.getJavaName(parentType.get()))) { adaptAsSystemData(compositeType); @@ -238,35 +240,45 @@ private static Optional getSchemaResourceType(ObjectSchema composi if (javaName.equals(ResourceTypeName.SUB_RESOURCE) || javaName.startsWith(ResourceTypeName.SUB_RESOURCE_AUTO_GENERATED)) { type = ResourceType.SUB_RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); } else if (javaName.equals(ResourceTypeName.PROXY_RESOURCE) || javaName.startsWith(ResourceTypeName.PROXY_RESOURCE_AUTO_GENERATED) || javaName.equals(ResourceTypeName.EXTENSION_RESOURCE)) { type = ResourceType.PROXY_RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); } else if (javaName.equals(ResourceTypeName.TRACKED_RESOURCE) || javaName.startsWith(ResourceTypeName.TRACKED_RESOURCE_AUTO_GENERATED)) { type = ResourceType.RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.TRACKED_RESOURCE); } else if (javaName.equals(ResourceTypeName.RESOURCE) || javaName.startsWith(ResourceTypeName.RESOURCE_AUTO_GENERATED) || javaName.equals(ResourceTypeName.AZURE_RESOURCE) || javaName.startsWith(ResourceTypeName.AZURE_RESOURCE_AUTO_GENERATED)) { if (hasProperties(compositeType, RESOURCE_EXTRA_FIELDS)) { type = ResourceType.RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.RESOURCE); } else if (hasProperties(compositeType, PROXY_RESOURCE_FIELDS)) { type = ResourceType.PROXY_RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); } else if (hasProperties(compositeType, SUB_RESOURCE_FIELDS)) { type = ResourceType.SUB_RESOURCE; - compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); } } return Optional.ofNullable(type); } + private static void renameSchemaOnResourceType(ObjectSchema compositeType, ResourceType type) { + switch (type) { + case SUB_RESOURCE: + compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); + break; + + case PROXY_RESOURCE: + compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); + break; + + case RESOURCE: + compositeType.getLanguage().getJava().setName(ResourceTypeName.RESOURCE); + break; + } + } + private static void adaptForParentSchema(ObjectSchema compositeType, ObjectSchema parentType, ResourceType type) { switch (type) { case SUB_RESOURCE: { From 40e990c83ff79b5016e88ef967a9eddc46a45833 Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 13 Aug 2025 12:36:11 +0800 Subject: [PATCH 3/4] fix --- .../generator/mgmt/transformer/ResourceTypeNormalization.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java index 64b8dbf4eaa..53bfd4bea2c 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java @@ -64,7 +64,7 @@ public CodeModel process(CodeModel codeModel) { Optional parentType = getObjectParent(compositeType); if (parentType.isPresent()) { getSchemaResourceType(parentType.get()).ifPresent(type -> { - renameSchemaOnResourceType(compositeType, type); + renameSchemaOnResourceType(parentType.get(), type); adaptForParentSchema(compositeType, parentType.get(), type); }); From 7337f2b14cf165500f98ab2ad08c2ff2966f8705 Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 13 Aug 2025 15:46:35 +0800 Subject: [PATCH 4/4] code comments --- .../mgmt/transformer/ResourceTypeNormalization.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java index 53bfd4bea2c..86e227749da 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java @@ -233,6 +233,12 @@ private static void adaptAsSystemData(ObjectSchema compositeType) { } } + /** + * Check the object schema, determine its resource type. + * + * @param compositeType the object schema to check + * @return the resource type + */ private static Optional getSchemaResourceType(ObjectSchema compositeType) { ResourceType type = null; @@ -263,6 +269,12 @@ private static Optional getSchemaResourceType(ObjectSchema composi return Optional.ofNullable(type); } + /** + * Rename the schema based on the resource type. + * + * @param compositeType the object schema to rename + * @param type the resource type + */ private static void renameSchemaOnResourceType(ObjectSchema compositeType, ResourceType type) { switch (type) { case SUB_RESOURCE: