Adopt odlparent-10.0.0/yangtools-8.0.0-SNAPSHOT
[mdsal.git] / dom / mdsal-dom-spi / src / main / java / org / opendaylight / mdsal / dom / spi / SimpleDOMActionResult.java
index 5e21ea3d1feff2a078b138bb19d117ae59a0930f..68645e8d124f1656ea9ececb3f5c1daa2d63cfe2 100644 (file)
@@ -20,7 +20,10 @@ 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
@@ -35,7 +38,7 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable {
     }
 
     public SimpleDOMActionResult(final ContainerNode output) {
-        this.errors = ImmutableList.of();
+        errors = ImmutableList.of();
         this.output = requireNonNull(output);
     }
 
@@ -48,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<RpcError> getErrors() {
         return errors;
@@ -66,4 +75,4 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable {
         }
         return helper.toString();
     }
-}
\ No newline at end of file
+}