package xapi.gwt.annotation;
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.TreeLogger.Type;
/**
* An annotation used to describe the settings of a gwt compile.
*
* Use this on a class implementing EntryPoint, or a method annotated with {@link Test},
* (and
*
* @author "james.nelson@appian.com"
*
*/
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface GwtCompile {
static enum Mode {
/** Select to launch a production compile */
Prod,
/** Select to launch a super dev mode shell */
SuperDev,
/** Not yet supported */
JUnit3,
/** Not yet supported */
JUnit4,
/** Not yet supported */
Dev
}
String module();
Mode mode() default Mode.Prod;
Class<? extends Annotation>[] userAgents()
default {UserAgentChrome.class, UserAgentFirefox.class, UserAgentIE10.class};
TreeLogger.Type logLevel() default Type.INFO;
int port() default 1337;
String[] src() default {};
String[] inherits() default {};
String generatedOutput() default "";
String extras() default "";
/** Only valid for production compiles */
boolean compileReport() default true;
}