View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica.
3    * Distribuicao e Gestao de Informatica, Lda. Estrada de Paco de Arcos num.9 -
4    * Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21
5    * 4408999 http://www.digitalis.pt
6    */
7   package pt.digitalis.dif.dem.annotations;
8   
9   import java.lang.annotation.ElementType;
10  import java.lang.annotation.Retention;
11  import java.lang.annotation.RetentionPolicy;
12  import java.lang.annotation.Target;
13  
14  import pt.digitalis.dif.dem.annotations.metaannotations.BindToPrimary;
15  
16  /**
17   * This annotation is used to indicate that the element is registrable, that is, it can only be accessed by end-users
18   * that own a valid license. It can provide a default license name and thus will be automatically registered to that
19   * name.
20   * 
21   * If the annotation is not used the application will be freely accessible, bound to the default "DIF
22   * auto-registration". If the annotation is used with a default registry name it will be unregistrable but associated to
23   * this name. If the annotation is used without a default registry name, it will be unregistered and thus inaccessible.
24   * 
25   * <p>
26   * 
27   * It can be used on any element annotated with one of the following:
28   * <ul>
29   * <li><code>@ProviderDefinition </code></li>
30   *                     <li><code>@ApplicationDefinition </code></li>
31   *                        <li><code>@ServiceDefinition </code></li>
32   *                    </ul>
33   * 
34   * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
35   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
36   * @created 2007/05/11
37   */
38  @Target(ElementType.TYPE)
39  @Retention(RetentionPolicy.RUNTIME)
40  @BindToPrimary( { "pt.digitalis.dif.dem.annotations.entities.ProviderDefinition",
41          "pt.digitalis.dif.dem.annotations.entities.ApplicationDefinition",
42          "pt.digitalis.dif.dem.annotations.entities.ServiceDefinition" })
43  public @interface Registrable {
44      /** The default name to which the element is registered in the registry */
45      String defaultRegisterName() default AnnotationTags.NONE;
46  }