package com.bitmonlab.osiris.core.validations.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import com.bitmonlab.osiris.core.validations.aspect.contractViolationProcessor.api.MethodContractViolationProcessor;
import com.bitmonlab.osiris.core.validations.aspect.contractViolationProcessor.defaultImplementation.DefaultMethodContractViolationProcessor;
import com.bitmonlab.osiris.core.validations.validador.api.MethodInvocationValidator;
import com.bitmonlab.osiris.core.validations.validador.hibernate.HibernateMethodInvocationValidator;
/**
* Annotation to mark the method to be validated.
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidationRequired {
/**
* Parameter of the annotation that defines which processor execute the aspect.
* It's an optional parameter with DefaultMethodContractViolationProcessor by default.
* @return the processor.
*/
Class<? extends MethodContractViolationProcessor> processor() default DefaultMethodContractViolationProcessor.class;
/**
* Parameter of the annotation that defines which validator execute the aspect.
* It's an optional parameter with HibernateMethodInvocationValidator by default.
* @return the class that makes the method validations.
*/
Class<? extends MethodInvocationValidator> validator() default HibernateMethodInvocationValidator.class;
}