package samplest.validation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import restx.annotations.POST; import restx.annotations.PUT; import restx.annotations.Param; import restx.annotations.RestxResource; import restx.factory.Component; import restx.security.PermitAll; import restx.validation.ValidatedFor; import restx.validation.stereotypes.FormValidations; /** * @author fcamblor */ @RestxResource @Component public class ValidationResource { private static final Logger LOG = LoggerFactory.getLogger(ValidationResource.class); public static interface MyCustomValidationGroup{} @PermitAll @POST("/valid/pojos") public void createPOJOWithoutAnnotation(POJO myPojo) { LOG.info("Pojo {} {} created !", myPojo.getName(), myPojo.getSubPOJO().getLabel()); } @PermitAll @POST("/valid/pojos2") public void createPOJOWithAnnotation(@ValidatedFor(FormValidations.Create.class) POJO myPojo) { LOG.info("Pojo {} {} created !", myPojo.getName(), myPojo.getSubPOJO().getLabel()); } @PermitAll @PUT("/valid/pojos/{id}") public void createPOJOWithoutAnnotation(Long id, @ValidatedFor({MyCustomValidationGroup.class, FormValidations.Update.class}) POJO myPojo) { LOG.info("Pojo {} {} updated !", myPojo.getName(), myPojo.getSubPOJO().getLabel()); } }