package io.vertx.ext.web.api.validation;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.ext.web.api.RequestParameter;
import io.vertx.ext.web.api.validation.impl.BooleanTypeValidator;
import io.vertx.ext.web.api.validation.impl.RegularExpressions;
import io.vertx.ext.web.api.validation.impl.StringTypeValidator;
@VertxGen
public enum ParameterType {
GENERIC_STRING(RequestParameter::create), EMAIL(new StringTypeValidator(RegularExpressions.EMAIL)),
URI(new StringTypeValidator(RegularExpressions.URI)),
BOOL(new BooleanTypeValidator(null)),
INT(ParameterTypeValidator.createIntegerTypeValidator(null)),
FLOAT(ParameterTypeValidator.createFloatTypeValidator(null)),
DOUBLE(ParameterTypeValidator.createDoubleTypeValidator(null)),
DATE(new StringTypeValidator(RegularExpressions.DATE)),
DATETIME(new StringTypeValidator(RegularExpressions.DATETIME)),
TIME(new StringTypeValidator(RegularExpressions.TIME)), BASE64(new StringTypeValidator(RegularExpressions.BASE64)),
IPV4(new StringTypeValidator(RegularExpressions.IPV4)), IPV6(new StringTypeValidator(RegularExpressions.IPV6)),
HOSTNAME(new StringTypeValidator(RegularExpressions.HOSTNAME)),
UUID(new StringTypeValidator(RegularExpressions.UUID));
private ParameterTypeValidator validationMethod;
ParameterType(ParameterTypeValidator validationMethod) {
this.validationMethod = validationMethod;
}
public ParameterTypeValidator validationMethod() {
return validationMethod;
}
}