gemini-code-assist[bot] commented on code in PR #37825:
URL: https://github.com/apache/beam/pull/37825#discussion_r2919129529
##########
runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java:
##########
@@ -555,6 +555,11 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
return timestamp();
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return elem.causedByDrain();
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```java
/**
* Provide a reference to the caused by drain.
*/
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return elem.causedByDrain();
}
```
##########
sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnInvoker.java:
##########
@@ -514,6 +524,11 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
return delegate.timestamp(doFn);
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return delegate.causedByDrain(doFn);
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```suggestion
/** Provide a reference to the caused by drain. */
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return delegate.causedByDrain(doFn);
}
```
##########
runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java:
##########
@@ -831,6 +836,11 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
return timestamp();
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return causedByDrain;
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```java
/**
* Provide a reference to the caused by drain.
*/
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return causedByDrain;
}
```
##########
sdks/java/core/src/main/java/org/apache/beam/sdk/util/construction/SplittableParDoNaiveBounded.java:
##########
@@ -543,6 +543,11 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
return outerContext.timestamp();
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return outerContext.causedByDrain();
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```suggestion
/** Provide a reference to the caused by drain. */
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return outerContext.causedByDrain();
}
```
##########
runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java:
##########
@@ -1119,6 +1129,11 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
return timestamp;
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ throw new UnsupportedOperationException("CausedByDrain parameters are
not supported.");
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```java
/**
* Provide a reference to the caused by drain.
*/
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
throw new UnsupportedOperationException("CausedByDrain parameters are
not supported.");
}
```
##########
sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnInvoker.java:
##########
@@ -325,6 +329,12 @@ public Instant timestamp(DoFn<InputT, OutputT> doFn) {
String.format("Timestamp unsupported in %s", getErrorContext()));
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ throw new UnsupportedOperationException(
+ String.format("CausedByDrain unsupported in %s", getErrorContext()));
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```suggestion
/** Provide a reference to the caused by drain. */
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
throw new UnsupportedOperationException(
String.format("CausedByDrain unsupported in %s",
getErrorContext()));
}
```
##########
sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java:
##########
@@ -1357,6 +1362,11 @@ private static Parameter analyzeExtraParameter(
return Parameter.keyT(paramT);
} else if (rawType.equals(TimeDomain.class)) {
return Parameter.timeDomainParameter();
+ } else if (CausedByDrain.class.isAssignableFrom(rawType)) {
+ methodErrors.checkArgument(
+ rawType.equals(CausedByDrain.class),
+ "CausedByDrain argument must have type
org.apache.beam.sdk.values.CausedByDrain.");
+ return Parameter.causedByDrainParameter();
Review Comment:

medium: Consider adding a comment to explain why `isAssignableFrom` is used
here instead of `equals`.
```suggestion
} else if (CausedByDrain.class.isAssignableFrom(rawType)) {
methodErrors.checkArgument(
rawType.equals(CausedByDrain.class), // Ensure exact type match
"CausedByDrain argument must have type
org.apache.beam.sdk.values.CausedByDrain.");
return Parameter.causedByDrainParameter();
```
##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnApiDoFnRunner.java:
##########
@@ -1804,6 +1804,11 @@ public <T> void outputWindowedValue(
outputTo(consumer, WindowedValues.of(output, timestamp, windows,
paneInfo));
}
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return currentElement.causedByDrain();
+ }
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```suggestion
/** Provide a reference to the caused by drain. */
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return currentElement.causedByDrain();
}
```
##########
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnApiDoFnRunner.java:
##########
@@ -1946,6 +1951,11 @@ public <T> void outputWindowedValue(
public CausedByDrain causedByDrain() {
return currentElement.causedByDrain();
}
+
+ @Override
+ public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
+ return currentElement.causedByDrain();
Review Comment:

medium: This method should include a Javadoc comment explaining its purpose
and behavior, similar to other methods in this class.
```java
/** Provide a reference to the caused by drain. */
@Override
public CausedByDrain causedByDrain(DoFn<InputT, OutputT> doFn) {
return currentElement.causedByDrain();
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]