package org.timepedia.exporter.client; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Indicates that an interface allows JS functions to be automatically promoted * to its type when it appears as an argument to an exported function. * For example: * <pre> @Export @ExportPackage("jsc") @ExportClosure public interface JsClosure extends Exportable { public void execute(String par1, String par2); } @Export @ExportPackage("jsc") public class DatePicker implements Exportable { public executeJsClosure(JsClosure closure){ closure.execute("Hello", "Friend"); } * </pre> */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface ExportClosure { }