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.managers;
14  
15  import pt.digitalis.dif.dem.Entity;
16  import pt.digitalis.dif.dem.interfaces.IApplication;
17  import pt.digitalis.dif.dem.interfaces.IProvider;
18  import pt.digitalis.dif.dem.interfaces.IService;
19  import pt.digitalis.dif.dem.interfaces.IStage;
20  import pt.digitalis.dif.dem.objects.parameters.IParameter;
21  import pt.digitalis.dif.dem.objects.parameters.ParameterList;
22  
23  /**
24   * Manages the DEM parameters, providing operations for access, pooling and persistence.
25   *
26   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
27   * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
28   * @created 2007/06/01
29   *
30   */
31  public interface IParameterManager {
32  
33      /**
34       * Return a parameter for the given entity
35       *
36       * @param entityType
37       *            the type of the entity
38       * @param entityID
39       *            the id of the entity
40       * @param parameterID
41       *            the id of the parameter
42       * @return the parameter object if found
43       */
44      public IParameter<?> getParameter(Entity entityType, String entityID, String parameterID);
45  
46      /**
47       * Returns an IParameter implementation for the given class
48       *
49       * @param typeClassName
50       *            the class name to check
51       * @return an instance of IParameter
52       */
53      public IParameter<?> getParameterInstanceForType(String typeClassName);
54  
55      /**
56       * Return the parameters for the given entity
57       *
58       * @param entityType
59       *            the type of the entity
60       * @param entityID
61       *            the id of the entity
62       * @return the parameter list if found
63       */
64      public ParameterList getParameters(Entity entityType, String entityID);
65  
66      /**
67       * Gets the parameters of a given Application.
68       *
69       * @param application
70       *            the application for which the parameters should be retrieved
71       * @return the application parameters
72       */
73      public ParameterList getParameters(IApplication application);
74  
75      /**
76       * Gets the parameters of a given Provider.
77       *
78       * @param provider
79       *            the provider for which the parameters should be retrieved
80       * @return the provider parameters
81       */
82      public ParameterList getParameters(IProvider provider);
83  
84      /**
85       * Gets the parameters of a given Service.
86       *
87       * @param service
88       *            the service for which the parameters should be retrieved
89       * @return the service parameters
90       */
91      public ParameterList getParameters(IService service);
92  
93      /**
94       * Gets the parameters of a given Stage.
95       *
96       * @param stage
97       *            the stage for which the parameters should be retrieved
98       * @return the stage parameters
99       */
100     public ParameterList getParameters(IStage stage);
101 
102     /**
103      * Checks if the given className is a supported parameter type
104      *
105      * @param typeClassName
106      *            the class name to check
107      * @return T is the class is supported
108      */
109     public boolean isParameterTypeSupported(String typeClassName);
110 
111     /**
112      * Registers an entity parameter
113      *
114      * @param parameter
115      *            the parameter to register
116      */
117     public void registerParameter(IParameter<?> parameter);
118 }