package nl.tno.sensorstorm.api.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import nl.tno.sensorstorm.api.particles.DataParticle;
import nl.tno.sensorstorm.api.processing.Fetcher;
/**
* Mandatory annotation for the {@link Fetcher}. The parameter outputs is an
* array containing zero or more {@link DataParticle} which the {@link Fetcher}
* promises to return.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FetcherDeclaration {
/**
* List of types of {@link DataParticle}s produced by this {@link Fetcher}.
*/
Class<? extends DataParticle>[] outputs();
}