package com.rayo.core.validation;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import com.rayo.core.verb.CpaData;
import com.voxeo.moho.media.input.SignalGrammar;
public class CPAValidator implements ConstraintValidator<ValidCPA, CpaData> {
@Override
public void initialize(ValidCPA constraint) {
}
@Override
public boolean isValid(CpaData data, ConstraintValidatorContext context) {
if (data == null) return true;
for (String signal: data.getSignals()) {
if (signal.equals("speech") || signal.equals("dtmf")) continue;
if (SignalGrammar.Signal.parse(signal.toUpperCase()) == null) {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(
String.format(Messages.INVALID_SIGNAL, signal))
.addConstraintViolation();
return false;
}
}
return true;
}
}