1
2
3
4 package org.andromda.cartridges.ejb.metafacades;
5
6 /***
7 * <p>
8 * Represents an entity EJB.
9 * </p>
10 *
11 * Metafacade interface to be used by AndroMDA cartridges.
12 */
13 public interface EJBEntityFacade
14 extends org.andromda.metafacades.uml.Entity
15 {
16
17 /***
18 * Indicates the metafacade type (used for metafacade mappings).
19 *
20 * @return always <code>true</code>
21 */
22 public boolean isEJBEntityFacadeMetaType();
23
24 /***
25 * <p>
26 * Find all associations that define relations to other entities.
27 * </p>
28 * <p>
29 * This method returns the source association ends for all
30 * associations that define
31 * </p>
32 * <p>
33 * a container managed relation. The returned collection includes
34 * both
35 * </p>
36 * <p>
37 * direct relations and inherited relations. A direct relation is
38 * an association with some other class matching the following
39 * criteria: 1) The class at the other side of the association is
40 * stereotyped <<Entity>> 2) The association is navigable from to
41 * the other side.
42 * </p>
43 * <p>
44 * An inherited relation is an association from an abstract super
45 * type matching the following criteria: 1) The inheritance path to
46 * this abstract super type, including this super type itself,
47 * consists only of abstract classes with stereotype <<Entity>> 2)
48 * The class at the other side of the association is stereotyped
49 * <<Entity>>. 3) The association is navigable from this abstract
50 * super type to the other side.
51 * </p>
52 * <p>
53 * Relations must match the following integrity constraint:
54 * </p>
55 * <p>
56 * - The <<Entity>> at the target end is not abstract.
57 * </p>
58 * <p>
59 * The integrity constraint is necessary because the target of a
60 * container managed relation in the EJB framework must be a
61 * concrete entity bean; there is no such thing as an
62 * </p>
63 * <p>
64 * "abstract entity bean" in the EJB specification. It is possible,
65 * however, to generate and compile code for this case, an error
66 * will only show up at deploy time. In order to catch
67 * </p>
68 * <p>
69 * this kind of error at the earliest possible stage, this method
70 * checks the integrity constraint and throws an exception if it is
71 * violated.
72 * </p>
73 */
74 public java.util.Collection getAllEntityRelations();
75
76 /***
77 * <p>
78 * All instanceAttributes for this entity. The list includes the
79 * instanceAttributes that are inherited from super classes. The
80 * list contains the inherited instanceAttributes first, followed
81 * by the instanceAttributes defined in this class.
82 * </p>
83 */
84 public java.util.List getAllInstanceAttributes();
85
86 /***
87 * <p>
88 * Gets all constants for this entity. Constants are defined as
89 * static read-only attributes which do NOT have the <<EnvEntry>>
90 * stereotype. If 'follow' is true, then the inheritance hierachy
91 * will be followed and we'll retrieve all constants from any super
92 * types as well.
93 * </p>
94 */
95 public java.util.Collection getConstants(boolean follow);
96
97 /***
98 * <p>
99 * Gets create methods for the entity. If 'follow'l is set to
100 * true, create methods from any super types will also be retrieved
101 * by following up the inheritance chain.
102 * </p>
103 */
104 public java.util.Collection getCreateMethods(boolean follow);
105
106 /***
107 *
108 */
109 public java.util.Collection getEntityRelations();
110
111 /***
112 * <p>
113 * Gets all env-entries for the specified entity EJB. Env-entries
114 * are stored as static attributes on the entity and stereotyped as
115 * <<EnvEntry>>. If 'follow' is true, then the inheritance
116 * hierachy will be followed and we'll retrieve all env-entries
117 * from any super types as well.
118 * </p>
119 */
120 public java.util.Collection getEnvironmentEntries(boolean follow);
121
122 /***
123 * <p>
124 * A String representing the name of a home interface for this
125 * entity EJB.
126 * </p>
127 */
128 public java.lang.String getHomeInterfaceName();
129
130 /***
131 * <p>
132 * All inherited instanceAttributes this class. The
133 * instanceAttributes are grouped by the class that defines the
134 * instanceAttributes, with instanceAttributes from the most
135 * removed super class first.
136 * </p>
137 */
138 public java.util.List getInheritedInstanceAttributes();
139
140 /***
141 *
142 */
143 public java.lang.String getJndiName();
144
145 /***
146 * <p>
147 * Gets select methods for the entity, if all is set to 'true' then
148 * ALL select methods will be retrieved (including those inherited
149 * from any superclasses).
150 * </p>
151 */
152 public java.util.Collection getSelectMethods(boolean follow);
153
154 /***
155 *
156 */
157 public java.lang.String getSqlType();
158
159 /***
160 * <p>
161 * Gets the transaction type for this entity (i.e. REQUIRED, etc)
162 * </p>
163 */
164 public java.lang.String getTransactionType();
165
166 /***
167 *
168 */
169 public java.util.Collection getValueDependencies();
170
171 /***
172 * <p>
173 * A string indicating whether the Bean is a local or remotely
174 * accessable bean.
175 * </p>
176 */
177 public java.lang.String getViewType();
178
179 /***
180 *
181 */
182 public boolean isAttributePresent(java.lang.String att);
183
184 /***
185 *
186 */
187 public boolean isIdentifierPresent(java.lang.String id);
188
189 /***
190 *
191 */
192 public boolean isOperationPresent(java.lang.String op);
193
194 /***
195 * <p>
196 * Whether or not to allow a synthetic (auto generated) create
197 * method.
198 * </p>
199 */
200 public boolean isSyntheticCreateMethodAllowed();
201
202 }