@Retention(value=RUNTIME)
 @Target(value=TYPE)
 @Documented
public static @interface ProductionComponent.Factory
This follows all the rules of Component.Factory, except it must appear in classes
 annotated with ProductionComponent instead of Component.