Skip to content

Commit f1f1728

Browse files
authored
Fix externalmodels (Azure#37512)
* Fix externalmodes RouerValue Duration * Remove @generated * Remove @generated annotations * Remove @generated * Fix build * Remove @generated; Fix method to use BinaryData * Add Proxies * Add ConstructorProxy classes * Fix tests * Fix build * Remove unused import * Fix linting errors
1 parent 42e4ce3 commit f1f1728

File tree

59 files changed

+2079
-179
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2079
-179
lines changed

sdk/communication/azure-communication-jobrouter/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "java",
44
"TagPrefix": "java/communication/azure-communication-jobrouter",
5-
"Tag": "java/communication/azure-communication-jobrouter_ff2a44a5d4"
5+
"Tag": "java/communication/azure-communication-jobrouter_7760fda1a6"
66
}

sdk/communication/azure-communication-jobrouter/src/main/java/com/azure/communication/jobrouter/JobRouterAdministrationAsyncClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.azure.communication.jobrouter.implementation.converters.QueueAdapter;
1111
import com.azure.communication.jobrouter.implementation.models.ClassificationPolicyInternal;
1212
import com.azure.communication.jobrouter.implementation.models.DistributionPolicyInternal;
13+
import com.azure.communication.jobrouter.implementation.models.ExceptionPolicyInternal;
1314
import com.azure.communication.jobrouter.implementation.models.RouterQueueInternal;
1415
import com.azure.communication.jobrouter.models.ClassificationPolicy;
1516
import com.azure.communication.jobrouter.models.CreateClassificationPolicyOptions;
@@ -741,7 +742,7 @@ public Mono<Response<BinaryData>> updateExceptionPolicyWithResponse(
741742
@ServiceMethod(returns = ReturnType.SINGLE)
742743
public Mono<Response<BinaryData>> createExceptionPolicyWithResponse(
743744
CreateExceptionPolicyOptions createExceptionPolicyOptions, RequestOptions requestOptions) {
744-
ExceptionPolicy exceptionPolicy =
745+
ExceptionPolicyInternal exceptionPolicy =
745746
ExceptionPolicyAdapter.convertCreateOptionsToExceptionPolicy(createExceptionPolicyOptions);
746747
return upsertExceptionPolicyWithResponse(
747748
createExceptionPolicyOptions.getExceptionPolicyId(),

sdk/communication/azure-communication-jobrouter/src/main/java/com/azure/communication/jobrouter/JobRouterAdministrationClient.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
package com.azure.communication.jobrouter;
55

66
import com.azure.communication.jobrouter.implementation.JobRouterAdministrationClientImpl;
7+
import com.azure.communication.jobrouter.implementation.accesshelpers.ClassificationPolicyConstructorProxy;
8+
import com.azure.communication.jobrouter.implementation.accesshelpers.RouterQueueConstructorProxy;
79
import com.azure.communication.jobrouter.implementation.converters.ClassificationPolicyAdapter;
810
import com.azure.communication.jobrouter.implementation.converters.DistributionPolicyAdapter;
911
import com.azure.communication.jobrouter.implementation.converters.ExceptionPolicyAdapter;
1012
import com.azure.communication.jobrouter.implementation.converters.QueueAdapter;
1113
import com.azure.communication.jobrouter.implementation.models.ClassificationPolicyInternal;
1214
import com.azure.communication.jobrouter.implementation.models.DistributionPolicyInternal;
15+
import com.azure.communication.jobrouter.implementation.models.ExceptionPolicyInternal;
1316
import com.azure.communication.jobrouter.implementation.models.RouterQueueInternal;
1417
import com.azure.communication.jobrouter.models.ClassificationPolicy;
1518
import com.azure.communication.jobrouter.models.CreateClassificationPolicyOptions;
@@ -30,6 +33,7 @@
3033
import com.azure.core.http.rest.PagedIterable;
3134
import com.azure.core.http.rest.RequestOptions;
3235
import com.azure.core.http.rest.Response;
36+
import com.azure.core.http.rest.SimpleResponse;
3337
import com.azure.core.util.BinaryData;
3438

3539
/** Initializes a new instance of the synchronous JobRouterAdministrationClient type. */
@@ -479,9 +483,10 @@ public Response<BinaryData> createClassificationPolicyWithResponse(
479483
public ClassificationPolicy createClassificationPolicy(
480484
CreateClassificationPolicyOptions createClassificationPolicyOptions) {
481485
RequestOptions requestOptions = new RequestOptions();
482-
return this.createClassificationPolicyWithResponse(createClassificationPolicyOptions, requestOptions)
486+
ClassificationPolicyInternal internal = this.createClassificationPolicyWithResponse(createClassificationPolicyOptions, requestOptions)
483487
.getValue()
484-
.toObject(ClassificationPolicy.class);
488+
.toObject(ClassificationPolicyInternal.class);
489+
return ClassificationPolicyConstructorProxy.create(internal);
485490
}
486491

487492
/**
@@ -742,7 +747,7 @@ public Response<BinaryData> updateExceptionPolicyWithResponse(
742747
@ServiceMethod(returns = ReturnType.SINGLE)
743748
public Response<BinaryData> createExceptionPolicyWithResponse(
744749
CreateExceptionPolicyOptions createExceptionPolicyOptions, RequestOptions requestOptions) {
745-
ExceptionPolicy exceptionPolicy =
750+
ExceptionPolicyInternal exceptionPolicy =
746751
ExceptionPolicyAdapter.convertCreateOptionsToExceptionPolicy(createExceptionPolicyOptions);
747752
return this.serviceClient.upsertExceptionPolicyWithResponse(
748753
createExceptionPolicyOptions.getExceptionPolicyId(),
@@ -974,7 +979,7 @@ Response<BinaryData> upsertQueueWithResponse(String queueId, BinaryData resource
974979
* }</pre>
975980
*
976981
* @param id The Id of this queue.
977-
* @param routerQueue The routerQueue instance.
982+
* @param resource RouterQueue resource.
978983
* @param requestOptions The options to configure the HTTP request before HTTP client sends it.
979984
* @throws HttpResponseException thrown if the request is rejected by server.
980985
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
@@ -984,10 +989,13 @@ Response<BinaryData> upsertQueueWithResponse(String queueId, BinaryData resource
984989
*/
985990
@ServiceMethod(returns = ReturnType.SINGLE)
986991
public Response<BinaryData> updateQueueWithResponse(
987-
String id, RouterQueue routerQueue, RequestOptions requestOptions) {
992+
String id, BinaryData resource, RequestOptions requestOptions) {
993+
RouterQueue routerQueue = BinaryData.fromObject(resource).toObject(RouterQueue.class);
988994
RouterQueueInternal routerQueueInternal = QueueAdapter.convertRouterQueueToRouterQueueInternal(routerQueue);
989-
return this.serviceClient.upsertQueueWithResponse(
995+
Response<BinaryData> response = this.serviceClient.upsertQueueWithResponse(
990996
id, BinaryData.fromObject(routerQueueInternal), requestOptions);
997+
RouterQueueInternal internal = response.getValue().toObject(RouterQueueInternal.class);
998+
return new SimpleResponse<BinaryData>(response.getRequest(), response.getStatusCode(), response.getHeaders(), BinaryData.fromObject(RouterQueueConstructorProxy.create(internal)));
991999
}
9921000

9931001
/**
@@ -1020,7 +1028,9 @@ public Response<BinaryData> createQueueWithResponse(
10201028
@ServiceMethod(returns = ReturnType.SINGLE)
10211029
public RouterQueue createQueue(CreateQueueOptions createQueueOptions) {
10221030
RequestOptions requestOptions = new RequestOptions();
1023-
return this.createQueueWithResponse(createQueueOptions, requestOptions).getValue().toObject(RouterQueue.class);
1031+
BinaryData resource = this.createQueueWithResponse(createQueueOptions, requestOptions).getValue();
1032+
RouterQueueInternal internal = resource.toObject(RouterQueueInternal.class);
1033+
return RouterQueueConstructorProxy.create(internal);
10241034
}
10251035

10261036
/**

sdk/communication/azure-communication-jobrouter/src/main/java/com/azure/communication/jobrouter/JobRouterClient.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package com.azure.communication.jobrouter;
55

66
import com.azure.communication.jobrouter.implementation.JobRouterClientImpl;
7+
import com.azure.communication.jobrouter.implementation.accesshelpers.RouterWorkerConstructorProxy;
78
import com.azure.communication.jobrouter.implementation.converters.JobAdapter;
89
import com.azure.communication.jobrouter.implementation.converters.WorkerAdapter;
910
import com.azure.communication.jobrouter.implementation.models.RouterJobInternal;
@@ -1059,9 +1060,10 @@ public Response<BinaryData> createWorkerWithResponse(
10591060
@ServiceMethod(returns = ReturnType.SINGLE)
10601061
public RouterWorker createWorker(CreateWorkerOptions createWorkerOptions) {
10611062
RequestOptions requestOptions = new RequestOptions();
1062-
return this.createWorkerWithResponse(createWorkerOptions, requestOptions)
1063+
RouterWorkerInternal internal = this.createWorkerWithResponse(createWorkerOptions, requestOptions)
10631064
.getValue()
1064-
.toObject(RouterWorker.class);
1065+
.toObject(RouterWorkerInternal.class);
1066+
return RouterWorkerConstructorProxy.create(internal);
10651067
}
10661068

10671069
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.jobrouter.implementation.accesshelpers;
5+
6+
import com.azure.communication.jobrouter.implementation.models.ClassificationPolicyInternal;
7+
import com.azure.communication.jobrouter.models.ClassificationPolicy;
8+
9+
/**
10+
* Helper class to access private values of {@link ClassificationPolicy} across package boundaries.
11+
*/
12+
public final class ClassificationPolicyConstructorProxy {
13+
14+
private static ClassificationPolicyConstructorAccessor accessor;
15+
16+
private ClassificationPolicyConstructorProxy() { }
17+
18+
/**
19+
* Type defining the methods to set the non-public properties of a {@link ClassificationPolicyConstructorAccessor}
20+
* instance.
21+
*/
22+
public interface ClassificationPolicyConstructorAccessor {
23+
/**
24+
* Creates a new instance of {@link ClassificationPolicy} backed by an internal instance of
25+
* {@link ClassificationPolicy}.
26+
*
27+
* @param internal The internal response.
28+
* @return A new instance of {@link ClassificationPolicy}.
29+
*/
30+
ClassificationPolicy create(ClassificationPolicyInternal internal);
31+
}
32+
33+
/**
34+
* The method called from {@link ClassificationPolicy} to set it's accessor.
35+
*
36+
* @param accessor The accessor.
37+
*/
38+
public static void setAccessor(final ClassificationPolicyConstructorAccessor accessor) {
39+
ClassificationPolicyConstructorProxy.accessor = accessor;
40+
}
41+
42+
/**
43+
* Creates a new instance of {@link ClassificationPolicy} backed by an internal instance of
44+
* {@link ClassificationPolicyInternal}.
45+
*
46+
* @param internal The internal response.
47+
* @return A new instance of {@link ClassificationPolicy}.
48+
*/
49+
public static ClassificationPolicy create(ClassificationPolicyInternal internal) {
50+
// This looks odd but is necessary, it is possible to engage the access helper before anywhere else in the
51+
// application accesses RouterJob which triggers the accessor to be configured. So, if the accessor
52+
// is null this effectively pokes the class to set up the accessor.
53+
if (accessor == null) {
54+
new ClassificationPolicy();
55+
}
56+
57+
assert accessor != null;
58+
return accessor.create(internal);
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.jobrouter.implementation.accesshelpers;
5+
6+
import com.azure.communication.jobrouter.implementation.models.DistributionPolicyInternal;
7+
import com.azure.communication.jobrouter.models.DistributionPolicy;
8+
9+
/**
10+
* Helper class to access private values of {@link DistributionPolicy} across package boundaries.
11+
*/
12+
public final class DistributionPolicyConstructorProxy {
13+
14+
private static DistributionPolicyConstructorAccessor accessor;
15+
16+
private DistributionPolicyConstructorProxy() { }
17+
18+
/**
19+
* Type defining the methods to set the non-public properties of a {@link DistributionPolicyConstructorAccessor}
20+
* instance.
21+
*/
22+
public interface DistributionPolicyConstructorAccessor {
23+
/**
24+
* Creates a new instance of {@link DistributionPolicy} backed by an internal instance of
25+
* {@link DistributionPolicy}.
26+
*
27+
* @param internal The internal response.
28+
* @return A new instance of {@link DistributionPolicy}.
29+
*/
30+
DistributionPolicy create(DistributionPolicyInternal internal);
31+
}
32+
33+
/**
34+
* The method called from {@link DistributionPolicy} to set it's accessor.
35+
*
36+
* @param accessor The accessor.
37+
*/
38+
public static void setAccessor(final DistributionPolicyConstructorAccessor accessor) {
39+
DistributionPolicyConstructorProxy.accessor = accessor;
40+
}
41+
42+
/**
43+
* Creates a new instance of {@link DistributionPolicy} backed by an internal instance of
44+
* {@link DistributionPolicyInternal}.
45+
*
46+
* @param internal The internal response.
47+
* @return A new instance of {@link DistributionPolicy}.
48+
*/
49+
public static DistributionPolicy create(DistributionPolicyInternal internal) {
50+
// This looks odd but is necessary, it is possible to engage the access helper before anywhere else in the
51+
// application accesses RouterJob which triggers the accessor to be configured. So, if the accessor
52+
// is null this effectively pokes the class to set up the accessor.
53+
if (accessor == null) {
54+
new DistributionPolicy();
55+
}
56+
57+
assert accessor != null;
58+
return accessor.create(internal);
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.jobrouter.implementation.accesshelpers;
5+
6+
import com.azure.communication.jobrouter.implementation.models.ExceptionPolicyInternal;
7+
import com.azure.communication.jobrouter.models.ExceptionPolicy;
8+
9+
/**
10+
* Helper class to access private values of {@link ExceptionPolicy} across package boundaries.
11+
*/
12+
public final class ExceptionPolicyConstructorProxy {
13+
14+
private static ExceptionPolicyConstructorAccessor accessor;
15+
16+
private ExceptionPolicyConstructorProxy() { }
17+
18+
/**
19+
* Type defining the methods to set the non-public properties of a {@link ExceptionPolicyConstructorAccessor}
20+
* instance.
21+
*/
22+
public interface ExceptionPolicyConstructorAccessor {
23+
/**
24+
* Creates a new instance of {@link ExceptionPolicy} backed by an internal instance of
25+
* {@link ExceptionPolicy}.
26+
*
27+
* @param internal The internal response.
28+
* @return A new instance of {@link ExceptionPolicy}.
29+
*/
30+
ExceptionPolicy create(ExceptionPolicyInternal internal);
31+
}
32+
33+
/**
34+
* The method called from {@link ExceptionPolicy} to set it's accessor.
35+
*
36+
* @param accessor The accessor.
37+
*/
38+
public static void setAccessor(final ExceptionPolicyConstructorAccessor accessor) {
39+
ExceptionPolicyConstructorProxy.accessor = accessor;
40+
}
41+
42+
/**
43+
* Creates a new instance of {@link ExceptionPolicy} backed by an internal instance of
44+
* {@link ExceptionPolicyInternal}.
45+
*
46+
* @param internal The internal response.
47+
* @return A new instance of {@link ExceptionPolicy}.
48+
*/
49+
public static ExceptionPolicy create(ExceptionPolicyInternal internal) {
50+
// This looks odd but is necessary, it is possible to engage the access helper before anywhere else in the
51+
// application accesses RouterJob which triggers the accessor to be configured. So, if the accessor
52+
// is null this effectively pokes the class to set up the accessor.
53+
if (accessor == null) {
54+
new ExceptionPolicy();
55+
}
56+
57+
assert accessor != null;
58+
return accessor.create(internal);
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.jobrouter.implementation.accesshelpers;
5+
6+
import com.azure.communication.jobrouter.implementation.models.RouterJobInternal;
7+
import com.azure.communication.jobrouter.models.RouterJob;
8+
9+
/**
10+
* Helper class to access private values of {@link RouterJob} across package boundaries.
11+
*/
12+
public final class RouterJobConstructorProxy {
13+
14+
private static RouterJobConstructorAccessor accessor;
15+
16+
private RouterJobConstructorProxy() { }
17+
18+
/**
19+
* Type defining the methods to set the non-public properties of a {@link RouterJobConstructorAccessor}
20+
* instance.
21+
*/
22+
public interface RouterJobConstructorAccessor {
23+
/**
24+
* Creates a new instance of {@link RouterJob} backed by an internal instance of
25+
* {@link RouterJob}.
26+
*
27+
* @param internal The internal response.
28+
* @return A new instance of {@link RouterJob}.
29+
*/
30+
RouterJob create(RouterJobInternal internal);
31+
}
32+
33+
/**
34+
* The method called from {@link RouterJob} to set it's accessor.
35+
*
36+
* @param accessor The accessor.
37+
*/
38+
public static void setAccessor(final RouterJobConstructorAccessor accessor) {
39+
RouterJobConstructorProxy.accessor = accessor;
40+
}
41+
42+
/**
43+
* Creates a new instance of {@link RouterJob} backed by an internal instance of
44+
* {@link RouterJobInternal}.
45+
*
46+
* @param internal The internal response.
47+
* @return A new instance of {@link RouterJob}.
48+
*/
49+
public static RouterJob create(RouterJobInternal internal) {
50+
// This looks odd but is necessary, it is possible to engage the access helper before anywhere else in the
51+
// application accesses RouterJob which triggers the accessor to be configured. So, if the accessor
52+
// is null this effectively pokes the class to set up the accessor.
53+
if (accessor == null) {
54+
new RouterJob();
55+
}
56+
57+
assert accessor != null;
58+
return accessor.create(internal);
59+
}
60+
}

0 commit comments

Comments
 (0)