@Override public CAttribute copy() { return new CMultipleAttribute(path(), getRmAttributeName(), getExistence(), cardinality, copyChildren()); }
@Override public CAttribute copy() { return new CMultipleAttribute(path(), getRmAttributeName(), getExistence(), cardinality, copyChildren()); }
log.debug("Checking: "+ cattr.getRmAttributeName() +"; "+ parentObj.getRmTypeName() +" at "+cattr.path() +" parent path: "+parentObj.path());
private void checkCardinalityConformsToRMCardinality(CMultipleAttribute cattr, CObject cobj, List<ValidationError> errors) { Interval<Integer> rmCardinality = rmInspector.defaultCardinalityInterval(cattr, cobj); Interval<Integer> actualCardinality = cattr.getCardinality().getInterval(); if (rmCardinality.getLower().compareTo(actualCardinality.getLower()) > 0) { //VCACA actual lower cardinality lower than allowed ValidationError error = new ValidationError(ErrorType.VCACA, null, cattr.path(), getIntervalFormalString(actualCardinality), getIntervalFormalString(rmCardinality)); errors.add(error); //attribute items in object node at /items cardinality 0..* does not conform to cardinality >=1 in reference model } else if (rmCardinality.getLower().compareTo(actualCardinality.getLower()) == 0) { //WCACA the same...can we do this ... is this not simply ok??? as default is set } if (!rmCardinality.isUpperUnbounded()) { if (actualCardinality.isUpperUnbounded() || (rmCardinality.getUpper().compareTo(actualCardinality.getUpper()) < 0)) { //VCACA upper too high ... this may e.g. occur for cardinality of credentials in demographics archetypes ValidationError error = new ValidationError(ErrorType.VCACA, null, cattr.path(), getIntervalFormalString(actualCardinality), getIntervalFormalString(rmCardinality)); errors.add(error); } else if (rmCardinality.getUpper().compareTo(actualCardinality.getUpper()) == 0) { //WCACA } } }
cmattr.path(), getIntervalFormalString(cardinalityInterval), getIntervalFormalString(minOcc, maxOcc, isOccUpperUnbounded) ); if (!errors.contains(error)) { cmattr.path(), getIntervalFormalString(cardinalityInterval), getIntervalFormalString(minOcc, maxOcc, isOccUpperUnbounded) ); cmattr.path(), getIntervalFormalString(cardinalityInterval), getIntervalFormalString(minOcc, maxOcc, isOccUpperUnbounded));