Bump upstreams for Silicon
[controller.git] / opendaylight / md-sal / sal-remoterpc-connector / src / main / java / org / opendaylight / controller / remote / rpc / messages / ExecuteAction.java
index 4fb9c614298799f82167dc745ad4485eca201c49..cb03c220beeb95410ec66817b922907679e47a64 100644 (file)
@@ -13,6 +13,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.Externalizable;
 import java.io.IOException;
+import java.io.InvalidObjectException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import org.eclipse.jdt.annotation.NonNull;
@@ -23,20 +24,21 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
-public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode> {
+public final class ExecuteAction extends AbstractExecute<Absolute, @NonNull ContainerNode> {
     private static final long serialVersionUID = 1128904894827335676L;
 
     private final @NonNull DOMDataTreeIdentifier path;
 
-    private ExecuteAction(final @NonNull SchemaPath type, final @NonNull DOMDataTreeIdentifier path,
+    private ExecuteAction(final @NonNull Absolute type, final @NonNull DOMDataTreeIdentifier path,
             final @NonNull ContainerNode input) {
         super(type, requireNonNull(input));
         this.path = requireNonNull(path);
     }
 
-    public static @NonNull ExecuteAction from(final @NonNull SchemaPath type, @NonNull final DOMDataTreeIdentifier path,
+    public static @NonNull ExecuteAction from(final @NonNull Absolute type, @NonNull final DOMDataTreeIdentifier path,
             final @NonNull ContainerNode input) {
         return new ExecuteAction(type, path, input);
     }
@@ -74,7 +76,7 @@ public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode>
         @Override
         public void writeExternal(final ObjectOutput out) throws IOException {
             try (NormalizedNodeDataOutput stream = NormalizedNodeStreamVersion.current().newDataOutput(out)) {
-                stream.writeSchemaPath(executeAction.getType());
+                stream.writeSchemaNodeIdentifier(executeAction.getType());
                 executeAction.getPath().getDatastoreType().writeTo(out);
                 stream.writeYangInstanceIdentifier(executeAction.getPath().getRootIdentifier());
                 stream.writeOptionalNormalizedNode(executeAction.getInput());
@@ -84,12 +86,16 @@ public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode>
         @Override
         public void readExternal(final ObjectInput in) throws IOException {
             final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
-            final SchemaPath name = stream.readSchemaPath();
+            final SchemaNodeIdentifier sni = stream.readSchemaNodeIdentifier();
+            if (!(sni instanceof Absolute)) {
+                throw new InvalidObjectException("Non-absolute type " + sni);
+            }
+
             final LogicalDatastoreType type = LogicalDatastoreType.readFrom(in);
             final YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
             final ContainerNode input = (ContainerNode) stream.readOptionalNormalizedNode().orElse(null);
 
-            executeAction = new ExecuteAction(name, new DOMDataTreeIdentifier(type, path), input);
+            executeAction = new ExecuteAction((Absolute) sni, new DOMDataTreeIdentifier(type, path), input);
         }
 
         private Object readResolve() {