import com.google.common.annotations.Beta;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.Serial;
import java.io.Serializable;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@Beta
@NonNullByDefault
public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
@SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Interfaces do not specify Serializable")
private final @Nullable ContainerNode result;
+ // FIXME: a plain Collection is bad for equality
private final Collection<? extends RpcError> errors;
- public DefaultDOMRpcResult(final ContainerNode result, final RpcError... errors) {
- this(result, asCollection(errors));
+ public DefaultDOMRpcResult(final ContainerNode value, final RpcError... errors) {
+ this(value, List.of(errors));
}
public DefaultDOMRpcResult(final RpcError... errors) {
- this(null, asCollection(errors));
+ this(null, List.of(errors));
}
public DefaultDOMRpcResult(final @Nullable ContainerNode result) {
- this(result, Collections.emptyList());
+ this(result, List.of());
}
- public DefaultDOMRpcResult(final @Nullable ContainerNode result,
- final Collection<? extends RpcError> errors) {
- this.result = result;
+ public DefaultDOMRpcResult(final @Nullable ContainerNode value, final Collection<? extends RpcError> errors) {
+ result = value;
this.errors = requireNonNull(errors);
}
this(null, errors);
}
- private static Collection<RpcError> asCollection(final RpcError... errors) {
- return errors.length == 0 ? Collections.emptyList() : Arrays.asList(errors);
- }
-
@Override
- public Collection<? extends RpcError> getErrors() {
+ public Collection<? extends RpcError> errors() {
return errors;
}
@Override
- public @Nullable ContainerNode getResult() {
+ public @Nullable ContainerNode value() {
return result;
}
@Override
public boolean equals(final @Nullable Object obj) {
- if (this == obj) {
- return true;
- }
- if (!(obj instanceof DefaultDOMRpcResult)) {
- return false;
- }
- final DefaultDOMRpcResult other = (DefaultDOMRpcResult) obj;
- return errors.equals(other.errors) && Objects.equals(result, other.result);
+ return this == obj || obj instanceof DefaultDOMRpcResult other && errors.equals(other.errors)
+ && Objects.equals(result, other.result);
}
}