Skip to content

Commit 2581996

Browse files
MikeyMCZMichal Materna
andauthored
[Text Translation] Switch to TypeSpec from Autorest (Azure#39024)
* [Text Translation] Switch to TypeSpec from Autorest using same version as other Text Translation SDKs * Latest changes * Pushing tsp-location file to make the build pass * Using the latest specs commit * Update tests * Update assets.json * Fix PR comment - switch to KeyCredential * Fix build --------- Co-authored-by: Michal Materna <[email protected]>
1 parent 070f7fb commit 2581996

40 files changed

+2571
-1608
lines changed

sdk/translation/azure-ai-translation-text/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "java",
44
"TagPrefix": "java/translation/azure-ai-translation-text",
5-
"Tag": "java/translation/azure-ai-translation-text_538e61707e"
5+
"Tag": "java/translation/azure-ai-translation-text_36b8c8be55"
66
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import com.azure.autorest.customization.ClassCustomization;
2+
import com.azure.autorest.customization.Customization;
3+
import com.azure.autorest.customization.LibraryCustomization;
4+
import com.azure.autorest.customization.PackageCustomization;
5+
import com.github.javaparser.ast.NodeList;
6+
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
7+
import com.github.javaparser.ast.type.ClassOrInterfaceType;
8+
import org.slf4j.Logger;
9+
10+
/**
11+
* This class contains the customization code to customize the TypeSpec generated code for Text Translation Client Builder.
12+
*/
13+
public class TextTranslationClientBuilderCustomization extends Customization {
14+
15+
@Override
16+
public void customize(LibraryCustomization customization, Logger logger) {
17+
18+
logger.info("Customizing the TextTranslationClientBuilder class");
19+
ClassCustomization classCustomizationForTextTranslationClientBuilder = customization.getClass("com.azure.ai.translation.text", "TextTranslationClientBuilder");
20+
21+
addKeyCredentialTrait(classCustomizationForTextTranslationClientBuilder);
22+
addTokenCredentialTrait(classCustomizationForTextTranslationClientBuilder);
23+
}
24+
25+
private void addKeyCredentialTrait(ClassCustomization classCustomization) {
26+
// add KeyCredentialTrait imports
27+
classCustomization.addImports("com.azure.core.client.traits.KeyCredentialTrait");
28+
29+
// add KeyCredentialTrait<> as implemented type
30+
classCustomization.customizeAst(compilationUnit -> {
31+
ClassOrInterfaceDeclaration jobRouterAdministrationClientBuilderClass = compilationUnit.getClassByName(classCustomization.getClassName()).get().asClassOrInterfaceDeclaration();
32+
NodeList<ClassOrInterfaceType> implementedTypes = jobRouterAdministrationClientBuilderClass.getImplementedTypes();
33+
boolean hasKeyCredentialTrait = implementedTypes.stream().filter(implementedType -> implementedType.getNameAsString().equals("KeyCredentialTrait")).findFirst().isPresent();
34+
if (!hasKeyCredentialTrait) {
35+
jobRouterAdministrationClientBuilderClass.addImplementedType(String.format("KeyCredentialTrait<%s>", classCustomization.getClassName()));
36+
}
37+
});
38+
}
39+
40+
private void addTokenCredentialTrait(ClassCustomization classCustomization) {
41+
// add TokenCredential imports
42+
classCustomization.addImports("com.azure.core.client.traits.TokenCredentialTrait");
43+
44+
// add TokenCredentialTrait<> as implemented type
45+
classCustomization.customizeAst(compilationUnit -> {
46+
ClassOrInterfaceDeclaration jobRouterAdministrationClientBuilderClass = compilationUnit.getClassByName(classCustomization.getClassName()).get().asClassOrInterfaceDeclaration();
47+
NodeList<ClassOrInterfaceType> implementedTypes = jobRouterAdministrationClientBuilderClass.getImplementedTypes();
48+
boolean hasTokenCredentialTrait = implementedTypes.stream().filter(implementedType -> implementedType.getNameAsString().equals("TokenCredentialTrait")).findFirst().isPresent();
49+
if (!hasTokenCredentialTrait) {
50+
jobRouterAdministrationClientBuilderClass.addImplementedType(String.format("TokenCredentialTrait<%s>", classCustomization.getClassName()));
51+
}
52+
});
53+
}
54+
}

0 commit comments

Comments
 (0)