} else {
final Set<String> aggregationStyle = constraints.getValues(ValuePropertyNames.AGGREGATION);
final String full = getAggregationStyleFull();
if ((aggregationStyle == null) || aggregationStyle.isEmpty()) {
// No constraint or wild-card - assume FULL and make it optional for the inputs
desiredValue = new ValueRequirement(desiredValue.getValueName(), desiredValue.getTargetReference(), constraints.copy().withoutAny(ValuePropertyNames.AGGREGATION)
.withOptional(ValuePropertyNames.AGGREGATION).with(ValuePropertyNames.AGGREGATION, full).get());
} else if (aggregationStyle.contains(full)) {
// Constraint allows FULL - make it optional for the inputs
if ((aggregationStyle.size() != 1) || !constraints.isOptional(ValuePropertyNames.AGGREGATION)) {
desiredValue = new ValueRequirement(desiredValue.getValueName(), desiredValue.getTargetReference(), constraints.copy().withoutAny(ValuePropertyNames.AGGREGATION)