use of java.util.stream.Collectors.toSet in project ddf by codice.
the class ValidationParser method getMetacardValidators.
@SuppressWarnings("unchecked")
private List<MetacardValidator> getMetacardValidators(MetacardValidatorDefinition validatorDefinition) {
List<MetacardValidator> metacardValidators = new ArrayList<>();
MetacardValidator metacardValidator = null;
String validatorName = null;
Object metacardValidatorObj = validatorDefinition.arguments.get(VALIDATOR_PROPERTY);
if (metacardValidatorObj instanceof String) {
validatorName = (String) metacardValidatorObj;
}
if (validatorName != null) {
String metacardType = validatorDefinition.metacardType;
switch(validatorName) {
case REQUIRED_ATTRIBUTE_VALIDATOR_PROPERTY:
{
if (metacardType == null) {
throw new IllegalStateException("Required Attributes Validator received invalid configuration");
}
Set<String> requiredAttributes = new HashSet<>();
Object requiredAttributesObj = validatorDefinition.arguments.get(REQUIRED_ATTRIBUTES_PROPERTY);
if (requiredAttributesObj instanceof List) {
List<Object> requiredAttrObjList = (List) requiredAttributesObj;
requiredAttributes = requiredAttrObjList.stream().filter(String.class::isInstance).map(String.class::cast).collect(Collectors.toSet());
}
if (CollectionUtils.isNotEmpty(requiredAttributes)) {
metacardValidator = new RequiredAttributesMetacardValidator(metacardType, requiredAttributes);
} else {
throw new IllegalStateException("Required Attributes Validator received invalid configuration");
}
break;
}
default:
throw new IllegalStateException("Validator does not exist. (" + validatorName + ")");
}
}
if (metacardValidator != null) {
metacardValidators.add(metacardValidator);
}
return metacardValidators;
}
Aggregations