X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-codec-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fapi%2FBindingNormalizedNodeSerializer.java;h=773b1778717cf414193ecfa28b369517fa0fa453;hb=cb0f3a767fa856c220edd674fda4d55dde408c64;hp=962a24f8b348bcceceb2b88a659e328f11ed31de;hpb=63128c6b7de477864c92def4ab805d854653ba9c;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeSerializer.java b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeSerializer.java index 962a24f8b3..773b177871 100644 --- a/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeSerializer.java +++ b/binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingNormalizedNodeSerializer.java @@ -14,6 +14,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.yangtools.yang.binding.Action; +import org.opendaylight.yangtools.yang.binding.BaseNotification; import org.opendaylight.yangtools.yang.binding.DataContainer; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -25,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; /** * Serialization service, which provides two-way serialization between Java @@ -39,7 +40,8 @@ public interface BindingNormalizedNodeSerializer { * @return DOM Instance Identifier * @throws IllegalArgumentException If supplied Instance Identifier is not valid. */ - YangInstanceIdentifier toYangInstanceIdentifier(@NonNull InstanceIdentifier binding); + // FIXME: MDSAL-525: reconcile this with BindingInstanceIdentifierCodec + @NonNull YangInstanceIdentifier toYangInstanceIdentifier(@NonNull InstanceIdentifier binding); /** * Translates supplied YANG Instance Identifier into Binding instance identifier. @@ -47,6 +49,7 @@ public interface BindingNormalizedNodeSerializer { * @param dom YANG Instance Identifier * @return Binding Instance Identifier, or null if the instance identifier is not representable. */ + // FIXME: MDSAL-525: reconcile this with BindingInstanceIdentifierCodec @Nullable InstanceIdentifier fromYangInstanceIdentifier( @NonNull YangInstanceIdentifier dom); @@ -58,7 +61,7 @@ public interface BindingNormalizedNodeSerializer { * @return NormalizedNode representation * @throws IllegalArgumentException If supplied Instance Identifier is not valid. */ - Entry> toNormalizedNode( + @NonNull Entry toNormalizedNode( InstanceIdentifier path, T data); /** @@ -69,7 +72,7 @@ public interface BindingNormalizedNodeSerializer { * @return DOM Instance Identifier */ @Nullable Entry, DataObject> fromNormalizedNode(@NonNull YangInstanceIdentifier path, - NormalizedNode data); + NormalizedNode data); /** * Translates supplied NormalizedNode Notification into Binding data. @@ -78,7 +81,7 @@ public interface BindingNormalizedNodeSerializer { * @param data NormalizedNode representing data * @return Binding representation of Notification */ - @Nullable Notification fromNormalizedNodeNotification(@NonNull SchemaPath path, @NonNull ContainerNode data); + @NonNull BaseNotification fromNormalizedNodeNotification(@NonNull Absolute path, @NonNull ContainerNode data); /** * Translates supplied NormalizedNode Notification into Binding data, optionally taking an instant @@ -90,17 +93,17 @@ public interface BindingNormalizedNodeSerializer { * @return Binding representation of Notification */ @Beta - @Nullable Notification fromNormalizedNodeNotification(@NonNull SchemaPath path, @NonNull ContainerNode data, + @NonNull BaseNotification fromNormalizedNodeNotification(@NonNull Absolute path, @NonNull ContainerNode data, @Nullable Instant eventInstant); /** * Translates supplied NormalizedNode RPC input or output into Binding data. * - * @param path Schema path of RPC data, Schema path consists of rpc QName and input / output QName. + * @param containerPath Container path (RPC type + input/output) * @param data NormalizedNode representing data * @return Binding representation of RPC data */ - @Nullable DataObject fromNormalizedNodeRpcData(@NonNull SchemaPath path, @NonNull ContainerNode data); + @Nullable DataObject fromNormalizedNodeRpcData(@NonNull Absolute containerPath, @NonNull ContainerNode data); /** * Translates supplied ContainerNode action input. @@ -129,10 +132,19 @@ public interface BindingNormalizedNodeSerializer { /** * Translates supplied Binding Notification or output into NormalizedNode notification. * - * @param data NormalizedNode representing notification data + * @param data {@link Notification} representing notification data * @return NormalizedNode representation of notification */ - @NonNull ContainerNode toNormalizedNodeNotification(@NonNull Notification data); + @NonNull ContainerNode toNormalizedNodeNotification(@NonNull Notification data); + + /** + * Translates supplied Binding Notification or output into NormalizedNode notification. + * + * @param path schema node identifier of the notification + * @param data {@link BaseNotification} representing notification data + * @return NormalizedNode representation of notification + */ + @NonNull ContainerNode toNormalizedNodeNotification(@NonNull Absolute path, @NonNull BaseNotification data); /** * Translates supplied Binding RPC input or output into NormalizedNode data.