private void setMinElements(final Integer minElements) {
this.minElements = minElements;
+ if (minElements != null && minElements > 0) {
+ mandatory = true;
+ }
}
@Override
public EffectiveConstraintDefinitionImpl(final EffectiveStatementBase<?, ?> parent) {
- MandatoryEffectiveStatementImpl firstMandatoryStmt = parent
- .firstEffective(MandatoryEffectiveStatementImpl.class);
- this.mandatory = (firstMandatoryStmt == null) ? false : firstMandatoryStmt.argument();
-
WhenEffectiveStatementImpl firstWhenStmt = parent.firstEffective(WhenEffectiveStatementImpl.class);
this.whenCondition = (firstWhenStmt == null) ? null : firstWhenStmt.argument();
this.maxElements = Integer.valueOf(maxElementsArg);
}
+ MandatoryEffectiveStatementImpl firstMandatoryStmt = parent
+ .firstEffective(MandatoryEffectiveStatementImpl.class);
+ this.mandatory = (firstMandatoryStmt == null) ? minElements > 0 : firstMandatoryStmt.argument();
+
Collection<MustDefinition> mustSubstatements = parent.allSubstatementsOfType(MustDefinition.class);
this.mustConstraints = ImmutableSet.copyOf(mustSubstatements);
}
ConstraintDefinition constraints = ifEntry.getConstraints();
assertNull(constraints.getWhenCondition());
assertEquals(0, constraints.getMustConstraints().size());
- assertFalse(constraints.isMandatory());
+ assertTrue(constraints.isMandatory());
assertEquals(1, (int) constraints.getMinElements());
assertEquals(11, (int) constraints.getMaxElements());
// test AugmentationTarget args
// ifEntry should be a context node ?
// assertNull(constraints.getWhenCondition());
assertEquals(0, constraints.getMustConstraints().size());
- assertFalse(constraints.isMandatory());
+ assertTrue(constraints.isMandatory());
assertEquals(1, (int) constraints.getMinElements());
assertEquals(11, (int) constraints.getMaxElements());
// test AugmentationTarget args
LeafListSchemaNode leafList = (LeafListSchemaNode) list.getDataChildByName("list-of-leaves");
assertNotNull(leafList);
- assertFalse(leafList.getConstraints().isMandatory());
+ assertTrue(leafList.getConstraints().isMandatory());
assertTrue(leafList.isUserOrdered());
assertEquals(2, leafList.getConstraints().getMinElements().intValue());
assertEquals(20, leafList.getConstraints().getMaxElements().intValue());