diff --git a/.chronus/changes/UseLinkedVersionsOfMapAndSet-2026-1-19-23-31-45.md b/.chronus/changes/UseLinkedVersionsOfMapAndSet-2026-1-19-23-31-45.md new file mode 100644 index 00000000000..1aad3d6b0c7 --- /dev/null +++ b/.chronus/changes/UseLinkedVersionsOfMapAndSet-2026-1-19-23-31-45.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@typespec/http-client-java" +--- + +Use `LinkedHashMap` and `LinkedHashSet` to ensure consistent iterating order. diff --git a/packages/http-client-java/CHANGELOG.md b/packages/http-client-java/CHANGELOG.md index 853769c1887..fa215f1924e 100644 --- a/packages/http-client-java/CHANGELOG.md +++ b/packages/http-client-java/CHANGELOG.md @@ -1,7 +1,5 @@ # Changelog - @typespec/http-client-java - - ## 0.7.0 ### Features @@ -22,4 +20,5 @@ - [#9677](https://github.com/microsoft/typespec/pull/9677) Fix incorrect variable name of continuationToken - [#9527](https://github.com/microsoft/typespec/pull/9527) Missing example value for BinaryData type in mock test. - [#9639](https://github.com/microsoft/typespec/pull/9639) Fix mock data for BinaryData. - +- [#9751](https://github.com/microsoft/typespec/pull/9751) Use `LinkedHashMap` and `LinkedHashSet` to ensure consistent + iterating order. diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/Javagen.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/Javagen.java index b5294b77207..e9dc7ec87fd 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/Javagen.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/Javagen.java @@ -38,7 +38,6 @@ import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import com.microsoft.typespec.http.client.generator.core.util.SchemaUtil; import io.clientcore.core.utils.CoreUtils; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -166,7 +165,7 @@ protected JavaPackage writeToTemplates(CodeModel codeModel, Client client, JavaS && client.getSyncClients().stream().anyMatch(c -> c.getClientBuilder() != null)) { List serviceClients = client.getServiceClients(); if (CoreUtils.isNullOrEmpty(serviceClients)) { - serviceClients = Collections.singletonList(client.getServiceClient()); + serviceClients = List.of(client.getServiceClient()); } TestContext testContext = new TestContext<>(serviceClients, client.getSyncClients()); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Client.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Client.java index a47b8e99c4e..3fd389a7df4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Client.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Client.java @@ -4,7 +4,6 @@ package com.microsoft.typespec.http.client.generator.core.extension.model.codemodel; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -18,7 +17,7 @@ public class Client extends Metadata { private List apiVersions = new ArrayList<>(); private ServiceVersion serviceVersion; private Client parent; - private List subClients = Collections.emptyList(); + private List subClients = List.of(); private boolean buildMethodPublic = true; private boolean parentAccessorPublic = false; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/CodeModelCustomConstructor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/CodeModelCustomConstructor.java index c28a07fe874..c304bca939e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/CodeModelCustomConstructor.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/CodeModelCustomConstructor.java @@ -5,7 +5,7 @@ import com.microsoft.typespec.http.client.generator.core.extension.model.extensionmodel.XmsExamples; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.yaml.snakeyaml.LoaderOptions; @@ -381,7 +381,7 @@ public Object construct(Node node) { protected Object constructJavaBean2ndStep(MappingNode node, Object object) { if (node.getType().equals(XmsExamples.class)) { // deserialize to Map, while Object would be LinkedHashMap - Map examples = new HashMap<>(); + Map examples = new LinkedHashMap<>(); for (NodeTuple tuple : node.getValue()) { examples.put(((ScalarNode) tuple.getKeyNode()).getValue(), constructObject(tuple.getValueNode())); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/OperationGroup.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/OperationGroup.java index c16370d6fb3..c140859d007 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/OperationGroup.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/OperationGroup.java @@ -11,7 +11,7 @@ */ public class OperationGroup extends Metadata { private String $key; - private List operations = new ArrayList(); + private List operations = new ArrayList<>(); private Client codeModel; /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Scheme.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Scheme.java index fb81ee2bb2d..6e1adf3723d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Scheme.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/Scheme.java @@ -4,7 +4,7 @@ package com.microsoft.typespec.http.client.generator.core.extension.model.codemodel; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -14,7 +14,7 @@ public class Scheme { private Scheme.SecuritySchemeType type; // OAuth2 - private Set scopes = new HashSet<>(); + private Set scopes = new LinkedHashSet<>(); private List flows = new ArrayList<>(); // Key private String name; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/extensionmodel/NextLinkVerb.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/extensionmodel/NextLinkVerb.java index 6fd3ddcb89d..f66951da02b 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/extensionmodel/NextLinkVerb.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/extensionmodel/NextLinkVerb.java @@ -3,9 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.extension.model.extensionmodel; -import java.util.HashMap; -import java.util.Map; - /** * Represents the HTTP verb for the nextLink operation in pageable settings. */ @@ -21,13 +18,6 @@ public enum NextLinkVerb { POST("POST"); private final String value; - private static final Map CONSTANTS = new HashMap<>(); - - static { - for (NextLinkVerb v : values()) { - CONSTANTS.put(v.value, v); - } - } NextLinkVerb(String value) { this.value = value; @@ -55,11 +45,11 @@ public String value() { * @throws IllegalArgumentException If the value is not a valid HTTP verb. */ public static NextLinkVerb fromValue(String value) { - NextLinkVerb constant = CONSTANTS.get(value); - if (constant == null) { - throw new IllegalArgumentException(value); - } else { - return constant; + if (GET.value.equals(value)) { + return GET; + } else if (POST.value.equals(value)) { + return POST; } + throw new IllegalArgumentException(value); } } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/JavaSettings.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/JavaSettings.java index d63e57e1cd4..372d154f8cc 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/JavaSettings.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/JavaSettings.java @@ -16,7 +16,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -34,7 +34,7 @@ public class JavaSettings { private static JavaSettings instance; private static NewPlugin host; private static String header; - private static final Map SIMPLE_JAVA_SETTINGS = new HashMap<>(); + private static final Map SIMPLE_JAVA_SETTINGS = new LinkedHashMap<>(); private static Logger logger; private final boolean useKeyCredential; private final String flavor; @@ -70,7 +70,7 @@ static void setHeader(String value) { } } - static void setHost(NewPlugin host) { + public static void setHost(NewPlugin host) { JavaSettings.host = host; logger = new PluginLogger(host, JavaSettings.class); } @@ -122,7 +122,7 @@ public static JavaSettings getInstance() { private static Map parseStatusCodeMapping(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - Map mapping = new HashMap<>(); + Map mapping = new LinkedHashMap<>(); while (reader.nextToken() != JsonToken.END_OBJECT) { int key = Integer.parseInt(reader.getFieldName()); reader.nextToken(); @@ -649,7 +649,7 @@ public static class ModelerSettings { * @param settings The settings that are used by the modeler. */ public ModelerSettings(Map settings) { - this.settings = settings == null ? Collections.emptyMap() : settings; + this.settings = settings == null ? Map.of() : settings; } /** @@ -1523,7 +1523,7 @@ public boolean isUseObjectForUnknown() { return useObjectForUnknown; } - private final Map renameModel = new HashMap<>(); + private final Map renameModel = new LinkedHashMap<>(); public Map getJavaNamesForRenameModel() { return renameModel; @@ -1602,7 +1602,7 @@ private static void loadStringOrArraySettingAsArray(String settingName, Consumer } else { // Single values will be returned as the string representation. logger.debug("Option, string, {} : {}", settingName, jsonString); - action.accept(Collections.singletonList(jsonString)); + action.accept(List.of(jsonString)); } return null; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/NewPlugin.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/NewPlugin.java index 6570eaab9fc..0fefc48e14e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/NewPlugin.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/NewPlugin.java @@ -15,7 +15,6 @@ import java.io.StringWriter; import java.io.UncheckedIOException; import java.util.Arrays; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -192,7 +191,7 @@ public void message(MessageChannel channel, String text, Throwable error, List enumTypes = new ArrayList<>(); - Set enumNames = new HashSet<>(); + Set enumNames = new LinkedHashSet<>(); for (ChoiceSchema choiceSchema : codeModel.getSchemas().getChoices()) { IType iType = Mappers.getChoiceMapper().map(choiceSchema); if (iType != ClassType.STRING) { @@ -117,7 +115,7 @@ public Client map(CodeModel codeModel) { List exceptions = Stream .concat( codeModel.getClients() == null - ? Stream.empty() + ? Stream.empty() : codeModel.getClients().stream().flatMap(c -> c.getOperationGroups().stream()), codeModel.getOperationGroups().stream()) .flatMap(og -> og.getOperations().stream()) @@ -211,7 +209,7 @@ public Client map(CodeModel codeModel) { // package info // client - Map packageInfos = new HashMap<>(); + Map packageInfos = new LinkedHashMap<>(); if (settings.isGenerateClientInterfaces() || !settings.isGenerateClientAsImpl() || settings.getImplementationSubpackage() == null @@ -328,10 +326,9 @@ public Client map(CodeModel codeModel) { ? syncClient.getClassName() : asyncClient.getClassName().replace("AsyncClient", "Client")); String clientBuilderName = clientName + builderSuffix; - ClientBuilder clientBuilder - = new ClientBuilder(builderPackage, clientBuilderName, serviceClient, - (syncClient == null) ? Collections.emptyList() : Collections.singletonList(syncClient), - Collections.singletonList(asyncClient), serviceClient.getCrossLanguageDefinitionId()); + ClientBuilder clientBuilder = new ClientBuilder(builderPackage, clientBuilderName, + serviceClient, (syncClient == null) ? List.of() : List.of(syncClient), List.of(asyncClient), + serviceClient.getCrossLanguageDefinitionId()); addBuilderTraits(clientBuilder, serviceClient); clientBuilders.add(clientBuilder); @@ -381,7 +378,7 @@ public Client map(CodeModel codeModel) { private void addConvenienceExamples(Client.Builder builder, List syncClients) { // convenience examples List convenienceExamples = new ArrayList<>(); - Set convenienceExampleNameSet = new HashSet<>(); + Set convenienceExampleNameSet = new LinkedHashSet<>(); BiConsumer handleConvenienceExample = (c, convenienceMethod) -> { ClientBuilder clientBuilder = c.getClientBuilder(); @@ -419,7 +416,7 @@ private void addConvenienceExamples(Client.Builder builder, List syncClients) { List protocolExamples = new ArrayList<>(); - Set protocolExampleNameSet = new HashSet<>(); + Set protocolExampleNameSet = new LinkedHashSet<>(); BiConsumer handleExample = (c, m) -> { if (m.getMethodVisibility() == JavaVisibility.Public @@ -445,7 +442,7 @@ private void addProtocolExamples(Client.Builder builder, List s // protocol examples, exclude those that have convenience methods syncClients.stream().filter(c -> c.getServiceClient() != null).forEach(c -> { - Set convenienceProxyMethodNames = new HashSet<>(); + Set convenienceProxyMethodNames = new LinkedHashSet<>(); if (c.getConvenienceMethods() != null) { convenienceProxyMethodNames.addAll(c.getConvenienceMethods() .stream() @@ -459,7 +456,7 @@ private void addProtocolExamples(Client.Builder builder, List s .forEach(m -> handleExample.accept(c, m)); }); syncClients.stream().filter(c -> c.getMethodGroupClient() != null).forEach(c -> { - Set convenienceProxyMethodNames = new HashSet<>(); + Set convenienceProxyMethodNames = new LinkedHashSet<>(); if (c.getConvenienceMethods() != null) { convenienceProxyMethodNames.addAll(c.getConvenienceMethods() .stream() @@ -484,7 +481,7 @@ private void addProtocolExamples(Client.Builder builder, List s protected Map processClients(List clients, CodeModel codeModel) { - return Collections.emptyMap(); + return Map.of(); } private void addBuilderTraits(ClientBuilder clientBuilder, ServiceClient serviceClient) { @@ -564,9 +561,9 @@ public ObjectSchema parseHeader(Operation operation, JavaSettings settings) { String name = CodeNamer.getPlural(operation.getOperationGroup().getLanguage().getJava().getName()) + CodeNamer.toPascalCase(operation.getLanguage().getJava().getName()) + "Headers"; - Map headerMap = new HashMap<>(); - Map headerClientNameMap = new HashMap<>(); - Map headerExtensions = new HashMap<>(); + Map headerMap = new LinkedHashMap<>(); + Map headerClientNameMap = new LinkedHashMap<>(); + Map headerExtensions = new LinkedHashMap<>(); for (Response response : operation.getResponses()) { if (response.getProtocol().getHttp().getHeaders() != null) { for (Header header : response.getProtocol().getHttp().getHeaders()) { @@ -585,7 +582,7 @@ public ObjectSchema parseHeader(Operation operation, JavaSettings settings) { headerSchema.getLanguage().getJava().setName(name); headerSchema.setProperties(new ArrayList<>()); headerSchema.setStronglyTypedHeader(true); - headerSchema.setUsage(new HashSet<>(Collections.singletonList(SchemaContext.OUTPUT))); + headerSchema.setUsage(new LinkedHashSet<>(List.of(SchemaContext.OUTPUT))); // TODO (weidxu): at present we do not generate convenience API with Header model // if (operation.getConvenienceApi() != null) { @@ -697,7 +694,7 @@ private static ModuleInfo getModuleInfo(List modelsPackages, Collection< protected List getModelsPackages(List clientModels, List enumTypes, List responseModels) { - List ret = Collections.emptyList(); + List ret = List.of(); JavaSettings settings = JavaSettings.getInstance(); boolean hasModels = !settings.isDataPlaneClient() // not DPG diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMethodParameterProcessor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMethodParameterProcessor.java index cb7524bc6ee..f200492b990 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMethodParameterProcessor.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMethodParameterProcessor.java @@ -14,7 +14,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ProxyMethodParameter; import com.microsoft.typespec.http.client.generator.core.util.MethodUtil; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -28,7 +28,7 @@ static ClientMethodParametersDetails process(Request request, boolean mapFluxByt final List codeModelParameters = getCodeModelParameters(request, isProtocolMethod); final List parametersTuples = new ArrayList<>(); final List requiredNullableParameterExpressions = new ArrayList<>(); - final Map validateParameterExpressions = new HashMap<>(); + final Map validateParameterExpressions = new LinkedHashMap<>(); final boolean isJsonPatch = MethodUtil.isContentTypeInRequest(request, "application/json-patch+json"); final ParametersTransformationProcessor transformationProcessor diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/CollectionUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/CollectionUtil.java index 2c41435446c..039ddd5257c 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/CollectionUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/CollectionUtil.java @@ -4,7 +4,7 @@ package com.microsoft.typespec.http.client.generator.core.mapper; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -71,7 +71,7 @@ public static Map> toImmutableMapOfList(Map> map) { // 'map', so this reference equality check save us from creating a new map (below) with list values copied. return map; } - final Map> m = new HashMap<>(map.size()); + final Map> m = new LinkedHashMap<>(map.size()); for (Map.Entry> e : map.entrySet()) { m.put(e.getKey(), toImmutableList(e.getValue())); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ExceptionSettingUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ExceptionSettingUtil.java index 070970a967f..9e09e94bb00 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ExceptionSettingUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ExceptionSettingUtil.java @@ -6,7 +6,7 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClassType; import io.clientcore.core.utils.CoreUtils; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -36,7 +36,7 @@ static ClassType getDefaultHttpExceptionType(JavaSettings settings) { * @return a map of HTTP status codes to exception types. */ static Map getHttpStatusToExceptionTypeMapping(JavaSettings settings) { - final Map exceptionMapping = new HashMap<>(); + final Map exceptionMapping = new LinkedHashMap<>(); if (settings.isUseDefaultHttpStatusCodeToExceptionTypeMapping()) { // add default mapping, this may get overwritten if custom mapping is provided. exceptionMapping.put(401, ClassType.CLIENT_AUTHENTICATION_EXCEPTION); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/LiveTestsMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/LiveTestsMapper.java index a2b5806a815..5f14e6a3111 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/LiveTestsMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/LiveTestsMapper.java @@ -14,7 +14,7 @@ import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import com.microsoft.typespec.http.client.generator.core.util.XmsExampleWrapper; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -47,7 +47,7 @@ public List map(TestModel testModel) { .filter(scenarioStep -> scenarioStep.getType() == TestScenarioStepType.REST_CALL && scenarioStep.getExampleFile() != null) .map((Function) scenarioStep -> { - Map example = new HashMap<>(); + Map example = new LinkedHashMap<>(); example.put("parameters", scenarioStep.getRequestParameters()); XmsExampleWrapper exampleWrapper = new XmsExampleWrapper(example, scenarioStep.getOperationId(), scenarioStep.getExampleName()); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/MethodGroupMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/MethodGroupMapper.java index afb280fea33..4e2903d68cd 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/MethodGroupMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/MethodGroupMapper.java @@ -21,7 +21,6 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -173,7 +172,7 @@ private MethodGroupClient createMethodGroupClient(OperationGroup methodGroup, } protected List supportedInterfaces(OperationGroup operationGroup, List clientMethods) { - return Collections.emptyList(); + return List.of(); } protected String getServiceClientName(Client client) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ModelMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ModelMapper.java index 2ac19e75ce0..84a672e0ddd 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ModelMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ModelMapper.java @@ -25,8 +25,7 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Set; @@ -62,7 +61,7 @@ public ClientModel map(ObjectSchema compositeType) { if (settings.isAzureV1() && !settings.isDataPlaneClient()) { return result; } else { - usages = new HashSet<>(usages); + usages = new LinkedHashSet<>(usages); usages.add(ImplementationDetails.Usage.EXTERNAL); } } @@ -86,11 +85,11 @@ public ClientModel map(ObjectSchema compositeType) { = compositeType.getDiscriminator() != null || compositeType.getDiscriminatorValue() != null; builder.polymorphic(isPolymorphic); - HashSet modelImports = new HashSet<>(); + Set modelImports = new LinkedHashSet<>(); String parentModelName = null; boolean hasAdditionalProperties = false; - List parentsNeedFlatten = Collections.emptyList(); + List parentsNeedFlatten = List.of(); if (compositeType.getParents() != null && compositeType.getParents().getImmediate() != null) { hasAdditionalProperties = compositeType.getParents().getImmediate().stream().anyMatch(s -> s instanceof DictionarySchema); @@ -552,7 +551,7 @@ private List collectPropertiesFromFlattenedModel(O propertyNames.add(PROPERTY_NAME_ADDITIONAL_PROPERTIES); } - Set referencePropertyNames = new HashSet<>(); + Set referencePropertyNames = new LinkedHashSet<>(); // properties from the target model for (ClientModelProperty property1 : targetModel.getProperties()) { if (!property1.getClientFlatten() && !property1.isAdditionalProperties()) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PagingMetadata.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PagingMetadata.java index 198ded4072c..c843858b03a 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PagingMetadata.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PagingMetadata.java @@ -23,7 +23,6 @@ import com.microsoft.typespec.http.client.generator.core.util.SchemaUtil; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.stream.Stream; @@ -87,7 +86,7 @@ static PagingMetadata create(Operation operation, ProxyMethod proxyMethod, if (nextOperation != null && nextOperation != operation) { nextMethods = Mappers.getClientMethodMapper().map(nextOperation); } else { - nextMethods = Collections.emptyList(); + nextMethods = List.of(); } final MethodPageDetails.ContinuationToken continuationToken @@ -186,8 +185,7 @@ private static List getPageableItem(XmsPageable xmsPageabl return result; } else { // m4 - return Collections - .singletonList(ClientModelUtil.getModelPropertySegment(responseType, xmsPageable.getItemName())); + return List.of(ClientModelUtil.getModelPropertySegment(responseType, xmsPageable.getItemName())); } } @@ -212,8 +210,7 @@ private static List getPageableNextLink(XmsPageable xmsPag return result; } else { // m4 - return Collections - .singletonList(ClientModelUtil.getModelPropertySegment(responseType, xmsPageable.getNextLinkName())); + return List.of(ClientModelUtil.getModelPropertySegment(responseType, xmsPageable.getNextLinkName())); } } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PomMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PomMapper.java index 2d4a37f1e36..a0ea8950328 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PomMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PomMapper.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Pom; import com.microsoft.typespec.http.client.generator.core.model.projectmodel.Project; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -40,7 +40,7 @@ private Pom createAzurePom(Project project) { pom.setServiceName(project.getServiceName()); pom.setServiceDescription(project.getServiceDescriptionForPom()); - Set addedDependencyPrefixes = new HashSet<>(); + Set addedDependencyPrefixes = new LinkedHashSet<>(); List dependencyIdentifiers = new ArrayList<>(); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.AZURE_CORE, false); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, @@ -80,7 +80,7 @@ private Pom createGenericPom(Project project) { pom.setServiceName(project.getServiceName()); pom.setServiceDescription(project.getServiceDescriptionForPom()); - Set addedDependencyPrefixes = new HashSet<>(); + Set addedDependencyPrefixes = new LinkedHashSet<>(); List dependencyIdentifiers = new ArrayList<>(); // for generic pom, stream style is always true addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.CLIENTCORE, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodMapper.java index 980bc3fc3a4..b926a6f958f 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodMapper.java @@ -23,7 +23,6 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -210,7 +209,7 @@ protected void buildUnexpectedResponseExceptionFields(ProxyMethod.Builder builde expectedStatusCodes.forEach(mergedExceptionTypeMapping::remove); // Convert the exception type mapping into what code generation uses elsewhere. - final Map> processedMapping = new HashMap<>(); + final Map> processedMapping = new LinkedHashMap<>(); for (Map.Entry kvp : mergedExceptionTypeMapping.entrySet()) { processedMapping.compute(kvp.getValue(), (errorType, statuses) -> { if (statuses == null) { @@ -524,7 +523,7 @@ private static final class SwaggerExceptionDefinitions { private SwaggerExceptionDefinitions() { defaultExceptionType = null; - exceptionTypeMapping = new HashMap<>(); + exceptionTypeMapping = new LinkedHashMap<>(); } ClassType getDefaultExceptionType() { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodParameterProcessor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodParameterProcessor.java index 83d560f2312..c4857f91b92 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodParameterProcessor.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ProxyMethodParameterProcessor.java @@ -15,7 +15,6 @@ import io.clientcore.core.http.models.HttpMethod; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; @@ -193,7 +192,7 @@ private static boolean isApiVersionParameter(Parameter parameter) { */ private static List getSpecialHeaderParameters(Operation operation) { if (!supportsRepeatabilityRequest(operation)) { - return Collections.emptyList(); + return List.of(); } final List parameters = new ArrayList<>(); parameters.add(ProxyMethodParameter.REPEATABILITY_REQUEST_ID_PARAMETER); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ServiceClientMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ServiceClientMapper.java index aa63f4edccd..f201560cfa1 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ServiceClientMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ServiceClientMapper.java @@ -3,17 +3,38 @@ package com.microsoft.typespec.http.client.generator.core.mapper; -import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.*; import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Client; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.CodeModel; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.ConstantSchema; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Operation; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.OperationGroup; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Parameter; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.RequestParameterLocation; +import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Scheme; import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; -import com.microsoft.typespec.http.client.generator.core.model.clientmodel.*; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClassType; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClientMethod; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClientMethodParameter; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Constructor; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.IType; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.MethodGroupClient; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ParameterSynthesizedOrigin; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Proxy; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ProxyMethod; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.SecurityInfo; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ServiceClient; +import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ServiceClientProperty; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaVisibility; import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import com.microsoft.typespec.http.client.generator.core.util.MethodUtil; import com.microsoft.typespec.http.client.generator.core.util.SchemaUtil; import io.clientcore.core.utils.CoreUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -55,7 +76,7 @@ public ServiceClient map(CodeModel codeModel) { if (!codeModelRestAPIMethods.isEmpty()) { proxy = processClientOperations(builder, codeModelRestAPIMethods, serviceClientInterfaceName); } else { - builder.clientMethods(Collections.emptyList()); + builder.clientMethods(List.of()); } List properties = processClientProperties(codeModel, @@ -109,7 +130,7 @@ protected Proxy processClientOperations(ServiceClient.Builder builder, List()) .build(); - serviceClientConstructors.add(new Constructor(Arrays.asList(httpPipelineParameter, - serializerAdapterParameter, defaultPollIntervalParameter, azureEnvironmentParameter))); + serviceClientConstructors.add(new Constructor(List.of(httpPipelineParameter, serializerAdapterParameter, + defaultPollIntervalParameter, azureEnvironmentParameter))); builder.tokenCredentialParameter(tokenCredentialParameter) .httpPipelineParameter(httpPipelineParameter) .serializerAdapterParameter(serializerAdapterParameter) @@ -467,10 +488,9 @@ protected void processParametersAndConstructors(ServiceClient.Builder builder, C .azureEnvironmentParameter(azureEnvironmentParameter) .constructors(serviceClientConstructors); } else { - serviceClientConstructors.add(new Constructor(new ArrayList<>())); - serviceClientConstructors.add(new Constructor(Collections.singletonList(httpPipelineParameter))); - serviceClientConstructors - .add(new Constructor(Arrays.asList(httpPipelineParameter, serializerAdapterParameter))); + serviceClientConstructors.add(new Constructor(List.of())); + serviceClientConstructors.add(new Constructor(List.of(httpPipelineParameter))); + serviceClientConstructors.add(new Constructor(List.of(httpPipelineParameter, serializerAdapterParameter))); builder.tokenCredentialParameter(tokenCredentialParameter) .httpPipelineParameter(httpPipelineParameter) .serializerAdapterParameter(serializerAdapterParameter) diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UnionModelMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UnionModelMapper.java index c100ca54e53..89ae79e8a5e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UnionModelMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UnionModelMapper.java @@ -15,8 +15,7 @@ import com.microsoft.typespec.http.client.generator.core.util.SchemaUtil; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -34,7 +33,7 @@ public static UnionModelMapper getInstance() { @Override public List map(OrSchema type) { - return Collections.emptyList(); + return List.of(); } private List createSubClasses(OrSchema type) { @@ -60,7 +59,7 @@ private List createSubClasses(OrSchema type) { processDescription(builder, subtype); // import - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add(baseModelType.getFullName()); builder.imports(new ArrayList<>(imports)); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UniqueProxyMethodNameGenerator.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UniqueProxyMethodNameGenerator.java index 4e5610251cd..25b5669f283 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UniqueProxyMethodNameGenerator.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/UniqueProxyMethodNameGenerator.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -19,12 +19,9 @@ * "application/json" and another takes "text/plain", which both are String type i.e., API with multiple content-types. */ public final class UniqueProxyMethodNameGenerator { - private static final Set EXCEPT; - static { - EXCEPT = new HashSet<>(); - EXCEPT.add(ProxyMethodParameter.CONTEXT_PARAMETER); - EXCEPT.add(ProxyMethodParameter.REQUEST_OPTIONS_PARAMETER); - } + private static final Set EXCEPT + = Set.of(ProxyMethodParameter.CONTEXT_PARAMETER, ProxyMethodParameter.REQUEST_OPTIONS_PARAMETER); + private final String operationName; private final Logger logger; // The set of list where each list is the method signature that were seen so far. @@ -33,7 +30,7 @@ public final class UniqueProxyMethodNameGenerator { UniqueProxyMethodNameGenerator(String operationName, Logger logger) { this.operationName = operationName; this.logger = logger; - this.methodSignatures = new HashSet<>(); + this.methodSignatures = new LinkedHashSet<>(); } /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/azurevnext/AzureVNextPomMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/azurevnext/AzureVNextPomMapper.java index 76b4262a5e9..f6309fb1448 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/azurevnext/AzureVNextPomMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/azurevnext/AzureVNextPomMapper.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Pom; import com.microsoft.typespec.http.client.generator.core.model.projectmodel.Project; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -35,7 +35,7 @@ private Pom createPom(Project project) { pom.setServiceName(project.getServiceName()); pom.setServiceDescription(project.getServiceDescriptionForPom()); - Set addedDependencyPrefixes = new HashSet<>(); + Set addedDependencyPrefixes = new LinkedHashSet<>(); List dependencyIdentifiers = new ArrayList<>(); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.CLIENTCORE, false); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.AZURE_CORE_V2, diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCorePomMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCorePomMapper.java index 923c09bd9c8..3dd66a382ec 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCorePomMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCorePomMapper.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Pom; import com.microsoft.typespec.http.client.generator.core.model.projectmodel.Project; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -36,7 +36,7 @@ private Pom createPom(Project project) { pom.setServiceName(project.getServiceName()); pom.setServiceDescription(project.getServiceDescriptionForPom()); - Set addedDependencyPrefixes = new HashSet<>(); + Set addedDependencyPrefixes = new LinkedHashSet<>(); List dependencyIdentifiers = new ArrayList<>(); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.CLIENTCORE, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCoreProxyMethodMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCoreProxyMethodMapper.java index 24ac1710f0b..843d083e69f 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCoreProxyMethodMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCoreProxyMethodMapper.java @@ -32,9 +32,8 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -127,7 +126,7 @@ public Map> map(Operation operation) { List requests = operation.getRequests(); // Used to deduplicate method with same signature. // E.g. one request takes "application/json" and another takes "text/plain", which both are String type - Set> methodSignatures = new HashSet<>(); + Set> methodSignatures = new LinkedHashSet<>(); for (Request request : requests) { if (parsed.containsKey(request)) { @@ -457,7 +456,7 @@ protected void buildUnexpectedResponseExceptionTypes(ProxyMethod.Builder builder expectedStatusCodes.forEach(mergedExceptionTypeMapping::remove); // Convert the exception type mapping into what code generation uses elsewhere. - Map> processedMapping = new HashMap<>(); + Map> processedMapping = new LinkedHashMap<>(); for (Map.Entry kvp : mergedExceptionTypeMapping.entrySet()) { processedMapping.compute(kvp.getValue(), (errorType, statuses) -> { if (statuses == null) { @@ -480,7 +479,7 @@ private SwaggerExceptionDefinitions getSwaggerExceptionDefinitions(Operation ope SwaggerExceptionDefinitions exceptionDefinitions = new SwaggerExceptionDefinitions(); ClassType swaggerDefaultExceptionType = null; - Map swaggerExceptionTypeMap = new HashMap<>(); + Map swaggerExceptionTypeMap = new LinkedHashMap<>(); if (settings.isDataPlaneClient() && settings.isAzureV1()) { // LLC does not use model, hence exception from swagger @@ -630,7 +629,7 @@ private static ClassType getDefaultHttpExceptionTypeFromSettings(JavaSettings se private Map getHttpStatusToExceptionTypeMappingFromSettings(JavaSettings settings) { // Use a status code to error type mapping initial so that the custom mapping can override the default mapping, // if the default mapping is being used. - Map exceptionMapping = new HashMap<>(); + Map exceptionMapping = new LinkedHashMap<>(); if (settings.isUseDefaultHttpStatusCodeToExceptionTypeMapping()) { exceptionMapping.putAll(getDefaultHttpStatusCodeToExceptionTypeMapping()); @@ -662,12 +661,8 @@ private static ClassType createExceptionTypeFromFullyQualifiedClass(String fully * @return The default HTTP status code to exception type mapping. */ protected Map getDefaultHttpStatusCodeToExceptionTypeMapping() { - Map defaultMapping = new HashMap<>(); - defaultMapping.put(401, ClassType.CLIENT_AUTHENTICATION_EXCEPTION); - defaultMapping.put(404, ClassType.RESOURCE_NOT_FOUND_EXCEPTION); - defaultMapping.put(409, ClassType.RESOURCE_MODIFIED_EXCEPTION); - - return defaultMapping; + return Map.of(401, ClassType.CLIENT_AUTHENTICATION_EXCEPTION, 404, ClassType.RESOURCE_NOT_FOUND_EXCEPTION, 409, + ClassType.RESOURCE_MODIFIED_EXCEPTION); } /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/AsyncSyncClient.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/AsyncSyncClient.java index 98cc8ddfedb..2c0158c119e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/AsyncSyncClient.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/AsyncSyncClient.java @@ -3,7 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; -import java.util.Collections; import java.util.List; import java.util.Set; @@ -125,7 +124,7 @@ public static class Builder { private ServiceClient serviceClient; - private List convenienceMethods = Collections.emptyList(); + private List convenienceMethods = List.of(); private String crossLanguageDefinitionId; /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Client.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Client.java index 486f4a508c3..7fad582249e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Client.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Client.java @@ -3,7 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; -import java.util.Collections; import java.util.List; /** @@ -15,48 +14,48 @@ public class Client { /** * The name of this service client. */ - private String clientName; + private final String clientName; /** * The description of this service. */ - private String clientDescription; + private final String clientDescription; /** * Get the enum types that are used by this service. */ - private List enums; + private final List enums; /** * Get the exception types that are used by this service. */ - private List exceptions; + private final List exceptions; /** * Get the XML sequence wrappers that are used by this service. */ - private List xmlSequenceWrappers; + private final List xmlSequenceWrappers; /** * Get the response models which contain the response status code, headers and body for each service method. */ - private List responseModels; + private final List responseModels; /** * Get the model types that are used by this service. */ - private List models; + private final List models; /** * Get the package infos. */ - private List packageInfos; + private final List packageInfos; /** * Get the manager for this service. */ - private Manager manager; + private final Manager manager; /** * The serviceClient for this service. */ - private ServiceClient serviceClient; - private List serviceClients; + private final ServiceClient serviceClient; + private final List serviceClients; /** * Get the module info. */ - private ModuleInfo moduleInfo; + private final ModuleInfo moduleInfo; private final List syncClients; private final List asyncClients; @@ -218,15 +217,15 @@ public static class Builder { private List packageInfos; private Manager manager; private ServiceClient serviceClient; - private List serviceClients = Collections.emptyList(); + private List serviceClients = List.of(); private ModuleInfo moduleInfo; - private List syncClients = Collections.emptyList(); - private List asyncClients = Collections.emptyList(); - private List clientBuilders = Collections.emptyList(); - private List protocolExamples = Collections.emptyList(); - private List liveTests = Collections.emptyList(); - private List unionModels = Collections.emptyList(); - private List clientMethodExamples = Collections.emptyList(); + private List syncClients = List.of(); + private List asyncClients = List.of(); + private List clientBuilders = List.of(); + private List protocolExamples = List.of(); + private List liveTests = List.of(); + private List unionModels = List.of(); + private List clientMethodExamples = List.of(); private GraalVmConfig graalVmConfig; private String crossLanguageDefinitionId; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientBuilderTrait.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientBuilderTrait.java index a775ae0c70f..a7969283e7f 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientBuilderTrait.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientBuilderTrait.java @@ -6,7 +6,7 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaBlock; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.Consumer; @@ -324,7 +324,7 @@ public static ClientBuilderTrait getEndpointTrait(ServiceClientProperty property private static ClientBuilderTrait createTokenCredentialTrait() { ClientBuilderTrait tokenCredentialTrait = new ClientBuilderTrait(); tokenCredentialTrait.setTraitInterfaceName(ClassType.TOKEN_CREDENTIAL_TRAIT.getName()); - Set importPackages = new HashSet<>(); + Set importPackages = new LinkedHashSet<>(); ClassType.TOKEN_CREDENTIAL_TRAIT.addImportsTo(importPackages, false); ClassType.TOKEN_CREDENTIAL.addImportsTo(importPackages, false); ClassType.OAUTH_TOKEN_REQUEST_CONTEXT.addImportsTo(importPackages, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethod.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethod.java index 292a655b7c7..b4f91f90b32 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethod.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethod.java @@ -24,7 +24,7 @@ * A ClientMethod that exists on a ServiceClient or MethodGroupClient that eventually will call a ProxyMethod. */ public class ClientMethod { - private static final List KNOWN_POLLING_STRATEGIES = Arrays.asList("DefaultPollingStrategy", + private static final List KNOWN_POLLING_STRATEGIES = List.of("DefaultPollingStrategy", "ChainedPollingStrategy", "OperationResourcePollingStrategy", "LocationPollingStrategy", "StatusCheckPollingStrategy", "SyncDefaultPollingStrategy", "SyncChainedPollingStrategy", "SyncOperationResourcePollingStrategy", "SyncLocationPollingStrategy", "SyncStatusCheckPollingStrategy"); @@ -373,7 +373,7 @@ public ExternalDocumentation getMethodDocumentation() { } public final List getProxyMethodArguments(JavaSettings settings) { - List restAPIMethodArguments = getProxyMethod().getParameters().stream().map(parameter -> { + return getProxyMethod().getParameters().stream().map(parameter -> { String parameterName = parameter.getParameterReference(); IType parameterWireType = parameter.getWireType(); if (parameter.isNullable()) { @@ -382,13 +382,8 @@ public final List getProxyMethodArguments(JavaSettings settings) { IType parameterClientType = parameter.getClientType(); if (parameterClientType != ClassType.BASE_64_URL - && parameter.getRequestParameterLocation() != RequestParameterLocation.BODY /* - * && parameter. - * getRequestParameterLocation - * () != - * RequestParameterLocation. - * FormData - */ + // && parameter.getRequestParameterLocation() != RequestParameterLocation.FormData + && parameter.getRequestParameterLocation() != RequestParameterLocation.BODY && (parameterClientType instanceof ArrayType || parameterClientType instanceof IterableType)) { parameterWireType = ClassType.STRING; } @@ -405,7 +400,6 @@ public final List getProxyMethodArguments(JavaSettings settings) { } return result; }).collect(Collectors.toList()); - return restAPIMethodArguments; } public JavaVisibility getMethodVisibility() { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethodParameter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethodParameter.java index 1c82d665943..b6b397abb91 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethodParameter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientMethodParameter.java @@ -4,7 +4,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.RequestParameterLocation; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -19,7 +18,7 @@ public class ClientMethodParameter extends MethodParameter { .wireType(ClassType.CONTEXT) .name("context") .requestParameterLocation(RequestParameterLocation.NONE) - .annotations(Collections.emptyList()) + .annotations(List.of()) .constant(false) .defaultValue(null) .fromClient(false) @@ -32,7 +31,7 @@ public class ClientMethodParameter extends MethodParameter { .wireType(ClassType.HTTP_REQUEST) .name("httpRequest") .requestParameterLocation(RequestParameterLocation.NONE) - .annotations(Collections.emptyList()) + .annotations(List.of()) .constant(false) .defaultValue(null) .fromClient(false) @@ -48,7 +47,7 @@ public class ClientMethodParameter extends MethodParameter { .constant(false) .required(false) .fromClient(false) - .annotations(Collections.emptyList()) + .annotations(List.of()) .build(); public static final ClientMethodParameter REQUEST_CONTEXT_PARAMETER = new ClientMethodParameter.Builder() @@ -59,7 +58,7 @@ public class ClientMethodParameter extends MethodParameter { .constant(false) .required(false) .fromClient(false) - .annotations(Collections.emptyList()) + .annotations(List.of()) .build(); /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModel.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModel.java index 838a0648cc8..e9445c4368d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModel.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModel.java @@ -7,7 +7,6 @@ import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Set; @@ -396,7 +395,7 @@ public IType getType() { * @return The property references for this model. */ public List getPropertyReferences() { - return propertyReferences == null ? Collections.emptyList() : propertyReferences; + return propertyReferences == null ? List.of() : propertyReferences; } /** @@ -626,7 +625,7 @@ private static boolean checkChildrenModelsPackage(ClientModel model, String pack public static class Builder { private String packageName; private String name; - private List imports = Collections.emptyList(); + private List imports = List.of(); private String description; private boolean isPolymorphic; private ClientModelProperty polymorphicDiscriminator; @@ -634,7 +633,7 @@ public static class Builder { private String serializedName; private boolean needsFlatten = false; private String parentModelName; - private List derivedModels = Collections.emptyList(); + private List derivedModels = List.of(); private String xmlName; private List properties; private String xmlNamespace; @@ -644,7 +643,7 @@ public static class Builder { private ImplementationDetails implementationDetails; private boolean usedInXml; private String crossLanguageDefinitionId; - private Set serializationFormats = Collections.emptySet(); + private Set serializationFormats = Set.of(); /** * Sets the package that this model class belongs to. @@ -867,7 +866,7 @@ public Builder crossLanguageDefinitionId(String crossLanguageDefinitionId) { * @return the Builder itself */ public Builder serializationFormats(Set serializationFormats) { - this.serializationFormats = serializationFormats == null ? Collections.emptySet() : serializationFormats; + this.serializationFormats = serializationFormats == null ? Set.of() : serializationFormats; return this; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModels.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModels.java index aa1d7911c67..baf26a88bd4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModels.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClientModels.java @@ -5,7 +5,7 @@ import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -14,7 +14,7 @@ */ public class ClientModels { private static final ClientModels INSTANCE = new ClientModels(); - private final Map nameMap = new HashMap<>(); + private final Map nameMap = new LinkedHashMap<>(); // private final Map> derivedTypesMap = new HashMap>(); private ClientModels() { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/GraalVmConfig.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/GraalVmConfig.java index 43dad78515c..e952627ed0a 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/GraalVmConfig.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/GraalVmConfig.java @@ -75,11 +75,10 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { } private final Resource resources; - private final List bundles = Collections.emptyList(); + private final List bundles = List.of(); private ResourceConfig(String artifactId) { - this.resources - = new Resource(Collections.singletonList(new Pattern("\\Q" + artifactId + ".properties" + "\\E"))); + this.resources = new Resource(List.of(new Pattern("\\Q" + artifactId + ".properties" + "\\E"))); } @Override @@ -97,7 +96,7 @@ public boolean generateResourceConfig() { // TODO: Template public String toProxyConfigJson() { - List> result = proxies.stream().map(Collections::singletonList).collect(Collectors.toList()); + List> result = proxies.stream().map(List::of).collect(Collectors.toList()); return TemplateUtil.prettyPrintToJson(result); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ImplementationDetails.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ImplementationDetails.java index 7cfe9c56cbf..4132fb1f632 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ImplementationDetails.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ImplementationDetails.java @@ -6,7 +6,7 @@ import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.SchemaContext; import com.microsoft.typespec.http.client.generator.core.mapper.CollectionUtil; import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -261,7 +261,7 @@ public Builder newBuilder() { */ public static final class Builder { private boolean implementationOnly = false; - private Set usages = new HashSet<>(); + private Set usages = new LinkedHashSet<>(); private String comment; /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ModelProperty.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ModelProperty.java index 62b8ac823fb..57d8c6b607d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ModelProperty.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ModelProperty.java @@ -4,7 +4,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Set; @@ -88,11 +87,9 @@ public String getSerializedName() { public List getSerializedNames() { if (property instanceof ClientModelProperty) { ClientModelProperty clientModelProperty = (ClientModelProperty) property; - if (!clientModelProperty.getNeedsFlatten()) { - return ClientModelUtil.splitFlattenedSerializedName(clientModelProperty.getSerializedName()); - } else { - return Collections.singletonList(clientModelProperty.getSerializedName()); - } + return !clientModelProperty.getNeedsFlatten() + ? ClientModelUtil.splitFlattenedSerializedName(clientModelProperty.getSerializedName()) + : List.of(clientModelProperty.getSerializedName()); } else if (property instanceof ClientModelPropertyReference) { return ((ClientModelPropertyReference) property).getAllProperties() .stream() diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/SecurityInfo.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/SecurityInfo.java index fdf000f8a39..df98235e364 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/SecurityInfo.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/SecurityInfo.java @@ -6,15 +6,15 @@ import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.OAuth2Flow; import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Scheme; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class SecurityInfo { - private Set securityTypes = new HashSet<>(); + private Set securityTypes = new LinkedHashSet<>(); - private Set scopes = new HashSet<>(); + private Set scopes = new LinkedHashSet<>(); private List flows = new ArrayList<>(); private String headerName; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ServiceClient.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ServiceClient.java index 1e77a1ed081..35adc7f93a1 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ServiceClient.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ServiceClient.java @@ -5,7 +5,6 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; -import java.util.Collections; import java.util.List; import java.util.Set; @@ -392,7 +391,7 @@ public static class Builder { protected SecurityInfo securityInfo; protected String baseUrl; protected PipelinePolicyDetails pipelinePolicyDetails; - protected List clientAccessorMethods = Collections.emptyList(); + protected List clientAccessorMethods = List.of(); private String crossLanguageDefinitionId; /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModel.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModel.java index 834bde9d457..ede13c20d35 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModel.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModel.java @@ -3,7 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; -import java.util.Collections; import java.util.List; import java.util.Set; @@ -91,10 +90,10 @@ public ImplementationDetails getImplementationDetails() { public static class Builder { private String packageName; private String name; - private List imports = Collections.emptyList(); + private List imports = List.of(); private String description; private String parentModelName; - private List properties = Collections.emptyList(); + private List properties = List.of(); private ImplementationDetails implementationDetails; /** diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModels.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModels.java index d8e45fb3eca..12ced8c97b8 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModels.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/UnionModels.java @@ -3,14 +3,14 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class UnionModels { private static final UnionModels INSTANCE = new UnionModels(); - private final Map> nameMap = new HashMap<>(); + private final Map> nameMap = new LinkedHashMap<>(); private UnionModels() { } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Versioning.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Versioning.java index 782a9b14817..1ea2d353b83 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Versioning.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/Versioning.java @@ -3,7 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.model.clientmodel; -import java.util.Collections; import java.util.List; public class Versioning { @@ -19,7 +18,7 @@ public List getAdded() { } public static class Builder { - private List added = Collections.emptyList(); + private List added = List.of(); public Builder() { } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/XmlSequenceWrapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/XmlSequenceWrapper.java index 66de8ff9da4..fc42810b125 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/XmlSequenceWrapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/XmlSequenceWrapper.java @@ -7,8 +7,8 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.mapper.Mappers; import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; -import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; /** @@ -59,11 +59,11 @@ public XmlSequenceWrapper(String modelTypeName, ArraySchema arraySchema, JavaSet } private static Set getXmlSequenceWrapperImports() { - return new HashSet<>(Arrays.asList("com.fasterxml.jackson.annotation.JsonCreator", - "com.fasterxml.jackson.annotation.JsonProperty", - "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty", - "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement", - "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText")); + return new HashSet<>( + List.of("com.fasterxml.jackson.annotation.JsonCreator", "com.fasterxml.jackson.annotation.JsonProperty", + "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty", + "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement", + "com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText")); } public final String getPackage() { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/examplemodel/ClientModelNode.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/examplemodel/ClientModelNode.java index a790c2e34f2..216b09301d4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/examplemodel/ClientModelNode.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/examplemodel/ClientModelNode.java @@ -6,7 +6,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClientModel; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.IType; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ModelProperty; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -18,7 +18,7 @@ public class ClientModelNode extends ExampleNode { // modelProperties can contain more properties than in the model, as it includes those properties from the // superclass of the model - private final Map modelProperties = new HashMap<>(); + private final Map modelProperties = new LinkedHashMap<>(); public ClientModelNode(IType clientType, Object objectValue) { super(clientType, objectValue); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaClass.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaClass.java index 7c914fb7adc..49d705ca6be 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaClass.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaClass.java @@ -5,7 +5,6 @@ import io.clientcore.core.utils.CoreUtils; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.function.Consumer; @@ -173,7 +172,7 @@ public final void publicStaticMethod(String methodSignature, Consumer */ public final void staticMethod(JavaVisibility visibility, String methodSignature, Consumer method) { Objects.requireNonNull(visibility, "'visibility' cannot be null."); - method(visibility, Collections.singletonList(JavaModifier.Static), methodSignature, method); + method(visibility, List.of(JavaModifier.Static), methodSignature, method); } public final void interfaceBlock(JavaVisibility visibility, String interfaceSignature, @@ -194,8 +193,7 @@ public final void privateStaticFinalClass(String classSignature, Consumer classBlock) { addExpectedNewLine(); - contents.classBlock(visibility, Arrays.asList(JavaModifier.Static, JavaModifier.Final), classSignature, - classBlock); + contents.classBlock(visibility, List.of(JavaModifier.Static, JavaModifier.Final), classSignature, classBlock); addNewLine = true; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaEnum.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaEnum.java index 3fc6fd15b42..9a145dd3fc3 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaEnum.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaEnum.java @@ -5,7 +5,6 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.IType; import io.clientcore.core.utils.CoreUtils; -import java.util.Collections; import java.util.List; import java.util.function.Consumer; @@ -93,7 +92,7 @@ public final void publicMethod(String methodSignature, Consumer metho } public final void publicStaticMethod(String methodSignature, Consumer method) { - method(JavaVisibility.Public, Collections.singletonList(JavaModifier.Static), methodSignature, method); + method(JavaVisibility.Public, List.of(JavaModifier.Static), methodSignature, method); } public final void javadocComment(String description) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFile.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFile.java index 672cc79c3a9..6cc200f6bcb 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFile.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFile.java @@ -4,8 +4,6 @@ package com.microsoft.typespec.http.client.generator.core.model.javamodel; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.function.Consumer; @@ -47,7 +45,7 @@ public final void indent(Runnable indentAction) { } public final void publicFinalClass(String classDeclaration, Consumer classAction) { - publicClass(Collections.singletonList(JavaModifier.Final), classDeclaration, classAction); + publicClass(List.of(JavaModifier.Final), classDeclaration, classAction); } public final void publicClass(List modifiers, String classDeclaration, @@ -74,7 +72,7 @@ public final void declarePackage(String packageKeyword) { } public final void declareImport(String... imports) { - declareImport(Arrays.asList(imports)); + declareImport(List.of(imports)); } public final void declareImport(Set imports) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFileContents.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFileContents.java index 11055e2f2b6..579a85890b4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFileContents.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaFileContents.java @@ -5,7 +5,6 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.TreeSet; @@ -154,7 +153,7 @@ public void block(String text, Consumer bodyAction) { } public void declareImport(String... imports) { - declareImport(Arrays.asList(imports)); + declareImport(List.of(imports)); } public void declareImport(List imports) { @@ -228,7 +227,7 @@ public void anonymousClass(String anonymousClassDeclaration, String instanceName } public void annotation(String... annotations) { - annotation(Arrays.asList(annotations)); + annotation(List.of(annotations)); } public void annotation(List annotations) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaInterface.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaInterface.java index 4915663f769..54012f893d4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaInterface.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaInterface.java @@ -3,7 +3,6 @@ package com.microsoft.typespec.http.client.generator.core.model.javamodel; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.function.Consumer; @@ -55,7 +54,7 @@ public final void annotation(String... annotations) { public final void staticMethod(JavaVisibility visibility, String methodSignature, Consumer method) { Objects.requireNonNull(visibility, "'visibility' cannot be null."); - method(visibility, Collections.singletonList(JavaModifier.Static), methodSignature, method); + method(visibility, List.of(JavaModifier.Static), methodSignature, method); } public final void interfaceBlock(String interfaceName, Consumer interfaceAction) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaPackage.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaPackage.java index 5f12acfdac6..c74f210e90d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaPackage.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaPackage.java @@ -50,8 +50,8 @@ import java.io.InputStreamReader; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -67,7 +67,7 @@ public class JavaPackage { private final JavaFileFactory javaFileFactory; - private final Set filePaths = new HashSet<>(); + private final Set filePaths = new LinkedHashSet<>(); public JavaPackage(NewPlugin host) { this.settings = JavaSettings.getInstance(); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/xmlmodel/XmlFileContents.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/xmlmodel/XmlFileContents.java index 89a0c5a2bc5..611d6a97abc 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/xmlmodel/XmlFileContents.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/xmlmodel/XmlFileContents.java @@ -4,7 +4,6 @@ package com.microsoft.typespec.http.client.generator.core.model.xmlmodel; import java.util.ArrayList; -import java.util.Arrays; import java.util.Map; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -28,9 +27,7 @@ public XmlFileContents(String fileContents) { public XmlFileContents(String fileContents, XmlFile.Options options) { if (options != null) { if (options.getIndent() > 0) { - char[] chars = new char[options.getIndent()]; - Arrays.fill(chars, ' '); - singleIndent = String.valueOf(chars); + singleIndent = " ".repeat(options.getIndent()); } } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/partialupdate/util/PartialUpdateHandler.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/partialupdate/util/PartialUpdateHandler.java index 427da7617fd..1754ab3a5c6 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/partialupdate/util/PartialUpdateHandler.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/partialupdate/util/PartialUpdateHandler.java @@ -27,7 +27,7 @@ import java.io.BufferedReader; import java.io.StringReader; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -314,7 +314,7 @@ public void accept(VoidVisitor v, A arg) { */ private static void validateGeneratedClassOrInterface(List> generatedFileMembers) { // 1. Verify there is no duplicate methods (methods with same signature are considered duplicate methods) - Set methodSignatureSet = new HashSet<>(); + Set methodSignatureSet = new LinkedHashSet<>(); for (BodyDeclaration generatedMember : generatedFileMembers) { if (generatedMember.isCallableDeclaration()) { if (methodSignatureSet.contains(generatedMember.asCallableDeclaration().getSignature())) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/implementation/CodeFormatterUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/implementation/CodeFormatterUtil.java index 4e0422a2573..73df476ceb2 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/implementation/CodeFormatterUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/implementation/CodeFormatterUtil.java @@ -16,7 +16,6 @@ import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -95,7 +94,7 @@ private static Map loadEclipseSettings() { CodeFormatterUtil.class.getClassLoader().getResourceAsStream("eclipse-format-azure-sdk-for-java.xml")); NodeList formatterSettingXml = document.getElementsByTagName("setting"); - Map formatterSettings = new HashMap<>(); + Map formatterSettings = new LinkedHashMap<>(); for (int i = 0; i < formatterSettingXml.getLength(); i++) { org.w3c.dom.Node node = formatterSettingXml.item(i); formatterSettings.put(node.getAttributes().getNamedItem("id").getNodeValue(), diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/Preprocessor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/Preprocessor.java index 2140a7adf40..ad5de79a97e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/Preprocessor.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/Preprocessor.java @@ -23,9 +23,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -144,9 +143,9 @@ public static CodeModel convertOptionalConstantsToEnum(CodeModel codeModel) { Function schemaIsConstantWithChoice = schema -> schema.getValueType() instanceof ChoiceSchema; - Set constantSchemas = new HashSet<>(codeModel.getSchemas().getConstants()); + Set constantSchemas = new LinkedHashSet<>(codeModel.getSchemas().getConstants()); if (!constantSchemas.isEmpty()) { - Map convertedChoiceSchemas = new HashMap<>(); + Map convertedChoiceSchemas = new LinkedHashMap<>(); ClientModelUtil.getAllOperationGroups(codeModel) .stream() .flatMap(og -> og.getOperations().stream()) @@ -238,7 +237,7 @@ private static SealedChoiceSchema convertToChoiceSchema(ConstantSchema constantS ChoiceValue choice = new ChoiceValue(); choice.setValue(constantSchema.getValue().getValue().toString()); choice.setLanguage(constantSchema.getValue().getLanguage()); - sealedChoiceSchema.setChoices(Collections.singletonList(choice)); + sealedChoiceSchema.setChoices(List.of(choice)); return sealedChoiceSchema; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/tranformer/Transformer.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/tranformer/Transformer.java index cd5d2babdc0..446f05a4524 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/tranformer/Transformer.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/preprocessor/tranformer/Transformer.java @@ -35,10 +35,9 @@ import com.microsoft.typespec.http.client.generator.core.preprocessor.namer.CodeNamer; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; -import java.util.ListIterator; import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -80,7 +79,7 @@ private void transformSchemas(Schemas schemas) { if (schemas.getGroups() != null) { schemas.getGroups().forEach(group -> { if (group.getUsage() == null) { - group.setUsage(new HashSet<>()); + group.setUsage(new LinkedHashSet<>()); } group.getUsage().add(SchemaContext.OPTIONS_GROUP); }); @@ -249,7 +248,7 @@ private static void markFlattenedSchemas(CodeModel codeModel) { } if (flattenedSchemas == null) { - flattenedSchemas = new HashMap<>(); + flattenedSchemas = new LinkedHashMap<>(); } flattenedSchemas.put(property.getLanguage().getJava().getName(), flattenedSchema); @@ -291,10 +290,10 @@ public int hashCode() { } } - private final Map pagingNextOperationResponseSchemaMap = new HashMap<>(); + private final Map pagingNextOperationResponseSchemaMap = new LinkedHashMap<>(); // Operation -> next page operation - private final Map operationNextPageOperationMap = new HashMap<>(); + private final Map operationNextPageOperationMap = new LinkedHashMap<>(); /** * Adds next page operation for the given operation. @@ -684,12 +683,10 @@ private static void deduplicateParameterNames(Request request) { } // rename if name conflict - Set parameterNames = new HashSet<>(); - ListIterator iter = parameters.listIterator(); - while (iter.hasNext()) { - Parameter parameter = iter.next(); + Set parameterNames = new LinkedHashSet<>(); + for (Parameter parameter : parameters) { if (parameter.getOriginalParameter() == null // skip the parameters resulted from parameter-flattening as - // they are not in proxy method + // they are not in proxy method && parameterNames.contains(parameter.getLanguage().getJava().getName())) { parameter.getLanguage().getJava().setName(parameter.getLanguage().getJava().getName() + "Param"); } @@ -698,11 +695,8 @@ private static void deduplicateParameterNames(Request request) { } } - private final static Map ODATA_PARAMETER_NAME_CONVERSION = new HashMap<>(2); - static { - ODATA_PARAMETER_NAME_CONVERSION.put("maxpagesize", "maxPageSize"); - ODATA_PARAMETER_NAME_CONVERSION.put("orderby", "orderBy"); - } + private final static Map ODATA_PARAMETER_NAME_CONVERSION + = Map.of("maxpagesize", "maxPageSize", "orderby", "orderBy"); private static void renameOdataParameterNames(Request request) { List parameters = request.getParameters(); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodSampleTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodSampleTemplate.java index 9d3c69eb79c..7ea427b16fc 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodSampleTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodSampleTemplate.java @@ -14,7 +14,7 @@ import com.microsoft.typespec.http.client.generator.core.template.example.ClientInitializationExampleWriter; import com.microsoft.typespec.http.client.generator.core.template.example.ClientMethodExampleWriter; import com.microsoft.typespec.http.client.generator.core.template.example.ModelExampleWriter; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; public class ClientMethodSampleTemplate implements IJavaTemplate { @@ -39,7 +39,7 @@ public void write(ClientMethodExample clientMethodExample, JavaFile javaFile) { clientInitializationExampleWriter.getClientVarName(), proxyMethodExample); // declare imports - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.addAll(clientInitializationExampleWriter.getImports()); imports.addAll(clientMethodExampleWriter.getImports()); method.getReturnValue().getType().addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplate.java index 54953eb3edd..01ad84e26b3 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplate.java @@ -39,8 +39,7 @@ import io.clientcore.core.annotations.ReturnType; import io.clientcore.core.http.models.HttpHeaderName; import io.clientcore.core.utils.CoreUtils; -import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -78,7 +77,7 @@ protected static void addValidations(JavaBlock function, ClientMethod clientMeth // Parameter expressions to validate for non-null value. final List paramReferenceExpressions = clientMethod.getRequiredNullableParameterExpressions(); // Parameter expressions for custom validation (key is the expression, value is the validation). - final Map validateParamExpressions = new HashMap<>(clientMethod.getValidateExpressions()); + final Map validateParamExpressions = new LinkedHashMap<>(clientMethod.getValidateExpressions()); for (String paramReferenceExpression : paramReferenceExpressions) { final JavaIfBlock nullCheck = function.ifBlock(paramReferenceExpression + " == null", ifBlock -> { @@ -148,7 +147,7 @@ protected static void addOptionalAndConstantVariables(JavaBlock function, Client = MethodUtil.getParameters(clientMethod, false); List overloadedMethodParameters = clientMethod.getOverloadedClientMethod() == null - ? Collections.emptyList() + ? List.of() : MethodUtil.getParameters(clientMethod.getOverloadedClientMethod(), false); for (ProxyMethodParameter parameter : proxyMethodParameters) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplateBase.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplateBase.java index 2c86a0928c0..c473ee3639e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplateBase.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplateBase.java @@ -24,8 +24,8 @@ import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import com.microsoft.typespec.http.client.generator.core.util.MethodUtil; import io.clientcore.core.utils.CoreUtils; -import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -64,7 +64,7 @@ protected static void generateProtocolMethodJavadoc(ClientMethod clientMethod, J } // Request body - Set typesInJavadoc = new HashSet<>(); + Set typesInJavadoc = new LinkedHashSet<>(); Optional bodyParameter = clientMethod.getProxyMethod() .getAllParameters() diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceMethodTemplateBase.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceMethodTemplateBase.java index 5d9f1f412b9..6ec3aa6f12b 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceMethodTemplateBase.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceMethodTemplateBase.java @@ -47,7 +47,6 @@ import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -134,7 +133,7 @@ protected void writeMethodImplementation(ClientMethod protocolMethod, ClientMeth boolean isJsonMergePatchOperation = protocolMethod != null && protocolMethod.getProxyMethod() != null && "application/merge-patch+json".equalsIgnoreCase(protocolMethod.getProxyMethod().getRequestContentType()); - Map parameterExpressionsMap = new HashMap<>(); + Map parameterExpressionsMap = new LinkedHashMap<>(); for (Map.Entry entry : parametersMap.entrySet()) { MethodParameter parameter = entry.getKey(); MethodParameter protocolParameter = entry.getValue(); @@ -561,7 +560,7 @@ public static SupportedMimeType getResponseKnownMimeType(Collection medi } private static String expressionConvertToBinaryData(String name, IType type, String mediaType) { - SupportedMimeType mimeType = SupportedMimeType.getResponseKnownMimeType(Collections.singleton(mediaType)); + SupportedMimeType mimeType = SupportedMimeType.getResponseKnownMimeType(List.of(mediaType)); switch (mimeType) { case TEXT: return "BinaryData.fromString(" + name + ")"; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/EnumTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/EnumTemplate.java index 7943c19a84a..7f538511a39 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/EnumTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/EnumTemplate.java @@ -19,7 +19,7 @@ import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import io.clientcore.core.utils.CoreUtils; import java.io.IOException; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; /** @@ -65,7 +65,7 @@ protected void writeBrandedExpandableEnum(EnumType enumType, JavaFile javaFile, } private void writeExpandableStringEnum(EnumType enumType, JavaFile javaFile, JavaSettings settings) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add("java.util.Collection"); imports.add(ClassType.EXPANDABLE_STRING_ENUM.getFullName()); if (!settings.isStreamStyleSerialization()) { @@ -137,7 +137,7 @@ private void writeExpandableStringEnum(EnumType enumType, JavaFile javaFile, Jav } private void writeEnum(EnumType enumType, JavaFile javaFile, JavaSettings settings) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); if (!settings.isStreamStyleSerialization()) { imports.add("com.fasterxml.jackson.annotation.JsonCreator"); imports.add("com.fasterxml.jackson.annotation.JsonValue"); @@ -210,7 +210,7 @@ private void writeEnum(EnumType enumType, JavaFile javaFile, JavaSettings settin } private void writeExpandableEnumInterface(EnumType enumType, JavaFile javaFile, JavaSettings settings) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add("java.util.Collection"); imports.add("java.lang.IllegalArgumentException"); imports.add("java.util.Map"); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ExceptionTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ExceptionTemplate.java index 391a615cb76..61d8d0bd9d4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ExceptionTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ExceptionTemplate.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClientException; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaFile; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaJavadocComment; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; /** @@ -25,7 +25,7 @@ public static ExceptionTemplate getInstance() { @Override public void write(ClientException exception, JavaFile javaFile) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add(ClassType.HTTP_RESPONSE.getFullName()); exception.getParentType().addImportsTo(imports, false); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/JsonMergePatchHelperTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/JsonMergePatchHelperTemplate.java index d9412e74653..eff8ae9dd1e 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/JsonMergePatchHelperTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/JsonMergePatchHelperTemplate.java @@ -12,7 +12,7 @@ import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import io.clientcore.core.utils.CoreUtils; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Set; @@ -33,7 +33,7 @@ public static JsonMergePatchHelperTemplate getInstance() { public void write(List models, JavaFile javaFile) { // imports JavaSettings settings = JavaSettings.getInstance(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); addImports(imports, models, settings); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupInterfaceTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupInterfaceTemplate.java index 716b420f533..bee5b466630 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupInterfaceTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupInterfaceTemplate.java @@ -8,8 +8,9 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.IType; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.MethodGroupClient; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaFile; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; /** @@ -27,7 +28,7 @@ public static MethodGroupInterfaceTemplate getInstance() { public final void write(MethodGroupClient methodGroupClient, JavaFile javaFile) { JavaSettings settings = JavaSettings.getInstance(); - HashSet imports = new HashSet(); + Set imports = new LinkedHashSet<>(); methodGroupClient.addImportsTo(imports, false, settings); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupTemplate.java index ad91dcf0a8f..db1fbd18320 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/MethodGroupTemplate.java @@ -17,7 +17,7 @@ import io.clientcore.core.serialization.ObjectSerializer; import io.clientcore.core.utils.CoreUtils; import java.lang.reflect.InvocationTargetException; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -37,7 +37,7 @@ public static MethodGroupTemplate getInstance() { public final void write(MethodGroupClient methodGroupClient, JavaFile javaFile) { JavaSettings settings = JavaSettings.getInstance(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); if (settings.isUseClientLogger()) { ClassType.CLIENT_LOGGER.addImportsTo(imports, false); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTemplate.java index da035ee73d5..69dac758321 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTemplate.java @@ -39,6 +39,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Set; @@ -74,7 +75,7 @@ public final void write(ClientModel model, JavaFile javaFile) { JavaSettings settings = JavaSettings.getInstance(); ClientModelPropertiesManager propertiesManager = new ClientModelPropertiesManager(model, settings); - Set imports = settings.isStreamStyleSerialization() ? new StreamStyleImports() : new HashSet<>(); + Set imports = settings.isStreamStyleSerialization() ? new StreamStyleImports() : new LinkedHashSet<>(); addImports(imports, model, settings); @@ -107,7 +108,7 @@ public final void write(ClientModel model, JavaFile javaFile) { List classModifiers = null; if (!hasDerivedModels && !model.getNeedsFlatten()) { - classModifiers = Collections.singletonList(JavaModifier.Final); + classModifiers = List.of(JavaModifier.Final); } String classNameWithBaseType = model.getName(); @@ -843,7 +844,7 @@ private void addModelConstructor(ClientModel model, ClientModelPropertiesManager // Properties required by the super class structure come first. ClientModel parentModel = ClientModelUtil.getClientModel(model.getParentModelName()); if (parentModel != null) { - Set superConstructorPropertiesSerializedNames = new HashSet<>(); + Set superConstructorPropertiesSerializedNames = new LinkedHashSet<>(); propertiesManager.forEachSuperConstructorProperty( p -> superConstructorPropertiesSerializedNames.add(p.getSerializedName())); @@ -1421,7 +1422,7 @@ private static void generateSetterJavadoc(JavaClass classBlock, ClientModel mode }); } - private static final class StreamStyleImports extends HashSet { + private static final class StreamStyleImports extends LinkedHashSet { @Override public boolean add(String s) { if (s != null && s.contains("fasterxml")) { @@ -1456,7 +1457,7 @@ private void addJsonMergePatchRelatedPropertyAndAccessors(JavaClass classBlock, } List setterProperties = !model.isPolymorphic() - ? Collections.emptyList() + ? List.of() : model.getProperties() .stream() .filter(property -> !property.isConstant() && !property.isPolymorphicDiscriminator()) diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTestTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTestTemplate.java index e685a454d48..db90de0a3d0 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTestTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ModelTestTemplate.java @@ -17,7 +17,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -64,7 +64,7 @@ public void write(ModelUnitTestInfo testInfo, JavaFile javaFile) { && model.getImplementationDetails() != null && !model.getImplementationDetails().isInput(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); model.addImportsTo(imports, JavaSettings.getInstance()); ClassType.BINARY_DATA.addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/PomTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/PomTemplate.java index 3e1e7cddd5e..b6676207877 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/PomTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/PomTemplate.java @@ -10,7 +10,7 @@ import com.microsoft.typespec.http.client.generator.core.model.xmlmodel.XmlFile; import com.microsoft.typespec.http.client.generator.core.util.Constants; import io.clientcore.core.utils.CoreUtils; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; @@ -39,7 +39,7 @@ public void write(Pom pom, XmlFile xmlFile) { .collect(Collectors.joining(Constants.NEW_LINE)))); } - Map projectAnnotations = new HashMap<>(); + Map projectAnnotations = new LinkedHashMap<>(); projectAnnotations.put("xmlns", "http://maven.apache.org/POM/4.0.0"); projectAnnotations.put("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); projectAnnotations.put("xsi:schemaLocation", diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ReadmeTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ReadmeTemplate.java index 7096d1832b9..502ac153ced 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ReadmeTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ReadmeTemplate.java @@ -6,7 +6,6 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.model.projectmodel.Project; import com.microsoft.typespec.http.client.generator.core.util.TemplateUtil; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -24,14 +23,10 @@ public String write(Project project) { protected static String getImpression(Project project) { String impression = ""; if (project.getSdkRepositoryPath().isPresent()) { - try { - impression = "![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/" - + URLEncoder.encode("azure-sdk-for-java/" + project.getSdkRepositoryPath().get() + "/README.png", - StandardCharsets.UTF_8.name()) - + ")"; - } catch (UnsupportedEncodingException e) { - // NOOP - } + impression = "![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/" + + URLEncoder.encode("azure-sdk-for-java/" + project.getSdkRepositoryPath().get() + "/README.png", + StandardCharsets.UTF_8) + + ")"; } return impression; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ResponseTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ResponseTemplate.java index fdc7d80d4e3..7c7932e9325 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ResponseTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ResponseTemplate.java @@ -9,7 +9,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.GenericType; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.IType; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaFile; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; /** @@ -28,7 +28,7 @@ public static ResponseTemplate getInstance() { public final void write(ClientResponse response, JavaFile javaFile) { JavaSettings settings = JavaSettings.getInstance(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add(ClassType.HTTP_REQUEST.getFullName()); imports.add(ClassType.HTTP_HEADERS.getFullName()); IType restResponseType = GenericType.restResponse(response.getHeadersType(), response.getBodyType()); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceAsyncClientTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceAsyncClientTemplate.java index 7f744905d13..8d1faf6a3a9 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceAsyncClientTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceAsyncClientTemplate.java @@ -25,7 +25,7 @@ import com.microsoft.typespec.http.client.generator.core.util.ModelNamer; import com.microsoft.typespec.http.client.generator.core.util.TemplateUtil; import io.clientcore.core.utils.CoreUtils; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -59,7 +59,7 @@ public final void write(AsyncSyncClient asyncClient, JavaFile javaFile) { = samePackageAsBuilder ? JavaVisibility.PackagePrivate : JavaVisibility.Public; ClientBuilder rootClientBuilder = getClientBuilder(asyncClient); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); if (wrapServiceClient) { serviceClient.addImportsTo(imports, true, false, settings); imports.add(serviceClient.getPackage() + "." + serviceClient.getClassName()); @@ -263,7 +263,7 @@ static ClientBuilder getClientBuilder(AsyncSyncClient client) { } private void writeConvenienceMethods(List convenienceMethods, JavaClass classBlock) { - Set typeReferenceStaticClasses = new HashSet<>(); + Set typeReferenceStaticClasses = new LinkedHashSet<>(); convenienceMethods.forEach( m -> Templates.getConvenienceAsyncMethodTemplate().write(m, classBlock, typeReferenceStaticClasses)); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientBuilderTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientBuilderTemplate.java index a5a1a1cae7d..b2a898c60ae 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientBuilderTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientBuilderTemplate.java @@ -27,7 +27,7 @@ import io.clientcore.core.traits.EndpointTrait; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -67,7 +67,7 @@ public final void write(ClientBuilder clientBuilder, JavaFile javaFile) { buildReturnType = serviceClient.getClassName(); } - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); serviceClient.addImportsTo(imports, false, true, settings); commonProperties.forEach(p -> p.addImportsTo(imports, false)); imports.add("java.util.List"); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientInterfaceTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientInterfaceTemplate.java index e93b0d61d64..0f6938beff9 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientInterfaceTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientInterfaceTemplate.java @@ -12,7 +12,8 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaVisibility; import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import com.microsoft.typespec.http.client.generator.core.util.ModelNamer; -import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Set; /** * Writes a ServiceClient to a JavaFile as an interface. @@ -29,7 +30,7 @@ public static ServiceClientInterfaceTemplate getInstance() { } public void write(ServiceClient serviceClient, JavaFile javaFile) { - HashSet imports = new HashSet(); + Set imports = new LinkedHashSet<>(); serviceClient.addImportsTo(imports, false, false, JavaSettings.getInstance()); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientTemplate.java index 951257f4b21..3fbb35c8098 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceClientTemplate.java @@ -26,7 +26,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Set; @@ -61,7 +61,7 @@ public final void write(ServiceClient serviceClient, JavaFile javaFile) { serviceClientClassDeclaration += String.format(" implements %1$s", serviceClient.getInterfaceName()); } - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add(Objects.class.getName()); if (settings.isUseClientLogger()) { ClassType.CLIENT_LOGGER.addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceSyncClientTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceSyncClientTemplate.java index bedf03f5f6a..8e58d6a261a 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceSyncClientTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceSyncClientTemplate.java @@ -20,7 +20,7 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaVisibility; import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil; import com.microsoft.typespec.http.client.generator.core.util.TemplateUtil; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -53,7 +53,7 @@ public final void write(AsyncSyncClient syncClient, JavaFile javaFile) { = samePackageAsBuilder ? JavaVisibility.PackagePrivate : JavaVisibility.Public; ClientBuilder rootClientBuilder = ServiceAsyncClientTemplate.getClientBuilder(syncClient); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); if (wrapServiceClient) { serviceClient.addImportsTo(imports, true, false, settings); imports.add(serviceClient.getPackage() + "." + serviceClient.getClassName()); @@ -207,7 +207,7 @@ protected void addGeneratedAnnotation(JavaContext classBlock) { } private void writeConvenienceMethods(List convenienceMethods, JavaClass classBlock) { - Set typeReferenceStaticClasses = new HashSet<>(); + Set typeReferenceStaticClasses = new LinkedHashSet<>(); convenienceMethods.forEach( m -> Templates.getConvenienceSyncMethodTemplate().write(m, classBlock, typeReferenceStaticClasses)); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceVersionTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceVersionTemplate.java index c9d3f0359e0..d36fab6c59a 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceVersionTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceVersionTemplate.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ServiceVersion; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaFile; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaJavadocComment; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.regex.Pattern; @@ -23,13 +23,12 @@ public static ServiceVersionTemplate getInstance() { @Override public void write(ServiceVersion serviceVersion, JavaFile javaFile) { // imports - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); ClassType.SERVICE_VERSION.addImportsTo(imports, false); javaFile.declareImport(imports); - javaFile.javadocComment(comment -> { - comment.description("Service version of " + serviceVersion.getServiceName()); - }); + javaFile + .javadocComment(comment -> comment.description("Service version of " + serviceVersion.getServiceName())); String className = serviceVersion.getClassName(); List serviceVersions = serviceVersion.getServiceVersions(); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/StreamSerializationModelTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/StreamSerializationModelTemplate.java index b964ecf4676..12ad4d60734 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/StreamSerializationModelTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/StreamSerializationModelTemplate.java @@ -33,8 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Base64; -import java.util.Collections; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -1185,7 +1183,7 @@ private void writeFromJsonDeserialization0(JavaBlock methodBlock) { = (property, fromSuper) -> handleJsonPropertyDeserialization(property, whileBlock, ifBlockReference, fromSuper, false); - Map modelPropertyMap = new HashMap<>(); + Map modelPropertyMap = new LinkedHashMap<>(); for (ClientModelProperty parentProperty : ClientModelUtil.getParentProperties(model)) { modelPropertyMap.put(parentProperty.getName(), parentProperty); } @@ -2636,7 +2634,7 @@ private void handleUnknownXmlFieldDeserialization(JavaBlock methodBlock, JavaIfB getClientModelPropertiesInJsonTree(JsonFlattenedPropertiesTree tree) { if (tree.getProperty() != null) { // Terminal node only contains a property. - return Collections.singletonList(tree.getProperty()); + return List.of(tree.getProperty()); } else { List treeProperties = new ArrayList<>(); for (JsonFlattenedPropertiesTree childNode : tree.getChildrenNodes().values()) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/UnionModelTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/UnionModelTemplate.java index faf8f4a9326..170f6f4d51d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/UnionModelTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/UnionModelTemplate.java @@ -12,8 +12,7 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaModifier; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaVisibility; import io.clientcore.core.utils.CoreUtils; -import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.Consumer; @@ -36,7 +35,7 @@ public void write(UnionModel model, JavaFile javaFile) { final boolean isAbstractClass = CoreUtils.isNullOrEmpty(model.getParentModelName()); final String superClassName = model.getParentModelName(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); model.addImportsTo(imports); imports.add(Annotation.IMMUTABLE.getFullName()); @@ -44,8 +43,7 @@ public void write(UnionModel model, JavaFile javaFile) { javaFile.declareImport(imports); - List modifiers - = Collections.singletonList(isAbstractClass ? JavaModifier.Abstract : JavaModifier.Final); + List modifiers = List.of(isAbstractClass ? JavaModifier.Abstract : JavaModifier.Final); String classDeclaration = isAbstractClass ? model.getName() : (model.getName() + " extends " + superClassName); javaFile.javadocComment(comment -> comment.description(model.getDescription())); if (!isAbstractClass) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/azurevnext/AzureVNextPomTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/azurevnext/AzureVNextPomTemplate.java index fbb43fc0a64..1fb1d6fabcf 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/azurevnext/AzureVNextPomTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/azurevnext/AzureVNextPomTemplate.java @@ -12,7 +12,7 @@ import com.microsoft.typespec.http.client.generator.core.template.TemplateHelper; import com.microsoft.typespec.http.client.generator.core.util.Constants; import io.clientcore.core.utils.CoreUtils; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; @@ -36,7 +36,7 @@ public void write(Pom pom, XmlFile xmlFile) { .collect(Collectors.joining(Constants.NEW_LINE)))); } - Map projectAnnotations = new HashMap<>(); + Map projectAnnotations = new LinkedHashMap<>(); projectAnnotations.put("xmlns", "http://maven.apache.org/POM/4.0.0"); projectAnnotations.put("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); projectAnnotations.put("xsi:schemaLocation", diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCoreExceptionTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCoreExceptionTemplate.java index 7625ca7848c..39f2e263271 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCoreExceptionTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCoreExceptionTemplate.java @@ -8,7 +8,7 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaFile; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaJavadocComment; import com.microsoft.typespec.http.client.generator.core.template.ExceptionTemplate; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; public class ClientCoreExceptionTemplate extends ExceptionTemplate { @@ -25,7 +25,7 @@ public static ClientCoreExceptionTemplate getInstance() { @Override public void write(ClientException exception, JavaFile javaFile) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); imports.add(getHttpResponseImport()); ClassType.BINARY_DATA.addImportsTo(imports, false); exception.getParentType().addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCorePomTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCorePomTemplate.java index 186918f1a13..06c340d100f 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCorePomTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/clientcore/ClientCorePomTemplate.java @@ -11,7 +11,7 @@ import com.microsoft.typespec.http.client.generator.core.template.TemplateHelper; import com.microsoft.typespec.http.client.generator.core.util.Constants; import io.clientcore.core.utils.CoreUtils; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; @@ -37,7 +37,7 @@ public void write(Pom pom, XmlFile xmlFile) { .collect(Collectors.joining(Constants.NEW_LINE)))); } - Map projectAnnotations = new HashMap<>(); + Map projectAnnotations = new LinkedHashMap<>(); projectAnnotations.put("xmlns", "http://maven.apache.org/POM/4.0.0"); projectAnnotations.put("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); projectAnnotations.put("xsi:schemaLocation", diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientInitializationExampleWriter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientInitializationExampleWriter.java index b714c95b0e6..fac63094bbc 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientInitializationExampleWriter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientInitializationExampleWriter.java @@ -15,7 +15,7 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaBlock; import com.microsoft.typespec.http.client.generator.core.util.CodeNamer; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -25,7 +25,7 @@ /** Client initialization example writer for DPG methods. */ public class ClientInitializationExampleWriter { - private final Set imports = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); private final Consumer clientInitializationWriter; private final String clientVarName; @@ -44,7 +44,7 @@ public ClientInitializationExampleWriter(AsyncSyncClient syncClient, ClientMetho // client initialization List clientParameterLines = new ArrayList<>(); - Set processedServiceClientProperties = new HashSet<>(); + Set processedServiceClientProperties = new LinkedHashSet<>(); // proxy method parameters which value comes from client method.getProxyMethod().getAllParameters().stream().filter(ProxyMethodParameter::isFromClient).forEach(p -> { @@ -118,7 +118,7 @@ public ClientInitializationExampleWriter(AsyncSyncClient syncClient, ClientMetho } public Set getImports() { - return new HashSet<>(this.imports); + return new LinkedHashSet<>(this.imports); } public void write(JavaBlock methodBlock) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java index fe5e0593ce1..dc369aa7faf 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java @@ -29,8 +29,8 @@ import com.microsoft.typespec.http.client.generator.core.util.MethodUtil; import com.microsoft.typespec.http.client.generator.core.util.ModelExampleUtil; import io.clientcore.core.http.models.HttpMethod; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -41,7 +41,7 @@ public class ClientMethodExampleWriter { - private final Set imports = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); private final BiConsumer methodBodyWriter; private final Consumer responseAssertionWriter; private final ModelExampleWriter.ExampleNodeModelInitializationVisitor nodeVisitor @@ -285,7 +285,7 @@ private ExampleNode parseNodeFromParameter(ClientMethod convenienceMethod, Proxy if (transformations.isGroupingParameter(methodParameter)) { // grouping, possible with flattening first // group example values into a map - Map exampleValue = new HashMap<>(); + Map exampleValue = new LinkedHashMap<>(); for (ParameterTransformation transformation : convenienceMethod.getParameterTransformations().asList()) { for (ParameterMapping parameterMapping : transformation.getMappings()) { if (parameterMapping.getOutParameterPropertyName() != null) { @@ -368,7 +368,7 @@ private Map getFlattenedBodyParameterExampleValue(ProxyMethodExa } public Set getImports() { - return new HashSet<>(this.imports); + return new LinkedHashSet<>(this.imports); } public void writeClientMethodInvocation(JavaBlock javaBlock, boolean isTestCode) { @@ -376,7 +376,7 @@ public void writeClientMethodInvocation(JavaBlock javaBlock, boolean isTestCode) } public Set getHelperFeatures() { - return new HashSet<>(nodeVisitor.getHelperFeatures()); + return new LinkedHashSet<>(nodeVisitor.getHelperFeatures()); } public void writeAssertion(JavaBlock methodBlock) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ModelExampleWriter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ModelExampleWriter.java index 894f120e671..21f49c20fe4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ModelExampleWriter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ModelExampleWriter.java @@ -32,8 +32,8 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -46,7 +46,7 @@ public class ModelExampleWriter { private static final Logger LOGGER = new PluginLogger(Javagen.getPluginInstance(), ModelExampleWriter.class); - private final Set imports = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); private final Consumer assertionWriter; private final ExampleNodeModelInitializationVisitor modelInitializationVisitor @@ -85,7 +85,7 @@ public String getModelInitializationCode() { public static void writeMapOfMethod(JavaClass classBlock) { classBlock.lineComment("Use \"Map.of\" if available"); classBlock.annotation("SuppressWarnings(\"unchecked\")"); - classBlock.method(JavaVisibility.Private, Collections.singletonList(JavaModifier.Static), + classBlock.method(JavaVisibility.Private, List.of(JavaModifier.Static), " Map mapOf(Object... inputs)", methodBlock -> { methodBlock.line("Map map = new HashMap<>();"); methodBlock.line("for (int i = 0; i < inputs.length; i += 2) {"); @@ -101,7 +101,7 @@ public static void writeMapOfMethod(JavaClass classBlock) { public static class ExampleNodeAssertionVisitor { - private final Set imports = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); private final List assertions = new ArrayList<>(); @@ -164,8 +164,8 @@ public List getAssertions() { public static class ExampleNodeModelInitializationVisitor { - protected final Set imports = new HashSet<>(); - protected final Set helperFeatures = new HashSet<>(); + protected final Set imports = new LinkedHashSet<>(); + protected final Set helperFeatures = new LinkedHashSet<>(); /** * Extension to write code for deserialize JSON String to Object. @@ -295,7 +295,7 @@ public String accept(ExampleNode node) { = Stream.concat(requiredParentProperties.stream(), requiredProperties.stream()) .map(ModelProperty::ofClientModelProperty) .collect(Collectors.toList()); - Map ctorPosition = new HashMap<>(); + Map ctorPosition = new LinkedHashMap<>(); for (int i = 0; i < properties.size(); ++i) { ctorPosition.put(properties.get(i), i); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java index 90e59f1dd47..9e6b72ec301 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java @@ -28,7 +28,7 @@ import com.microsoft.typespec.http.client.generator.core.util.WireTypeClientTypeConverter; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -61,7 +61,7 @@ public ProtocolExampleWriter(ProtocolExample protocolExample) { = new ClientInitializationExampleWriter(syncClient, method, proxyMethodExample, serviceClient); // import - this.imports = new HashSet<>(); + this.imports = new LinkedHashSet<>(); imports.addAll(this.clientInitializationExampleWriter.getImports()); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/prototype/MethodTemplate.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/prototype/MethodTemplate.java index 5f3e68b6345..76c9db9928d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/prototype/MethodTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/prototype/MethodTemplate.java @@ -11,7 +11,7 @@ import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaVisibility; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; import java.util.Set; @@ -71,7 +71,7 @@ public static Builder builder() { } public static final class Builder { - private final Set imports = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); private JavaVisibility visibility = JavaVisibility.Public; private final List modifiers = new ArrayList<>(); private String methodSignature; diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ClientModelUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ClientModelUtil.java index 6cb24165ee0..80cd040e55b 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ClientModelUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ClientModelUtil.java @@ -34,8 +34,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -98,7 +98,7 @@ public static void getAsyncSyncClients(Client client, ServiceClient serviceClien .filter(og -> CoreUtils.isNullOrEmpty(og.getLanguage().getJava().getName())) // no resource group .findAny() .map(og -> getConvenienceMethods(serviceClient::getClientMethods, og)) - .orElse(Collections.emptyList()); + .orElse(List.of()); if (JavaSettings.getInstance().isAzureV1()) { builder.convenienceMethods(convenienceMethods); } @@ -133,7 +133,7 @@ public static void getAsyncSyncClients(Client client, ServiceClient serviceClien .filter(og -> methodGroupClient.getClassBaseName().equals(og.getLanguage().getJava().getName())) .findAny() .map(og -> getConvenienceMethods(methodGroupClient::getClientMethods, og)) - .orElse(Collections.emptyList()); + .orElse(List.of()); if (JavaSettings.getInstance().isAzureV1()) { builder.convenienceMethods(convenienceMethods); } @@ -366,9 +366,9 @@ public static List getApiVersions(CodeModel codeModel) { if (versions == null) { String version = getFirstApiVersionFromOperation(codeModel); if (version != null) { - versions = Collections.singletonList(version); + versions = List.of(version); } else { - versions = Collections.emptyList(); + versions = List.of(); } } return versions; @@ -410,7 +410,7 @@ public static String clientNameToAsyncClientName(String clientName) { */ public static List splitFlattenedSerializedName(String serializedName) { if (serializedName == null) { - return Collections.emptyList(); + return List.of(); } String[] values = SPLIT_FLATTEN_PROPERTY_PATTERN.split(serializedName); @@ -764,7 +764,7 @@ public static ClientModel getRootParent(ClientModel model) { public static Set getExternalPackageNamesUsedInClient(List models, CodeModel codeModel) { // models Set externalPackageNames = models == null - ? new HashSet<>() + ? new LinkedHashSet<>() : models.stream() .filter(m -> m.getImplementationDetails() != null && m.getImplementationDetails().getUsages() != null diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/MethodUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/MethodUtil.java index c68d2c70517..0329008a3a4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/MethodUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/MethodUtil.java @@ -32,7 +32,7 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.EnumSet; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -222,7 +222,7 @@ public static Parameter createContentTypeParameter(Request request, Operation op * @return true if the requests have different content types, otherwise return false */ public static int getContentTypeCount(List requests) { - Set mediaTypes = new HashSet<>(); + Set mediaTypes = new LinkedHashSet<>(); for (Request request : requests) { if (!CoreUtils.isNullOrEmpty(request.getProtocol().getHttp().getMediaTypes())) { mediaTypes.addAll(request.getProtocol().getHttp().getMediaTypes()); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelExampleUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelExampleUtil.java index bb2d8da54e0..c80d775f812 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelExampleUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelExampleUtil.java @@ -101,8 +101,7 @@ public static ExampleNode parseNode(IType type, IType wireType, Object objectVal // redact possible credential if (elementType == ClassType.STRING && entry.getValue() instanceof String) { - value = ModelTestCaseUtil.redactStringValue(Collections.singletonList(entry.getKey()), - (String) value); + value = ModelTestCaseUtil.redactStringValue(List.of(entry.getKey()), (String) value); } ExampleNode childNode = parseNode(elementType, value); @@ -122,7 +121,7 @@ public static ExampleNode parseNode(IType type, IType wireType, Object objectVal if (model.isPolymorphic()) { // polymorphic, need to get the correct subclass from discriminator String serializedName = model.getPolymorphicDiscriminatorName(); - List jsonPropertyNames = Collections.singletonList(serializedName); + List jsonPropertyNames = List.of(serializedName); if (model.getNeedsFlatten()) { jsonPropertyNames = ClientModelUtil.splitFlattenedSerializedName(serializedName); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelTestCaseUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelTestCaseUtil.java index cc4cbe0e432..1948fbe5ca5 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelTestCaseUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/ModelTestCaseUtil.java @@ -19,7 +19,6 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -232,7 +231,7 @@ private static void addForProperty(Map jsonObject, String serial if (modelNeedsFlatten) { serializedNames = ClientModelUtil.splitFlattenedSerializedName(serializedName); } else { - serializedNames = Collections.singletonList(serializedName); + serializedNames = List.of(serializedName); } addToJsonObject(jsonObject, serializedNames, value); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/SchemaUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/SchemaUtil.java index e64314fb97c..532902ec99d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/SchemaUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/SchemaUtil.java @@ -22,7 +22,6 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ListType; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.PrimitiveType; import io.clientcore.core.utils.CoreUtils; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -302,7 +301,7 @@ public static ClassType mapExternalModel(ObjectSchema compositeType) { */ public static Set mapSchemaContext(Set schemaContexts) { if (schemaContexts == null) { - return Collections.emptySet(); + return Set.of(); } return schemaContexts.stream().map(ImplementationDetails.Usage::fromSchemaContext).collect(Collectors.toSet()); } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/TemplateUtil.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/TemplateUtil.java index 46ef43c0ebe..bd394a7e20d 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/TemplateUtil.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/TemplateUtil.java @@ -28,7 +28,7 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.Supplier; @@ -134,7 +134,7 @@ public static void writeClientMethodsAndHelpers(JavaClass classBlock, List - Set typeReferenceStaticClasses = new HashSet<>(); + Set typeReferenceStaticClasses = new LinkedHashSet<>(); for (ClientMethod clientMethod : clientMethods) { Templates.getClientMethodTemplate().write(clientMethod, classBlock); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ExampleParser.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ExampleParser.java index 5ef974e3ddd..04346d6a33c 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ExampleParser.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ExampleParser.java @@ -46,7 +46,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -80,7 +80,7 @@ public List parseMethodGroup(MethodGroupClient methodGroup) { } }); - Map examples = new HashMap<>(); + Map examples = new LinkedHashMap<>(); methodExamples.forEach(e -> { FluentExample example = getExample(examples, e.getMethodGroup(), e.getClientMethod(), e.getName()); example.getClientMethodExamples().add(e); @@ -113,7 +113,7 @@ public List parseResourceCollection(FluentResourceCollection reso } }); - Map examples = new HashMap<>(); + Map examples = new LinkedHashMap<>(); methodExamples.forEach(e -> { FluentExample example = getExample(examples, e.getResourceCollection(), e.getCollectionMethod(), e.getName()); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMapper.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMapper.java index 2da86fc3d61..7011023632d 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMapper.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMapper.java @@ -30,7 +30,6 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -79,7 +78,7 @@ public FluentClient map(CodeModel codeModel, Client client) { .findFirst(); if (collectionOpt.isPresent()) { FluentResourceCollection collection = collectionOpt.get(); - ResourceParser.parseResourcesCategory(collection, Collections.singletonList(model), + ResourceParser.parseResourcesCategory(collection, List.of(model), FluentStatic.getClient().getModels()); } else { LOGGER.warn("Resource collection '{}' not found in association override '{}' to '{}'.", diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMethodGroupMapper.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMethodGroupMapper.java index fda3ab1c961..734a1ff83fb 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMethodGroupMapper.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentMethodGroupMapper.java @@ -16,7 +16,6 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.TypeConversionUtils; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -35,11 +34,9 @@ public static FluentMethodGroupMapper getInstance() { @Override protected List supportedInterfaces(OperationGroup operationGroup, List clientMethods) { - if (!JavaSettings.getInstance().isFluentLite()) { - return findSupportedInterfaces(operationGroup, clientMethods); - } else { - return Collections.emptyList(); - } + return !JavaSettings.getInstance().isFluentLite() + ? findSupportedInterfaces(operationGroup, clientMethods) + : List.of(); } List findSupportedInterfaces(OperationGroup operationGroup, List clientMethods) { diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentModelMapper.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentModelMapper.java index ec830e6a173..f31e7d4fdd4 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentModelMapper.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentModelMapper.java @@ -6,14 +6,14 @@ import com.microsoft.typespec.http.client.generator.core.mapper.ModelMapper; import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ClassType; import com.microsoft.typespec.http.client.generator.mgmt.model.FluentType; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; public class FluentModelMapper extends ModelMapper { private static final FluentModelMapper INSTANCE = new FluentModelMapper(); - private final Set removedModels = new HashSet<>(); + private final Set removedModels = new LinkedHashSet<>(); public static FluentModelMapper getInstance() { return INSTANCE; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentObjectMapper.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentObjectMapper.java index 89fdd111fef..03d64195c04 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentObjectMapper.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentObjectMapper.java @@ -9,7 +9,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.FluentType; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.Collection; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -55,7 +55,7 @@ protected ClassType mapPredefinedModel(ObjectSchema compositeType) { * @return The types from compositeTypes that need to be added. */ public Set addInnerModels(Collection compositeTypes) { - Set compositeTypesToAdd = new HashSet<>(compositeTypes); + Set compositeTypesToAdd = new LinkedHashSet<>(compositeTypes); compositeTypesToAdd.removeAll(innerModels); innerModels.addAll(compositeTypesToAdd); return compositeTypesToAdd; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentPomMapper.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentPomMapper.java index 5ac5d9d31a2..ac40b2cccc8 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentPomMapper.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentPomMapper.java @@ -9,7 +9,7 @@ import com.microsoft.typespec.http.client.generator.core.model.projectmodel.Project; import com.microsoft.typespec.http.client.generator.mgmt.model.projectmodel.FluentProject; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -25,7 +25,7 @@ public Pom map(FluentProject project) { pom.setServiceName(project.getServiceName() + " Management"); pom.setServiceDescription(project.getServiceDescriptionForPom()); - Set addedDependencyPrefixes = new HashSet<>(); + Set addedDependencyPrefixes = new LinkedHashSet<>(); List dependencyIdentifiers = new ArrayList<>(); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, Project.Dependency.AZURE_CORE, false); addDependencyIdentifier(dependencyIdentifiers, addedDependencyPrefixes, diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/MockTestParser.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/MockTestParser.java index 6c7723c0951..e5a27056234 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/MockTestParser.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/MockTestParser.java @@ -29,7 +29,7 @@ import io.clientcore.core.http.models.HttpMethod; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; @@ -185,7 +185,7 @@ private static ResponseInfo createProxyMethodExampleResponse(ClientMethod client Object firstJsonObjectInPageable = ModelTestCaseUtil.jsonFromType(0, elementType); // put to first element in array - Map jsonMap = new HashMap<>(); + Map jsonMap = new LinkedHashMap<>(); jsonMap.put(clientMethod.getMethodPageDetails().getSerializedItemName(), Collections.singletonList(firstJsonObjectInPageable)); @@ -213,7 +213,7 @@ private static ResponseInfo createProxyMethodExampleResponse(ClientMethod client verificationObjectName = "response"; verificationNode = ModelExampleUtil.parseNode(clientReturnType, jsonObject); } - Map responseObject = new HashMap<>(); + Map responseObject = new LinkedHashMap<>(); responseObject.put("body", jsonObject); return new ResponseInfo(new ProxyMethodExample.Response(statusCode, responseObject), verificationNode, verificationObjectName); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ResourceParser.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ResourceParser.java index 250b89b4d85..507ad2dface 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ResourceParser.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/ResourceParser.java @@ -33,9 +33,8 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -82,15 +81,14 @@ private static void processAdditionalProperties(FluentResourceModel model) { if (model.getCategory() != ModelCategory.IMMUTABLE) { if (FluentUtils.modelHasLocationProperty(model) && !model.hasProperty("region")) { // if resource instance has location property, add region() method - methods.add(MethodTemplate.builder() - .imports(Collections.singletonList(FluentType.REGION.getFullName())) - .comment(commentBlock -> { + methods.add( + MethodTemplate.builder().imports(List.of(FluentType.REGION.getFullName())).comment(commentBlock -> { commentBlock.description("Gets the region of the resource."); commentBlock.methodReturns("the region of the resource."); }) - .methodSignature("Region region()") - .method(methodBlock -> methodBlock.methodReturn("Region.fromName(this.regionName())")) - .build()); + .methodSignature("Region region()") + .method(methodBlock -> methodBlock.methodReturn("Region.fromName(this.regionName())")) + .build()); methods.add(MethodTemplate.builder().comment(commentBlock -> { commentBlock.description("Gets the name of the resource region."); commentBlock.methodReturns("the name of the resource region."); @@ -184,7 +182,7 @@ static List resolveResourceCreate(FluentResourceCollection colle .collect(Collectors.toMap(m -> m.getInterfaceType().toString(), Function.identity())); List supportsCreateList = new ArrayList<>(); - Set foundModels = new HashSet<>(); + Set foundModels = new LinkedHashSet<>(); for (ModelCategory category : categories) { Map modelResourceCreateMap = findResourceCreateForCategory(collection, diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/arm/ResourceClientModel.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/arm/ResourceClientModel.java index 54d84962551..aab9d4ea1b6 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/arm/ResourceClientModel.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/arm/ResourceClientModel.java @@ -9,7 +9,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.MapType; import com.microsoft.typespec.http.client.generator.mgmt.model.ResourceTypeName; import java.util.Arrays; -import java.util.Collections; +import java.util.List; import java.util.Optional; public class ResourceClientModel { @@ -20,7 +20,7 @@ private ResourceClientModel() { private static final ClientModel MODEL_SUB_RESOURCE = new ClientModel.Builder().name(ResourceTypeName.SUB_RESOURCE) .packageName("com.azure.core.management") - .properties(Collections.singletonList(new ClientModelProperty.Builder().name(ResourceTypeName.FIELD_ID) + .properties(List.of(new ClientModelProperty.Builder().name(ResourceTypeName.FIELD_ID) .serializedName(ResourceTypeName.FIELD_ID) .description("Fully qualified resource Id for the resource.") .wireType(ClassType.STRING) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTestCase.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTestCase.java index 13fa85f4f68..1c2a0d22cf8 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTestCase.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTestCase.java @@ -6,13 +6,13 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.examplemodel.ExampleHelperFeature; import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class FluentLiveTestCase { - private final Set helperFeatures = new HashSet<>(); + private final Set helperFeatures = new LinkedHashSet<>(); private final List steps = new ArrayList<>(); private String methodName; private String description; @@ -38,8 +38,8 @@ public List getSteps() { } public static final class Builder { - private Set helperFeatures = new HashSet<>(); - private List steps = new ArrayList<>(); + private final Set helperFeatures = new LinkedHashSet<>(); + private final List steps = new ArrayList<>(); private String methodName; private String description; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTests.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTests.java index a45d30f3b09..475eea8fbd9 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTests.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentLiveTests.java @@ -9,15 +9,15 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class FluentLiveTests { private String className; - private final Set imports = new HashSet<>(); - private final Set helperFeatures = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); + private final Set helperFeatures = new LinkedHashSet<>(); private final List testCases = new ArrayList<>(); private ClassType managerType; private String managerName; @@ -56,8 +56,8 @@ public static Builder newBuilder() { public static final class Builder { private String className; - private final Set imports = new HashSet<>(); - private final Set helperFeatures = new HashSet<>(); + private final Set imports = new LinkedHashSet<>(); + private final Set helperFeatures = new LinkedHashSet<>(); private final List testCases = new ArrayList<>(); private ClassType managerType; private String managerName; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentResourceCollection.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentResourceCollection.java index c9720716832..ab1f60768be 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentResourceCollection.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/FluentResourceCollection.java @@ -21,7 +21,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -153,15 +153,15 @@ public ClassType getImplementationType() { public List getMethodsForTemplate() { List fluentMethods = new ArrayList<>(methods); - Set excludeMethods = new HashSet<>(); - excludeMethods.addAll(this.getResourceCreates() + Set excludeMethods = new LinkedHashSet<>(); + this.getResourceCreates() .stream() .flatMap(rc -> rc.getMethodReferences().stream()) - .collect(Collectors.toSet())); - excludeMethods.addAll(this.getResourceUpdates() + .forEach(excludeMethods::add); + this.getResourceUpdates() .stream() .flatMap(ru -> ru.getMethodReferences().stream()) - .collect(Collectors.toSet())); + .forEach(excludeMethods::add); fluentMethods.removeAll(excludeMethods); return fluentMethods; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/examplemodel/FluentClientMethodExample.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/examplemodel/FluentClientMethodExample.java index a93ed710289..9f953078512 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/examplemodel/FluentClientMethodExample.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/examplemodel/FluentClientMethodExample.java @@ -11,7 +11,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.FluentType; import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.ModelNaming; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; @@ -123,7 +123,7 @@ public String getMethodName() { return clientMethod.getName(); } - private final static Map MANAGER_REFERENCE = new HashMap<>(); + private final static Map MANAGER_REFERENCE = new LinkedHashMap<>(); static { MANAGER_REFERENCE.put("appplatform", "springServices()"); MANAGER_REFERENCE.put("appservice", "webApps()"); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/ResourceOperation.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/ResourceOperation.java index 1c3983adde3..63f018c7f40 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/ResourceOperation.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/ResourceOperation.java @@ -27,8 +27,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -127,7 +127,7 @@ protected List getProperties() { // method parameters private List getParametersByLocation(RequestParameterLocation parameterLocation) { - return getParametersByLocation(new HashSet<>(Collections.singletonList(parameterLocation))); + return getParametersByLocation(new LinkedHashSet<>(List.of(parameterLocation))); } private List getParametersByLocation(Set parameterLocations) { @@ -157,7 +157,7 @@ public List getPathParameters() { public List getMiscParameters() { // header or query return getParametersByLocation( - new HashSet<>(Arrays.asList(RequestParameterLocation.HEADER, RequestParameterLocation.QUERY))).stream() + new LinkedHashSet<>(List.of(RequestParameterLocation.HEADER, RequestParameterLocation.QUERY))).stream() .map(MethodParameter::getClientMethodParameter) .collect(Collectors.toList()); } diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/delete/ResourceDelete.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/delete/ResourceDelete.java index 4e1e2f59d58..653eb698862 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/delete/ResourceDelete.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/delete/ResourceDelete.java @@ -18,7 +18,6 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import org.slf4j.Logger; @@ -36,7 +35,7 @@ public ResourceDelete(FluentResourceModel resourceModel, FluentResourceCollectio @Override public List getFluentMethods() { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/CollectionMethodOperationByIdTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/CollectionMethodOperationByIdTemplate.java index 36b1c5108de..be1a5afed7d 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/CollectionMethodOperationByIdTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/CollectionMethodOperationByIdTemplate.java @@ -24,7 +24,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -44,7 +44,7 @@ public CollectionMethodOperationByIdTemplate(FluentResourceModel model, String n this.name = name; final ResourceLocalVariables localVariables = resourceLocalVariables - .getDeduplicatedLocalVariables(new HashSet<>(Collections.singleton(ModelNaming.METHOD_PARAMETER_NAME_ID))); + .getDeduplicatedLocalVariables(new LinkedHashSet<>(List.of(ModelNaming.METHOD_PARAMETER_NAME_ID))); final boolean removeResponseInReturnType = !includeContextParameter; final IType returnType = getReturnType(collectionMethod.getFluentReturnType(), removeResponseInReturnType); final boolean responseInReturnTypeRemoved @@ -74,7 +74,7 @@ public CollectionMethodOperationByIdTemplate(FluentResourceModel model, String n } // method invocation - Set parametersSet = new HashSet<>(parameters); + Set parametersSet = new LinkedHashSet<>(parameters); List methodParameters = collectionMethod.getInnerClientMethod().getMethodParameters(); String argumentsLine = methodParameters.stream() .map(p -> FluentUtils.getLocalMethodArgument(p, parametersSet, localVariables, model, collectionMethod)) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentActionMethod.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentActionMethod.java index 368916ff739..be2e5f300f4 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentActionMethod.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentActionMethod.java @@ -21,7 +21,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.fluentmodel.ResourceLocalVariables; import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -86,7 +86,7 @@ public FluentActionMethod(FluentResourceModel model, FluentMethodType type, Flue .get(); // method invocation - Set parametersSet = new HashSet<>(parameters); + Set parametersSet = new LinkedHashSet<>(parameters); List methodParameters = method.getMethodInputParameters(); String argumentsLine = methodParameters.stream() .map(p -> FluentUtils.getLocalMethodArgument(p, parametersSet, resourceLocalVariables, model, diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentBaseMethod.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentBaseMethod.java index 59a07de98b3..4e66bb3f026 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentBaseMethod.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/fluentmodel/method/FluentBaseMethod.java @@ -18,7 +18,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.fluentmodel.LocalVariable; import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.fluentmodel.ResourceLocalVariables; import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -65,7 +65,7 @@ public FluentBaseMethod(FluentResourceModel model, FluentMethodType type, String .get(); // method invocation - Set parametersSet = new HashSet<>(parameters); + Set parametersSet = new LinkedHashSet<>(parameters); List methodParameters = collectionMethod.getInnerClientMethod().getMethodInputParameters(); String argumentsLine = methodParameters.stream() diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTemplate.java index 88d919d79c2..7385ad766a8 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTemplate.java @@ -12,7 +12,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.ModelNaming; import com.microsoft.typespec.http.client.generator.mgmt.util.TypeConversionUtils; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; // Implementation method template for simple return type @@ -22,7 +22,7 @@ public class CollectionMethodTemplate implements ImmutableMethod { private final MethodTemplate implementationMethodTemplate; public CollectionMethodTemplate(FluentCollectionMethod fluentMethod, IType innerType) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); fluentMethod.addImportsTo(imports, false); // Type inner = ... innerType.addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTypeConversionTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTypeConversionTemplate.java index 4178b91b55e..d921125f1c9 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTypeConversionTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/CollectionMethodTypeConversionTemplate.java @@ -13,7 +13,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import com.microsoft.typespec.http.client.generator.mgmt.util.TypeConversionUtils; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; import java.util.stream.Collectors; @@ -26,7 +26,7 @@ public class CollectionMethodTypeConversionTemplate implements ImmutableMethod { private final MethodTemplate conversionMethodTemplate; public CollectionMethodTypeConversionTemplate(FluentCollectionMethod fluentMethod, IType innerType) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); fluentMethod.addImportsTo(imports, false); // Type inner = ... innerType.addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTemplate.java index 953afbb3fd0..7d669101797 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTemplate.java @@ -11,7 +11,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.ModelNaming; import com.microsoft.typespec.http.client.generator.mgmt.util.TypeConversionUtils; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; // Implementation method template for simple property @@ -21,7 +21,7 @@ public class PropertyTemplate implements ImmutableMethod { private final MethodTemplate implementationMethodTemplate; public PropertyTemplate(FluentModelProperty fluentProperty, ModelProperty property) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); fluentProperty.getFluentType().addImportsTo(imports, false); if (property.getClientType() instanceof ListType || property.getClientType() instanceof MapType) { // Type inner = ... diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTypeConversionTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTypeConversionTemplate.java index 92d981430c1..bb90445c675 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTypeConversionTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/clientmodel/immutablemodel/PropertyTypeConversionTemplate.java @@ -11,7 +11,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.ModelNaming; import com.microsoft.typespec.http.client.generator.mgmt.util.TypeConversionUtils; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; import java.util.stream.Collectors; @@ -28,7 +28,7 @@ public class PropertyTypeConversionTemplate implements ImmutableMethod { private final MethodTemplate conversionMethodTemplate; public PropertyTypeConversionTemplate(FluentModelProperty fluentProperty, ModelProperty property) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); fluentProperty.getFluentType().addImportsTo(imports, false); // Type inner = ... property.getClientType().addImportsTo(imports, false); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentManagerTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentManagerTemplate.java index 7a6eb8337fa..5694ed1db9a 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentManagerTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentManagerTemplate.java @@ -20,7 +20,7 @@ import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -69,7 +69,7 @@ public void write(FluentManager manager, FluentProject project, JavaFile javaFil String managerName = manager.getType().getName(); - Set imports = new HashSet<>(List.of( + Set imports = new LinkedHashSet<>(List.of( // java Objects.class.getName(), Duration.class.getName(), ChronoUnit.class.getName(), List.class.getName(), ArrayList.class.getName(), Collectors.class.getName(), Map.class.getName(), diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentMethodMockTestTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentMethodMockTestTemplate.java index fac5f02f314..e4339797531 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentMethodMockTestTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentMethodMockTestTemplate.java @@ -22,7 +22,7 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -52,7 +52,7 @@ public static FluentMethodMockTestTemplate getInstance() { @Override public void write(ClientMethodInfo info, JavaFile javaFile) { Set imports - = new HashSet<>(List.of(ClassType.ACCESS_TOKEN.getFullName(), ClassType.HTTP_CLIENT.getFullName(), + = new LinkedHashSet<>(List.of(ClassType.ACCESS_TOKEN.getFullName(), ClassType.HTTP_CLIENT.getFullName(), ClassType.HTTP_HEADERS.getFullName(), ClassType.HTTP_REQUEST.getFullName(), ClassType.HTTP_RESPONSE.getFullName(), "com.azure.core.test.http.MockHttpResponse", ClassType.AZURE_CLOUD.getFullName(), FluentType.AZURE_PROFILE.getFullName(), diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentProxyTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentProxyTemplate.java index f1730d26faf..14485a255b7 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentProxyTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentProxyTemplate.java @@ -8,7 +8,7 @@ import com.microsoft.typespec.http.client.generator.core.model.clientmodel.ProxyMethodParameter; import com.microsoft.typespec.http.client.generator.core.model.javamodel.JavaInterface; import com.microsoft.typespec.http.client.generator.core.template.ProxyTemplate; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; import java.util.Set; @@ -24,7 +24,7 @@ public static FluentProxyTemplate getInstance() { @Override protected void writeProxyMethodHeaders(ProxyMethod restAPIMethod, JavaInterface interfaceBlock) { - Map headers = new HashMap<>(); + Map headers = new LinkedHashMap<>(); headers.put("Content-Type", restAPIMethod.getRequestContentType()); headers.put("Accept", String.join(",", restAPIMethod.getResponseContentTypes())); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionImplementationTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionImplementationTemplate.java index 76ee76bcae3..923eddfd880 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionImplementationTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionImplementationTemplate.java @@ -14,7 +14,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.fluentmodel.method.FluentMethod; import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -32,7 +32,7 @@ public static FluentResourceCollectionImplementationTemplate getInstance() { public void write(FluentResourceCollection collection, JavaFile javaFile) { ClassType managerType = FluentStatic.getFluentManager().getType(); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); // ClientLogger ClassType.CLIENT_LOGGER.addImportsTo(imports, false); /* diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionInterfaceTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionInterfaceTemplate.java index cee7e2b9770..0422537301a 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionInterfaceTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceCollectionInterfaceTemplate.java @@ -8,7 +8,7 @@ import com.microsoft.typespec.http.client.generator.core.template.IJavaTemplate; import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.FluentResourceCollection; import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.fluentmodel.method.FluentDefineMethod; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; public class FluentResourceCollectionInterfaceTemplate implements IJavaTemplate { @@ -22,7 +22,7 @@ public static FluentResourceCollectionInterfaceTemplate getInstance() { @Override public void write(FluentResourceCollection collection, JavaFile javaFile) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); collection.addImportsTo(imports, false); collection.getResourceCreates().forEach(rc -> rc.getDefineMethod().addImportsTo(imports, false)); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelImplementationTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelImplementationTemplate.java index 95a0b1a5c80..0c1ea822b0c 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelImplementationTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelImplementationTemplate.java @@ -16,7 +16,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.immutablemodel.ImmutableMethod; import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -37,7 +37,7 @@ public void write(FluentResourceModel model, JavaFile javaFile) { model.getProperties().forEach(p -> methodTemplates.add(p.getImplementationMethodTemplate())); methodTemplates.addAll(model.getAdditionalMethods()); - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); /* * use full name for FooManager, to avoid naming conflict * // manager diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelInterfaceTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelInterfaceTemplate.java index 0b5c05a1844..85b426421a7 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelInterfaceTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/FluentResourceModelInterfaceTemplate.java @@ -7,7 +7,7 @@ import com.microsoft.typespec.http.client.generator.core.template.IJavaTemplate; import com.microsoft.typespec.http.client.generator.mgmt.model.arm.ModelCategory; import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.FluentResourceModel; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; public class FluentResourceModelInterfaceTemplate implements IJavaTemplate { @@ -25,7 +25,7 @@ public static FluentResourceModelInterfaceTemplate getInstance() { @Override public void write(FluentResourceModel model, JavaFile javaFile) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); // imports.add(Immutable.class.getName()); model.addImportsTo(imports, false); javaFile.declareImport(imports); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/ResourceManagerUtilsTemplate.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/ResourceManagerUtilsTemplate.java index b0c97ec190e..debdb3f795b 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/ResourceManagerUtilsTemplate.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/template/ResourceManagerUtilsTemplate.java @@ -14,8 +14,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.function.Function; @@ -35,7 +35,7 @@ public static ResourceManagerUtilsTemplate getInstance() { MethodTemplate getValueFromIdByNameMethod = MethodTemplate.builder() .imports(List.of(Arrays.class.getName(), Iterator.class.getName())) .visibility(JavaVisibility.PackagePrivate) - .modifiers(Collections.singletonList(JavaModifier.Static)) + .modifiers(List.of(JavaModifier.Static)) .methodSignature("String getValueFromIdByName(String id, String name)") .method( block -> block.line(FluentUtils.loadTextFromResource("ResourceManagerUtils_getValueFromIdByName.txt"))) @@ -46,7 +46,7 @@ public static ResourceManagerUtilsTemplate getInstance() { .imports(List.of(Arrays.class.getName(), Iterator.class.getName(), List.class.getName(), ArrayList.class.getName(), ClassType.CORE_UTILS.getFullName(), Collections.class.getName())) .visibility(JavaVisibility.PackagePrivate) - .modifiers(Collections.singletonList(JavaModifier.Static)) + .modifiers(List.of(JavaModifier.Static)) .methodSignature( "String getValueFromIdByParameterName(String id, String pathTemplate, String parameterName)") .method(block -> block @@ -66,12 +66,12 @@ public void write(JavaFile javaFile) { @Override public void write(Void ignored, JavaFile javaFile) { - Set imports = new HashSet<>(); + Set imports = new LinkedHashSet<>(); METHOD_TEMPLATES.forEach(mt -> mt.addImportsTo(imports)); imports.addAll(IMPORTS_UTILS_PAGED_ITERABLE); javaFile.declareImport(imports); - javaFile.classBlock(JavaVisibility.PackagePrivate, Collections.singletonList(JavaModifier.Final), + javaFile.classBlock(JavaVisibility.PackagePrivate, List.of(JavaModifier.Final), ModelNaming.CLASS_RESOURCE_MANAGER_UTILS, classBlock -> { classBlock.constructor(JavaVisibility.Private, ModelNaming.CLASS_RESOURCE_MANAGER_UTILS + "()", constructorBlock -> { diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ErrorTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ErrorTypeNormalization.java index 60e5a3d3184..24d2a5d152a 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ErrorTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ErrorTypeNormalization.java @@ -20,9 +20,6 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -52,9 +49,8 @@ public CodeModel process(CodeModel codeModel) { } private static final Set MANAGEMENT_ERROR_FIELDS - = new HashSet<>(Arrays.asList("code", "message", "target", "details", "additionalInfo")); - private static final Set MANAGEMENT_ERROR_FIELDS_MIN_REQUIRED - = new HashSet<>(Arrays.asList("code", "message")); + = Set.of("code", "message", "target", "details", "additionalInfo"); + private static final Set MANAGEMENT_ERROR_FIELDS_MIN_REQUIRED = Set.of("code", "message"); private static final ObjectSchema DUMMY_ERROR = dummyManagementError(); @@ -130,8 +126,8 @@ private void normalizeErrorType(ObjectSchema error, ObjectSchema errorSchema) { // make it a subclass of ManagementError Relations parents = new Relations(); - parents.setAll(Collections.singletonList(DUMMY_ERROR)); - parents.setImmediate(Collections.singletonList(DUMMY_ERROR)); + parents.setAll(List.of(DUMMY_ERROR)); + parents.setImmediate(List.of(DUMMY_ERROR)); errorSchema.setParents(parents); if (errorSchema != error) { @@ -249,8 +245,8 @@ private void normalizeErrorDetailType(Property details) { case SUBCLASS_MANAGEMENT_ERROR: case GENERIC: Relations parents = new Relations(); - parents.setAll(Collections.singletonList(DUMMY_ERROR)); - parents.setImmediate(Collections.singletonList(DUMMY_ERROR)); + parents.setAll(List.of(DUMMY_ERROR)); + parents.setImmediate(List.of(DUMMY_ERROR)); error.setParents(parents); filterProperties(error); diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/NamingConflictResolver.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/NamingConflictResolver.java index 439d89e0cd8..d1bbda4d72d 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/NamingConflictResolver.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/NamingConflictResolver.java @@ -12,7 +12,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.FluentNamer; import com.microsoft.typespec.http.client.generator.mgmt.util.Constants; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; @@ -25,7 +25,7 @@ public class NamingConflictResolver { public CodeModel process(CodeModel codeModel) { // conform to lowercase, to avoid problem on Windows system, where file name is case-insensitive - Set methodGroupNamesLowerCase = new HashSet<>(); + Set methodGroupNamesLowerCase = new LinkedHashSet<>(); Set objectNamesLowerCase = codeModel.getSchemas() .getObjects() .stream() diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/OperationNameNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/OperationNameNormalization.java index fa8369ac9ab..888cb89aa51 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/OperationNameNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/OperationNameNormalization.java @@ -16,10 +16,9 @@ import com.microsoft.typespec.http.client.generator.mgmt.model.WellKnownMethodName; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import io.clientcore.core.http.models.HttpMethod; -import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -102,10 +101,10 @@ private static void rename(OperationGroup operationGroup, Map re private static Map makeRenamePlan(OperationGroup operationGroup) { final Set candidateWellKnownName - = new HashSet<>(Arrays.asList(WellKnownMethodName.LIST, WellKnownMethodName.LIST_BY_RESOURCE_GROUP, + = new LinkedHashSet<>(List.of(WellKnownMethodName.LIST, WellKnownMethodName.LIST_BY_RESOURCE_GROUP, WellKnownMethodName.GET_BY_RESOURCE_GROUP, WellKnownMethodName.DELETE)); - Map renamePlan = new HashMap<>(); + Map renamePlan = new LinkedHashMap<>(); for (Operation operation : operationGroup.getOperations()) { String path = operation.getRequests().iterator().next().getProtocol().getHttp().getPath().trim(); 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 fa2e7407a6c..876fc737706 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 @@ -23,8 +23,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Optional; import java.util.Set; @@ -47,7 +47,7 @@ class ResourceTypeNormalization { // lost systemData property. // Hence, we need to have CustomResource processed first. private static final Set LAST_TO_PROCESS_SCHEMA_NAMES - = new HashSet<>(Arrays.asList(ResourceTypeName.PROXY_RESOURCE, ResourceTypeName.PROXY_RESOURCE_AUTO_GENERATED, + = new LinkedHashSet<>(List.of(ResourceTypeName.PROXY_RESOURCE, ResourceTypeName.PROXY_RESOURCE_AUTO_GENERATED, ResourceTypeName.TRACKED_RESOURCE, ResourceTypeName.TRACKED_RESOURCE_AUTO_GENERATED, ResourceTypeName.RESOURCE, ResourceTypeName.RESOURCE_AUTO_GENERATED, ResourceTypeName.AZURE_RESOURCE, ResourceTypeName.AZURE_RESOURCE_AUTO_GENERATED)); @@ -87,15 +87,13 @@ public static ObjectSchema subResourceSchema() { return DUMMY_SUB_RESOURCE; } - private static final Set SUB_RESOURCE_FIELDS = new HashSet<>(Arrays.asList(ResourceTypeName.FIELD_ID)); - private static final Set PROXY_RESOURCE_FIELDS = new HashSet<>( - Arrays.asList(ResourceTypeName.FIELD_ID, ResourceTypeName.FIELD_NAME, ResourceTypeName.FIELD_TYPE)); - private static final Set RESOURCE_FIELDS - = new HashSet<>(Arrays.asList(ResourceTypeName.FIELD_ID, ResourceTypeName.FIELD_NAME, - ResourceTypeName.FIELD_TYPE, ResourceTypeName.FIELD_LOCATION, ResourceTypeName.FIELD_TAGS)); - + private static final Set SUB_RESOURCE_FIELDS = Set.of(ResourceTypeName.FIELD_ID); + private static final Set PROXY_RESOURCE_FIELDS + = Set.of(ResourceTypeName.FIELD_ID, ResourceTypeName.FIELD_NAME, ResourceTypeName.FIELD_TYPE); + private static final Set RESOURCE_FIELDS = Set.of(ResourceTypeName.FIELD_ID, ResourceTypeName.FIELD_NAME, + ResourceTypeName.FIELD_TYPE, ResourceTypeName.FIELD_LOCATION, ResourceTypeName.FIELD_TAGS); private static final Set RESOURCE_EXTRA_FIELDS - = new HashSet<>(Arrays.asList(ResourceTypeName.FIELD_LOCATION, ResourceTypeName.FIELD_TAGS)); + = Set.of(ResourceTypeName.FIELD_LOCATION, ResourceTypeName.FIELD_TAGS); private static final ObjectSchema DUMMY_SUB_RESOURCE = dummyResourceSchema(ResourceTypeName.SUB_RESOURCE); private static final ObjectSchema DUMMY_PROXY_RESOURCE = dummyResourceSchema(ResourceTypeName.PROXY_RESOURCE); @@ -386,7 +384,7 @@ private static void adaptForParentSchema(ObjectSchema compositeType, ObjectSchem */ private static List getDeclaredProperties(ObjectSchema parentType) { return parentType == null - ? Collections.emptyList() + ? List.of() : Stream .concat(parentType.getProperties().stream(), getDeclaredProperties(getObjectParent(parentType).orElse(null)).stream()) diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaCleanup.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaCleanup.java index c66dd3fd88d..5ede1eb8a6f 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaCleanup.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaCleanup.java @@ -17,7 +17,7 @@ import com.microsoft.typespec.http.client.generator.mgmt.FluentNamer; import com.microsoft.typespec.http.client.generator.mgmt.model.FluentType; import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -68,10 +68,10 @@ private static boolean tryCleanup(CodeModel codeModel, Set javaNamesForP })) .collect(Collectors.toSet()); - Set choicesSchemasNotInUse = new HashSet<>(codeModel.getSchemas().getSealedChoices()); + Set choicesSchemasNotInUse = new LinkedHashSet<>(codeModel.getSchemas().getSealedChoices()); choicesSchemasNotInUse.addAll(codeModel.getSchemas().getChoices()); - Set schemasInUse = new HashSet<>(); + Set schemasInUse = new LinkedHashSet<>(); if (!schemasNotInUse.isEmpty() || !choicesSchemasNotInUse.isEmpty()) { // properties of object Set propertiesOfObject = codeModel.getSchemas().getObjects().stream().filter(o -> { diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaNameNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaNameNormalization.java index eb04e4ebca9..079a8b89f5b 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaNameNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/SchemaNameNormalization.java @@ -23,8 +23,8 @@ import com.microsoft.typespec.http.client.generator.mgmt.util.Utils; import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -41,7 +41,7 @@ public class SchemaNameNormalization { private static final Logger LOGGER = new PluginLogger(FluentNamer.getPluginInstance(), SchemaNameNormalization.class); - private final Map nameOverridePlan = new HashMap<>(); + private final Map nameOverridePlan = new LinkedHashMap<>(); public SchemaNameNormalization(Map nameOverridePlan) { nameOverridePlan.forEach((k, v) -> { @@ -60,7 +60,7 @@ public SchemaNameNormalization(Map nameOverridePlan) { public CodeModel process(CodeModel codeModel) { codeModel = namingOverride(codeModel); - Set names = new HashSet<>(); + Set names = new LinkedHashSet<>(); codeModel = normalizeUnnamedAdditionalProperties(codeModel, names); codeModel = normalizeUnnamedBaseType(codeModel, names); codeModel = normalizeUnnamedObjectTypeInArray(codeModel, names); // after normalizeUnnamedBaseType diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/FluentJavaSettings.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/FluentJavaSettings.java index dc7e8512598..3d6333d476f 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/FluentJavaSettings.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/FluentJavaSettings.java @@ -10,8 +10,8 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -31,18 +31,18 @@ public class FluentJavaSettings { /** * Java class names for extra Inner classes. */ - private final Set javaNamesForAddInner = new HashSet<>(); + private final Set javaNamesForAddInner = new LinkedHashSet<>(); /** * Java class names for excluded Inner classes. */ - private final Set javaNamesForRemoveInner = new HashSet<>(); + private final Set javaNamesForRemoveInner = new LinkedHashSet<>(); - private final Set javaNamesForRemoveModel = new HashSet<>(); + private final Set javaNamesForRemoveModel = new LinkedHashSet<>(); - private final Set javaNamesForPreserveModel = new HashSet<>(); + private final Set javaNamesForPreserveModel = new LinkedHashSet<>(); - private final Set javaNamesForRemoveOperationGroup = new HashSet<>(); + private final Set javaNamesForRemoveOperationGroup = new LinkedHashSet<>(); private final List resourceCollectionAssociations = new ArrayList<>(); @@ -64,11 +64,11 @@ public class FluentJavaSettings { /** * Naming override. */ - private final Map namingOverride = new HashMap<>(); + private final Map namingOverride = new LinkedHashMap<>(); - private final Set javaNamesForPropertyIncludeAlways = new HashSet<>(); + private final Set javaNamesForPropertyIncludeAlways = new LinkedHashSet<>(); - private final Map renameOperationGroup = new HashMap<>(); + private final Map renameOperationGroup = new LinkedHashMap<>(); private String pomFilename = "pom.xml"; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/Utils.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/Utils.java index 4c97e0c2ac4..4fb5a2af473 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/Utils.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/Utils.java @@ -6,13 +6,10 @@ import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Client; import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Metadata; import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Parameter; -import com.microsoft.typespec.http.client.generator.core.extension.model.codemodel.Property; import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.util.SchemaUtil; -import java.lang.reflect.Field; import java.util.Set; import java.util.stream.Collectors; -import org.slf4j.Logger; public class Utils { @@ -26,37 +23,10 @@ public static String getJavaName(Metadata m) { return SchemaUtil.getJavaName(m); } - public static boolean nonFlattenedProperty(Property p) { - return p.getFlattenedNames() == null || p.getFlattenedNames().isEmpty(); - } - public static boolean nonFlattenedParameter(Parameter p) { return !p.isFlattened(); } - public static void shallowCopy(T obj, T newObj, Class clazz, Logger logger) { - while (clazz != Object.class) { - Field[] fields = clazz.getDeclaredFields(); - for (Field f : fields) { - try { - Field t = clazz.getDeclaredField(f.getName()); - - if (t.getType() == f.getType()) { - f.setAccessible(true); - t.setAccessible(true); - t.set(newObj, f.get(obj)); - } - } catch (NoSuchFieldException ex) { - // skip it - } catch (IllegalAccessException ex) { - logger.error("Failed to copy field '{}'", f.getName()); - } - } - - clazz = clazz.getSuperclass(); - } - } - public static String getNameForUngroupedOperations(Client client, FluentJavaSettings settings) { String nameForUngroupOperations = null; if (settings.getNameForUngroupedOperations().isPresent()) { diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/JavaSettingsAccessor.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/JavaSettingsAccessor.java index e92a8a61425..9d7565681a4 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/JavaSettingsAccessor.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/JavaSettingsAccessor.java @@ -5,18 +5,10 @@ import com.microsoft.typespec.http.client.generator.core.extension.plugin.JavaSettings; import com.microsoft.typespec.http.client.generator.core.extension.plugin.NewPlugin; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; public class JavaSettingsAccessor { public static void setHost(NewPlugin host) { - try { - Method setHost = JavaSettings.class.getDeclaredMethod("setHost", NewPlugin.class); - setHost.setAccessible(true); - setHost.invoke(null, host); - } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { - e.printStackTrace(); - } + JavaSettings.setHost(host); } } diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/Main.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/Main.java index 63892116767..c3abc2d89f1 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/Main.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/Main.java @@ -30,7 +30,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -200,7 +200,7 @@ private static void handleDPG(CodeModel codeModel, EmitterOptions emitterOptions */ private static void deleteGeneratedJavaFiles(String outputDir, List javaFiles, JavaSettings settings, String suffix) { - Set filesToDelete = new HashSet<>(); + Set filesToDelete = new LinkedHashSet<>(); // clean up source code, based on metadata String metadataFilename = "src/main/resources/META-INF/" diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java index b3b46c3aed9..8c0d86d57be 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java @@ -33,7 +33,7 @@ import java.io.OutputStream; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -154,7 +154,7 @@ public void writeFile(String fileName, String content, List sourceMap) { LOGGER.info("Write file: {}", outputFile.toAbsolutePath()); } - private static final Map SETTINGS_MAP = new HashMap<>(); + private static final Map SETTINGS_MAP = new LinkedHashMap<>(); static { SETTINGS_MAP.put("data-plane", true); @@ -171,7 +171,7 @@ public void writeFile(String fileName, String content, List sourceMap) { SETTINGS_MAP.put("enable-sync-stack", true); SETTINGS_MAP.put("enable-page-size", true); - SETTINGS_MAP.put("polling", new HashMap()); + SETTINGS_MAP.put("polling", new LinkedHashMap()); SETTINGS_MAP.put("client-logger", true); SETTINGS_MAP.put("required-fields-as-ctor-args", true); diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/fluent/TypeSpecFluentPlugin.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/fluent/TypeSpecFluentPlugin.java index 34ec481db55..0cae186756b 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/fluent/TypeSpecFluentPlugin.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/fluent/TypeSpecFluentPlugin.java @@ -27,7 +27,7 @@ import io.clientcore.core.utils.IOExceptionCheckedFunction; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -157,7 +157,7 @@ protected FluentMapper getFluentMapper() { return fluentMapper; } - private static final Map SETTINGS_MAP = new HashMap<>(); + private static final Map SETTINGS_MAP = new LinkedHashMap<>(); // from fluentnamer/readme.md static { @@ -179,7 +179,7 @@ protected FluentMapper getFluentMapper() { SETTINGS_MAP.put("sync-methods", "all"); SETTINGS_MAP.put("stream-style-serialization", false); - SETTINGS_MAP.put("polling", new HashMap()); + SETTINGS_MAP.put("polling", new LinkedHashMap()); } @SuppressWarnings("unchecked") diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/mapper/TypeSpecClientMapper.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/mapper/TypeSpecClientMapper.java index 6a85692babc..cb9ddca6e87 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/mapper/TypeSpecClientMapper.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/mapper/TypeSpecClientMapper.java @@ -15,10 +15,10 @@ import io.clientcore.core.utils.CoreUtils; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; public class TypeSpecClientMapper extends ClientMapper { @@ -47,21 +47,14 @@ protected Map processClients(List clients, CodeMo @Override protected List getModelsPackages(List clientModels, List enumTypes, List responseModels) { + Set packages = new LinkedHashSet<>(); - Set packages = clientModels.stream() - .filter(ModelUtil::isGeneratingModel) - .map(ClientModel::getPackage) - .collect(Collectors.toSet()); - - packages.addAll(enumTypes.stream() - .filter(ModelUtil::isGeneratingModel) - .map(EnumType::getPackage) - .collect(Collectors.toSet())); - - packages.addAll(responseModels.stream() + clientModels.stream().filter(ModelUtil::isGeneratingModel).map(ClientModel::getPackage).forEach(packages::add); + enumTypes.stream().filter(ModelUtil::isGeneratingModel).map(EnumType::getPackage).forEach(packages::add); + responseModels.stream() .filter(ModelUtil::isGeneratingModel) .map(ClientResponse::getPackage) - .collect(Collectors.toSet())); + .forEach(packages::add); return new ArrayList<>(packages); } diff --git a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java index 31a21e9ebca..3d0509647a1 100644 --- a/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java +++ b/packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java @@ -13,7 +13,7 @@ import io.clientcore.core.utils.CoreUtils; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -34,7 +34,7 @@ public class EmitterOptions implements JsonSerializable { private Boolean includeApiViewProperties = true; private String packageVersion; private Boolean useObjectForUnknown = false; - private Map polling = new HashMap<>(); + private Map polling = new LinkedHashMap<>(); private String modelsSubpackage; private String apiVersion; private Boolean useRestProxy;