import static java.util.Objects.requireNonNull;
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 javax.annotation.Nonnull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.dom.api.DOMRpcResult;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.common.RpcError;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
/**
* Utility class implementing {@link DefaultDOMRpcResult}.
@Beta
@NonNullByDefault
public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
- private final @Nullable NormalizedNode<?, ?> result;
+ @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 NormalizedNode<?, ?> 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 NormalizedNode<?, ?> result) {
- this(result, Collections.emptyList());
+ public DefaultDOMRpcResult(final @Nullable ContainerNode result) {
+ this(result, List.of());
}
- public DefaultDOMRpcResult(final @Nullable NormalizedNode<?, ?> 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);
}
- public DefaultDOMRpcResult(@Nonnull final Collection<RpcError> errors) {
+ public DefaultDOMRpcResult(final Collection<RpcError> 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 NormalizedNode<?, ?> 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);
}
}