Interface IAnnotation
-
public interface IAnnotation
Deprecated.Implement a standard Gosu 'annotation' class!!DEPRECATED!!Warning. An impl of this interface is not a real Java annotation. This is simply a marker interface to indicate that a normal class serves as a quasi-annotation; it can be used to annotate Gosu features wherever a Java annotation can be used. However, because it is a normal class and does not conform with the rules and structure of a Java Annotation, it is only bound to its target feature in terms of Gosu TypeInfo -- it is never compiled into the target feature's bytecode as an Annotation. But because Gosu source and source-based TypeInfo are available at runtime, an IAnnotation is also available at runtime. As a consequence an IAnnotation has no use for the @Retention modifier, it is always retained.
A word of caution. An IAnnotation type is just a normal class that isn't bound to the strict compile-time constant limitations of a conventional Java Annotation. An IAnnotation can be constructed outside the normal execution environment of your project or application, say, in an IDE. Both the IAnnotation implementation and the users of it must take care not to execute code intended for runtime and avoid loading classes that are directly part of a project's source. Otherwise compilation performance can be significantly affected and/or result in nasty compile-time errors.
Note, this class remains part of the Gosu API for legacy purposes only. Gosu's Java-compatible 'annotation' types should be implemented instead.