Skip to content

Commit c33c769

Browse files
committed
Ensure FluentClientMethodMapper method creation follow the same coding pattern as ClientMethodMapper, naming consistency for all create-client-methods functions
1 parent 6570829 commit c33c769

File tree

2 files changed

+71
-85
lines changed
  • packages/http-client-java/generator

2 files changed

+71
-85
lines changed

packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMethodMapper.java

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -293,33 +293,36 @@ private List<ClientMethod> createClientMethods(Operation operation, boolean isPr
293293
continue;
294294
}
295295

296-
createLroWithResponseMethods(false, baseMethod, methods, createMethodArgs);
296+
createLroWithResponseClientMethods(false, baseMethod, methods, createMethodArgs);
297297
final boolean createWithResponseSync = JavaSettings.getInstance().isSyncStackEnabled()
298298
&& !proxyMethod.hasParameterOfType(GenericType.FLUX_BYTE_BUFFER);
299299
if (createWithResponseSync) {
300300
if (settings.isFluent()) {
301-
createFluentLroWithResponseSyncMethods(baseMethod, methods, operation, createMethodArgs);
301+
createFluentLroWithResponseSyncClientMethods(baseMethod, methods, operation,
302+
createMethodArgs);
302303
} else {
303-
createLroWithResponseMethods(true, baseMethod, methods, createMethodArgs);
304+
createLroWithResponseClientMethods(true, baseMethod, methods, createMethodArgs);
304305
}
305306
}
306307

307308
if (settings.isFluent()) {
308-
createLroBeginMethods(baseMethod, methods, methodNamer.getLroBeginAsyncMethodName(),
309+
createLroBeginClientMethods(baseMethod, methods, methodNamer.getLroBeginAsyncMethodName(),
309310
methodNamer.getLroBeginMethodName(), createMethodArgs);
310311
this.createAdditionalLroMethods(baseMethod, methods, createMethodArgs);
311312
} else {
312313
final PollingMetadata pollingMetadata = PollingMetadata.create(operation, proxyMethod,
313314
methodsReturnDescription.getSyncReturnType());
314315
if (pollingMetadata != null) {
315316
if (isProtocolMethod) {
316-
createProtocolLroBeginMethods(baseMethod, methods, pollingMetadata, createMethodArgs);
317+
createProtocolLroBeginClientMethods(baseMethod, methods, pollingMetadata,
318+
createMethodArgs);
317319
} else {
318320
final ClientMethod lroBaseMethod = baseMethod.newBuilder()
319321
.methodPollingDetails(pollingMetadata.asMethodPollingDetails())
320322
.build();
321-
createLroBeginMethods(lroBaseMethod, methods, methodNamer.getLroBeginAsyncMethodName(),
322-
methodNamer.getLroBeginMethodName(), createMethodArgs);
323+
createLroBeginClientMethods(lroBaseMethod, methods,
324+
methodNamer.getLroBeginAsyncMethodName(), methodNamer.getLroBeginMethodName(),
325+
createMethodArgs);
323326
}
324327
}
325328
}
@@ -586,7 +589,7 @@ private void createPageStreamingClientMethods(boolean isSync, List<ClientMethod>
586589
addClientMethodWithContext(methods, pagingMethodWithContext, methodWithContextVisibility, isProtocolMethod);
587590
}
588591

589-
private void createLroWithResponseMethods(boolean isSync, ClientMethod baseMethod, List<ClientMethod> methods,
592+
private void createLroWithResponseClientMethods(boolean isSync, ClientMethod baseMethod, List<ClientMethod> methods,
590593
CreateClientMethodArgs createMethodArgs) {
591594

592595
final JavaSettings settings = createMethodArgs.settings;
@@ -635,7 +638,7 @@ private void createLroWithResponseMethods(boolean isSync, ClientMethod baseMetho
635638
addClientMethodWithContext(methods, withResponseMethod, methodWithContextVisibility, isProtocolMethod);
636639
}
637640

638-
private void createFluentLroWithResponseSyncMethods(ClientMethod baseMethod, List<ClientMethod> methods,
641+
private void createFluentLroWithResponseSyncClientMethods(ClientMethod baseMethod, List<ClientMethod> methods,
639642
Operation operation, CreateClientMethodArgs createMethodArgs) {
640643

641644
final JavaSettings settings = createMethodArgs.settings;
@@ -674,7 +677,7 @@ private void createFluentLroWithResponseSyncMethods(ClientMethod baseMethod, Lis
674677
addClientMethodWithContext(methods, withResponseSyncMethod, NOT_VISIBLE, isProtocolMethod);
675678
}
676679

677-
private void createProtocolLroBeginMethods(ClientMethod baseMethod, List<ClientMethod> methods,
680+
private void createProtocolLroBeginClientMethods(ClientMethod baseMethod, List<ClientMethod> methods,
678681
PollingMetadata pollingMetadata, CreateClientMethodArgs createMethodArgs) {
679682

680683
assert createMethodArgs.isProtocolMethod;
@@ -693,23 +696,23 @@ private void createProtocolLroBeginMethods(ClientMethod baseMethod, List<ClientM
693696
.methodPollingDetails(pollingMetadata.asMethodPollingDetails())
694697
.build();
695698

696-
createLroBeginMethods(lroBaseMethod, methods, methodNamer.getLroModelBeginAsyncMethodName(),
699+
createLroBeginClientMethods(lroBaseMethod, methods, methodNamer.getLroModelBeginAsyncMethodName(),
697700
methodNamer.getLroModelBeginMethodName(), createMethodArgs);
698701
}
699702

700703
final ClientMethod lroBaseMethod = baseMethod.newBuilder()
701704
.methodPollingDetails(pollingMetadata.asMethodPollingDetailsForBinaryDataResult())
702705
.build();
703-
createLroBeginMethods(lroBaseMethod, methods, methodNamer.getLroBeginAsyncMethodName(),
706+
createLroBeginClientMethods(lroBaseMethod, methods, methodNamer.getLroBeginAsyncMethodName(),
704707
methodNamer.getLroBeginMethodName(), createMethodArgs);
705708
}
706709

707-
private void createLroBeginMethods(ClientMethod lroBaseMethod, List<ClientMethod> methods, String asyncMethodName,
708-
String syncMethodName, CreateClientMethodArgs createClientMethodArgs) {
710+
private void createLroBeginClientMethods(ClientMethod lroBaseMethod, List<ClientMethod> methods,
711+
String asyncMethodName, String syncMethodName, CreateClientMethodArgs createClientMethodArgs) {
709712

710713
final boolean createAsync = JavaSettings.getInstance().isGenerateAsyncMethods();
711714
if (createAsync) {
712-
createLroBeginMethods(false, lroBaseMethod, methods, asyncMethodName, createClientMethodArgs);
715+
createLroBeginClientMethods(false, lroBaseMethod, methods, asyncMethodName, createClientMethodArgs);
713716
}
714717

715718
if (lroBaseMethod.getProxyMethod().hasParameterOfType(GenericType.FLUX_BYTE_BUFFER)) {
@@ -718,11 +721,11 @@ private void createLroBeginMethods(ClientMethod lroBaseMethod, List<ClientMethod
718721
final boolean createSync
719722
= (JavaSettings.getInstance().isGenerateSyncMethods() || JavaSettings.getInstance().isSyncStackEnabled());
720723
if (createSync) {
721-
createLroBeginMethods(true, lroBaseMethod, methods, syncMethodName, createClientMethodArgs);
724+
createLroBeginClientMethods(true, lroBaseMethod, methods, syncMethodName, createClientMethodArgs);
722725
}
723726
}
724727

725-
private void createLroBeginMethods(boolean isSync, ClientMethod lroBaseMethod, List<ClientMethod> methods,
728+
private void createLroBeginClientMethods(boolean isSync, ClientMethod lroBaseMethod, List<ClientMethod> methods,
726729
String methodName, CreateClientMethodArgs createMethodArgs) {
727730

728731
final boolean isProtocolMethod = createMethodArgs.isProtocolMethod;

packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentClientMethodMapper.java

Lines changed: 51 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -24,74 +24,8 @@ public static FluentClientMethodMapper getInstance() {
2424
@Override
2525
protected void createAdditionalLroMethods(ClientMethod lroBaseMethod, List<ClientMethod> methods,
2626
CreateClientMethodArgs createMethodArgs) {
27-
28-
// Fluent provides simple LRO method variants that wait for LRO to complete and produces the final result.
29-
// Note that these variants does not include '[Operation]WithResponse' style methods returning Response<T>,
30-
// as Response data is not included in an LRO API.
31-
32-
final JavaSettings settings = createMethodArgs.settings;
33-
final boolean isProtocolMethod = createMethodArgs.isProtocolMethod;
34-
final MethodOverloadType defaultOverloadType = createMethodArgs.defaultOverloadType;
35-
final ClientMethodsReturnDescription methodsReturnDescription = createMethodArgs.methodsReturnDescription;
36-
final boolean generateRequiredOnlyParametersOverload = createMethodArgs.generateRequiredOnlyParametersOverload;
37-
final ProxyMethod proxyMethod = lroBaseMethod.getProxyMethod();
38-
39-
// async
40-
//
41-
final ClientMethod lroFinalResultAsyncMethod = lroBaseMethod.newBuilder()
42-
.returnValue(methodsReturnDescription.getReturnValue(ClientMethodType.LongRunningAsync))
43-
.name(proxyMethod.getSimpleAsyncMethodName())
44-
.onlyRequiredParameters(false)
45-
.type(ClientMethodType.LongRunningAsync)
46-
.groupedParameterRequired(false)
47-
.methodVisibility(
48-
methodVisibility(ClientMethodType.LongRunningAsync, defaultOverloadType, false, isProtocolMethod))
49-
.build();
50-
51-
methods.add(lroFinalResultAsyncMethod);
52-
53-
if (generateRequiredOnlyParametersOverload) {
54-
final ClientMethod lroFinalResultAsyncMethodWithRequiredParameters = lroFinalResultAsyncMethod.newBuilder()
55-
.onlyRequiredParameters(true)
56-
.methodVisibility(methodVisibility(ClientMethodType.LongRunningAsync,
57-
MethodOverloadType.OVERLOAD_MINIMUM, false, isProtocolMethod))
58-
.build();
59-
methods.add(lroFinalResultAsyncMethodWithRequiredParameters);
60-
}
61-
62-
final JavaVisibility lroFinalResultAsyncMethodWithContextVisibility
63-
= methodVisibility(ClientMethodType.LongRunningAsync, defaultOverloadType, true, isProtocolMethod);
64-
addClientMethodWithContext(methods, lroFinalResultAsyncMethod, lroFinalResultAsyncMethodWithContextVisibility,
65-
isProtocolMethod);
66-
67-
// sync
68-
//
69-
final ClientMethod lroFinalResultSyncMethod = lroBaseMethod.newBuilder()
70-
.returnValue(methodsReturnDescription.getReturnValue(ClientMethodType.LongRunningSync))
71-
.name(proxyMethod.getName())
72-
.onlyRequiredParameters(false)
73-
.type(ClientMethodType.LongRunningSync)
74-
.groupedParameterRequired(false)
75-
.onlyRequiredParameters(true)
76-
.methodVisibility(
77-
methodVisibility(ClientMethodType.LongRunningSync, defaultOverloadType, false, isProtocolMethod))
78-
.build();
79-
80-
methods.add(lroFinalResultSyncMethod);
81-
82-
if (generateRequiredOnlyParametersOverload) {
83-
final ClientMethod lroFinalResultSyncMethodWithRequiredParameters = lroFinalResultSyncMethod.newBuilder()
84-
.onlyRequiredParameters(true)
85-
.methodVisibility(methodVisibility(ClientMethodType.LongRunningSync,
86-
MethodOverloadType.OVERLOAD_MINIMUM, false, isProtocolMethod))
87-
.build();
88-
methods.add(lroFinalResultSyncMethodWithRequiredParameters);
89-
}
90-
91-
final JavaVisibility lroFinalResultSyncMethodWithContextVisibility
92-
= methodVisibility(ClientMethodType.LongRunningSync, defaultOverloadType, true, isProtocolMethod);
93-
addClientMethodWithContext(methods, lroFinalResultSyncMethod, lroFinalResultSyncMethodWithContextVisibility,
94-
isProtocolMethod);
27+
createLroGetFinalResultClientMethods(false, lroBaseMethod, methods, createMethodArgs);
28+
createLroGetFinalResultClientMethods(true, lroBaseMethod, methods, createMethodArgs);
9529
}
9630

9731
@Override
@@ -161,4 +95,53 @@ protected JavaVisibility methodVisibility(ClientMethodType methodType, MethodOve
16195
}
16296
return visibility;
16397
}
98+
99+
private void createLroGetFinalResultClientMethods(boolean isSync, ClientMethod baseMethod, List<ClientMethod> methods,
100+
CreateClientMethodArgs createMethodArgs) {
101+
// Fluent provides simple LRO method variants that wait for LRO to complete and produces the final result.
102+
// Note that these variants does not include '[Operation]WithResponse' style methods returning Response<T>,
103+
// as Response data is not included in an LRO API.
104+
105+
final boolean isProtocolMethod = createMethodArgs.isProtocolMethod;
106+
final MethodOverloadType defaultOverloadType = createMethodArgs.defaultOverloadType;
107+
final ClientMethodsReturnDescription methodsReturnDescription = createMethodArgs.methodsReturnDescription;
108+
final boolean generateRequiredOnlyParametersOverload = createMethodArgs.generateRequiredOnlyParametersOverload;
109+
final ProxyMethod proxyMethod = baseMethod.getProxyMethod();
110+
111+
final String methodName;
112+
final ClientMethodType clientMethodType;
113+
if (isSync) {
114+
methodName = proxyMethod.getName();
115+
clientMethodType = ClientMethodType.LongRunningSync;
116+
} else {
117+
methodName = proxyMethod.getSimpleAsyncMethodName();
118+
clientMethodType = ClientMethodType.LongRunningAsync;
119+
}
120+
final JavaVisibility methodVisibility
121+
= methodVisibility(clientMethodType, defaultOverloadType, false, isProtocolMethod);
122+
final JavaVisibility methodWithRequiredOnlyParametersVisibility
123+
= methodVisibility(clientMethodType, MethodOverloadType.OVERLOAD_MINIMUM, false, isProtocolMethod);
124+
final JavaVisibility methodWithContextVisibility
125+
= methodVisibility(clientMethodType, defaultOverloadType, true, isProtocolMethod);
126+
127+
final ClientMethod lroGetFinalResultMethod = baseMethod.newBuilder()
128+
.returnValue(methodsReturnDescription.getReturnValue(clientMethodType))
129+
.name(methodName)
130+
.onlyRequiredParameters(false)
131+
.type(clientMethodType)
132+
.groupedParameterRequired(false)
133+
.methodVisibility(methodVisibility)
134+
.build();
135+
methods.add(lroGetFinalResultMethod);
136+
137+
if (generateRequiredOnlyParametersOverload) {
138+
final ClientMethod lroGetFinalResultMethodWithRequiredOnlyParameters = lroGetFinalResultMethod.newBuilder()
139+
.onlyRequiredParameters(true)
140+
.methodVisibility(methodWithRequiredOnlyParametersVisibility)
141+
.build();
142+
methods.add(lroGetFinalResultMethodWithRequiredOnlyParameters);
143+
}
144+
145+
addClientMethodWithContext(methods, lroGetFinalResultMethod, methodWithContextVisibility, isProtocolMethod);
146+
}
164147
}

0 commit comments

Comments
 (0)