ashulin commented on code in PR #3592:
URL:
https://github.com/apache/incubator-seatunnel/pull/3592#discussion_r1033522053
##########
seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:
##########
@@ -146,43 +153,49 @@ public Builder required(Option<?>... options) {
/**
* Exclusive options, only one of the options needs to be configured.
*/
- public Builder exclusive(Option<?>... options) {
+ public Builder exclusive(@NonNull Option<?>... options) {
if (options.length <= 1) {
throw new OptionValidationException("The number of exclusive
options must be greater than 1.");
}
for (Option<?> option : options) {
+ verifyDuplicate(option, "ExclusiveOption");
verifyRequiredOptionDefaultValue(option);
}
this.requiredOptions.add(RequiredOption.ExclusiveRequiredOptions.of(options));
return this;
}
- public Builder exclusive(RequiredOption.ExclusiveRequiredOptions
exclusiveRequiredOptions) {
+ public Builder exclusive(@NonNull
RequiredOption.ExclusiveRequiredOptions exclusiveRequiredOptions) {
+ exclusiveRequiredOptions.getExclusiveOptions().forEach(option -> {
+ verifyDuplicate(option, "ExclusiveOption");
+ });
this.requiredOptions.add(exclusiveRequiredOptions);
return this;
}
- /**
- * Conditional options, These options are required if the {@link
Option} == expectValue.
- */
- public <T> Builder conditional(Option<T> option, T expectValue,
Option<?>... requiredOptions) {
- return conditional(Condition.of(option, expectValue),
requiredOptions);
- }
Review Comment:
IMO, The tool method of a single expected value need not be deleted.
##########
seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/OptionRule.java:
##########
@@ -146,43 +153,49 @@ public Builder required(Option<?>... options) {
/**
* Exclusive options, only one of the options needs to be configured.
*/
- public Builder exclusive(Option<?>... options) {
+ public Builder exclusive(@NonNull Option<?>... options) {
if (options.length <= 1) {
throw new OptionValidationException("The number of exclusive
options must be greater than 1.");
}
for (Option<?> option : options) {
+ verifyDuplicate(option, "ExclusiveOption");
verifyRequiredOptionDefaultValue(option);
}
this.requiredOptions.add(RequiredOption.ExclusiveRequiredOptions.of(options));
return this;
}
- public Builder exclusive(RequiredOption.ExclusiveRequiredOptions
exclusiveRequiredOptions) {
+ public Builder exclusive(@NonNull
RequiredOption.ExclusiveRequiredOptions exclusiveRequiredOptions) {
+ exclusiveRequiredOptions.getExclusiveOptions().forEach(option -> {
+ verifyDuplicate(option, "ExclusiveOption");
+ });
this.requiredOptions.add(exclusiveRequiredOptions);
return this;
}
Review Comment:
IMO, delete the method.
--
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]