本文整理汇总了Java中javax.validation.executable.ExecutableValidator类的典型用法代码示例。如果您正苦于以下问题:Java ExecutableValidator类的具体用法?Java ExecutableValidator怎么用?Java ExecutableValidator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ExecutableValidator类属于javax.validation.executable包,在下文中一共展示了ExecutableValidator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
public static void main(String[] args) throws NoSuchMethodException, SecurityException {
AutoRunHelper.run(App.class);
// 测试参数校验
App app = new App();
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
ExecutableValidator executableValidator = factory.getValidator().forExecutables();
Method method = App.class.getMethod("showEmail", String.class);
Object[] parameterValues = {"email"};
Set<ConstraintViolation<App>> violations = executableValidator.validateParameters(app, method, parameterValues);
String message = violations.iterator().hasNext() ? violations.iterator().next().getMessage() : "";
System.out.println("values:" + parameterValues[0].toString() + " size: " + violations.size() + " msg:" + message);
Object[] parameterValues2 = {"abc"};
violations = executableValidator.validateParameters(app, method, parameterValues2);
message = violations.iterator().hasNext() ? violations.iterator().next().getMessage() : "";
System.out.println("values:" + parameterValues2[0].toString() + " size: " + violations.size() + " msg:" + message);
}
示例2: verifyMethod
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
/**
* Validate the method parameters based on javax.validation: Hibernate Validator.
*
* @param proxy The checked target object.
* @param method The checked target method.
* @param args The checked target method's parameters.
* @param <T> The target object type: Generic types.
*/
public <T> void verifyMethod(
final T proxy,
final Method method,
final Object[] args) {
// 1. Get method validator
final ExecutableValidator validatorParam
= VALIDATOR.forExecutables();
// 2. Create new params that wait for validation
final Set<ConstraintViolation<T>> constraints
= validatorParam.validateParameters(proxy, method, args);
// 3. Throw out exception
if (!constraints.isEmpty()) {
final ConstraintViolation<T> item = constraints.iterator().next();
if (null != item) {
final WebException error
= new _400ValidationException(getClass(),
proxy.getClass(), method, item.getMessage());
error.setReadible(item.getMessage());
throw error;
}
}
}
示例3: getValidateServiceMethodContext
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Nullable
protected ValidateServiceMethodContext getValidateServiceMethodContext(ProceedingJoinPoint ctx) {
ValidateServiceMethodContext validatedContext = null;
if (ctx instanceof MethodInvocationProceedingJoinPoint) {
MethodInvocationProceedingJoinPoint methodInvocationCtx = (MethodInvocationProceedingJoinPoint) ctx;
Method method = ((MethodSignature) ctx.getSignature()).getMethod();
Validated validated = getValidated(method, ctx.getSignature().getDeclaringType());
if (validated != null) {
Object[] args = methodInvocationCtx.getArgs();
ExecutableValidator validator = beanValidation.getValidator().forExecutables();
validatedContext = new ValidateServiceMethodContext(validator, ctx.getThis(),
method, args, validated.value());
}
}
return validatedContext;
}
示例4: constructorViolationsWhenNullParameters
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Test
public void constructorViolationsWhenNullParameters() throws NoSuchMethodException, SecurityException {
final MyParameter parameter = new MyParameter();
ExecutableValidator methodValidator = validator.forExecutables();
Constructor<MyBean2> constructor = MyBean2.class
.getConstructor(parameter.getClass());
Set<ConstraintViolation<MyBean2>> constraints = methodValidator
.validateConstructorParameters(constructor, new Object[] {parameter});
ConstraintViolation<MyBean2> violation = constraints.iterator().next();
assertThat(constraints.size(), equalTo(1));
assertThat(violation.getMessageTemplate(), equalTo("{javax.validation.constraints.NotNull.message}"));
assertThat(violation.getPropertyPath().toString(), equalTo("MyBean2.arg0.value"));
}
示例5: configure
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Override
protected void configure() {
final GuiceConstraintValidatorFactory constraintValidatorFactory = new GuiceConstraintValidatorFactory();
requestInjection(constraintValidatorFactory);
/* Overriding just constraints factory to allow them use guice injections */
final Validator validator = factory.usingContext()
.constraintValidatorFactory(constraintValidatorFactory)
.getValidator();
bind(Validator.class).toInstance(validator);
bind(ExecutableValidator.class).toInstance(validator.forExecutables());
bind(ValidatorFactory.class).toInstance(factory);
bindConstant().annotatedWith(Names.named("guice.validator.addDefaultGroup")).to(addDefaultGroup);
final ValidationGroupInterceptor groupInterceptor = new ValidationGroupInterceptor();
requestInjection(groupInterceptor);
configureGroupsAop(groupInterceptor);
final ValidationMethodInterceptor interceptor = new ValidationMethodInterceptor();
requestInjection(interceptor);
configureAop(interceptor);
}
示例6: testMethodParameters
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Test
public void testMethodParameters() throws NoSuchMethodException {
ExecutableValidator executableValidator = validator.forExecutables();
Method method = RentalStation.class.getMethod("rentCar", String.class, Date.class,
Integer.TYPE);
RentalStation station = new RentalStation("hertz", "");
Set<ConstraintViolation<RentalStation>> violations = executableValidator.validateParameters(
station, method, new Object[]{"Clement", new Date(System.currentTimeMillis() + 10000), 1});
assertThat(violations.size()).isEqualTo(0);
violations = executableValidator.validateParameters(
station, method, new Object[]{"Clement", new Date(System.currentTimeMillis() - 10000), 1});
assertThat(violations.size()).isEqualTo(1);
violations = executableValidator.validateParameters(
station, method, new Object[]{"Clement", new Date(System.currentTimeMillis() - 10000), 0});
assertThat(violations.size()).isEqualTo(2);
violations = executableValidator.validateParameters(
station, method, new Object[]{null, new Date(System.currentTimeMillis() - 10000), 0});
assertThat(violations.size()).isEqualTo(3);
}
示例7: validateMethodInvocation
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@AroundInvoke
public Object validateMethodInvocation(InvocationContext ctx) throws Exception {
Object resource = ctx.getTarget();
Method method = ctx.getMethod();
log.log(Level.FINE, "Starting validation for controller method: {0}#{1}", new Object[]{
resource.getClass().getName(), method.getName()
});
Validator validator = validatorFactory.getValidator();
ExecutableValidator executableValidator = validator.forExecutables();
// validate controller property parameters
processViolations(ctx,
validator.validate(resource)
);
// validate controller method parameters
processViolations(ctx,
executableValidator.validateParameters(resource, method, ctx.getParameters())
);
// execute method
Object result = ctx.proceed();
// TODO: Does this make sense? Nobody will be able to handle these. Remove?
processViolations(ctx,
executableValidator.validateReturnValue(resource, method, result)
);
return result;
}
示例8: handleMessage
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Override
public void handleMessage(Message message) {
final List<Object> arguments = MessageContentsList.getContentsList(message);
if (!arguments.isEmpty()) {
final Object instance = message.getExchange().get(Message.SERVICE_OBJECT);
final Method method = (Method) message.get(METHOD_KEY);
final ExecutableValidator methodValidator = validator.forExecutables();
final Class<?>[] groups = Optional.ofNullable(method.getAnnotation(Groups.class)).map(Groups::value).orElse(DEFAULT_GROUPS);
final Set<ConstraintViolation<Object>> violations = methodValidator.validateParameters(instance, method, arguments.toArray(), groups);
if (!violations.isEmpty()) {
message.put(FaultListener.class.getName(), new NoOpFaultListener());
throw new JaxrsServerValidationException(violations);
}
}
}
示例9: validateMethodParameters
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
protected void validateMethodParameters(ProceedingJoinPoint ctx,
@Nullable ValidateServiceMethodContext validatedContext) {
if (validatedContext != null) {
log.trace("Validating service call params: {}", ctx.getSignature());
ExecutableValidator validator = validatedContext.getValidator();
Class[] constraintGroups = validatedContext.getGroups();
if (constraintGroups.length == 0) {
constraintGroups = new Class[]{Default.class, ServiceParametersChecks.class};
}
Set<ConstraintViolation<Object>> violations = validator.validateParameters(
validatedContext.getTarget(),
validatedContext.getMethod(),
validatedContext.getArgs(),
constraintGroups);
if (!violations.isEmpty()) {
Class serviceInterface = ctx.getSignature().getDeclaringType();
Set<ConstraintViolation<Object>> resultViolations = violations.stream()
.map(violation -> new ServiceMethodConstraintViolation(serviceInterface, violation))
.collect(Collectors.toSet());
throw new MethodParametersValidationException("Service method parameters validation failed", resultViolations);
}
}
}
示例10: validateMethodResult
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
protected void validateMethodResult(ProceedingJoinPoint ctx, ValidateServiceMethodContext validatedContext,
Object methodResult) {
if (validatedContext != null) {
ExecutableValidator validator = validatedContext.getValidator();
log.trace("Validating service call result: {}", ctx.getSignature());
Class[] constraintGroups = validatedContext.getGroups();
if (constraintGroups.length == 0) {
constraintGroups = new Class[]{Default.class, ServiceResultChecks.class};
}
Set<ConstraintViolation<Object>> violations = validator.validateReturnValue(
validatedContext.getTarget(),
validatedContext.getMethod(),
methodResult,
constraintGroups);
if (!violations.isEmpty()) {
Class serviceInterface = ctx.getSignature().getDeclaringType();
Set<ConstraintViolation<Object>> paramsViolations = violations.stream()
.map(violation -> new ServiceMethodConstraintViolation(serviceInterface, violation))
.collect(Collectors.toSet());
throw new MethodResultValidationException("Service method result validation failed", paramsViolations);
}
}
}
示例11: ValidateServiceMethodContext
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
public ValidateServiceMethodContext(ExecutableValidator validator, Object target, Method method, Object[] args, Class[] groups) {
this.validator = validator;
this.target = target;
this.method = method;
this.args = args;
this.groups = groups;
}
示例12: validate
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
public <T> void validate(final Method method, final Object[] arguments, final T instance) {
if (validator == null) {
log.warn("Bean Validation provider could not be found, no validation will be performed");
return;
}
ExecutableValidator methodValidator = validator.forExecutables();
Set<ConstraintViolation<T>> violations = methodValidator.validateParameters(instance,
method, arguments);
if (!violations.isEmpty()) {
throw new ConstraintViolationException(violations);
}
}
示例13: forExecutables
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Nullable
@Override
public ExecutableValidator forExecutables() {
Validator validator = this.getValidator();
return ((validator instanceof ExecutableValidator) ? ((ExecutableValidator) validator) : null);
}
示例14: executableValidator
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
private ExecutableValidator executableValidator() {
if (null == executableValidator) {
synchronized (this) {
if (null == executableValidator) {
validator = Act.getInstance(Validator.class);
executableValidator = validator.forExecutables();
}
}
}
return executableValidator;
}
示例15: constructorViolationsWhenNotNullParameters
import javax.validation.executable.ExecutableValidator; //导入依赖的package包/类
@Test
public void constructorViolationsWhenNotNullParameters() throws NoSuchMethodException, SecurityException {
final MyParameter parameter = new MyParameter();
parameter.setValue("foo");
ExecutableValidator methodValidator = validator.forExecutables();
Constructor<MyBean2> constructor = MyBean2.class
.getConstructor(parameter.getClass());
Set<ConstraintViolation<MyBean2>> constraints = methodValidator
.validateConstructorParameters(constructor, new Object[] {parameter});
assertThat(constraints.isEmpty(), equalTo(true));
}