Eliminate ConstraintDefition.isMandatory()
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / ChoiceEffectiveStatementImpl.java
index f76df175a8753cdd8c463783e02fd55dc8754e31..9eb0fa78773b1885088af8b9fbaaff7fedf4effb 100644 (file)
@@ -35,6 +35,7 @@ public final class ChoiceEffectiveStatementImpl extends AbstractEffectiveDataSch
     private final SortedMap<QName, ChoiceCaseNode> cases;
     private final ChoiceCaseNode defaultCase;
     private final ChoiceSchemaNode original;
+    private final boolean mandatory;
 
     public ChoiceEffectiveStatementImpl(
             final StmtContext<QName, ChoiceStatement, EffectiveStatement<QName, ChoiceStatement>> ctx) {
@@ -85,6 +86,9 @@ public final class ChoiceEffectiveStatementImpl extends AbstractEffectiveDataSch
         } else {
             defaultCase = null;
         }
+
+        final MandatoryEffectiveStatement mandatoryStmt = firstEffective(MandatoryEffectiveStatement.class);
+        mandatory = mandatoryStmt == null ? false : mandatoryStmt.argument().booleanValue();
     }
 
     private static void resetAugmenting(final DataSchemaNode dataSchemaNode) {
@@ -126,6 +130,11 @@ public final class ChoiceEffectiveStatementImpl extends AbstractEffectiveDataSch
         return Optional.ofNullable(defaultCase);
     }
 
+    @Override
+    public boolean isMandatory() {
+        return mandatory;
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;