package ch.unibe.scg.cells; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; import java.lang.annotation.Target; import javax.inject.Scope; /** * The scope of the lifetime of a mapper in a pipeline. That is, a pipeline of three * mappers will have three different scopes, one for each mapper stage. * Further, {@link Mapper}s are guaranteed to run inside the scope. This is true * even for the {@link Mapper#close} method, which is still in scope. */ @Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME) @Scope @interface PipelineStageScoped { }