本文整理了Java中javax.validation.ConstraintViolation
类的一些代码示例,展示了ConstraintViolation
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ConstraintViolation
类的具体详情如下:
包路径:javax.validation.ConstraintViolation
类名称:ConstraintViolation
[英]Describes a constraint violation. This object exposes the constraint violation context as well as the message describing the violation.
[中]描述约束冲突。此对象公开约束冲突上下文以及描述冲突的消息。
代码示例来源:origin: cloudfoundry/uaa
@Override
@SuppressWarnings("unchecked")
public void afterPropertiesSet() throws Exception {
Assert.state(yaml != null, "Yaml document should not be null");
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
try {
logger.trace("Yaml document is\n" + yaml);
configuration = (T) (new Yaml(constructor)).load(yaml);
Set<ConstraintViolation<T>> errors = validator.validate(configuration);
if (!errors.isEmpty()) {
logger.error("YAML configuration failed validation");
for (ConstraintViolation<?> error : errors) {
logger.error(error.getPropertyPath() + ": " + error.getMessage());
}
if (exceptionIfInvalid) {
@SuppressWarnings("rawtypes")
ConstraintViolationException summary = new ConstraintViolationException((Set) errors);
throw summary;
}
}
} catch (YAMLException e) {
if (exceptionIfInvalid) {
throw e;
}
}
}
代码示例来源:origin: ninjaframework/ninja
/**
* Validate the given value.
*
* @param value The value, may be null
* @param field The name of the field being validated, if applicable
* @param context The Ninja request context
*/
@Override
public void validate(Object value, String field, Context context) {
if (value != null) {
final ValidatorFactory validatorFactory = javax.validation.Validation.buildDefaultValidatorFactory();
final javax.validation.Validator validator = validatorFactory.getValidator();
final Set<javax.validation.ConstraintViolation<Object>> violations = validator.validate(value);
final Locale localeToUse = this.requestLanguage.getLocaleFromStringOrDefault(this.requestLanguage.getLanguage(context, Optional.<Result>empty()));
final Validation validation = context.getValidation();
for (final javax.validation.ConstraintViolation<Object> violation : violations) {
final String violationMessage = validatorFactory.getMessageInterpolator().interpolate(
violation.getMessageTemplate(),
new NinjaContextMsgInterpolator(value, violation.getConstraintDescriptor()),
localeToUse
);
final String messageKey = violation.getMessageTemplate().replaceAll("[{}]", "");
final ConstraintViolation constraintViolation = new ConstraintViolation(
messageKey, violation.getPropertyPath().toString(), violationMessage, violation.getInvalidValue());
validation.addViolation(constraintViolation);
}
}
}
代码示例来源:origin: apache/incubator-druid
final Set<ConstraintViolation<T>> violations = validator.validate(config);
if (!violations.isEmpty()) {
List<String> messages = new ArrayList<>();
StringBuilder path = new StringBuilder();
try {
Class<?> beanClazz = violation.getRootBeanClass();
final Iterator<Path.Node> iter = violation.getPropertyPath().iterator();
while (iter.hasNext()) {
Path.Node next = iter.next();
if (next.getKind() == ElementKind.PROPERTY) {
final String fieldName = next.getName();
final Field theField = beanClazz.getDeclaredField(fieldName);
messages.add(StringUtils.format("%s - %s", path.toString(), violation.getMessage()));
代码示例来源:origin: dropwizard/dropwizard
public static <T> String format(ConstraintViolation<T> v) {
if (v.getConstraintDescriptor().getAnnotation() instanceof ValidationMethod) {
return v.getMessage();
} else {
return String.format("%s %s", v.getPropertyPath(), v.getMessage());
}
}
代码示例来源:origin: apache/incubator-dubbo
protected Response handleConstraintViolationException(ConstraintViolationException cve) {
ViolationReport report = new ViolationReport();
for (ConstraintViolation cv : cve.getConstraintViolations()) {
report.addConstraintViolation(new RestConstraintViolation(
cv.getPropertyPath().toString(),
cv.getMessage(),
cv.getInvalidValue() == null ? "null" : cv.getInvalidValue().toString()));
}
// TODO for now just do xml output
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(report).type(ContentType.TEXT_XML_UTF_8).build();
}
}
代码示例来源:origin: javax.validation/validation-api
private static String toString(Set<? extends ConstraintViolation<?>> constraintViolations) {
return constraintViolations.stream()
.map( cv -> cv == null ? "null" : cv.getPropertyPath() + ": " + cv.getMessage() )
.collect( Collectors.joining( ", " ) );
}
}
代码示例来源:origin: Netflix/conductor
@Test
public void testWorkflowTaskTypeHTTPWithHttpParamMissing() {
WorkflowTask workflowTask = createSampleWorkflowTask();
workflowTask.setType("HTTP");
ConstraintMapping mapping = config.createConstraintMapping();
mapping.type(WorkflowTask.class)
.constraint(new WorkflowTaskTypeConstraintDef());
Validator validator = config.addMapping(mapping)
.buildValidatorFactory()
.getValidator();
when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef());
Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask);
assertEquals(1, result.size());
List<String> validationErrors = new ArrayList<>();
result.forEach(e -> validationErrors.add(e.getMessage()));
assertTrue(validationErrors.contains("inputParameters.http_request field is required for taskType: HTTP taskName: encode"));
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Perform validation of the given bean.
* @param bean the bean instance to validate
* @see javax.validation.Validator#validate
*/
protected void doValidate(Object bean) {
Assert.state(this.validator != null, "No Validator set");
Object objectToValidate = AopProxyUtils.getSingletonTarget(bean);
if (objectToValidate == null) {
objectToValidate = bean;
}
Set<ConstraintViolation<Object>> result = this.validator.validate(objectToValidate);
if (!result.isEmpty()) {
StringBuilder sb = new StringBuilder("Bean state is invalid: ");
for (Iterator<ConstraintViolation<Object>> it = result.iterator(); it.hasNext();) {
ConstraintViolation<Object> violation = it.next();
sb.append(violation.getPropertyPath()).append(" - ").append(violation.getMessage());
if (it.hasNext()) {
sb.append("; ");
}
}
throw new BeanInitializationException(sb.toString());
}
}
代码示例来源:origin: embulk/embulk
private static <T> String formatMessage(Set<ConstraintViolation<T>> violations) {
StringBuilder sb = new StringBuilder();
sb.append("Configuration task validation failed.");
for (ConstraintViolation<T> violation : violations) {
sb.append(" ");
sb.append(violation.getPropertyPath());
sb.append(" ");
sb.append(violation.getMessage());
sb.append(" but got ");
sb.append(violation.getInvalidValue());
}
return sb.toString();
}
}
代码示例来源:origin: Netflix/conductor
@Test
public void testWorkflowTaskMissingReferenceName() {
WorkflowTask workflowTask = createSampleWorkflowTask();
workflowTask.setTaskReferenceName(null);
Set<ConstraintViolation<Object>> result = validator.validate(workflowTask);
assertEquals(1, result.size());
assertEquals(result.iterator().next().getMessage(), "WorkflowTask taskReferenceName name cannot be empty or null");
}
代码示例来源:origin: scouter-project/scouter
@Override
public Response toResponse(javax.validation.ValidationException e) {
final StringBuilder strBuilder = new StringBuilder("[ValidationException] ");
for (ConstraintViolation<?> cv : ((ConstraintViolationException) e).getConstraintViolations()) {
strBuilder.append(cv.getPropertyPath().toString() + " " + cv.getMessage());
}
CommonResultView resultView = CommonResultView.fail(400, 400, strBuilder.toString(), null);
return Response.status(resultView.getStatus())
.type(MediaType.APPLICATION_JSON)
.entity(resultView).build();
}
}
代码示例来源:origin: rapidoid/rapidoid
Set<ConstraintViolation<?>> violations = ((ConstraintViolationException) cause).getConstraintViolations();
ConstraintViolation<?> v = it.next();
sb.append(v.getRootBeanClass().getSimpleName());
sb.append(".");
sb.append(v.getPropertyPath());
sb.append(" (");
sb.append(v.getMessage());
sb.append(")");
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testSimpleValidationWithClassLevel() {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.afterPropertiesSet();
ValidPerson person = new ValidPerson();
person.setName("Juergen");
person.getAddress().setStreet("Juergen's Street");
Set<ConstraintViolation<ValidPerson>> result = validator.validate(person);
assertEquals(1, result.size());
Iterator<ConstraintViolation<ValidPerson>> iterator = result.iterator();
ConstraintViolation<?> cv = iterator.next();
assertEquals("", cv.getPropertyPath().toString());
assertTrue(cv.getConstraintDescriptor().getAnnotation() instanceof NameAddressValid);
}
代码示例来源:origin: dropwizard/dropwizard
/**
* Gets the human friendly location of where the violation was raised.
*/
public static String getMessage(ConstraintViolation<?> v, Invocable invocable) {
final Pair<Path, ? extends ConstraintDescriptor<?>> of =
Pair.of(v.getPropertyPath(), v.getConstraintDescriptor());
final String cachePrefix = PREFIX_CACHE.getIfPresent(of);
if (cachePrefix == null) {
final String prefix = calculatePrefix(v, invocable);
PREFIX_CACHE.put(of, prefix);
return prefix + v.getMessage();
}
return cachePrefix + v.getMessage();
}
代码示例来源:origin: dropwizard/dropwizard
/**
* Gets the method return value name, if the violation is raised in it
*/
private static Optional<String> getMethodReturnValueName(ConstraintViolation<?> violation) {
int returnValueNames = -1;
final StringBuilder result = new StringBuilder("server response");
for (Path.Node node : violation.getPropertyPath()) {
if (node.getKind().equals(ElementKind.RETURN_VALUE)) {
returnValueNames = 0;
} else if (returnValueNames >= 0) {
result.append(returnValueNames++ == 0 ? " " : ".").append(node);
}
}
return returnValueNames >= 0 ? Optional.of(result.toString()) : Optional.empty();
}
代码示例来源:origin: AxonFramework/AxonFramework
String msg = "property " + violation.getPropertyPath();
msg += " in " + violation.getRootBeanClass();
msg += " " + violation.getMessage();
sortedViolations.add(msg);
代码示例来源:origin: hibernate/hibernate-validator
private ViolationExpectation(ConstraintViolation<?> violation, ViolationExpectationPropertiesToTest propertiesToTest) {
this.constraintType = violation.getConstraintDescriptor().getAnnotation().annotationType();
if ( propertiesToTest.testRootBeanClass ) {
withRootBeanClass( violation.getRootBeanClass() );
}
if ( propertiesToTest.testMessage ) {
withMessage( violation.getMessage() );
}
if ( propertiesToTest.testInvalidValue ) {
withInvalidValue( violation.getInvalidValue() );
}
if ( propertiesToTest.testPropertyPath ) {
withPropertyPath( new PathExpectation( violation.getPropertyPath() ) );
}
}
代码示例来源:origin: resteasy/Resteasy
if (cv1.getMessage() != null ? !cv1.getMessage().equals(cv2.getMessage()) : cv2.getMessage() != null)
if (cv1.getPropertyPath() != null ? !comparePropertyPath(cv1.getPropertyPath(), cv2.getPropertyPath()) : cv2.getPropertyPath() != null)
if (cv1.getRootBeanClass() != null ? !compareClass(cv1.getRootBeanClass(), cv2.getRootBeanClass()) : cv2.getRootBeanClass() != null)
if (cv1.getLeafBean() != null ? !compareClass(cv1.getLeafBean().getClass(), cv2.getLeafBean().getClass()) : cv2.getLeafBean() != null)
if (cv1.getConstraintDescriptor() != null ? !cv1.getConstraintDescriptor().equals(cv2.getConstraintDescriptor()) : cv2.getConstraintDescriptor() != null)
if (cv1.getConstraintDescriptor() instanceof ConstraintDescriptorImpl && cv2.getConstraintDescriptor() instanceof ConstraintDescriptorImpl)
ConstraintDescriptorImpl<?> cdi1 = (ConstraintDescriptorImpl<?>) cv1.getConstraintDescriptor();
ConstraintDescriptorImpl<?> cdi2 = (ConstraintDescriptorImpl<?>) cv2.getConstraintDescriptor();
if (cdi1.getElementType() != null ? !cdi1.getElementType().equals(cdi2.getElementType()) : cdi2.getElementType() != null) {
return false;
if (cv1.getMessageTemplate() != null ? !cv1.getMessageTemplate().equals(cv2.getMessageTemplate()) : cv2.getMessageTemplate() != null)
if (cv1.getInvalidValue() != null ? !cv1.getInvalidValue().equals(cv2.getInvalidValue()) : cv2.getInvalidValue() != null)
代码示例来源:origin: prestodb/presto
@Test
public void testFailsValidation()
{
ConstrainedPowerOfTwo object = new ConstrainedPowerOfTwo(11);
Set<ConstraintViolation<ConstrainedPowerOfTwo>> violations = VALIDATOR.validate(object);
assertEquals(violations.size(), 2);
for (ConstraintViolation<ConstrainedPowerOfTwo> violation : violations) {
assertInstanceOf(violation.getConstraintDescriptor().getAnnotation(), PowerOfTwo.class);
}
}
代码示例来源:origin: spring-projects/spring-data-rest
public ConstraintViolationMessage(ConstraintViolation<?> violation, MessageSource msgSrc, Locale locale) {
this.violation = violation;
this.message = msgSrc.getMessage(violation.getMessageTemplate(),
new Object[] { violation.getLeafBean().getClass().getSimpleName(), violation.getPropertyPath().toString(),
violation.getInvalidValue() }, violation.getMessage(), locale);
}
内容来源于网络,如有侵权,请联系作者删除!