Bug 6871: [YANG 1.1] Allow "must" in "input", "output" and "notification" statements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / NotificationEffectiveStatementImpl.java
index f324612301676667e71fb7e9242975fe774f4b7f..c769f6265b0248d08b87c06cbf42d6229b580ca5 100644 (file)
@@ -15,8 +15,10 @@ import java.util.LinkedList;
 import java.util.List;
 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.AugmentationSchema;
+import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -28,6 +30,7 @@ public class NotificationEffectiveStatementImpl extends
         AbstractEffectiveDocumentedDataNodeContainer<QName, NotificationStatement> implements NotificationDefinition {
     private final QName qname;
     private final SchemaPath path;
+    private final ConstraintDefinition constraints;
     private final Set<AugmentationSchema> augmentations;
     private final List<UnknownSchemaNode> unknownNodes;
 
@@ -37,6 +40,8 @@ public class NotificationEffectiveStatementImpl extends
         this.qname = ctx.getStatementArgument();
         this.path = ctx.getSchemaPath().get();
 
+        this.constraints = EffectiveConstraintDefinitionImpl.forParent(this);
+
         // initSubstatementCollections
         Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements = effectiveSubstatements();
         List<UnknownSchemaNode> unknownNodesInit = new LinkedList<>();
@@ -55,21 +60,29 @@ public class NotificationEffectiveStatementImpl extends
         this.augmentations = ImmutableSet.copyOf(augmentationsInit);
     }
 
+    @Nonnull
     @Override
     public QName getQName() {
         return qname;
     }
 
+    @Nonnull
     @Override
     public SchemaPath getPath() {
         return path;
     }
 
+    @Override
+    public ConstraintDefinition getConstraints() {
+        return constraints;
+    }
+
     @Override
     public Set<AugmentationSchema> getAvailableAugmentations() {
         return augmentations;
     }
 
+    @Nonnull
     @Override
     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
         return unknownNodes;