in java/src/main/java/com/google/cloud/dataproc/templates/config/GeneralTemplateConfig.java [107:139]
public boolean isValid(GeneralTemplateConfig value, ConstraintValidatorContext context) {
Map<String, InputConfig> input =
Optional.ofNullable(value.getInput()).orElse(new HashMap<>());
Map<String, QueryConfig> query =
Optional.ofNullable(value.getQuery()).orElse(new HashMap<>());
Map<String, OutputConfig> output =
Optional.ofNullable(value.getOutput()).orElse(new HashMap<>());
for (String name : query.keySet()) {
if (input.containsKey(name)) {
context
.buildConstraintViolationWithTemplate("name conflicts with an input")
.addPropertyNode("query")
.addBeanNode()
.inIterable()
.atKey(name)
.addConstraintViolation();
return false;
}
}
for (String name : output.keySet()) {
if (!input.containsKey(name) && !query.containsKey(name)) {
context
.buildConstraintViolationWithTemplate("name not found as input or query")
.addPropertyNode("output")
.addBeanNode()
.inIterable()
.atKey(name)
.addConstraintViolation();
return false;
}
}
return true;
}