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..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 @@ -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(parentType.get(), type); + adaptForParentSchema(compositeType, parentType.get(), type); + }); if (FluentType.SYSTEM_DATA.getName().equals(Utils.getJavaName(parentType.get()))) { adaptAsSystemData(compositeType); @@ -231,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; @@ -261,6 +269,28 @@ 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: + 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: {