use of jakarta.validation.constraints.Size in project minijax by minijax.
the class MinijaxConstraintDescriptor method build.
@SuppressWarnings("unchecked")
public static <T extends Annotation> MinijaxConstraintDescriptor<T> build(final AnnotatedType annotatedType, final T annotation) {
final Constraint constraint = annotation.annotationType().getAnnotation(Constraint.class);
if (constraint == null) {
return null;
}
final Class<?> valueClass = ReflectionUtils.getRawType(annotatedType);
final Class<?> annotationClass = annotation.annotationType();
if (constraint.validatedBy().length > 0) {
return buildDeclaredValidator(annotation, constraint.validatedBy()[0]);
} else if (annotationClass == AssertFalse.class) {
return (MinijaxConstraintDescriptor<T>) buildAssertFalseValidator((AssertFalse) annotation, valueClass);
} else if (annotationClass == AssertTrue.class) {
return (MinijaxConstraintDescriptor<T>) buildAssertTrueValidator((AssertTrue) annotation, valueClass);
} else if (annotationClass == Max.class) {
return (MinijaxConstraintDescriptor<T>) buildMaxValidator((Max) annotation, valueClass);
} else if (annotationClass == Min.class) {
return (MinijaxConstraintDescriptor<T>) buildMinValidator((Min) annotation, valueClass);
} else if (annotationClass == NotBlank.class) {
return (MinijaxConstraintDescriptor<T>) buildNotBlankValidator((NotBlank) annotation, valueClass);
} else if (annotationClass == NotEmpty.class) {
return (MinijaxConstraintDescriptor<T>) buildNotEmptyValidator((NotEmpty) annotation, valueClass);
} else if (annotationClass == NotNull.class) {
return (MinijaxConstraintDescriptor<T>) buildNotNullValidator((NotNull) annotation);
} else if (annotationClass == Pattern.class) {
return (MinijaxConstraintDescriptor<T>) buildPatternValidator((Pattern) annotation, valueClass);
} else if (annotationClass == Size.class) {
return (MinijaxConstraintDescriptor<T>) buildSizeValidator((Size) annotation, valueClass);
} else {
throw new ValidationException("Unrecognized constraint annotation: " + annotation);
}
}
use of jakarta.validation.constraints.Size in project hibernate-orm by hibernate.
the class TypeSafeActivator method applySize.
private static void applySize(Property property, ConstraintDescriptor<?> descriptor, PropertyDescriptor propertyDescriptor) {
if (Size.class.equals(descriptor.getAnnotation().annotationType()) && String.class.equals(propertyDescriptor.getElementClass())) {
@SuppressWarnings("unchecked") ConstraintDescriptor<Size> sizeConstraint = (ConstraintDescriptor<Size>) descriptor;
int max = sizeConstraint.getAnnotation().max();
for (Column col : property.getColumns()) {
if (max < Integer.MAX_VALUE) {
col.setLength(max);
}
}
}
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ProgrammaticContainerElementConstraintsForParameterTest method canDeclareContainerElementConstraintsForParameterProgrammatically.
@Test
@TestForIssue(jiraKey = "HV-1239")
public void canDeclareContainerElementConstraintsForParameterProgrammatically() {
ConstraintMapping newMapping = config.createConstraintMapping();
newMapping.type(IFishTank.class).method("test1", Optional.class, Map.class).parameter(0).containerElementType().constraint(new SizeDef().max(5)).parameter(1).containerElementType(0).constraint(new SizeDef().min(3).max(10)).containerElementType(1).constraint(new MinDef().value(1));
config.addMapping(newMapping);
Validator validator = config.buildValidatorFactory().getValidator();
IFishTank fishTank = ValidatorUtil.getValidatingProxy(new FishTank(), validator);
try {
HashMap<String, Integer> fishCountByType = new HashMap<>();
fishCountByType.put("A", -1);
fishCountByType.put("BB", -2);
fishTank.test1(Optional.of("Too long"), fishCountByType);
fail("Expected exception wasn't raised");
} catch (ConstraintViolationException e) {
assertThat(e.getConstraintViolations()).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 0 and 5"), violationOf(Size.class).withMessage("size must be between 3 and 10"), violationOf(Size.class).withMessage("size must be between 3 and 10"), violationOf(Min.class).withMessage("must be greater than or equal to 1"), violationOf(Min.class).withMessage("must be greater than or equal to 1"));
}
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ValidatorResolutionTest method testResolutionOfMultipleSizeValidators.
@Test
public void testResolutionOfMultipleSizeValidators() {
Validator validator = ValidatorUtil.getValidator();
Suburb suburb = new Suburb();
List<Integer> postcodes = new ArrayList<Integer>();
postcodes.add(12345);
suburb.setIncludedPostCodes(postcodes);
// all values are null and should pass
Set<ConstraintViolation<Suburb>> constraintViolations = validator.validate(suburb);
assertNoViolations(constraintViolations);
suburb.setName("");
constraintViolations = validator.validate(suburb);
assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 5 and 10").withProperty("name").withRootBeanClass(Suburb.class).withInvalidValue(""));
suburb.setName("Hoegsbo");
constraintViolations = validator.validate(suburb);
assertNoViolations(constraintViolations);
suburb.addFacility(Suburb.Facility.SHOPPING_MALL, false);
constraintViolations = validator.validate(suburb);
assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 2 and 2").withProperty("facilities").withRootBeanClass(Suburb.class).withInvalidValue(suburb.getFacilities()));
suburb.addFacility(Suburb.Facility.BUS_TERMINAL, true);
constraintViolations = validator.validate(suburb);
assertNoViolations(constraintViolations);
suburb.addStreetName("Sikelsgatan");
constraintViolations = validator.validate(suburb);
assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 2 and 2147483647").withProperty("streetNames").withRootBeanClass(Suburb.class).withInvalidValue(suburb.getStreetNames()));
suburb.addStreetName("Marklandsgatan");
constraintViolations = validator.validate(suburb);
assertNoViolations(constraintViolations);
Coordinate[] boundingBox = new Coordinate[3];
boundingBox[0] = new Coordinate(0L, 0L);
boundingBox[1] = new Coordinate(0L, 1L);
boundingBox[2] = new Coordinate(1L, 0L);
suburb.setBoundingBox(boundingBox);
constraintViolations = validator.validate(suburb);
assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 4 and 1000").withProperty("boundingBox").withRootBeanClass(Suburb.class).withInvalidValue(suburb.getBoundingBox()));
boundingBox = new Coordinate[4];
boundingBox[0] = new Coordinate(0L, 0L);
boundingBox[1] = new Coordinate(0L, 1L);
boundingBox[2] = new Coordinate(1L, 0L);
boundingBox[3] = new Coordinate(1L, 1L);
suburb.setBoundingBox(boundingBox);
constraintViolations = validator.validate(suburb);
assertNoViolations(constraintViolations);
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ExpressionLanguageMessageInterpolationTest method setUp.
@BeforeTest
public void setUp() {
// Create some annotations for testing using AnnotationProxies
ConstraintAnnotationDescriptor.Builder<NotNull> notNullAnnotationDescriptorBuilder = new ConstraintAnnotationDescriptor.Builder<>(NotNull.class);
notNullDescriptor = new ConstraintDescriptorImpl<>(ConstraintHelper.forAllBuiltinConstraints(), null, notNullAnnotationDescriptorBuilder.build(), ConstraintLocationKind.FIELD);
ConstraintAnnotationDescriptor.Builder<Size> sizeAnnotationDescriptorBuilder = new ConstraintAnnotationDescriptor.Builder<>(Size.class);
sizeDescriptor = new ConstraintDescriptorImpl<>(ConstraintHelper.forAllBuiltinConstraints(), null, sizeAnnotationDescriptorBuilder.build(), ConstraintLocationKind.FIELD);
interpolatorUnderTest = new ResourceBundleMessageInterpolator();
}
Aggregations