001package Torello.HTML.Tools.JavaDoc;
002
003import java.lang.annotation.*;
004
005/**
006 * <B STYLE='color:darkred;'>Java-Annotation:</B>
007 * 
008 * A Java-Annotation for marking classes as 'Stateless Classes' -  used to insert 'The Spaghetti
009 * Report' into Java Doc Pages.
010 * 
011 * <EMBED CLASS="external-html" DATA-FILE-ID=STATICFUNC>
012 */
013
014@Retention(RetentionPolicy.SOURCE)
015@Target(ElementType.TYPE)
016@JDHeaderBackgroundImg(EmbedTagFileID={"ANNOTATIONS_COMMON", "STATIC_FUNCTIONAL"})
017
018public @interface StaticFunctional
019{
020    /**
021     * This must contain the names of fields in this {@code class} or {@code interface} that
022     * have been declared {@code static}, but have not been declared {@code final}.
023     * 
024     * <BR /><BR /><B STYLE='color: red;'>NOTE:</B> The values in the {@code 'Excused'} array
025     * must be parallel to the values in the {@code 'Excuses'} array.
026     */
027    String[] Excused() default { };
028
029    /**
030     * This must contain instances of the Enumerated-Type {@code 'Excuses'}.  These excuses
031     * should explain the reason why the named field has not been declared {@code 'final'} in any
032     * {@code class} or {@code interface} that has been marked with the {@code @StaticFunction}
033     * annotation.
034     *  
035     * <BR /><BR /><B STYLE='color: red;'>NOTE:</B> The values in the {@code 'Excuses'} array
036     * must be parallel to the values in the {@code 'Excused'} array.
037     */
038    Excuse[] Excuses() default { };
039}