1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package javax.jdo.metadata;
18
19 import java.lang.reflect.Method;
20
21 import javax.jdo.annotations.IdentityType;
22
23 /**
24 * Represents a class or interface. Extended for the specifics of those cases.
25 * @since 3.0
26 */
27 public interface TypeMetadata extends Metadata {
28 /**
29 * Accessor for the name of this component (set on construction).
30 *
31 * @return The name
32 */
33 String getName();
34
35 /**
36 * Method to define the identity type to use.
37 *
38 * @param id identity type
39 */
40 TypeMetadata setIdentityType(IdentityType id);
41
42 /**
43 * Accessor for the identity type to use.
44 *
45 * @return identity type
46 */
47 IdentityType getIdentityType();
48
49 /**
50 * Method to set the object-id (PK) class.
51 *
52 * @param idclass Object-id class
53 */
54 TypeMetadata setObjectIdClass(String idclass);
55
56 /**
57 * Accessor for the object-id class (if defined).
58 *
59 * @return The object-id class
60 */
61 String getObjectIdClass();
62
63 /**
64 * Method to set whether the component requires an extent.
65 *
66 * @param extent Requires extent?
67 */
68 TypeMetadata setRequiresExtent(boolean extent);
69
70 /**
71 * Accessor for whether the component requires an extent.
72 *
73 * @return Requires extent?
74 */
75 boolean getRequiresExtent();
76
77 /**
78 * Method to set whether this is detachable
79 *
80 * @param detachable Detachable?
81 */
82 TypeMetadata setDetachable(boolean detachable);
83
84 /**
85 * Accessor for whether this is detachable.
86 *
87 * @return Detachable?
88 */
89 boolean getDetachable();
90
91 /**
92 * Method to set whether this is cacheable
93 *
94 * @param cacheable Cacheable?
95 */
96 TypeMetadata setCacheable(boolean cacheable);
97
98 /**
99 * Accessor for whether this is cacheable.
100 *
101 * @return Detachable?
102 */
103 boolean getCacheable();
104
105 /**
106 * Method to set the default value of serializeRead for objects of this type.
107 *
108 * @param flag serializeRead
109 */
110 TypeMetadata setSerializeRead(boolean flag);
111
112 /**
113 * Accessor for the value of serializeRead for objects of this type.
114 *
115 * @return SerializeRead?
116 */
117 boolean getSerializeRead();
118
119 /**
120 * Method to set whether it is stored only as embedded in other objects.
121 *
122 * @param embedded Whether it is only stored embedded
123 */
124 TypeMetadata setEmbeddedOnly(boolean embedded);
125
126 /**
127 * Accessor for whether this is embedded only.
128 *
129 * @return Only stored as embedded
130 */
131 Boolean getEmbeddedOnly();
132
133 /**
134 * Method to set the catalog (ORM) for this component
135 *
136 * @param catalog Catalog name
137 */
138 TypeMetadata setCatalog(String catalog);
139
140 /**
141 * Accessor for the catalog (ORM) for this component
142 *
143 * @return The catalog
144 */
145 String getCatalog();
146
147 /**
148 * Method to set the schema (ORM) for this component
149 *
150 * @param schema Schema name
151 */
152 TypeMetadata setSchema(String schema);
153
154 /**
155 * Accessor for the schema (ORM) for this component
156 *
157 * @return The schema
158 */
159 String getSchema();
160
161 /**
162 * Method to set the table name.
163 *
164 * @param table Table name
165 */
166 TypeMetadata setTable(String table);
167
168 /**
169 * Accessor for the name of the table.
170 *
171 * @return The name
172 */
173 String getTable();
174
175 /**
176 * Method to define the inheritance metadata.
177 *
178 * @return The InheritanceMetadata
179 */
180 InheritanceMetadata newInheritanceMetadata();
181
182 /**
183 * Accessor for the inheritance (if any).
184 *
185 * @return inheritance
186 */
187 InheritanceMetadata getInheritanceMetadata();
188
189 /**
190 * Method to define the version metadata.
191 *
192 * @return The VersionMetadata
193 */
194 VersionMetadata newVersionMetadata();
195
196 /**
197 * Accessor for the version (if any).
198 *
199 * @return version
200 */
201 VersionMetadata getVersionMetadata();
202
203 /**
204 * Method to define the datastore identity metadata details.
205 *
206 * @return The DatastoreIdentityMetadata
207 */
208 DatastoreIdentityMetadata newDatastoreIdentityMetadata();
209
210 /**
211 * Accessor for the datastore identity details.
212 *
213 * @return datastore identity details
214 */
215 DatastoreIdentityMetadata getDatastoreIdentityMetadata();
216
217 /**
218 * Method to define the primary key details.
219 *
220 * @return The PrimaryKeyMetadata
221 */
222 PrimaryKeyMetadata newPrimaryKeyMetadata();
223
224 /**
225 * Accessor for the primary key (if any).
226 *
227 * @return primary key details
228 */
229 PrimaryKeyMetadata getPrimaryKeyMetadata();
230
231 /**
232 * Accessor for all joins(s) defined on the component.
233 *
234 * @return The join(s)
235 */
236 JoinMetadata[] getJoins();
237
238 /**
239 * Add a join for this component.
240 *
241 * @return The JoinMetadata
242 */
243 JoinMetadata newJoinMetadata();
244
245 /**
246 * Accessor for the number of join(s) defined for this component.
247 *
248 * @return The number of join(s)
249 */
250 int getNumberOfJoins();
251
252 /**
253 * Accessor for all fk(s) defined on the component.
254 *
255 * @return The fk(s)
256 */
257 ForeignKeyMetadata[] getForeignKeys();
258
259 /**
260 * Add a new FK for this component.
261 *
262 * @return The ForeignKeyMetadata
263 */
264 ForeignKeyMetadata newForeignKeyMetadata();
265
266 /**
267 * Accessor for the number of FKs defined for this component.
268 *
269 * @return The number of FKs
270 */
271 int getNumberOfForeignKeys();
272
273 /**
274 * Accessor for all index(s) defined on the component.
275 *
276 * @return The index(s)
277 */
278 IndexMetadata[] getIndices();
279
280 /**
281 * Add a new index for this component.
282 *
283 * @return The IndexMetadata
284 */
285 IndexMetadata newIndexMetadata();
286
287 /**
288 * Accessor for the number of indices defined for this component.
289 *
290 * @return The number of indices
291 */
292 int getNumberOfIndices();
293
294 /**
295 * Accessor for all unique constraints defined on the component.
296 *
297 * @return The unique constraints
298 */
299 UniqueMetadata[] getUniques();
300
301 /**
302 * Add a new unique constraint for this component.
303 *
304 * @return The UniqueMetadata
305 */
306 UniqueMetadata newUniqueMetadata();
307
308 /**
309 * Accessor for the number of unique constraints defined for this component.
310 *
311 * @return The number of unique constraints
312 */
313 int getNumberOfUniques();
314
315 /**
316 * Accessor for all fields/properties defined on the component.
317 *
318 * @return The members
319 */
320 MemberMetadata[] getMembers();
321
322 /**
323 * Accessor for the number of fields/properties defined for this component.
324 *
325 * @return The number of members
326 */
327 int getNumberOfMembers();
328
329 /**
330 * Add a new property for this component.
331 *
332 * @param name Name of the property
333 * @return The PropertyMetadata
334 */
335 PropertyMetadata newPropertyMetadata(String name);
336
337 /**
338 * Add a new property for this component.
339 *
340 * @param method Java bean getter/setter method
341 * @return The PropertyMetadata
342 */
343 PropertyMetadata newPropertyMetadata(Method method);
344
345 /**
346 * Accessor for all named queries defined on the component.
347 *
348 * @return The queries
349 */
350 QueryMetadata[] getQueries();
351
352 /**
353 * Add a new query for this component.
354 *
355 * @param name
356 * Name of the query to add
357 * @return The QueryMetadata
358 */
359 QueryMetadata newQueryMetadata(String name);
360
361 /**
362 * Accessor for the number of named queries defined for this component.
363 *
364 * @return The number of named queries
365 */
366 int getNumberOfQueries();
367
368 /**
369 * Accessor for all FetchGroup defined on the component.
370 *
371 * @return The FetchGroups
372 */
373 FetchGroupMetadata[] getFetchGroups();
374
375 /**
376 * Add a new FetchGroup for this component.
377 *
378 * @param name Name of the FetchGroup
379 * @return The FetchGroupMetadata
380 */
381 FetchGroupMetadata newFetchGroupMetadata(String name);
382
383 /**
384 * Accessor for the number of fetchGroups defined for this component.
385 *
386 * @return The number of fetch groups
387 */
388 int getNumberOfFetchGroups();
389
390 /**
391 * Accessor for all column(s) defined on the join.
392 *
393 * @return The column(s)
394 */
395 ColumnMetadata[] getColumns();
396
397 /**
398 * Add a new column for this join.
399 *
400 * @return The ColumnMetadata
401 */
402 ColumnMetadata newColumnMetadata();
403
404 /**
405 * Accessor for the number of columns defined for this join.
406 *
407 * @return The number of columns
408 */
409 int getNumberOfColumns();
410 }