*/
package org.opendaylight.yangtools.yang.binding;
-import org.eclipse.jdt.annotation.NonNull;
-
/**
* Data Container - object contains structured data. Marker interface which must be implemented by all interfaces
* generated for YANG:
* <ul>
- * <li>Rpc Input
- * <li>Output
- * <li>Notification
- * <li>Container
- * <li>List
- * <li>Case
+ * <li>{@code input} based on {@link RpcInput}</li>
+ * <li>{@code output} based on {@link RpcOutput}</li>
+ * <li>{@code notification} based on {@link BaseNotification}, either {@link Notification} or
+ * {@link InstanceNotification}</li>
+ * <li>{@code container}, {@code list} and {@code case} based on {@link DataObject}</li>
+ * <li>{@code anydata} and {@code anyxml} based on {@link OpaqueObject}
+ * <li>{@code rc:yang-data} based on {@link YangData}
* </ul>
*/
-public interface DataContainer {
- /**
- * Return the interface implemented by this object. This method differs from {@link Object#getClass()} in that it
- * returns the interface contract, not a concrete implementation class.
- *
- * @return Implemented contract
- */
- @NonNull Class<? extends DataContainer> implementedInterface();
+public sealed interface DataContainer extends BindingContract<DataContainer>
+ permits BaseNotification, ChoiceIn, DataObject, OpaqueObject, YangData {
+
}