package sizzle.functions;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Specification annotation for Sizzle functions in Java.
*
* @author anthonyu
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface FunctionSpec {
/**
* The name of the function.
*
*/
String name();
/**
* The Sizzle type of its return value.
*
*/
String returnType() default "none";
/**
* The Sizzle types of each of its formal parameters.
*
*/
String[] formalParameters() default {};
/**
* Any type dependencies that need to be handled prior to importing this
* function.
*
*/
String[] typeDependencies() default {};
}