1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package Torello.HTML.Tools.JavaDoc;

import java.lang.annotation.*;

/**
 * <B STYLE='color:darkred;'>Java-Annotation:</B>
 * 
 * A Java-Annotation for marking classes as 'Stateless Classes' -  used to insert 'The Spaghetti
 * Report' into Java Doc Pages.
 * 
 * <EMBED CLASS="external-html" DATA-FILE-ID=STATICFUNC>
 */

@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
@JDHeaderBackgroundImg(EmbedTagFileID={"ANNOTATIONS_COMMON", "STATIC_FUNCTIONAL"})

public @interface StaticFunctional
{
    /**
     * This must contain the names of fields in this {@code class} or {@code interface} that
     * have been declared {@code static}, but have not been declared {@code final}.
     * 
     * <BR /><BR /><B STYLE='color: red;'>NOTE:</B> The values in the {@code 'Excused'} array
     * must be parallel to the values in the {@code 'Excuses'} array.
     */
    String[] Excused() default { };

    /**
     * This must contain instances of the Enumerated-Type {@code 'Excuses'}.  These excuses
     * should explain the reason why the named field has not been declared {@code 'final'} in any
     * {@code class} or {@code interface} that has been marked with the {@code @StaticFunction}
     * annotation.
     *  
     * <BR /><BR /><B STYLE='color: red;'>NOTE:</B> The values in the {@code 'Excuses'} array
     * must be parallel to the values in the {@code 'Excused'} array.
     */
    Excuse[] Excuses() default { };
}