@Override public CAttribute copy() { return new CMultipleAttribute(path(), getRmAttributeName(), getExistence(), cardinality, copyChildren()); }
/** * List of constraints representing members of the container value of this * attribute within the data. Semantics of the container uniqueness and * ordering given by the cardinality. * * @return unmodifiable list of CObject */ public List<CObject> members() { return getChildren(); }
log.debug("Checking: "+ cattr.getRmAttributeName() +"; "+ parentObj.getRmTypeName() +" at "+cattr.path() +" parent path: "+parentObj.path()); if (cattr.getRmAttributeName().equals("items")) { if (parentObj.getRmTypeName().equalsIgnoreCase("CLUSTER") ) { // Note: For SECTION items, the intention seems to be cardinality = 0 log.debug("--> >=1"); return new Interval<Integer>(1,null); } else if (cattr.getRmAttributeName().equals("content")) { if (parentObj.getRmTypeName().equalsIgnoreCase("COMPOSITION")) { log.debug("--> >=1"); */ } else if (cattr.getRmAttributeName().equals("credentials")) { if (parentObj.getRmTypeName().equalsIgnoreCase("CAPABILITY")) { log.debug("--> ==1");
if (cattribute instanceof CMultipleAttribute) { CMultipleAttribute cma = (CMultipleAttribute) cattribute; if(cma.getCardinality() != null) { out.write(" "); printCardinality(cma.getCardinality(), out);
private void checkCardinalityConformsToChildrenOccurrences( CMultipleAttribute cmattr, List<ValidationError> errors) { if (cmattr.getChildren() == null || cmattr.getChildren().size() == 0) { // in the new RM implementation it is no longer null then, but empty return; // nothing to check (cmattr).getCardinality().getInterval(); for (CObject cobj : cmattr.getChildren()) { 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));
itemsAttribute = new CMultipleAttribute(path, ITEMS, Existence.OPTIONAL, Cardinality.LIST, alternatives); root.addAttribute(itemsAttribute);
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 } } }
else if("events".equals(cma.getRmAttributeName()) && "EVENT".equals(cobj.getRmTypeName())) {
if (cattribute instanceof CMultipleAttribute) { CMultipleAttribute cma = (CMultipleAttribute) cattribute; if(cma.getCardinality() != null) { out.write(" "); printCardinality(cma.getCardinality(), out);
attribute = new CSingleAttribute(path, name, existence, children); } else { attribute = new CMultipleAttribute(path, name, existence, cardinality, children);
@Override public CAttribute copy() { return new CMultipleAttribute(path(), getRmAttributeName(), getExistence(), cardinality, copyChildren()); }
CMultipleAttribute cma = (CMultipleAttribute) parent; log.debug("setting parent.cardinality: " + cma.getCardinality()); cma.getCardinality().getInterval().setLower(newOccurrences.getLower()); log.debug("AFTER parent.cardinality: " + cma.getCardinality()); } else { if(parent == null) {
itemsAttribute = new CMultipleAttribute(path, ITEMS, Existence.OPTIONAL, Cardinality.LIST, alternatives); root.addAttribute(itemsAttribute);
/** * List of constraints representing members of the container value of this * attribute within the data. Semantics of the container uniqueness and * ordering given by the cardinality. * * @return unmodifiable list of CObject */ public List<CObject> members() { return getChildren(); }
attributes.getChildren().add(cardinality); printCardinality( ((CMultipleAttribute) cattribute).getCardinality(), cardinality);
attribute = new CSingleAttribute(path, name, existence, children); } else { attribute = new CMultipleAttribute(path, name, existence, cardinality, children);
CMultipleAttribute cma = (CMultipleAttribute) parent; log.debug("setting parent.cardinality: " + cma.getCardinality()); cma.getCardinality().getInterval().setLower(newOccurrences.getLower()); log.debug("AFTER parent.cardinality: " + cma.getCardinality()); } else { if(parent == null) {
itemsAttribute = new CMultipleAttribute(path, ITEMS, Existence.OPTIONAL, Cardinality.LIST, alternatives); root.addAttribute(itemsAttribute);
CMultipleAttribute cma = (CMultipleAttribute) parent; log.debug("setting parent.cardinality: " + cma.getCardinality()); cma.getCardinality().getInterval().setLower(newOccurrences.getLower()); log.debug("AFTER parent.cardinality: " + cma.getCardinality()); } else { if (parent == null) {
contentAttribute = new CMultipleAttribute(path, CONTENT, Existence.OPTIONAL, Cardinality.LIST, alternatives); archetype.getDefinition().addAttribute(contentAttribute);