package com.github.czyzby.autumn.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** Should annotate {@link com.github.czyzby.autumn.processor.AnnotationProcessor} implementations. These classes are
* scanned for and initiated before other components, so they can process other components' annotated fields, methods
* and types.
*
* <p>
* Note that processors are meta-components and are initiated BEFORE regular components, as they are used to process
* other components' annotations. While processors can have their fields injected, methods processed (etc), they should
* reference only other meta-components to be properly initiated.
*
* @author MJ
* @see com.github.czyzby.autumn.processor.AbstractAnnotationProcessor */
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface Processor {
}