javax.validation.ConstraintViolation类的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(12.7k)|赞(0)|评价(0)|浏览(2170)

本文整理了Java中javax.validation.ConstraintViolation类的一些代码示例,展示了ConstraintViolation类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ConstraintViolation类的具体详情如下:
包路径:javax.validation.ConstraintViolation
类名称:ConstraintViolation

ConstraintViolation介绍

[英]Describes a constraint violation. This object exposes the constraint violation context as well as the message describing the violation.
[中]描述约束冲突。此对象公开约束冲突上下文以及描述冲突的消息。

代码示例

代码示例来源:origin: cloudfoundry/uaa

  1. @Override
  2. @SuppressWarnings("unchecked")
  3. public void afterPropertiesSet() throws Exception {
  4. Assert.state(yaml != null, "Yaml document should not be null");
  5. Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
  6. try {
  7. logger.trace("Yaml document is\n" + yaml);
  8. configuration = (T) (new Yaml(constructor)).load(yaml);
  9. Set<ConstraintViolation<T>> errors = validator.validate(configuration);
  10. if (!errors.isEmpty()) {
  11. logger.error("YAML configuration failed validation");
  12. for (ConstraintViolation<?> error : errors) {
  13. logger.error(error.getPropertyPath() + ": " + error.getMessage());
  14. }
  15. if (exceptionIfInvalid) {
  16. @SuppressWarnings("rawtypes")
  17. ConstraintViolationException summary = new ConstraintViolationException((Set) errors);
  18. throw summary;
  19. }
  20. }
  21. } catch (YAMLException e) {
  22. if (exceptionIfInvalid) {
  23. throw e;
  24. }
  25. }
  26. }

代码示例来源:origin: ninjaframework/ninja

  1. /**
  2. * Validate the given value.
  3. *
  4. * @param value The value, may be null
  5. * @param field The name of the field being validated, if applicable
  6. * @param context The Ninja request context
  7. */
  8. @Override
  9. public void validate(Object value, String field, Context context) {
  10. if (value != null) {
  11. final ValidatorFactory validatorFactory = javax.validation.Validation.buildDefaultValidatorFactory();
  12. final javax.validation.Validator validator = validatorFactory.getValidator();
  13. final Set<javax.validation.ConstraintViolation<Object>> violations = validator.validate(value);
  14. final Locale localeToUse = this.requestLanguage.getLocaleFromStringOrDefault(this.requestLanguage.getLanguage(context, Optional.<Result>empty()));
  15. final Validation validation = context.getValidation();
  16. for (final javax.validation.ConstraintViolation<Object> violation : violations) {
  17. final String violationMessage = validatorFactory.getMessageInterpolator().interpolate(
  18. violation.getMessageTemplate(),
  19. new NinjaContextMsgInterpolator(value, violation.getConstraintDescriptor()),
  20. localeToUse
  21. );
  22. final String messageKey = violation.getMessageTemplate().replaceAll("[{}]", "");
  23. final ConstraintViolation constraintViolation = new ConstraintViolation(
  24. messageKey, violation.getPropertyPath().toString(), violationMessage, violation.getInvalidValue());
  25. validation.addViolation(constraintViolation);
  26. }
  27. }
  28. }

代码示例来源:origin: apache/incubator-druid

  1. final Set<ConstraintViolation<T>> violations = validator.validate(config);
  2. if (!violations.isEmpty()) {
  3. List<String> messages = new ArrayList<>();
  4. StringBuilder path = new StringBuilder();
  5. try {
  6. Class<?> beanClazz = violation.getRootBeanClass();
  7. final Iterator<Path.Node> iter = violation.getPropertyPath().iterator();
  8. while (iter.hasNext()) {
  9. Path.Node next = iter.next();
  10. if (next.getKind() == ElementKind.PROPERTY) {
  11. final String fieldName = next.getName();
  12. final Field theField = beanClazz.getDeclaredField(fieldName);
  13. messages.add(StringUtils.format("%s - %s", path.toString(), violation.getMessage()));

代码示例来源:origin: dropwizard/dropwizard

  1. public static <T> String format(ConstraintViolation<T> v) {
  2. if (v.getConstraintDescriptor().getAnnotation() instanceof ValidationMethod) {
  3. return v.getMessage();
  4. } else {
  5. return String.format("%s %s", v.getPropertyPath(), v.getMessage());
  6. }
  7. }

代码示例来源:origin: apache/incubator-dubbo

  1. protected Response handleConstraintViolationException(ConstraintViolationException cve) {
  2. ViolationReport report = new ViolationReport();
  3. for (ConstraintViolation cv : cve.getConstraintViolations()) {
  4. report.addConstraintViolation(new RestConstraintViolation(
  5. cv.getPropertyPath().toString(),
  6. cv.getMessage(),
  7. cv.getInvalidValue() == null ? "null" : cv.getInvalidValue().toString()));
  8. }
  9. // TODO for now just do xml output
  10. return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(report).type(ContentType.TEXT_XML_UTF_8).build();
  11. }
  12. }

代码示例来源:origin: javax.validation/validation-api

  1. private static String toString(Set<? extends ConstraintViolation<?>> constraintViolations) {
  2. return constraintViolations.stream()
  3. .map( cv -> cv == null ? "null" : cv.getPropertyPath() + ": " + cv.getMessage() )
  4. .collect( Collectors.joining( ", " ) );
  5. }
  6. }

代码示例来源:origin: Netflix/conductor

  1. @Test
  2. public void testWorkflowTaskTypeHTTPWithHttpParamMissing() {
  3. WorkflowTask workflowTask = createSampleWorkflowTask();
  4. workflowTask.setType("HTTP");
  5. ConstraintMapping mapping = config.createConstraintMapping();
  6. mapping.type(WorkflowTask.class)
  7. .constraint(new WorkflowTaskTypeConstraintDef());
  8. Validator validator = config.addMapping(mapping)
  9. .buildValidatorFactory()
  10. .getValidator();
  11. when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef());
  12. Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask);
  13. assertEquals(1, result.size());
  14. List<String> validationErrors = new ArrayList<>();
  15. result.forEach(e -> validationErrors.add(e.getMessage()));
  16. assertTrue(validationErrors.contains("inputParameters.http_request field is required for taskType: HTTP taskName: encode"));
  17. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Perform validation of the given bean.
  3. * @param bean the bean instance to validate
  4. * @see javax.validation.Validator#validate
  5. */
  6. protected void doValidate(Object bean) {
  7. Assert.state(this.validator != null, "No Validator set");
  8. Object objectToValidate = AopProxyUtils.getSingletonTarget(bean);
  9. if (objectToValidate == null) {
  10. objectToValidate = bean;
  11. }
  12. Set<ConstraintViolation<Object>> result = this.validator.validate(objectToValidate);
  13. if (!result.isEmpty()) {
  14. StringBuilder sb = new StringBuilder("Bean state is invalid: ");
  15. for (Iterator<ConstraintViolation<Object>> it = result.iterator(); it.hasNext();) {
  16. ConstraintViolation<Object> violation = it.next();
  17. sb.append(violation.getPropertyPath()).append(" - ").append(violation.getMessage());
  18. if (it.hasNext()) {
  19. sb.append("; ");
  20. }
  21. }
  22. throw new BeanInitializationException(sb.toString());
  23. }
  24. }

代码示例来源:origin: embulk/embulk

  1. private static <T> String formatMessage(Set<ConstraintViolation<T>> violations) {
  2. StringBuilder sb = new StringBuilder();
  3. sb.append("Configuration task validation failed.");
  4. for (ConstraintViolation<T> violation : violations) {
  5. sb.append(" ");
  6. sb.append(violation.getPropertyPath());
  7. sb.append(" ");
  8. sb.append(violation.getMessage());
  9. sb.append(" but got ");
  10. sb.append(violation.getInvalidValue());
  11. }
  12. return sb.toString();
  13. }
  14. }

代码示例来源:origin: Netflix/conductor

  1. @Test
  2. public void testWorkflowTaskMissingReferenceName() {
  3. WorkflowTask workflowTask = createSampleWorkflowTask();
  4. workflowTask.setTaskReferenceName(null);
  5. Set<ConstraintViolation<Object>> result = validator.validate(workflowTask);
  6. assertEquals(1, result.size());
  7. assertEquals(result.iterator().next().getMessage(), "WorkflowTask taskReferenceName name cannot be empty or null");
  8. }

代码示例来源:origin: scouter-project/scouter

  1. @Override
  2. public Response toResponse(javax.validation.ValidationException e) {
  3. final StringBuilder strBuilder = new StringBuilder("[ValidationException] ");
  4. for (ConstraintViolation<?> cv : ((ConstraintViolationException) e).getConstraintViolations()) {
  5. strBuilder.append(cv.getPropertyPath().toString() + " " + cv.getMessage());
  6. }
  7. CommonResultView resultView = CommonResultView.fail(400, 400, strBuilder.toString(), null);
  8. return Response.status(resultView.getStatus())
  9. .type(MediaType.APPLICATION_JSON)
  10. .entity(resultView).build();
  11. }
  12. }

代码示例来源:origin: rapidoid/rapidoid

  1. Set<ConstraintViolation<?>> violations = ((ConstraintViolationException) cause).getConstraintViolations();
  2. ConstraintViolation<?> v = it.next();
  3. sb.append(v.getRootBeanClass().getSimpleName());
  4. sb.append(".");
  5. sb.append(v.getPropertyPath());
  6. sb.append(" (");
  7. sb.append(v.getMessage());
  8. sb.append(")");

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void testSimpleValidationWithClassLevel() {
  3. LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
  4. validator.afterPropertiesSet();
  5. ValidPerson person = new ValidPerson();
  6. person.setName("Juergen");
  7. person.getAddress().setStreet("Juergen's Street");
  8. Set<ConstraintViolation<ValidPerson>> result = validator.validate(person);
  9. assertEquals(1, result.size());
  10. Iterator<ConstraintViolation<ValidPerson>> iterator = result.iterator();
  11. ConstraintViolation<?> cv = iterator.next();
  12. assertEquals("", cv.getPropertyPath().toString());
  13. assertTrue(cv.getConstraintDescriptor().getAnnotation() instanceof NameAddressValid);
  14. }

代码示例来源:origin: dropwizard/dropwizard

  1. /**
  2. * Gets the human friendly location of where the violation was raised.
  3. */
  4. public static String getMessage(ConstraintViolation<?> v, Invocable invocable) {
  5. final Pair<Path, ? extends ConstraintDescriptor<?>> of =
  6. Pair.of(v.getPropertyPath(), v.getConstraintDescriptor());
  7. final String cachePrefix = PREFIX_CACHE.getIfPresent(of);
  8. if (cachePrefix == null) {
  9. final String prefix = calculatePrefix(v, invocable);
  10. PREFIX_CACHE.put(of, prefix);
  11. return prefix + v.getMessage();
  12. }
  13. return cachePrefix + v.getMessage();
  14. }

代码示例来源:origin: dropwizard/dropwizard

  1. /**
  2. * Gets the method return value name, if the violation is raised in it
  3. */
  4. private static Optional<String> getMethodReturnValueName(ConstraintViolation<?> violation) {
  5. int returnValueNames = -1;
  6. final StringBuilder result = new StringBuilder("server response");
  7. for (Path.Node node : violation.getPropertyPath()) {
  8. if (node.getKind().equals(ElementKind.RETURN_VALUE)) {
  9. returnValueNames = 0;
  10. } else if (returnValueNames >= 0) {
  11. result.append(returnValueNames++ == 0 ? " " : ".").append(node);
  12. }
  13. }
  14. return returnValueNames >= 0 ? Optional.of(result.toString()) : Optional.empty();
  15. }

代码示例来源:origin: AxonFramework/AxonFramework

  1. String msg = "property " + violation.getPropertyPath();
  2. msg += " in " + violation.getRootBeanClass();
  3. msg += " " + violation.getMessage();
  4. sortedViolations.add(msg);

代码示例来源:origin: hibernate/hibernate-validator

  1. private ViolationExpectation(ConstraintViolation<?> violation, ViolationExpectationPropertiesToTest propertiesToTest) {
  2. this.constraintType = violation.getConstraintDescriptor().getAnnotation().annotationType();
  3. if ( propertiesToTest.testRootBeanClass ) {
  4. withRootBeanClass( violation.getRootBeanClass() );
  5. }
  6. if ( propertiesToTest.testMessage ) {
  7. withMessage( violation.getMessage() );
  8. }
  9. if ( propertiesToTest.testInvalidValue ) {
  10. withInvalidValue( violation.getInvalidValue() );
  11. }
  12. if ( propertiesToTest.testPropertyPath ) {
  13. withPropertyPath( new PathExpectation( violation.getPropertyPath() ) );
  14. }
  15. }

代码示例来源:origin: resteasy/Resteasy

  1. if (cv1.getMessage() != null ? !cv1.getMessage().equals(cv2.getMessage()) : cv2.getMessage() != null)
  2. if (cv1.getPropertyPath() != null ? !comparePropertyPath(cv1.getPropertyPath(), cv2.getPropertyPath()) : cv2.getPropertyPath() != null)
  3. if (cv1.getRootBeanClass() != null ? !compareClass(cv1.getRootBeanClass(), cv2.getRootBeanClass()) : cv2.getRootBeanClass() != null)
  4. if (cv1.getLeafBean() != null ? !compareClass(cv1.getLeafBean().getClass(), cv2.getLeafBean().getClass()) : cv2.getLeafBean() != null)
  5. if (cv1.getConstraintDescriptor() != null ? !cv1.getConstraintDescriptor().equals(cv2.getConstraintDescriptor()) : cv2.getConstraintDescriptor() != null)
  6. if (cv1.getConstraintDescriptor() instanceof ConstraintDescriptorImpl && cv2.getConstraintDescriptor() instanceof ConstraintDescriptorImpl)
  7. ConstraintDescriptorImpl<?> cdi1 = (ConstraintDescriptorImpl<?>) cv1.getConstraintDescriptor();
  8. ConstraintDescriptorImpl<?> cdi2 = (ConstraintDescriptorImpl<?>) cv2.getConstraintDescriptor();
  9. if (cdi1.getElementType() != null ? !cdi1.getElementType().equals(cdi2.getElementType()) : cdi2.getElementType() != null) {
  10. return false;
  11. if (cv1.getMessageTemplate() != null ? !cv1.getMessageTemplate().equals(cv2.getMessageTemplate()) : cv2.getMessageTemplate() != null)
  12. if (cv1.getInvalidValue() != null ? !cv1.getInvalidValue().equals(cv2.getInvalidValue()) : cv2.getInvalidValue() != null)

代码示例来源:origin: prestodb/presto

  1. @Test
  2. public void testFailsValidation()
  3. {
  4. ConstrainedPowerOfTwo object = new ConstrainedPowerOfTwo(11);
  5. Set<ConstraintViolation<ConstrainedPowerOfTwo>> violations = VALIDATOR.validate(object);
  6. assertEquals(violations.size(), 2);
  7. for (ConstraintViolation<ConstrainedPowerOfTwo> violation : violations) {
  8. assertInstanceOf(violation.getConstraintDescriptor().getAnnotation(), PowerOfTwo.class);
  9. }
  10. }

代码示例来源:origin: spring-projects/spring-data-rest

  1. public ConstraintViolationMessage(ConstraintViolation<?> violation, MessageSource msgSrc, Locale locale) {
  2. this.violation = violation;
  3. this.message = msgSrc.getMessage(violation.getMessageTemplate(),
  4. new Object[] { violation.getLeafBean().getClass().getSimpleName(), violation.getPropertyPath().toString(),
  5. violation.getInvalidValue() }, violation.getMessage(), locale);
  6. }

相关文章