Add OrderedByAwareEffectiveStatement
[yangtools.git] / model / yang-model-ri / src / main / java / org / opendaylight / yangtools / yang / model / ri / stmt / impl / eff / AbstractListEffectiveStatement.java
index 506413c5297d27c0bad5b747829aae0c43797bd5..3b33f694cfa40463b85266f63d4ae6b64f2c7199 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
-import static java.util.Objects.requireNonNull;
-
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
@@ -29,7 +27,7 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.D
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DataSchemaNodeMixin;
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin;
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.NotificationNodeContainerMixin;
-import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.UserOrderedMixin;
+import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.UserOrderedAwareMixin;
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.WhenConditionMixin;
 
 abstract class AbstractListEffectiveStatement
@@ -37,46 +35,32 @@ abstract class AbstractListEffectiveStatement
         implements ListEffectiveStatement, ListSchemaNode,
             ActionNodeContainerCompat<QName, ListStatement, ListEffectiveStatement>,
             NotificationNodeContainerCompat<QName, ListStatement, ListEffectiveStatement>,
-            DataSchemaNodeMixin<ListStatement>, UserOrderedMixin<QName, ListStatement>,
+            DataSchemaNodeMixin<ListStatement>, UserOrderedAwareMixin<QName, ListStatement, ListEffectiveStatement>,
             DataNodeContainerMixin<QName, ListStatement>, WhenConditionMixin<QName, ListStatement>,
             AugmentationTargetMixin<QName, ListStatement>, NotificationNodeContainerMixin<QName, ListStatement>,
             ActionNodeContainerMixin<QName, ListStatement>, MustConstraintMixin<QName, ListStatement> {
     private final int flags;
-    private final @NonNull QName argument;
     private final @NonNull Object keyDefinition;
 
-    AbstractListEffectiveStatement(final ListStatement declared, final QName argument, final int flags,
+    AbstractListEffectiveStatement(final ListStatement declared, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableList<QName> keyDefinition) {
         super(declared, substatements);
-        this.argument = requireNonNull(argument);
         this.keyDefinition = maskList(keyDefinition);
         this.flags = flags;
     }
 
-    AbstractListEffectiveStatement(final AbstractListEffectiveStatement original, final QName argument,
-            final int flags) {
+    AbstractListEffectiveStatement(final AbstractListEffectiveStatement original, final int flags) {
         super(original);
-        this.argument = requireNonNull(argument);
-        this.keyDefinition = original.keyDefinition;
+        keyDefinition = original.keyDefinition;
         this.flags = flags;
     }
 
-    @Override
-    public final QName argument() {
-        return argument;
-    }
-
     @Override
     public final int flags() {
         return flags;
     }
 
-    @Override
-    public final boolean isUserOrdered() {
-        return userOrdered();
-    }
-
     @Override
     public final List<QName> getKeyDefinition() {
         return unmaskList(keyDefinition, QName.class);
@@ -99,9 +83,4 @@ abstract class AbstractListEffectiveStatement
     public final ListEffectiveStatement asEffectiveStatement() {
         return this;
     }
-
-    @Override
-    public final String toString() {
-        return "list " + getQName().getLocalName();
-    }
 }