View Javadoc

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  }