package com.sequenceiq.cloudbreak.controller.validation.stack;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;
import com.sequenceiq.cloudbreak.cloud.model.StackParamValidation;
import com.sequenceiq.cloudbreak.controller.BadRequestException;
@Component
public class ParametersRequiredValidator implements ParameterValidator {
@Override
public <O, E extends StackParamValidation> void validate(Map<String, O> parameters, List<E> paramsList) {
for (E param : paramsList) {
if (Boolean.TRUE.equals(param.getRequired()) && !parameters.containsKey(param.getName())) {
throw new BadRequestException(String.format("%s is required.", param.getName()));
}
}
}
@Override
public ValidatorType getValidatorType() {
return ValidatorType.REQUIRED;
}
}