package br.com.caelum.stella.bean.validation.xml.logic;
import java.util.Arrays;
import java.util.List;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import br.com.caelum.stella.bean.validation.xml.Max;
/**
* @deprecated Anotação deste validador está obsoleta
*/
@Deprecated
final public class StellaMaxValidator implements ConstraintValidator<Max, Number> {
private Max annotation;
@SuppressWarnings({ "unchecked", "rawtypes" })
private final List<Class<?>> acceptedTypes = (List) Arrays.asList(Byte.class, Short.class, Integer.class,
Long.class);
public void initialize(final Max annotation) {
this.annotation = annotation;
}
public boolean isValid(final Number object, ConstraintValidatorContext context) {
if (object == null) {
return true;
}
if (!acceptedTypes.contains(object.getClass())) {
throw new IllegalStateException(Max.class.getSimpleName() + " cannot be used to annotate a field of type "
+ object.getClass().getName() + ". Only " + Arrays.toString(acceptedTypes.toArray())
+ " are accepted.");
}
Long val = Long.parseLong(object.toString());
if (val > annotation.value()) {
return false;
}
return true;
}
}