All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gw.lang.IAnnotation Maven / Gradle / Ivy

There is a newer version: 1.18.2
Show newest version
/*
 * Copyright 2014 Guidewire Software, Inc.
 */

package gw.lang;

/**
 * !!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. * * @deprecated Implement a standard Gosu 'annotation' class */ public interface IAnnotation { }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy