Bug 6896: [Yang 1.1] Add support for new statement "action"
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / ListEffectiveStatementImpl.java
index c09876825d4bec127ac2ab82eaabea4513f5bd27..e13f827fde5214ed18e3fa43ae62e13cb1bff949 100644 (file)
@@ -19,6 +19,7 @@ import java.util.Objects;
 import java.util.Set;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
@@ -37,6 +38,7 @@ public final class ListEffectiveStatementImpl extends AbstractEffectiveSimpleDat
     private final boolean userOrdered;
     private final List<QName> keyDefinition;
     private final ListSchemaNode original;
+    private final Set<ActionDefinition> actions;
     private final Set<NotificationDefinition> notifications;
     private final Collection<UniqueConstraint> uniqueConstraints;
 
@@ -77,12 +79,19 @@ public final class ListEffectiveStatementImpl extends AbstractEffectiveSimpleDat
         this.keyDefinition = ImmutableList.copyOf(keyDefinitionInit);
         this.uniqueConstraints = ImmutableList.copyOf(allSubstatementsOfType(UniqueConstraint.class));
 
+        final ImmutableSet.Builder<ActionDefinition> actionsBuilder = ImmutableSet.builder();
         final Builder<NotificationDefinition> notificationsBuilder = ImmutableSet.builder();
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
+            if (effectiveStatement instanceof ActionDefinition) {
+                actionsBuilder.add((ActionDefinition) effectiveStatement);
+            }
+
             if (effectiveStatement instanceof NotificationDefinition) {
                 notificationsBuilder.add((NotificationDefinition) effectiveStatement);
             }
         }
+
+        this.actions = actionsBuilder.build();
         this.notifications = notificationsBuilder.build();
     }
 
@@ -96,6 +105,11 @@ public final class ListEffectiveStatementImpl extends AbstractEffectiveSimpleDat
         return keyDefinition;
     }
 
+    @Override
+    public Set<ActionDefinition> getActions() {
+        return actions;
+    }
+
     @Override
     public Set<NotificationDefinition> getNotifications() {
         return notifications;