types
Annotation Type WidgetDef.Abstract


@Retention(value=RUNTIME)
@Target(value=TYPE)
@Documented
public static @interface WidgetDef.Abstract

Annotation forbidding a widget type from being instantiated. Much like an abstract class in Java, an abstract widget type can only be derived from. However, an abstract widget type is more powerful in certain ways than a concrete one, since all code-generating methods of an abstract base widget type are inherited cumulatively, rather than just getAttributes(). This means that an abstract widget type can declare auxiliary variables and initialize them in the preamble, add code to the postamble, etc. A concrete widget type cannot, for instance, add variables in the getVariables() method, since it is responsible for declaring the field with the id of the widget, which can only be done once.