package org.jbehave.core.annotations.needle;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.needle4j.injection.InjectionProvider;
import org.needle4j.injection.InjectionProviderInstancesSupplier;
/**
* Indicates usage of Needle as DI.
*
* @author Simon Zambrovski (simon.zambrovski@holisticon.de)
* @author Jan Galinski (jan.galinski@holisticon.de)
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface UsingNeedle {
/**
* Injection provider supplier.
*
* @return list of suppliers.
*/
Class<? extends InjectionProviderInstancesSupplier>[] supplier() default {};
/**
* Injection providers.
*
* @return list of providers.
*/
Class<? extends InjectionProvider<?>>[] provider() default {};
}