/* * Hibernate Validator, declare and validate application constraints * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>. */ package org.hibernate.validator.test.internal.metadata; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import javax.validation.Payload; import javax.validation.Valid; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import javax.validation.groups.ConvertGroup; import javax.validation.groups.Default; import org.hibernate.validator.test.internal.metadata.Customer.CustomerBasic; import org.hibernate.validator.test.internal.metadata.Customer.CustomerComplex; import org.joda.time.DateMidnight; /** * @author Gunnar Morling */ public class CustomerRepositoryExt extends CustomerRepository { public interface CustomerRepositoryExtBasic { } public interface CustomerRepositoryExtComplex { } public interface CustomerRepositoryExtReturnValueComplex { } public static class CustomerExtension extends Customer { } @ValidB2BRepository @Valid public CustomerRepositoryExt(@NotNull String foo) { super(); } public CustomerRepositoryExt(@NotNull String foo, @Valid Customer customer) { } public CustomerRepositoryExt(int bar) { } @Valid public CustomerRepositoryExt(DateMidnight start, DateMidnight end) { } public CustomerRepositoryExt(long l) { } @Override public Customer createCustomer(CharSequence firstName, String lastName) { return null; } @Override public void saveCustomer(Customer customer) { } @Override public void updateCustomer(Customer customer) { } @Valid @ConvertGroup.List({ @ConvertGroup(from = CustomerRepositoryExtBasic.class, to = CustomerBasic.class), @ConvertGroup(from = CustomerRepositoryExtReturnValueComplex.class, to = CustomerComplex.class) }) public Customer modifyCustomer( @Valid @ConvertGroup.List({ @ConvertGroup(from = Default.class, to = CustomerBasic.class), @ConvertGroup(from = CustomerRepositoryExtComplex.class, to = CustomerComplex.class) }) Customer customer) { return null; } @Override public Customer foo() { return null; } @Override public CustomerExtension bar() { return null; } @Override @Min(0) public int baz() { return 0; } public void zap() { } @Min(0) public int zip() { return 0; } @Min(0) public int zip(int i) { return 0; } @Override public void methodWithCrossParameterConstraint(DateMidnight start, DateMidnight end) { } @Constraint(validatedBy = { ValidB2BRepositoryValidator.class }) @Target({ TYPE, CONSTRUCTOR }) @Retention(RUNTIME) public @interface ValidB2BRepository { String message() default "{ValidB2BRepository.message}"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; } public static class ValidB2BRepositoryValidator implements ConstraintValidator<ValidB2BRepository, CustomerRepositoryExt> { @Override public boolean isValid(CustomerRepositoryExt repository, ConstraintValidatorContext context) { return false; } } }