feat: introduce `java.time` methods (#1729) · googleapis/java-logging@323eb33

@@ -16,14 +16,18 @@

16161717

package com.google.cloud.logging;

181819+

import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;

20+

import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration;

21+1922

import com.google.api.core.ApiFunction;

23+

import com.google.api.core.ObsoleteApi;

2024

import com.google.cloud.StringEnumType;

2125

import com.google.cloud.StringEnumValue;

2226

import com.google.common.base.MoreObjects;

2327

import com.google.errorprone.annotations.CanIgnoreReturnValue;

2428

import java.io.Serializable;

29+

import java.time.Duration;

2530

import java.util.Objects;

26-

import org.threeten.bp.Duration;

27312832

/**

2933

* Objects of this class represent information about the (optional) HTTP request associated with a

@@ -51,7 +55,7 @@ public final class HttpRequest implements Serializable {

5155

private final boolean cacheHit;

5256

private final boolean cacheValidatedWithOriginServer;

5357

private final Long cacheFillBytes;

54-

private final Duration latency;

58+

private final java.time.Duration latency;

55595660

/** The HTTP request method. */

5761

public static final class RequestMethod extends StringEnumValue {

@@ -112,7 +116,7 @@ public static final class Builder {

112116

private boolean cacheHit;

113117

private boolean cacheValidatedWithOriginServer;

114118

private Long cacheFillBytes;

115-

private Duration latency;

119+

private java.time.Duration latency;

116120117121

Builder() {}

118122

@@ -258,12 +262,18 @@ public Builder setCacheFillBytes(long cacheFillBytes) {

258262

return this;

259263

}

260264265+

/** This method is obsolete. Use {@link #setLatencyDuration(java.time.Duration)} instead. */

266+

@ObsoleteApi("Use setLatencyDuration(java.time.Duration) instead")

267+

public Builder setLatency(org.threeten.bp.Duration latency) {

268+

return setLatencyDuration(toJavaTimeDuration(latency));

269+

}

270+261271

/**

262272

* Sets the latency on the server, from the time the request was received until the response was

263273

* sent.

264274

*/

265275

@CanIgnoreReturnValue

266-

public Builder setLatency(Duration latency) {

276+

public Builder setLatencyDuration(java.time.Duration latency) {

267277

this.latency = latency;

268278

return this;

269279

}

@@ -393,13 +403,19 @@ public Long getCacheFillBytes() {

393403

return cacheFillBytes;

394404

}

395405406+

/** This method is obsolete. Use {@link #getLatencyDuration()} instead. */

407+

@ObsoleteApi("Use getLatencyDuration() instead")

408+

public org.threeten.bp.Duration getLatency() {

409+

return toThreetenDuration(getLatencyDuration());

410+

}

411+396412

/**

397413

* Returns the processing latency on the server, from the time the request was received until the

398414

* response was sent.

399415

*

400416

* @return the latency, for null if not populated.

401417

*/

402-

public Duration getLatency() {

418+

public Duration getLatencyDuration() {

403419

return latency;

404420

}

405421

@@ -561,7 +577,7 @@ static HttpRequest fromPb(com.google.logging.type.HttpRequest requestPb) {

561577

}

562578

if (requestPb.hasLatency()) {

563579

// NOTE(pongad): Don't convert to nano; large durations overflow longs!

564-

builder.setLatency(

580+

builder.setLatencyDuration(

565581

Duration.ofSeconds(

566582

requestPb.getLatency().getSeconds(), requestPb.getLatency().getNanos()));

567583

}