use of jakarta.validation.Path in project graphql-java-extended-validation by graphql-java.
the class ResourceBundleMessageInterpolator method buildHibernateContext.
@SuppressWarnings("ConstantConditions")
private MessageInterpolatorContext buildHibernateContext(Map<String, Object> messageParams, ValidationEnvironment validationEnvironment) {
Object validatedValue = validationEnvironment.getValidatedValue();
ConstraintAnnotationDescriptor<BridgeAnnotation> annotationDescriptor = new ConstraintAnnotationDescriptor.Builder<>(BridgeAnnotation.class).build();
ConstraintDescriptorImpl<BridgeAnnotation> constraintDescriptor = new ConstraintDescriptorImpl<>(ConstraintHelper.forAllBuiltinConstraints(), null, annotationDescriptor, ConstraintLocationKind.FIELD, ConstraintType.GENERIC);
Map<String, Object> expressionVariables = StandardELVariables.standardELVars(validationEnvironment);
Class<?> rootBeanType = null;
Path propertyPath = null;
return new MessageInterpolatorContext(constraintDescriptor, validatedValue, rootBeanType, propertyPath, messageParams, expressionVariables, ExpressionLanguageFeatureLevel.BEAN_PROPERTIES, true);
}
use of jakarta.validation.Path in project hibernate-validator by hibernate.
the class ValidatorImpl method isCascadeRequired.
private boolean isCascadeRequired(BaseBeanValidationContext<?> validationContext, Object traversableObject, PathImpl path, ConstraintLocationKind constraintLocationKind) {
if (needToCallTraversableResolver(path, constraintLocationKind)) {
return true;
}
boolean isReachable = isReachable(validationContext, traversableObject, path, constraintLocationKind);
if (!isReachable) {
return false;
}
Path pathToObject = PathImpl.createCopyWithoutLeafNode(path);
try {
return validationContext.getTraversableResolver().isCascadable(traversableObject, path.getLeafNode(), validationContext.getRootBeanClass(), pathToObject, constraintLocationKind.getElementType());
} catch (RuntimeException e) {
throw LOG.getErrorDuringCallOfTraversableResolverIsCascadableException(e);
}
}
use of jakarta.validation.Path in project hibernate-validator by hibernate.
the class MessageInterpolatorContextTest method testGetPropertyPath.
@Test
@TestForIssue(jiraKey = "HV-1657")
public void testGetPropertyPath() {
Path pathMock = createMock(Path.class);
MessageInterpolator.Context context = new MessageInterpolatorContext(null, null, null, pathMock, Collections.<String, Object>emptyMap(), Collections.<String, Object>emptyMap(), ExpressionLanguageFeatureLevel.BEAN_METHODS, false);
assertSame(context.unwrap(HibernateMessageInterpolatorContext.class).getPropertyPath(), pathMock);
}
use of jakarta.validation.Path in project hibernate-validator by hibernate.
the class NodeImplTest method testValidateCustomClassConstraint.
@Test
public void testValidateCustomClassConstraint() {
C c = new C();
Set<ConstraintViolation<C>> constraintViolations = validator.validate(c);
assertThat(constraintViolations).containsOnlyViolations(violationOf(CustomConstraint.class).withPropertyPath(pathWith().bean()));
Path path = constraintViolations.iterator().next().getPropertyPath();
Iterator<Path.Node> nodeIterator = path.iterator();
Path.Node node = nodeIterator.next();
assertEquals(node.getKind(), ElementKind.BEAN, "unexpected node kind");
}
use of jakarta.validation.Path in project hibernate-validator by hibernate.
the class NodeImplTest method testContainerElementNodeGetValueForMap.
@Test
@TestForIssue(jiraKey = "HV-1419")
public void testContainerElementNodeGetValueForMap() {
Validator validator = ValidatorUtil.getConfiguration().addValueExtractor(new CustomContainerValueExtractor()).buildValidatorFactory().getValidator();
BuildingWithContainerElementConstraints building = new BuildingWithContainerElementConstraints();
building.managers.put("main", "Ron");
building.managers.put("stand-in", "Ronnie");
Set<ConstraintViolation<BuildingWithContainerElementConstraints>> constraintViolations = validator.validate(building);
assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withPropertyPath(pathWith().property("managers").containerElement("<map value>", true, "main", null, Map.class, 1)));
Path path = constraintViolations.iterator().next().getPropertyPath();
Iterator<Path.Node> nodeIterator = path.iterator();
Path.Node node = nodeIterator.next();
assertEquals(node.getKind(), ElementKind.PROPERTY, "unexpected node kind");
node = nodeIterator.next();
assertEquals(node.getKind(), ElementKind.CONTAINER_ELEMENT, "unexpected node kind");
assertEquals(node.as(ContainerElementNode.class).getValue(), "Ron");
assertFalse(nodeIterator.hasNext());
}
Aggregations