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%2FSimpleDOMActionResult.java;h=68645e8d124f1656ea9ececb3f5c1daa2d63cfe2;hb=11408d627adca7eb71ac956c3ad01f75b6b91596;hp=dfbbbc53de17f6f7687d91cd2b2a33e823b7190a;hpb=c241dcfa5322ac10810a1068ccd2eb57f6f2dbb2;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java index dfbbbc53de..68645e8d12 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java @@ -13,19 +13,21 @@ import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Optional; -import javax.annotation.concurrent.ThreadSafe; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.dom.api.DOMActionResult; import org.opendaylight.yangtools.concepts.Immutable; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @Beta @NonNullByDefault -@ThreadSafe public final class SimpleDOMActionResult implements DOMActionResult, Immutable { private final Collection errors; private final @Nullable ContainerNode output; @@ -35,6 +37,12 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable { this.output = output; } + public SimpleDOMActionResult(final ContainerNode output) { + errors = ImmutableList.of(); + this.output = requireNonNull(output); + } + + @SuppressFBWarnings("NP_NULL_PARAM_DEREF_NONVIRTUAL") public SimpleDOMActionResult(final Collection errors) { this(errors, null); } @@ -43,6 +51,12 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable { this(errors, requireNonNull(output)); } + // As per RFC7950 page 80 (top) + public static SimpleDOMActionResult ofMalformedMessage(final Exception cause) { + return new SimpleDOMActionResult(ImmutableList.of(RpcResultBuilder.newError(ErrorType.RPC, + ErrorTag.MALFORMED_MESSAGE, cause.getMessage(), null, null, requireNonNull(cause))), null); + } + @Override public Collection getErrors() { return errors; @@ -61,4 +75,4 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable { } return helper.toString(); } -} \ No newline at end of file +}