Pick up byte-buddy from yangtools
[mdsal.git] / binding / yang-binding / src / main / java / org / opendaylight / yangtools / yang / binding / DataContainer.java
index 82b32d60e754ee1d7401a64eb0bd4e9136ea890a..975ddf9ee7a04317bf9cb7620db4e2af9dd43e24 100644 (file)
@@ -7,26 +7,20 @@
  */
 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 {
+
 }