001package sting; 002 003import java.lang.annotation.Documented; 004import java.lang.annotation.ElementType; 005import java.lang.annotation.Retention; 006import java.lang.annotation.RetentionPolicy; 007import java.lang.annotation.Target; 008 009/** 010 * Identify a component type that Sting can create by invoking the constructor. 011 * The type must be concrete and should have a single package-access constructor. 012 * The constructor can accept zero or more services as arguments. The constructor parameters 013 * can be explicitly annotated with a {@link Injector.Input} annotation otherwise the compiler will 014 * treat the parameter as if it was annotated with a {@link Injector.Input} annotation with default 015 * values for all the elements. 016 */ 017@Target( ElementType.TYPE ) 018@Retention( RetentionPolicy.RUNTIME ) 019@Documented 020public @interface Injectable 021{ 022}