diff --git a/.chronus/changes/copilot-support-duration-milliseconds-2026-03-05-06-35-00.md b/.chronus/changes/copilot-support-duration-milliseconds-2026-03-05-06-35-00.md new file mode 100644 index 00000000000..d38afaaa52e --- /dev/null +++ b/.chronus/changes/copilot-support-duration-milliseconds-2026-03-05-06-35-00.md @@ -0,0 +1,7 @@ +--- +changeKind: feature +packages: + - "@typespec/http-client-java" +--- + +Support `DurationKnownEncoding.milliseconds` in http-client-java. Duration properties encoded as milliseconds now use `Duration` as the client type, with proper conversion to/from integer or float milliseconds on the wire. diff --git a/packages/http-client-java/emitter/src/common/schemas/time.ts b/packages/http-client-java/emitter/src/common/schemas/time.ts index d893cf444ff..d31935122a5 100644 --- a/packages/http-client-java/emitter/src/common/schemas/time.ts +++ b/packages/http-client-java/emitter/src/common/schemas/time.ts @@ -7,7 +7,12 @@ export interface DurationSchema extends PrimitiveSchema { /** the schema type */ type: SchemaType.Duration; - format: "duration-rfc3339" | "seconds-integer" | "seconds-number"; + format: + | "duration-rfc3339" + | "seconds-integer" + | "seconds-number" + | "milliseconds-integer" + | "milliseconds-number"; } export class DurationSchema extends PrimitiveSchema implements DurationSchema { diff --git a/packages/http-client-java/emitter/src/type-utils.ts b/packages/http-client-java/emitter/src/type-utils.ts index 4289608773a..0ce5e07a444 100644 --- a/packages/http-client-java/emitter/src/type-utils.ts +++ b/packages/http-client-java/emitter/src/type-utils.ts @@ -34,7 +34,7 @@ import { DurationSchema } from "./common/schemas/time.js"; import { SchemaContext } from "./common/schemas/usage.js"; import { getNamespace } from "./utils.js"; -export const DURATION_KNOWN_ENCODING = ["ISO8601", "seconds"]; +export const DURATION_KNOWN_ENCODING = ["ISO8601", "seconds", "milliseconds"]; export const DATETIME_KNOWN_ENCODING = ["rfc3339", "rfc7231", "unixTimestamp"]; export const BYTES_KNOWN_ENCODING = ["base64", "base64url"]; @@ -139,6 +139,16 @@ export function getDurationFormat(type: SdkDurationType): DurationSchema["format `Unrecognized scalar type used by duration encoded as seconds: '${type.kind}'.`, ); } + } else if (type.encode === "milliseconds") { + if (isSdkIntKind(type.wireType.kind)) { + format = "milliseconds-integer"; + } else if (isSdkFloatKind(type.wireType.kind)) { + format = "milliseconds-number"; + } else { + throw new Error( + `Unrecognized scalar type used by duration encoded as milliseconds: '${type.kind}'.`, + ); + } } return format; } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/HeaderClient.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/HeaderClient.java index aff03feded3..6380c9ac961 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/HeaderClient.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/HeaderClient.java @@ -297,7 +297,7 @@ public void float64Seconds(Duration duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestContext requestContext) { + public Response int32MillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32Milliseconds", requestContext, updatedContext -> this.serviceClient.int32MillisecondsWithResponse(duration, updatedContext)); } @@ -312,7 +312,7 @@ public Response int32MillisecondsWithResponse(int duration, RequestContext */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int duration) { + public void int32Milliseconds(Duration duration) { int32MillisecondsWithResponse(duration, RequestContext.none()); } @@ -328,7 +328,7 @@ public void int32Milliseconds(int duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestContext requestContext) { + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32MillisecondsLargerUnit", requestContext, updatedContext -> this.serviceClient.int32MillisecondsLargerUnitWithResponse(duration, updatedContext)); @@ -344,7 +344,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int duration) { + public void int32MillisecondsLargerUnit(Duration duration) { int32MillisecondsLargerUnitWithResponse(duration, RequestContext.none()); } @@ -360,7 +360,7 @@ public void int32MillisecondsLargerUnit(int duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestContext requestContext) { + public Response floatMillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.floatMilliseconds", requestContext, updatedContext -> this.serviceClient.floatMillisecondsWithResponse(duration, updatedContext)); } @@ -375,7 +375,7 @@ public Response floatMillisecondsWithResponse(double duration, RequestCont */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double duration) { + public void floatMilliseconds(Duration duration) { floatMillisecondsWithResponse(duration, RequestContext.none()); } @@ -391,7 +391,7 @@ public void floatMilliseconds(double duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestContext requestContext) { + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.floatMillisecondsLargerUnit", requestContext, updatedContext -> this.serviceClient.floatMillisecondsLargerUnitWithResponse(duration, updatedContext)); @@ -407,7 +407,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double duration) { + public void floatMillisecondsLargerUnit(Duration duration) { floatMillisecondsLargerUnitWithResponse(duration, RequestContext.none()); } @@ -423,7 +423,7 @@ public void floatMillisecondsLargerUnit(double duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestContext requestContext) { + public Response float64MillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.float64Milliseconds", requestContext, updatedContext -> this.serviceClient.float64MillisecondsWithResponse(duration, updatedContext)); } @@ -438,7 +438,7 @@ public Response float64MillisecondsWithResponse(double duration, RequestCo */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double duration) { + public void float64Milliseconds(Duration duration) { float64MillisecondsWithResponse(duration, RequestContext.none()); } @@ -454,7 +454,7 @@ public void float64Milliseconds(double duration) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List duration, RequestContext requestContext) { + public Response int32MillisecondsArrayWithResponse(List duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32MillisecondsArray", requestContext, updatedContext -> this.serviceClient.int32MillisecondsArrayWithResponse(duration, updatedContext)); @@ -470,7 +470,7 @@ public Response int32MillisecondsArrayWithResponse(List duration, */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List duration) { + public void int32MillisecondsArray(List duration) { int32MillisecondsArrayWithResponse(duration, RequestContext.none()); } } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/QueryClient.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/QueryClient.java index 1bbcff5e36d..4ece02607ed 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/QueryClient.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/QueryClient.java @@ -266,7 +266,7 @@ public void float64Seconds(Duration input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestContext requestContext) { + public Response int32MillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32Milliseconds", requestContext, updatedContext -> this.serviceClient.int32MillisecondsWithResponse(input, updatedContext)); } @@ -281,7 +281,7 @@ public Response int32MillisecondsWithResponse(int input, RequestContext re */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int input) { + public void int32Milliseconds(Duration input) { int32MillisecondsWithResponse(input, RequestContext.none()); } @@ -297,7 +297,7 @@ public void int32Milliseconds(int input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestContext requestContext) { + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32MillisecondsLargerUnit", requestContext, updatedContext -> this.serviceClient.int32MillisecondsLargerUnitWithResponse(input, updatedContext)); @@ -313,7 +313,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int input) { + public void int32MillisecondsLargerUnit(Duration input) { int32MillisecondsLargerUnitWithResponse(input, RequestContext.none()); } @@ -329,7 +329,7 @@ public void int32MillisecondsLargerUnit(int input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestContext requestContext) { + public Response floatMillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.floatMilliseconds", requestContext, updatedContext -> this.serviceClient.floatMillisecondsWithResponse(input, updatedContext)); } @@ -344,7 +344,7 @@ public Response floatMillisecondsWithResponse(double input, RequestContext */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double input) { + public void floatMilliseconds(Duration input) { floatMillisecondsWithResponse(input, RequestContext.none()); } @@ -360,7 +360,7 @@ public void floatMilliseconds(double input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestContext requestContext) { + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.floatMillisecondsLargerUnit", requestContext, updatedContext -> this.serviceClient.floatMillisecondsLargerUnitWithResponse(input, updatedContext)); @@ -376,7 +376,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double input) { + public void floatMillisecondsLargerUnit(Duration input) { floatMillisecondsLargerUnitWithResponse(input, RequestContext.none()); } @@ -392,7 +392,7 @@ public void floatMillisecondsLargerUnit(double input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestContext requestContext) { + public Response float64MillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.float64Milliseconds", requestContext, updatedContext -> this.serviceClient.float64MillisecondsWithResponse(input, updatedContext)); } @@ -407,7 +407,7 @@ public Response float64MillisecondsWithResponse(double input, RequestConte */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double input) { + public void float64Milliseconds(Duration input) { float64MillisecondsWithResponse(input, RequestContext.none()); } @@ -454,7 +454,7 @@ public void int32SecondsArray(List input) { */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List input, RequestContext requestContext) { + public Response int32MillisecondsArrayWithResponse(List input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32MillisecondsArray", requestContext, updatedContext -> this.serviceClient.int32MillisecondsArrayWithResponse(input, updatedContext)); @@ -470,7 +470,7 @@ public Response int32MillisecondsArrayWithResponse(List input, Re */ @Metadata(properties = { MetadataProperties.GENERATED }) @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List input) { + public void int32MillisecondsArray(List input) { int32MillisecondsArrayWithResponse(input, RequestContext.none()); } } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/HeadersImpl.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/HeadersImpl.java index ec07d4d7479..aebf57bc18d 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/HeadersImpl.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/HeadersImpl.java @@ -135,7 +135,7 @@ Response float64Seconds(@HostParam("endpoint") String endpoint, @HeaderPar path = "/encode/duration/header/int32-milliseconds", expectedStatusCodes = { 204 }) @UnexpectedResponseExceptionDetail - Response int32Milliseconds(@HostParam("endpoint") String endpoint, @HeaderParam("duration") int duration, + Response int32Milliseconds(@HostParam("endpoint") String endpoint, @HeaderParam("duration") long duration, RequestContext requestContext); @HttpRequestInformation( @@ -144,7 +144,7 @@ Response int32Milliseconds(@HostParam("endpoint") String endpoint, @Header expectedStatusCodes = { 204 }) @UnexpectedResponseExceptionDetail Response int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestContext requestContext); + @HeaderParam("duration") long duration, RequestContext requestContext); @HttpRequestInformation( method = HttpMethod.GET, @@ -366,10 +366,11 @@ public Response float64SecondsWithResponse(Duration duration, RequestConte * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestContext requestContext) { + public Response int32MillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32Milliseconds", requestContext, updatedContext -> { - return service.int32Milliseconds(this.client.getEndpoint(), duration, updatedContext); + long durationConverted = duration.toMillis(); + return service.int32Milliseconds(this.client.getEndpoint(), durationConverted, updatedContext); }); } @@ -384,10 +385,12 @@ public Response int32MillisecondsWithResponse(int duration, RequestContext * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestContext requestContext) { + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32MillisecondsLargerUnit", requestContext, updatedContext -> { - return service.int32MillisecondsLargerUnit(this.client.getEndpoint(), duration, updatedContext); + long durationConverted = duration.toMillis(); + return service.int32MillisecondsLargerUnit(this.client.getEndpoint(), durationConverted, + updatedContext); }); } @@ -402,10 +405,11 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestContext requestContext) { + public Response floatMillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.floatMilliseconds", requestContext, updatedContext -> { - return service.floatMilliseconds(this.client.getEndpoint(), duration, updatedContext); + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMilliseconds(this.client.getEndpoint(), durationConverted, updatedContext); }); } @@ -420,10 +424,12 @@ public Response floatMillisecondsWithResponse(double duration, RequestCont * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestContext requestContext) { + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.floatMillisecondsLargerUnit", requestContext, updatedContext -> { - return service.floatMillisecondsLargerUnit(this.client.getEndpoint(), duration, updatedContext); + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnit(this.client.getEndpoint(), durationConverted, + updatedContext); }); } @@ -438,10 +444,11 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestContext requestContext) { + public Response float64MillisecondsWithResponse(Duration duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.float64Milliseconds", requestContext, updatedContext -> { - return service.float64Milliseconds(this.client.getEndpoint(), duration, updatedContext); + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.float64Milliseconds(this.client.getEndpoint(), durationConverted, updatedContext); }); } @@ -456,36 +463,41 @@ public Response float64MillisecondsWithResponse(double duration, RequestCo * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List duration, RequestContext requestContext) { + public Response int32MillisecondsArrayWithResponse(List duration, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Header.int32MillisecondsArray", requestContext, updatedContext -> { - String durationConverted = duration.stream().map(paramItemValue -> { - if (paramItemValue == null) { - return ""; - } else { - String itemValueString = BinaryData.fromObject(paramItemValue).toString(); - int strLength = itemValueString.length(); - int startOffset = 0; - while (startOffset < strLength) { - if (itemValueString.charAt(startOffset) != '"') { - break; - } - startOffset++; - } - if (startOffset == strLength) { + String durationConverted = duration.stream() + .map(paramItemValue -> paramItemValue.toMillis()) + .collect(Collectors.toList()) + .stream() + .map(paramItemValue -> { + if (paramItemValue == null) { return ""; - } - int endOffset = strLength - 1; - while (endOffset >= 0) { - if (itemValueString.charAt(endOffset) != '"') { - break; + } else { + String itemValueString = BinaryData.fromObject(paramItemValue).toString(); + int strLength = itemValueString.length(); + int startOffset = 0; + while (startOffset < strLength) { + if (itemValueString.charAt(startOffset) != '"') { + break; + } + startOffset++; } + if (startOffset == strLength) { + return ""; + } + int endOffset = strLength - 1; + while (endOffset >= 0) { + if (itemValueString.charAt(endOffset) != '"') { + break; + } - endOffset--; + endOffset--; + } + return itemValueString.substring(startOffset, endOffset + 1); } - return itemValueString.substring(startOffset, endOffset + 1); - } - }).collect(Collectors.joining(",")); + }) + .collect(Collectors.joining(",")); return service.int32MillisecondsArray(this.client.getEndpoint(), durationConverted, updatedContext); }); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/QueriesImpl.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/QueriesImpl.java index daf915045be..e99d644ce8b 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/QueriesImpl.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/implementation/QueriesImpl.java @@ -127,7 +127,7 @@ Response float64Seconds(@HostParam("endpoint") String endpoint, @QueryPara path = "/encode/duration/query/int32-milliseconds", expectedStatusCodes = { 204 }) @UnexpectedResponseExceptionDetail - Response int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") int input, + Response int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") long input, RequestContext requestContext); @HttpRequestInformation( @@ -136,7 +136,7 @@ Response int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryP expectedStatusCodes = { 204 }) @UnexpectedResponseExceptionDetail Response int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @QueryParam("input") int input, RequestContext requestContext); + @QueryParam("input") long input, RequestContext requestContext); @HttpRequestInformation( method = HttpMethod.GET, @@ -321,10 +321,11 @@ public Response float64SecondsWithResponse(Duration input, RequestContext * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestContext requestContext) { + public Response int32MillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32Milliseconds", requestContext, updatedContext -> { - return service.int32Milliseconds(this.client.getEndpoint(), input, updatedContext); + long inputConverted = input.toMillis(); + return service.int32Milliseconds(this.client.getEndpoint(), inputConverted, updatedContext); }); } @@ -339,10 +340,11 @@ public Response int32MillisecondsWithResponse(int input, RequestContext re * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestContext requestContext) { + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32MillisecondsLargerUnit", requestContext, updatedContext -> { - return service.int32MillisecondsLargerUnit(this.client.getEndpoint(), input, updatedContext); + long inputConverted = input.toMillis(); + return service.int32MillisecondsLargerUnit(this.client.getEndpoint(), inputConverted, updatedContext); }); } @@ -357,10 +359,11 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestContext requestContext) { + public Response floatMillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.floatMilliseconds", requestContext, updatedContext -> { - return service.floatMilliseconds(this.client.getEndpoint(), input, updatedContext); + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMilliseconds(this.client.getEndpoint(), inputConverted, updatedContext); }); } @@ -375,10 +378,11 @@ public Response floatMillisecondsWithResponse(double input, RequestContext * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestContext requestContext) { + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.floatMillisecondsLargerUnit", requestContext, updatedContext -> { - return service.floatMillisecondsLargerUnit(this.client.getEndpoint(), input, updatedContext); + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnit(this.client.getEndpoint(), inputConverted, updatedContext); }); } @@ -393,10 +397,11 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestContext requestContext) { + public Response float64MillisecondsWithResponse(Duration input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.float64Milliseconds", requestContext, updatedContext -> { - return service.float64Milliseconds(this.client.getEndpoint(), input, updatedContext); + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.float64Milliseconds(this.client.getEndpoint(), inputConverted, updatedContext); }); } @@ -461,36 +466,41 @@ public Response int32SecondsArrayWithResponse(List input, Reques * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List input, RequestContext requestContext) { + public Response int32MillisecondsArrayWithResponse(List input, RequestContext requestContext) { return this.instrumentation.instrumentWithResponse("Encode.Duration.Query.int32MillisecondsArray", requestContext, updatedContext -> { - String inputConverted = input.stream().map(paramItemValue -> { - if (paramItemValue == null) { - return ""; - } else { - String itemValueString = BinaryData.fromObject(paramItemValue).toString(); - int strLength = itemValueString.length(); - int startOffset = 0; - while (startOffset < strLength) { - if (itemValueString.charAt(startOffset) != '"') { - break; - } - startOffset++; - } - if (startOffset == strLength) { + String inputConverted = input.stream() + .map(paramItemValue -> paramItemValue.toMillis()) + .collect(Collectors.toList()) + .stream() + .map(paramItemValue -> { + if (paramItemValue == null) { return ""; - } - int endOffset = strLength - 1; - while (endOffset >= 0) { - if (itemValueString.charAt(endOffset) != '"') { - break; + } else { + String itemValueString = BinaryData.fromObject(paramItemValue).toString(); + int strLength = itemValueString.length(); + int startOffset = 0; + while (startOffset < strLength) { + if (itemValueString.charAt(startOffset) != '"') { + break; + } + startOffset++; + } + if (startOffset == strLength) { + return ""; } + int endOffset = strLength - 1; + while (endOffset >= 0) { + if (itemValueString.charAt(endOffset) != '"') { + break; + } - endOffset--; + endOffset--; + } + return itemValueString.substring(startOffset, endOffset + 1); } - return itemValueString.substring(startOffset, endOffset + 1); - } - }).collect(Collectors.joining(",")); + }) + .collect(Collectors.joining(",")); return service.int32MillisecondsArray(this.client.getEndpoint(), inputConverted, updatedContext); }); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Float64MillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Float64MillisecondsDurationProperty.java index ed32669b271..015e5e8961f 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Float64MillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Float64MillisecondsDurationProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Float64MillisecondsDurationProperty model. @@ -26,8 +27,12 @@ public final class Float64MillisecondsDurationProperty * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public Float64MillisecondsDurationProperty(double value) { - this.value = value; + public Float64MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -36,8 +41,8 @@ public Float64MillisecondsDurationProperty(double value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -63,13 +68,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static Float64MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationArrayProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationArrayProperty.java index 74c8ff960b7..8874de904d6 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationArrayProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationArrayProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; import java.util.List; /** @@ -27,8 +28,14 @@ public final class FloatMillisecondsDurationArrayProperty * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public FloatMillisecondsDurationArrayProperty(List value) { - this.value = value; + public FloatMillisecondsDurationArrayProperty(List value) { + if (value == null) { + this.value = null; + } else { + this.value = value.stream() + .map(el -> (double) el.toNanos() / 1000_000L) + .collect(java.util.stream.Collectors.toList()); + } } /** @@ -37,8 +44,13 @@ public FloatMillisecondsDurationArrayProperty(List value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public List getValue() { - return this.value; + public List getValue() { + if (this.value == null) { + return null; + } + return this.value.stream() + .map(el -> Duration.ofNanos((long) (el * 1000_000L))) + .collect(java.util.stream.Collectors.toList()); } /** @@ -64,13 +76,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static FloatMillisecondsDurationArrayProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - List value = null; + List value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.readArray(reader1 -> reader1.getDouble()); + value = reader.readArray(reader1 -> Duration.ofNanos((long) (reader1.getDouble() * 1000_000L))); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationProperty.java index 6b1ee6808ef..2ef2a6de246 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsDurationProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsDurationProperty model. @@ -25,8 +26,12 @@ public final class FloatMillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public FloatMillisecondsDurationProperty(double value) { - this.value = value; + public FloatMillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -35,8 +40,8 @@ public FloatMillisecondsDurationProperty(double value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -62,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static FloatMillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsLargerUnitDurationProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsLargerUnitDurationProperty.java index b2bc3088861..b09806c6ef4 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsLargerUnitDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/FloatMillisecondsLargerUnitDurationProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsLargerUnitDurationProperty model. @@ -26,8 +27,12 @@ public final class FloatMillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public FloatMillisecondsLargerUnitDurationProperty(double value) { - this.value = value; + public FloatMillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -36,8 +41,8 @@ public FloatMillisecondsLargerUnitDurationProperty(double value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -63,13 +68,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static FloatMillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsDurationProperty.java index 1229891cc91..56dd58232e2 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsDurationProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsDurationProperty model. @@ -17,7 +18,7 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * The value property. */ @Metadata(properties = { MetadataProperties.GENERATED }) - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsDurationProperty class. @@ -25,8 +26,12 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public Int32MillisecondsDurationProperty(int value) { - this.value = value; + public Int32MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -35,8 +40,8 @@ public Int32MillisecondsDurationProperty(int value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -46,7 +51,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -62,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static Int32MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsLargerUnitDurationProperty.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsLargerUnitDurationProperty.java index 944efe71ef6..20e0dc2c8b4 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsLargerUnitDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/main/java/encode/duration/property/Int32MillisecondsLargerUnitDurationProperty.java @@ -7,6 +7,7 @@ import io.clientcore.core.serialization.json.JsonToken; import io.clientcore.core.serialization.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsLargerUnitDurationProperty model. @@ -18,7 +19,7 @@ public final class Int32MillisecondsLargerUnitDurationProperty * The value property. */ @Metadata(properties = { MetadataProperties.GENERATED }) - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsLargerUnitDurationProperty class. @@ -26,8 +27,12 @@ public final class Int32MillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public Int32MillisecondsLargerUnitDurationProperty(int value) { - this.value = value; + public Int32MillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -36,8 +41,8 @@ public Int32MillisecondsLargerUnitDurationProperty(int value) { * @return the value value. */ @Metadata(properties = { MetadataProperties.GENERATED }) - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -47,7 +52,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -63,13 +68,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Metadata(properties = { MetadataProperties.GENERATED }) public static Int32MillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/encode/duration/EncodeDurationTests.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/encode/duration/EncodeDurationTests.java index 90732f08cf5..68d810d6e57 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/encode/duration/EncodeDurationTests.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/encode/duration/EncodeDurationTests.java @@ -3,9 +3,15 @@ package encode.duration; +import encode.duration.property.Float64MillisecondsDurationProperty; import encode.duration.property.Float64SecondsDurationProperty; +import encode.duration.property.FloatMillisecondsDurationArrayProperty; +import encode.duration.property.FloatMillisecondsDurationProperty; +import encode.duration.property.FloatMillisecondsLargerUnitDurationProperty; import encode.duration.property.FloatSecondsDurationArrayProperty; import encode.duration.property.FloatSecondsDurationProperty; +import encode.duration.property.Int32MillisecondsDurationProperty; +import encode.duration.property.Int32MillisecondsLargerUnitDurationProperty; import encode.duration.property.Int32SecondsDurationProperty; import java.time.Duration; import java.util.Arrays; @@ -22,6 +28,8 @@ public class EncodeDurationTests { private static final Duration DAY40 = Duration.ofDays(40); private static final Duration SECOND35 = Duration.ofSeconds(35, 625_000_000); private static final Duration SECOND36 = Duration.ofSeconds(36); + private static final Duration MILLIS35625 = Duration.ofMillis(35625); + private static final Duration MILLIS36000 = Duration.ofMillis(36000); // TODO: "Duration.ofDays" is disabled, as the serialization be "PT960H" instead of "PT40D" @@ -38,6 +46,19 @@ public void testQuery() { // queryClient.iso8601(DAY40); queryClient.int32SecondsArray(Arrays.asList(SECOND36, Duration.ofSeconds(47))); + + queryClient.int32Milliseconds(MILLIS36000); + + queryClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as query param +// queryClient.floatMilliseconds(MILLIS35625); +// +// queryClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// queryClient.float64Milliseconds(MILLIS35625); + + queryClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -53,6 +74,19 @@ public void testHeader() { // headerClient.iso8601(DAY40); // headerClient.iso8601Array(Arrays.asList(DAY40, Duration.ofDays(50))); + + headerClient.int32Milliseconds(MILLIS36000); + + headerClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as header value +// headerClient.floatMilliseconds(MILLIS35625); +// +// headerClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// headerClient.float64Milliseconds(MILLIS35625); + + headerClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -74,5 +108,30 @@ public void testProperty() { FloatSecondsDurationArrayProperty ret = propertyClient.floatSecondsArray(new FloatSecondsDurationArrayProperty(array)); Assertions.assertEquals(array, ret.getValue()); + + Assertions.assertEquals(MILLIS36000, + propertyClient.int32Milliseconds(new Int32MillisecondsDurationProperty(MILLIS36000)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.floatMilliseconds(new FloatMillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.float64Milliseconds(new Float64MillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3), + propertyClient + .int32MillisecondsLargerUnit(new Int32MillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3))) + .getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3).plusSeconds(30), + propertyClient + .floatMillisecondsLargerUnit( + new FloatMillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3).plusSeconds(30))) + .getValue()); + + List millisArray = Arrays.asList(Duration.ofMillis(35625), Duration.ofMillis(46750)); + FloatMillisecondsDurationArrayProperty millisArrayRet + = propertyClient.floatMillisecondsArray(new FloatMillisecondsDurationArrayProperty(millisArray)); + Assertions.assertEquals(millisArray, millisArrayRet.getValue()); } } 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/DurationSchema.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/DurationSchema.java index dea7b644137..a2ee69d4bea 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/DurationSchema.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/model/codemodel/DurationSchema.java @@ -78,7 +78,17 @@ public enum Format { /** * The duration is in seconds as a number. */ - SECONDS_NUMBER("seconds-number"); + SECONDS_NUMBER("seconds-number"), + + /** + * The duration is in milliseconds as an integer. + */ + MILLISECONDS_INTEGER("milliseconds-integer"), + + /** + * The duration is in milliseconds as a number. + */ + MILLISECONDS_NUMBER("milliseconds-number"); private final String value; @@ -114,6 +124,10 @@ public static Format fromValue(String value) { return SECONDS_INTEGER; } else if ("seconds-number".equals(value)) { return SECONDS_NUMBER; + } else if ("milliseconds-integer".equals(value)) { + return MILLISECONDS_INTEGER; + } else if ("milliseconds-number".equals(value)) { + return MILLISECONDS_NUMBER; } else { 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/mapper/PrimitiveMapper.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PrimitiveMapper.java index 3a113009a03..dff9c07d9f4 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PrimitiveMapper.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PrimitiveMapper.java @@ -116,6 +116,12 @@ protected IType createPrimitiveType(PrimitiveSchema primaryType) { case SECONDS_NUMBER: return PrimitiveType.DURATION_DOUBLE; + + case MILLISECONDS_INTEGER: + return PrimitiveType.DURATION_MILLISECONDS_LONG; + + case MILLISECONDS_NUMBER: + return PrimitiveType.DURATION_MILLISECONDS_DOUBLE; } } return durationType; 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 b926a6f958f..4fe7a8f7351 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 @@ -41,7 +41,9 @@ public class ProxyMethodMapper implements IMapper RETURN_VALUE_WIRE_TYPE_OPTIONS = Arrays.asList(ClassType.BASE_64_URL, ClassType.DATE_TIME_RFC_1123, PrimitiveType.DURATION_LONG, PrimitiveType.DURATION_DOUBLE, ClassType.DURATION_LONG, ClassType.DURATION_DOUBLE, - PrimitiveType.UNIX_TIME_LONG, ClassType.UNIX_TIME_LONG, ClassType.UNIX_TIME_DATE_TIME); + PrimitiveType.DURATION_MILLISECONDS_LONG, PrimitiveType.DURATION_MILLISECONDS_DOUBLE, + ClassType.DURATION_MILLISECONDS_LONG, ClassType.DURATION_MILLISECONDS_DOUBLE, PrimitiveType.UNIX_TIME_LONG, + ClassType.UNIX_TIME_LONG, ClassType.UNIX_TIME_DATE_TIME); private static final ProxyMethodMapper INSTANCE = new ProxyMethodMapper(); private final Logger logger = new PluginLogger(Javagen.getPluginInstance(), ProxyMethodMapper.class); 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 843d083e69f..121e59d7e8a 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 @@ -60,7 +60,9 @@ public static ClientCoreProxyMethodMapper getInstance() { private static final List RETURN_VALUE_WIRE_TYPE_OPTIONS = Arrays.asList(ClassType.BASE_64_URL, ClassType.DATE_TIME_RFC_1123, PrimitiveType.DURATION_LONG, PrimitiveType.DURATION_DOUBLE, ClassType.DURATION_LONG, ClassType.DURATION_DOUBLE, - PrimitiveType.UNIX_TIME_LONG, ClassType.UNIX_TIME_LONG, ClassType.UNIX_TIME_DATE_TIME); + PrimitiveType.DURATION_MILLISECONDS_LONG, PrimitiveType.DURATION_MILLISECONDS_DOUBLE, + ClassType.DURATION_MILLISECONDS_LONG, ClassType.DURATION_MILLISECONDS_DOUBLE, PrimitiveType.UNIX_TIME_LONG, + ClassType.UNIX_TIME_LONG, ClassType.UNIX_TIME_DATE_TIME); private final Map> parsed = new ConcurrentHashMap<>(); diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClassType.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClassType.java index c31b0666683..a70f245bfda 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClassType.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ClassType.java @@ -505,6 +505,11 @@ private static Builder withVNextReplacementBuilder(String azureClass, String azu public static final ClassType DURATION_LONG = new ClassType.Builder(false).prototypeAsLong().build(); // JSON type is NUMERIC, client type is Duration public static final ClassType DURATION_DOUBLE = new ClassType.Builder(false).prototypeAsDouble().build(); + // JSON type is NUMERIC (milliseconds), client type is Duration + public static final ClassType DURATION_MILLISECONDS_LONG = new ClassType.Builder(false).prototypeAsLong().build(); + // JSON type is NUMERIC (milliseconds), client type is Duration + public static final ClassType DURATION_MILLISECONDS_DOUBLE + = new ClassType.Builder(false).prototypeAsDouble().build(); public static final ClassType URL = new Builder(false) .defaultValueExpressionConverter(defaultValueExpression -> "new URL(\"" + defaultValueExpression + "\")") @@ -696,6 +701,10 @@ public final IType getClientType() { clientType = ClassType.DURATION; } else if (this == ClassType.DURATION_DOUBLE) { clientType = ClassType.DURATION; + } else if (this == ClassType.DURATION_MILLISECONDS_LONG) { + clientType = ClassType.DURATION; + } else if (this == ClassType.DURATION_MILLISECONDS_DOUBLE) { + clientType = ClassType.DURATION; } return clientType; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/PrimitiveType.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/PrimitiveType.java index 11bd59c47c2..5aac753da67 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/PrimitiveType.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/PrimitiveType.java @@ -113,6 +113,14 @@ public class PrimitiveType implements IType, ConvertToJsonTypeTrait, ConvertFrom public static final PrimitiveType DURATION_DOUBLE = new Builder().prototypeAsDouble().nullableType(ClassType.DURATION_DOUBLE).build(); + // JSON type is NUMERIC (milliseconds), client type is Duration + public static final PrimitiveType DURATION_MILLISECONDS_LONG + = new Builder().prototypeAsLong().nullableType(ClassType.DURATION_MILLISECONDS_LONG).build(); + + // JSON type is NUMERIC (milliseconds), client type is Duration + public static final PrimitiveType DURATION_MILLISECONDS_DOUBLE + = new Builder().prototypeAsDouble().nullableType(ClassType.DURATION_MILLISECONDS_DOUBLE).build(); + /** * The name of this type. */ @@ -224,6 +232,10 @@ public final IType getClientType() { clientType = ClassType.DURATION; } else if (this == PrimitiveType.DURATION_DOUBLE) { clientType = ClassType.DURATION; + } else if (this == PrimitiveType.DURATION_MILLISECONDS_LONG) { + clientType = ClassType.DURATION; + } else if (this == PrimitiveType.DURATION_MILLISECONDS_DOUBLE) { + clientType = ClassType.DURATION; } return clientType; } 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 1948fbe5ca5..b2370bd6f3b 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 @@ -122,6 +122,10 @@ public static Object jsonFromType(int depth, IType type) { return RANDOM.nextLong() & Long.MAX_VALUE; } else if (type.asNullable() == ClassType.DURATION_DOUBLE) { return Math.abs(RANDOM.nextDouble() * 10); + } else if (type.asNullable() == ClassType.DURATION_MILLISECONDS_LONG) { + return RANDOM.nextLong() & Long.MAX_VALUE; + } else if (type.asNullable() == ClassType.DURATION_MILLISECONDS_DOUBLE) { + return Math.abs(RANDOM.nextDouble() * 10000); } else if (type == ClassType.UUID) { return UUID.randomUUID().toString(); } else if (type == ClassType.URL) { diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/WireTypeClientTypeConverter.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/WireTypeClientTypeConverter.java index 111e2552dfc..4a20b1547cc 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/WireTypeClientTypeConverter.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/WireTypeClientTypeConverter.java @@ -43,6 +43,10 @@ public static String convertToClientTypeExpression(ClassType wireType, String ex expression = "Duration.ofSeconds(" + expression + ")"; } else if (wireType == ClassType.DURATION_DOUBLE) { expression = "Duration.ofNanos((long) (" + expression + " * 1000_000_000L))"; + } else if (wireType == ClassType.DURATION_MILLISECONDS_LONG) { + expression = "Duration.ofMillis(" + expression + ")"; + } else if (wireType == ClassType.DURATION_MILLISECONDS_DOUBLE) { + expression = "Duration.ofNanos((long) (" + expression + " * 1000_000L))"; } return expression; @@ -72,6 +76,10 @@ public static String convertToWireTypeExpression(ClassType clientType, String ex expression = expression + ".getSeconds()"; } else if (clientType == ClassType.DURATION_DOUBLE) { expression = "(double) " + expression + ".toNanos() / 1000_000_000L"; + } else if (clientType == ClassType.DURATION_MILLISECONDS_LONG) { + expression = expression + ".toMillis()"; + } else if (clientType == ClassType.DURATION_MILLISECONDS_DOUBLE) { + expression = "(double) " + expression + ".toNanos() / 1000_000L"; } return expression; @@ -99,6 +107,10 @@ public static String convertToClientTypeExpression(PrimitiveType wireType, Strin expression = String.format("Duration.ofSeconds(%s)", expression); } else if (wireType == PrimitiveType.DURATION_DOUBLE) { expression = String.format("Duration.ofNanos((long) (%s * 1000_000_000L))", expression); + } else if (wireType == PrimitiveType.DURATION_MILLISECONDS_LONG) { + expression = String.format("Duration.ofMillis(%s)", expression); + } else if (wireType == PrimitiveType.DURATION_MILLISECONDS_DOUBLE) { + expression = String.format("Duration.ofNanos((long) (%s * 1000_000L))", expression); } return expression; } @@ -124,6 +136,10 @@ public static String convertToWireTypeExpression(PrimitiveType clientType, Strin expression = String.format("%s.getSeconds()", expression); } else if (clientType == PrimitiveType.DURATION_DOUBLE) { expression = String.format("(double) %s.toNanos() / 1000_000_000L", expression); + } else if (clientType == PrimitiveType.DURATION_MILLISECONDS_LONG) { + expression = String.format("%s.toMillis()", expression); + } else if (clientType == PrimitiveType.DURATION_MILLISECONDS_DOUBLE) { + expression = String.format("(double) %s.toNanos() / 1000_000L", expression); } return expression; } @@ -152,6 +168,10 @@ public static String convertLiteralToClientValue(IType wireType, String literalI literalValue = Duration.ofSeconds(Long.parseLong(literalValue)).toString(); } else if (wireType.asNullable() == ClassType.DURATION_DOUBLE) { literalValue = Duration.ofNanos((long) (Double.parseDouble(literalInWireType) * 1000_000_000L)).toString(); + } else if (wireType.asNullable() == ClassType.DURATION_MILLISECONDS_LONG) { + literalValue = Duration.ofMillis(Long.parseLong(literalValue)).toString(); + } else if (wireType.asNullable() == ClassType.DURATION_MILLISECONDS_DOUBLE) { + literalValue = Duration.ofNanos((long) (Double.parseDouble(literalInWireType) * 1000_000L)).toString(); } return literalValue; } diff --git a/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertFromJsonTypeTraitTests.java b/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertFromJsonTypeTraitTests.java index 3460b89031f..75307636422 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertFromJsonTypeTraitTests.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertFromJsonTypeTraitTests.java @@ -16,6 +16,8 @@ public void testPrimitiveTypeConversion() { PrimitiveType.INT_AS_STRING.convertFromJsonType("var")); Assertions.assertEquals("Duration.ofNanos((long) (var * 1000_000_000L))", PrimitiveType.DURATION_DOUBLE.convertFromJsonType("var")); + Assertions.assertEquals("Duration.ofNanos((long) (var * 1000_000L))", + PrimitiveType.DURATION_MILLISECONDS_DOUBLE.convertFromJsonType("var")); Assertions.assertEquals("OffsetDateTime.ofInstant(Instant.ofEpochSecond(var), ZoneOffset.UTC)", PrimitiveType.UNIX_TIME_LONG.convertFromJsonType("var")); } @@ -30,6 +32,8 @@ public void testClassTypeConversion() { Assertions.assertEquals("var == null ? null : Duration.parse(var)", ClassType.DURATION.convertFromJsonType("var")); Assertions.assertEquals("Duration.ofSeconds(var)", ClassType.DURATION_LONG.convertFromJsonType("var")); + Assertions.assertEquals("Duration.ofMillis(var)", + ClassType.DURATION_MILLISECONDS_LONG.convertFromJsonType("var")); } @Test diff --git a/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertToJsonTypeTraitTests.java b/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertToJsonTypeTraitTests.java index a4311bc225d..3b47290ad5b 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertToJsonTypeTraitTests.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/model/clientmodel/ConvertToJsonTypeTraitTests.java @@ -15,6 +15,8 @@ public void testPrimitiveTypeConversion() { Assertions.assertEquals("Objects.toString(var, null)", PrimitiveType.INT_AS_STRING.convertToJsonType("var")); Assertions.assertEquals("(double) var.toNanos() / 1000_000_000L", PrimitiveType.DURATION_DOUBLE.convertToJsonType("var")); + Assertions.assertEquals("(double) var.toNanos() / 1000_000L", + PrimitiveType.DURATION_MILLISECONDS_DOUBLE.convertToJsonType("var")); } @Test diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderAsyncClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderAsyncClient.java index 6d626edacb1..08346f6dc9e 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderAsyncClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderAsyncClient.java @@ -187,7 +187,7 @@ public Mono> float64SecondsWithResponse(Duration duration, Reques */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponseAsync(duration, requestOptions); } @@ -204,7 +204,8 @@ public Mono> int32MillisecondsWithResponse(int duration, RequestO */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { + public Mono> int32MillisecondsLargerUnitWithResponse(Duration duration, + RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponseAsync(duration, requestOptions); } @@ -221,7 +222,7 @@ public Mono> int32MillisecondsLargerUnitWithResponse(int duration */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponseAsync(duration, requestOptions); } @@ -238,7 +239,7 @@ public Mono> floatMillisecondsWithResponse(double duration, Reque */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponse(double duration, + public Mono> floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponseAsync(duration, requestOptions); } @@ -256,7 +257,7 @@ public Mono> floatMillisecondsLargerUnitWithResponse(double durat */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponseAsync(duration, requestOptions); } @@ -273,7 +274,7 @@ public Mono> float64MillisecondsWithResponse(double duration, Req */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponse(List duration, + public Mono> int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponseAsync(duration, requestOptions); } @@ -452,7 +453,7 @@ public Mono float64Seconds(Duration duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32Milliseconds(int duration) { + public Mono int32Milliseconds(Duration duration) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -472,7 +473,7 @@ public Mono int32Milliseconds(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsLargerUnit(int duration) { + public Mono int32MillisecondsLargerUnit(Duration duration) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsLargerUnitWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -492,7 +493,7 @@ public Mono int32MillisecondsLargerUnit(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMilliseconds(double duration) { + public Mono floatMilliseconds(Duration duration) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -512,7 +513,7 @@ public Mono floatMilliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMillisecondsLargerUnit(double duration) { + public Mono floatMillisecondsLargerUnit(Duration duration) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsLargerUnitWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -532,7 +533,7 @@ public Mono floatMillisecondsLargerUnit(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono float64Milliseconds(double duration) { + public Mono float64Milliseconds(Duration duration) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return float64MillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -552,7 +553,7 @@ public Mono float64Milliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsArray(List duration) { + public Mono int32MillisecondsArray(List duration) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsArrayWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderClient.java index 710d085edcb..41941b1c5b2 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/HeaderClient.java @@ -185,7 +185,7 @@ public Response float64SecondsWithResponse(Duration duration, RequestOptio */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { + public Response int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponse(duration, requestOptions); } @@ -202,7 +202,7 @@ public Response int32MillisecondsWithResponse(int duration, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponse(duration, requestOptions); } @@ -219,7 +219,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Response floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponse(duration, requestOptions); } @@ -236,7 +236,7 @@ public Response floatMillisecondsWithResponse(double duration, RequestOpti */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestOptions requestOptions) { + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponse(duration, requestOptions); } @@ -253,7 +253,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Response float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponse(duration, requestOptions); } @@ -270,7 +270,7 @@ public Response float64MillisecondsWithResponse(double duration, RequestOp */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { + public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponse(duration, requestOptions); } @@ -439,7 +439,7 @@ public void float64Seconds(Duration duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int duration) { + public void int32Milliseconds(Duration duration) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsWithResponse(duration, requestOptions).getValue(); @@ -458,7 +458,7 @@ public void int32Milliseconds(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int duration) { + public void int32MillisecondsLargerUnit(Duration duration) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsLargerUnitWithResponse(duration, requestOptions).getValue(); @@ -477,7 +477,7 @@ public void int32MillisecondsLargerUnit(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double duration) { + public void floatMilliseconds(Duration duration) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsWithResponse(duration, requestOptions).getValue(); @@ -496,7 +496,7 @@ public void floatMilliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double duration) { + public void floatMillisecondsLargerUnit(Duration duration) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsLargerUnitWithResponse(duration, requestOptions).getValue(); @@ -515,7 +515,7 @@ public void floatMillisecondsLargerUnit(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double duration) { + public void float64Milliseconds(Duration duration) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); float64MillisecondsWithResponse(duration, requestOptions).getValue(); @@ -534,7 +534,7 @@ public void float64Milliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List duration) { + public void int32MillisecondsArray(List duration) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsArrayWithResponse(duration, requestOptions).getValue(); diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyAsyncClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyAsyncClient.java index ddebcb7d99d..17f4a7180e4 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyAsyncClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyAsyncClient.java @@ -238,7 +238,7 @@ public Mono> float64SecondsWithResponse(BinaryData body, Re *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -248,7 +248,7 @@ public Mono> float64SecondsWithResponse(BinaryData body, Re *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -501,7 +501,7 @@ public Mono> floatSecondsLargerUnitWithResponse(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -511,7 +511,7 @@ public Mono> floatSecondsLargerUnitWithResponse(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyClient.java index c175283374f..39eadae5454 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/PropertyClient.java @@ -236,7 +236,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -246,7 +246,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -496,7 +496,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -506,7 +506,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryAsyncClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryAsyncClient.java index c376be68fe2..02b1ee49dec 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryAsyncClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryAsyncClient.java @@ -170,7 +170,7 @@ public Mono> float64SecondsWithResponse(Duration input, RequestOp */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponseAsync(input, requestOptions); } @@ -187,7 +187,7 @@ public Mono> int32MillisecondsWithResponse(int input, RequestOpti */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponseAsync(input, requestOptions); } @@ -204,7 +204,7 @@ public Mono> int32MillisecondsLargerUnitWithResponse(int input, R */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponseAsync(input, requestOptions); } @@ -221,7 +221,7 @@ public Mono> floatMillisecondsWithResponse(double input, RequestO */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponseAsync(input, requestOptions); } @@ -238,7 +238,7 @@ public Mono> floatMillisecondsLargerUnitWithResponse(double input */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponseAsync(input, requestOptions); } @@ -272,7 +272,8 @@ public Mono> int32SecondsArrayWithResponse(List input, */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + public Mono> int32MillisecondsArrayWithResponse(List input, + RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponseAsync(input, requestOptions); } @@ -430,7 +431,7 @@ public Mono float64Seconds(Duration input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32Milliseconds(int input) { + public Mono int32Milliseconds(Duration input) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -450,7 +451,7 @@ public Mono int32Milliseconds(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsLargerUnit(int input) { + public Mono int32MillisecondsLargerUnit(Duration input) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsLargerUnitWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -470,7 +471,7 @@ public Mono int32MillisecondsLargerUnit(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMilliseconds(double input) { + public Mono floatMilliseconds(Duration input) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -490,7 +491,7 @@ public Mono floatMilliseconds(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMillisecondsLargerUnit(double input) { + public Mono floatMillisecondsLargerUnit(Duration input) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsLargerUnitWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -510,7 +511,7 @@ public Mono floatMillisecondsLargerUnit(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono float64Milliseconds(double input) { + public Mono float64Milliseconds(Duration input) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return float64MillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -550,7 +551,7 @@ public Mono int32SecondsArray(List input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsArray(List input) { + public Mono int32MillisecondsArray(List input) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsArrayWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryClient.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryClient.java index 1c68bee8ba5..1a2f5812a46 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryClient.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/QueryClient.java @@ -168,7 +168,7 @@ public Response float64SecondsWithResponse(Duration input, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { + public Response int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponse(input, requestOptions); } @@ -185,7 +185,7 @@ public Response int32MillisecondsWithResponse(int input, RequestOptions re */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponse(input, requestOptions); } @@ -202,7 +202,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Response floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponse(input, requestOptions); } @@ -219,7 +219,7 @@ public Response floatMillisecondsWithResponse(double input, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponse(input, requestOptions); } @@ -236,7 +236,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Response float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponse(input, requestOptions); } @@ -270,7 +270,7 @@ public Response int32SecondsArrayWithResponse(List input, Reques */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponse(input, requestOptions); } @@ -420,7 +420,7 @@ public void float64Seconds(Duration input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int input) { + public void int32Milliseconds(Duration input) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsWithResponse(input, requestOptions).getValue(); @@ -439,7 +439,7 @@ public void int32Milliseconds(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int input) { + public void int32MillisecondsLargerUnit(Duration input) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsLargerUnitWithResponse(input, requestOptions).getValue(); @@ -458,7 +458,7 @@ public void int32MillisecondsLargerUnit(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double input) { + public void floatMilliseconds(Duration input) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsWithResponse(input, requestOptions).getValue(); @@ -477,7 +477,7 @@ public void floatMilliseconds(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double input) { + public void floatMillisecondsLargerUnit(Duration input) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsLargerUnitWithResponse(input, requestOptions).getValue(); @@ -496,7 +496,7 @@ public void floatMillisecondsLargerUnit(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double input) { + public void float64Milliseconds(Duration input) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); float64MillisecondsWithResponse(input, requestOptions).getValue(); @@ -534,7 +534,7 @@ public void int32SecondsArray(List input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List input) { + public void int32MillisecondsArray(List input) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsArrayWithResponse(input, requestOptions).getValue(); diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/HeadersImpl.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/HeadersImpl.java index 78fc0f39e98..86581183ea7 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/HeadersImpl.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/HeadersImpl.java @@ -26,6 +26,7 @@ import com.azure.core.util.serializer.JacksonAdapter; import java.time.Duration; import java.util.List; +import java.util.stream.Collectors; import reactor.core.publisher.Mono; /** @@ -210,7 +211,7 @@ Response float64SecondsSync(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds") @ExpectedResponses({ 204 }) @@ -219,7 +220,7 @@ Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -228,7 +229,7 @@ Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -237,7 +238,7 @@ Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String e @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsLargerUnitSync(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/float-milliseconds") @ExpectedResponses({ 204 }) @@ -606,9 +607,10 @@ public Response float64SecondsWithResponse(Duration duration, RequestOptio * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponseAsync(int duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.int32Milliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> int32MillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return FluxUtil.withContext(context -> service.int32Milliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -623,8 +625,10 @@ public Mono> int32MillisecondsWithResponseAsync(int duration, Req * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { - return service.int32MillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return service.int32MillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -639,10 +643,11 @@ public Response int32MillisecondsWithResponse(int duration, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponseAsync(int duration, + public Mono> int32MillisecondsLargerUnitWithResponseAsync(Duration duration, RequestOptions requestOptions) { - return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), duration, - requestOptions, context)); + long durationConverted = duration.toMillis(); + return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), + durationConverted, requestOptions, context)); } /** @@ -657,8 +662,9 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(int dur * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { - return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), duration, requestOptions, + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } @@ -674,9 +680,10 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponseAsync(double duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.floatMilliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> floatMillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMilliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -691,8 +698,10 @@ public Mono> floatMillisecondsWithResponseAsync(double duration, * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { - return service.floatMillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -707,10 +716,11 @@ public Response floatMillisecondsWithResponse(double duration, RequestOpti * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponseAsync(double duration, + public Mono> floatMillisecondsLargerUnitWithResponseAsync(Duration duration, RequestOptions requestOptions) { - return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), duration, - requestOptions, context)); + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), + durationConverted, requestOptions, context)); } /** @@ -725,8 +735,9 @@ public Mono> floatMillisecondsLargerUnitWithResponseAsync(double * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestOptions requestOptions) { - return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), duration, requestOptions, + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } @@ -742,9 +753,10 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponseAsync(double duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.float64Milliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> float64MillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.float64Milliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -759,8 +771,10 @@ public Mono> float64MillisecondsWithResponseAsync(double duration * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { - return service.float64MillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.float64MillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -775,10 +789,12 @@ public Response float64MillisecondsWithResponse(double duration, RequestOp * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponseAsync(List duration, + public Mono> int32MillisecondsArrayWithResponseAsync(List duration, RequestOptions requestOptions) { - String durationConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(duration, CollectionFormat.CSV); + String durationConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + duration.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return FluxUtil.withContext(context -> service.int32MillisecondsArray(this.client.getEndpoint(), durationConverted, requestOptions, context)); } @@ -795,9 +811,11 @@ public Mono> int32MillisecondsArrayWithResponseAsync(List int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { - String durationConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(duration, CollectionFormat.CSV); + public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { + String durationConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + duration.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return service.int32MillisecondsArraySync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/PropertiesImpl.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/PropertiesImpl.java index b727b536a71..0733e08920c 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/PropertiesImpl.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/PropertiesImpl.java @@ -725,7 +725,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -735,7 +735,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -764,7 +764,7 @@ public Mono> int32MillisecondsWithResponseAsync(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -774,7 +774,7 @@ public Mono> int32MillisecondsWithResponseAsync(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1280,7 +1280,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1290,7 +1290,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1319,7 +1319,7 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(B *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1329,7 +1329,7 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(B *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/QueriesImpl.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/QueriesImpl.java index 3a46e23b7ad..476f3f5bb7e 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/QueriesImpl.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/implementation/QueriesImpl.java @@ -192,7 +192,7 @@ Response float64SecondsSync(@HostParam("endpoint") String endpoint, @Query @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) - Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") int input, + Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds") @@ -201,7 +201,7 @@ Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @ @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) - Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @QueryParam("input") int input, + Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds-larger-unit") @@ -211,7 +211,7 @@ Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @Qu @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @QueryParam("input") int input, RequestOptions requestOptions, Context context); + @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -220,7 +220,7 @@ Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String e @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsLargerUnitSync(@HostParam("endpoint") String endpoint, - @QueryParam("input") int input, RequestOptions requestOptions, Context context); + @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/float-milliseconds") @ExpectedResponses({ 204 }) @@ -568,9 +568,10 @@ public Response float64SecondsWithResponse(Duration input, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponseAsync(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); return FluxUtil.withContext( - context -> service.int32Milliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.int32Milliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -585,8 +586,9 @@ public Mono> int32MillisecondsWithResponseAsync(int input, Reques * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { - return service.int32MillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return service.int32MillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -601,9 +603,11 @@ public Response int32MillisecondsWithResponse(int input, RequestOptions re * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponseAsync(int input, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), input, requestOptions, context)); + public Mono> int32MillisecondsLargerUnitWithResponseAsync(Duration input, + RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), + inputConverted, requestOptions, context)); } /** @@ -618,8 +622,10 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(int inp * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { - return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), inputConverted, requestOptions, + Context.NONE); } /** @@ -634,9 +640,10 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponseAsync(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; return FluxUtil.withContext( - context -> service.floatMilliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.floatMilliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -651,8 +658,9 @@ public Mono> floatMillisecondsWithResponseAsync(double input, Req * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { - return service.floatMillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -667,10 +675,11 @@ public Response floatMillisecondsWithResponse(double input, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponseAsync(double input, + public Mono> floatMillisecondsLargerUnitWithResponseAsync(Duration input, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), input, requestOptions, context)); + double inputConverted = (double) input.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), + inputConverted, requestOptions, context)); } /** @@ -685,8 +694,10 @@ public Mono> floatMillisecondsLargerUnitWithResponseAsync(double * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { - return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), inputConverted, requestOptions, + Context.NONE); } /** @@ -701,9 +712,10 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponseAsync(double input, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; return FluxUtil.withContext( - context -> service.float64Milliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.float64Milliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -718,8 +730,9 @@ public Mono> float64MillisecondsWithResponseAsync(double input, R * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { - return service.float64MillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.float64MillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -776,10 +789,12 @@ public Response int32SecondsArrayWithResponse(List input, Reques * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponseAsync(List input, + public Mono> int32MillisecondsArrayWithResponseAsync(List input, RequestOptions requestOptions) { - String inputConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(input, CollectionFormat.CSV); + String inputConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + input.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return FluxUtil.withContext(context -> service.int32MillisecondsArray(this.client.getEndpoint(), inputConverted, requestOptions, context)); } @@ -796,9 +811,11 @@ public Mono> int32MillisecondsArrayWithResponseAsync(List int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { - String inputConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(input, CollectionFormat.CSV); + public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + String inputConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + input.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return service.int32MillisecondsArraySync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java index 5a6aa75879e..b72035fa618 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Float64MillisecondsDurationProperty model. @@ -30,8 +31,12 @@ public final class Float64MillisecondsDurationProperty * @param value the value value to set. */ @Generated - public Float64MillisecondsDurationProperty(double value) { - this.value = value; + public Float64MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -40,8 +45,8 @@ public Float64MillisecondsDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Float64MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java index aa77fd209a0..1341181dfc3 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; import java.util.List; /** @@ -31,8 +32,14 @@ public final class FloatMillisecondsDurationArrayProperty * @param value the value value to set. */ @Generated - public FloatMillisecondsDurationArrayProperty(List value) { - this.value = value; + public FloatMillisecondsDurationArrayProperty(List value) { + if (value == null) { + this.value = null; + } else { + this.value = value.stream() + .map(el -> (double) el.toNanos() / 1000_000L) + .collect(java.util.stream.Collectors.toList()); + } } /** @@ -41,8 +48,13 @@ public FloatMillisecondsDurationArrayProperty(List value) { * @return the value value. */ @Generated - public List getValue() { - return this.value; + public List getValue() { + if (this.value == null) { + return null; + } + return this.value.stream() + .map(el -> Duration.ofNanos((long) (el * 1000_000L))) + .collect(java.util.stream.Collectors.toList()); } /** @@ -68,13 +80,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsDurationArrayProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - List value = null; + List value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.readArray(reader1 -> reader1.getDouble()); + value = reader.readArray(reader1 -> Duration.ofNanos((long) (reader1.getDouble() * 1000_000L))); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java index d40fbf62e9d..cb4eac0de8d 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsDurationProperty model. @@ -29,8 +30,12 @@ public final class FloatMillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Generated - public FloatMillisecondsDurationProperty(double value) { - this.value = value; + public FloatMillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -39,8 +44,8 @@ public FloatMillisecondsDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -66,13 +71,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java index e98cf4026c6..13d8ffb22de 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsLargerUnitDurationProperty model. @@ -30,8 +31,12 @@ public final class FloatMillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Generated - public FloatMillisecondsLargerUnitDurationProperty(double value) { - this.value = value; + public FloatMillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -40,8 +45,8 @@ public FloatMillisecondsLargerUnitDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java index d8130c569a7..8c7d34072b9 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsDurationProperty model. @@ -21,7 +22,7 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * The value property. */ @Generated - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsDurationProperty class. @@ -29,8 +30,12 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Generated - public Int32MillisecondsDurationProperty(int value) { - this.value = value; + public Int32MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -39,8 +44,8 @@ public Int32MillisecondsDurationProperty(int value) { * @return the value value. */ @Generated - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -50,7 +55,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -66,13 +71,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Int32MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java index 9be4f62447d..7f74132a550 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsLargerUnitDurationProperty model. @@ -22,7 +23,7 @@ public final class Int32MillisecondsLargerUnitDurationProperty * The value property. */ @Generated - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsLargerUnitDurationProperty class. @@ -30,8 +31,12 @@ public final class Int32MillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Generated - public Int32MillisecondsLargerUnitDurationProperty(int value) { - this.value = value; + public Int32MillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -40,8 +45,8 @@ public Int32MillisecondsLargerUnitDurationProperty(int value) { * @return the value value. */ @Generated - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -51,7 +56,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Int32MillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/packages/http-client-java/generator/http-client-generator-test/src/test/java/encode/duration/EncodeDurationTests.java b/packages/http-client-java/generator/http-client-generator-test/src/test/java/encode/duration/EncodeDurationTests.java index ff829e46ea6..04ab3573d8d 100644 --- a/packages/http-client-java/generator/http-client-generator-test/src/test/java/encode/duration/EncodeDurationTests.java +++ b/packages/http-client-java/generator/http-client-generator-test/src/test/java/encode/duration/EncodeDurationTests.java @@ -4,10 +4,16 @@ package encode.duration; import encode.duration.property.models.DefaultDurationProperty; +import encode.duration.property.models.Float64MillisecondsDurationProperty; import encode.duration.property.models.Float64SecondsDurationProperty; +import encode.duration.property.models.FloatMillisecondsDurationArrayProperty; +import encode.duration.property.models.FloatMillisecondsDurationProperty; +import encode.duration.property.models.FloatMillisecondsLargerUnitDurationProperty; import encode.duration.property.models.FloatSecondsDurationArrayProperty; import encode.duration.property.models.FloatSecondsDurationProperty; import encode.duration.property.models.ISO8601DurationProperty; +import encode.duration.property.models.Int32MillisecondsDurationProperty; +import encode.duration.property.models.Int32MillisecondsLargerUnitDurationProperty; import encode.duration.property.models.Int32SecondsDurationProperty; import java.time.Duration; import java.util.Arrays; @@ -24,6 +30,8 @@ public class EncodeDurationTests { private static final Duration DAY40 = Duration.ofDays(40); private static final Duration SECOND35 = Duration.ofSeconds(35, 625_000_000); private static final Duration SECOND36 = Duration.ofSeconds(36); + private static final Duration MILLIS35625 = Duration.ofMillis(35625); + private static final Duration MILLIS36000 = Duration.ofMillis(36000); @Test public void testQuery() { @@ -38,6 +46,19 @@ public void testQuery() { queryClient.iso8601(DAY40); queryClient.int32SecondsArray(Arrays.asList(SECOND36, Duration.ofSeconds(47))); + + queryClient.int32Milliseconds(MILLIS36000); + + queryClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as query param +// queryClient.floatMilliseconds(MILLIS35625); +// +// queryClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// queryClient.float64Milliseconds(MILLIS35625); + + queryClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -53,6 +74,19 @@ public void testHeader() { headerClient.iso8601(DAY40); headerClient.iso8601Array(Arrays.asList(DAY40, Duration.ofDays(50))); + + headerClient.int32Milliseconds(MILLIS36000); + + headerClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as header value +// headerClient.floatMilliseconds(MILLIS35625); +// +// headerClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// headerClient.float64Milliseconds(MILLIS35625); + + headerClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -74,5 +108,30 @@ public void testProperty() { FloatSecondsDurationArrayProperty ret = propertyClient.floatSecondsArray(new FloatSecondsDurationArrayProperty(array)); Assertions.assertEquals(array, ret.getValue()); + + Assertions.assertEquals(MILLIS36000, + propertyClient.int32Milliseconds(new Int32MillisecondsDurationProperty(MILLIS36000)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.floatMilliseconds(new FloatMillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.float64Milliseconds(new Float64MillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3), + propertyClient + .int32MillisecondsLargerUnit(new Int32MillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3))) + .getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3).plusSeconds(30), + propertyClient + .floatMillisecondsLargerUnit( + new FloatMillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3).plusSeconds(30))) + .getValue()); + + List millisArray = Arrays.asList(Duration.ofMillis(35625), Duration.ofMillis(46750)); + FloatMillisecondsDurationArrayProperty millisArrayRet + = propertyClient.floatMillisecondsArray(new FloatMillisecondsDurationArrayProperty(millisArray)); + Assertions.assertEquals(millisArray, millisArrayRet.getValue()); } }