X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2FDefaultDOMRpcResult.java;h=7974cc1582d66d0eee6bc2919943fb47e79d5af2;hb=1487e0720cbb7f7b1f04507a85494c1a96dc82ad;hp=ac0e7c944a50a087cba173037250344277d8a86c;hpb=43e28da95d3511cf73882c16368c88295df7d35d;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java index ac0e7c944a..7974cc1582 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java @@ -7,65 +7,64 @@ */ package org.opendaylight.mdsal.dom.spi; -import org.opendaylight.mdsal.dom.api.DOMRpcResult; +import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; -import com.google.common.base.Preconditions; +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 Collection errors; - private final NormalizedNode result; - private static Collection asCollection(final RpcError... errors) { - if (errors.length == 0) { - return Collections.emptyList(); - } else { - return Arrays.asList(errors); - } - } + @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 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 NormalizedNode result) { - this(result, Collections.emptyList()); + public DefaultDOMRpcResult(final @Nullable ContainerNode result) { + this(result, List.of()); } - public DefaultDOMRpcResult(final NormalizedNode result, final @Nonnull Collection errors) { - this.result = result; - this.errors = Preconditions.checkNotNull(errors); + public DefaultDOMRpcResult(final @Nullable ContainerNode value, final Collection errors) { + result = value; + this.errors = requireNonNull(errors); } - public DefaultDOMRpcResult(final @Nonnull Collection errors) { + public DefaultDOMRpcResult(final Collection errors) { this(null, errors); } @Override - public @Nonnull Collection getErrors() { + public Collection errors() { return errors; } @Override - public NormalizedNode getResult() { + public @Nullable ContainerNode value() { return result; } @@ -79,18 +78,8 @@ public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Seria } @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof DefaultDOMRpcResult)) { - return false; - } - - final DefaultDOMRpcResult other = (DefaultDOMRpcResult) obj; - if (!errors.equals(other.errors)) { - return false; - } - return Objects.equals(result, other.result); + public boolean equals(final @Nullable Object obj) { + return this == obj || obj instanceof DefaultDOMRpcResult other && errors.equals(other.errors) + && Objects.equals(result, other.result); } }