1 /**
2 * - Digitalis Internal Framework v2.0 -
3 *
4 * (C) 2007, Digitalis Informatica.
5 *
6 * Distribuicao e Gestao de Informatica, Lda.
7 * Estrada de Paco de Arcos num.9 - Piso -1
8 * 2780-666 Paco de Arcos
9 * Telefone: (351) 21 4408990
10 * Fax: (351) 21 4408999
11 * http://www.digitalis.pt
12 */
13 package pt.digitalis.dif.dem.annotations.parameter;
14
15 import java.lang.annotation.ElementType;
16 import java.lang.annotation.Retention;
17 import java.lang.annotation.RetentionPolicy;
18 import java.lang.annotation.Target;
19
20 import pt.digitalis.dif.dem.annotations.AnnotationTags;
21 import pt.digitalis.dif.dem.annotations.metaannotations.BindToPrimary;
22 import pt.digitalis.dif.dem.objects.parameters.ParameterScope;
23
24 /**
25 * This annotation defines the kind of persistence that a parameter can have.
26 *
27 * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
28 * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
29 * @created 2007/05/11
30 *
31 * @see pt.digitalis.dif.dem.objects.parameters.IParameter
32 */
33 @Target(ElementType.FIELD)
34 @Retention(RetentionPolicy.RUNTIME)
35 @BindToPrimary( { "pt.digitalis.dif.dem.annotations.parameter.Parameter" })
36 public @interface Persist {
37
38 /** The parameter lifetime scope. */
39 ParameterScope scope() default ParameterScope.REQUEST;
40
41 /** The persistence option. If true the parameter persists between JVM restarts. */
42 boolean repository() default false;
43
44 /**
45 * Only for USER scoped persistence. Anonymous access means an unauthenticated user. We have a session but not a
46 * user logged in session. If true allows anonymous access issuing a warn and returning null. If false,
47 * forces the launch of an exception on a anonymous access to a USER parameter
48 */
49 boolean allowAnonymous() default false;
50
51 /** Defines the group of users that can access the parameter. */
52 String groupVisibility() default AnnotationTags.DEFAULT_GROUP_VISIBILTY;
53
54 }