im.shs.tick.auto.annotation.AutoService Maven / Gradle / Ivy
The newest version!
package im.shs.tick.auto.annotation;
import java.lang.annotation.*;
/**
* An annotation for service providers as described in {@link java.util.ServiceLoader}. The {@link
* im.shs.tick.auto.service.AutoServiceProcessor} generates the configuration files which
* allows service providers to be loaded with {@link java.util.ServiceLoader#load(Class)}.
*
* Service providers assert that they conform to the service provider specification.
* Specifically, they must:
*
*
* - be a non-inner, non-anonymous, concrete class
*
- have a publicly accessible no-arg constructor
*
- implement the interface type returned by {@code value()}
*
*
* @author google
*/
@Documented
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
public @interface AutoService {
/**
* Returns the interfaces implemented by this service provider.
*
* @return interface array
*/
Class>[] value();
}