Java 类org.hibernate.validator.internal.engine.ConstraintViolationImpl 实例源码
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptor.java
/**
* Validate a bean of given declared class.
*
* @param bean
* the bean to validate.
* @param parameter
* the runtime annotations of this parameter.
* @param validationErrors
* the errors list to fill.
*/
private void validate(final Object bean, final Method method, final Parameter parameter, final int index,
final Set<ConstraintViolation<?>> validationErrors) {
if (bean == null) {
// Parameter is null, is it manually checked of managed by CXF for
// multipart?
// All non-body parameters are required by default
final PathImpl propertyPath = PathImpl.createPathFromString(method.getName());
propertyPath.addParameterNode(parameter.getName(), index);
validationErrors.add(ConstraintViolationImpl.forParameterValidation(NotNull.class.getName(), null, null, "interpolated", null,
null, null, null, propertyPath, NOT_NULL_DESCRIPTOR, null, null, null));
return;
}
final Class<?> clazz = bean.getClass();
if (Collection.class.isAssignableFrom(clazz)) {
validate((Collection<?>) bean, validationErrors);
} else if (clazz.isArray()) {
validate((Object[]) bean, validationErrors);
} else {
validateSimpleBean(bean, validationErrors);
}
}
项目:bootstrap
文件:ValidationJsonExceptionTest.java
@Test
public void testConstraintViolationExceptionParameter() {
final Wine bean = new Wine();
final Set<ConstraintViolation<?>> violations = new LinkedHashSet<>();
final ConstraintHelper helper = new ConstraintHelper();
final ConstraintDescriptor<NotEmpty> notEmptyNameDescriptor = new ConstraintDescriptorImpl<>(helper, (Member) null,
getAnnotation("name", NotEmpty.class), ElementType.FIELD);
PathImpl path = PathImpl.createPathFromString("name");
violations.add(ConstraintViolationImpl.<Wine> forParameterValidation("name-Empty", null, null, "interpolated", Wine.class, bean, new Object(),
"value", path, notEmptyNameDescriptor, ElementType.PARAMETER, null, null));
path.addParameterNode("parameter1", 0);
final ConstraintViolationException violationException = Mockito.mock(ConstraintViolationException.class);
Mockito.when(violationException.getConstraintViolations()).thenReturn(violations);
final ValidationJsonException validationJsonException = new ValidationJsonException(violationException);
Assert.assertFalse(validationJsonException.getErrors().isEmpty());
Assert.assertEquals("{parameter1=[{rule=name-Empty}]}", validationJsonException.getErrors().toString());
}
项目:gwt-bean-validators
文件:ValidationException.java
/**
* get validation error set.
*
* @return the validationErrorSet
*/
@SuppressWarnings({"unchecked"})
public final ArrayList<ConstraintViolation<?>> getValidationErrorSet(final Object pclass) {
final ArrayList<ConstraintViolation<?>> violations =
new ArrayList<>(this.validationErrorSet.size());
for (final SerializeableConstraintValidationImpl<?> violation : this.validationErrorSet) {
final Map<String, Object> messageParameters = new HashMap<>();
final Map<String, Object> expressionVariables = new HashMap<>();
violations.add(ConstraintViolationImpl.forBeanValidation( //
violation.getMessageTemplate(), //
messageParameters, //
expressionVariables, //
violation.getMessage(), //
((SerializeableConstraintValidationImpl<Object>) violation).getRootBeanClass(), //
pclass, //
violation.getLeafBean(), //
null, //
violation.getPropertyPath(), //
violation.getConstraintDescriptor(), //
null, //
null));
}
return violations;
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
/**
* instantiate a ConstraintViolationImpl.
*
* @param streamReader serialized stream reader to take data from
* @return ConstraintViolationImpl
* @throws SerializationException if deserialization fails
*/
public static ConstraintViolationImpl<Object> instantiate(
final SerializationStreamReader streamReader) throws SerializationException {
final String messageTemplate = null;
final String interpolatedMessage = streamReader.readString();
final Class<Object> rootBeanClass = null;
final Object rootBean = null;
final Object leafBeanInstance = null;
final Object value = null;
final Path propertyPath = (Path) streamReader.readObject();
final ConstraintDescriptor<?> constraintDescriptor = null;
final ElementType elementType = null;
final Map<String, Object> messageParameters = new HashMap<>();
final Map<String, Object> expressionVariables = new HashMap<>();
return (ConstraintViolationImpl<Object>) ConstraintViolationImpl.forBeanValidation(
messageTemplate, messageParameters, expressionVariables, interpolatedMessage, rootBeanClass,
rootBean, leafBeanInstance, value, propertyPath, constraintDescriptor, elementType, null);
}
项目:bootstrap
文件:ValidationJsonExceptionTest.java
@Test
public void testConstraintViolationException() {
final Wine bean = new Wine();
final Set<ConstraintViolation<?>> violations = new LinkedHashSet<>();
final ConstraintHelper helper = new ConstraintHelper();
final ConstraintDescriptor<NotEmpty> notEmptyNameDescriptor = new ConstraintDescriptorImpl<>(helper, (Member) null,
getAnnotation("name", NotEmpty.class), ElementType.FIELD);
final ConstraintDescriptor<NotEmpty> notEmptyGrapesDescriptor = new ConstraintDescriptorImpl<>(helper, (Member) null,
getAnnotation("grapes", NotEmpty.class), ElementType.FIELD);
final ConstraintDescriptor<Length> lengthNameDescriptor = new ConstraintDescriptorImpl<>(helper, (Member) null,
getAnnotation("name", Length.class), ElementType.FIELD);
violations.add(ConstraintViolationImpl.<Wine> forBeanValidation("name-Empty", null, null, "interpolated", Wine.class, bean, new Object(),
"value", PathImpl.createPathFromString("name"), notEmptyNameDescriptor, ElementType.FIELD, null));
violations.add(ConstraintViolationImpl.<Wine> forBeanValidation("name-length", null, null, "interpolated", Wine.class, bean, new Object(),
"value", PathImpl.createPathFromString("name"), lengthNameDescriptor, ElementType.FIELD, null));
violations.add(ConstraintViolationImpl.<Wine> forBeanValidation("grapes-Empty", null, null, "interpolated", Wine.class, bean, new Object(),
"value", PathImpl.createPathFromString("grapes"), notEmptyGrapesDescriptor, ElementType.FIELD, null));
final ConstraintViolationException violationException = Mockito.mock(ConstraintViolationException.class);
Mockito.when(violationException.getConstraintViolations()).thenReturn(violations);
final ValidationJsonException validationJsonException = new ValidationJsonException(violationException);
Assert.assertFalse(validationJsonException.getErrors().isEmpty());
Assert.assertEquals("{name=[{rule=name-Empty}, {rule=name-length, parameters={min=0, max=50}}], grapes=[{rule=grapes-Empty}]}",
validationJsonException.getErrors().toString());
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
/**
* Only a subset of fields are actually serialized.
* <p/>
* There is no guarantee that the root bean is GWT-serializable or that it's appropriate for it to
* be exposed on the client. Even if the root bean could be sent back, the lack of reflection on
* the client makes it troublesome to interpret the path as a sequence of property accesses.
* <p/>
* The current implementation is the simplest-to-implement properties.
* <ol>
* <li>Message</li>
* <li>Property Path</li>
* </ol>
*/
public static void serialize(final SerializationStreamWriter streamWriter,
final ConstraintViolationImpl instance) throws SerializationException {
// streamWriter.writeString(instance.getMessageTemplate());
streamWriter.writeString(instance.getMessage());
// streamWriter.writeObject(instance.getRootBeanClass());
// streamWriter.writeObject(instance.getRootBean());
// streamWriter.writeObject(instance.getLeafBean());
// streamWriter.writeObject(instance.getInvalidValue());
streamWriter.writeObject(instance.getPropertyPath());
// streamWriter.writeObject(instance.getConstraintDescriptor());
// ElementType
}
项目:common-resteasy
文件:ConstraintViolationExceptionMapperTest.java
@Test
public void testGetJsonString() throws Exception {
Object bean = new Object();
Set<ConstraintViolation<?>> violations = new HashSet<ConstraintViolation<?>>();
violations.add(new ConstraintViolationImpl("tmpl", "oopsie msg", Object.class,
bean, bean, bean, PathImpl.createPathFromString("var1"), null, null));
violations.add(new ConstraintViolationImpl("Grote boodschap", "failure", Object.class,
bean, bean, bean, PathImpl.createPathFromString("var2"), null, null));
violations.add(new ConstraintViolationImpl("Grote boodschap", "imsg", Object.class,
bean, bean, bean, PathImpl.createPathFromString("var2"), null, null));
ConstraintViolationException cve = new ConstraintViolationException("problems", violations);
Response res = mapper.toResponse(cve);
assertThat(res.getStatus()).isEqualTo(Response.Status.PRECONDITION_FAILED.getStatusCode());
assertThat( // grr, order of elements can change
res.getEntity().equals("{ \"error\" : {\"var1\":[\"oopsie msg\"],\"var2\":[\"failure\",\"imsg\"]}}")
||
res.getEntity().equals("{ \"error\" : {\"var1\":[\"oopsie msg\"],\"var2\":[\"imsg\",\"failure\"]}}")
||
res.getEntity().equals("{ \"error\" : {\"var2\":[\"failure\",\"imsg\"],\"var1\":[\"oopsie msg\"]}}")
||
res.getEntity().equals("{ \"error\" : {\"var2\":[\"imsg\",\"failure\"],\"var1\":[\"oopsie msg\"]}}")
).isTrue();
verify(preProcessLoggingInterceptor).postProcessError(cve,
"Applicatie keerde terug met een (verwachtte) ConstraintViolation:");
}
项目:wisdom
文件:ConstraintViolationSerializer.java
/**
* Writes the JSON form of the Constraint Violation.
*
* @param constraintViolation the violation
* @param jsonGenerator the generator
* @param serializerProvider the provider
* @throws IOException if it cannot be serialized
*/
@Override
public void serialize(ConstraintViolationImpl constraintViolation, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("message", constraintViolation.getMessage());
Object invalidValue = constraintViolation.getInvalidValue();
if (invalidValue != null) {
jsonGenerator.writeStringField("invalid", invalidValue.toString());
}
if (constraintViolation.getPropertyPath() != null) {
jsonGenerator.writeStringField("path", constraintViolation.getPropertyPath().toString());
}
jsonGenerator.writeEndObject();
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
public static void deserialize(final SerializationStreamReader streamReader,
final ConstraintViolationImpl instance) throws SerializationException {
// no fields
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
@Override
public void deserializeInstance(final SerializationStreamReader streamReader,
final ConstraintViolationImpl instance) throws SerializationException {
deserialize(streamReader, instance);
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
@Override
public ConstraintViolationImpl instantiateInstance(final SerializationStreamReader streamReader)
throws SerializationException {
return instantiate(streamReader);
}
项目:gwt-bean-validators
文件:ConstraintViolationImpl_CustomFieldSerializer.java
@Override
public void serializeInstance(final SerializationStreamWriter streamWriter,
final ConstraintViolationImpl instance) throws SerializationException {
serialize(streamWriter, instance);
}
项目:wisdom
文件:ConstraintViolationSerializer.java
/**
* @return the serialized class.
*/
@Override
public Class<ConstraintViolationImpl> handledType() {
return ConstraintViolationImpl.class;
}