package sizzle.aggregators;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Specification annotation for Sizzle aggregators in Java.
*
* @author anthonyu
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface AggregatorSpec {
/**
* The name of the aggregator.
*/
String name();
/**
* The Sizzle type to be emitted to this aggregator. Defaults to "any",
* meaning it accepts all types.
*/
String type() default "any";
/**
* The Sizzle types of each of its formal parameters.
*/
String[] formalParameters() default {};
/**
* The Sizzle type that emits to this table will be weighted by. Defaults to
* "none", meaning that it accepts no weights.
*/
String weightType() default "none";
}