package org.test4j.datafilling.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.test4j.datafilling.strategy.AttributeStrategy;
/**
* Annotation to drive the value of the annotated attribute.
* <p>
* If specified, this annotation will take precedence over all other annotations
* which influence the value of an attribute. In few words, this annotation
* dictates law in terms of which value the attribute ultimately will get.
* </p>
*/
@Target({ ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
public @interface FillWith {
/**
* The strategy that will populate the annotated attribute
*
* @return The strategy that will populate the annotated attribute
*/
@SuppressWarnings("rawtypes")
Class<? extends AttributeStrategy> value();
/**
* It allows clients to write a comment on the usage of this annotation
*
* @return The comment string
*/
String comment() default "";
}