1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.ejb.metafacades;
6
7 import java.util.Collection;
8 import java.util.List;
9 import org.andromda.core.common.Introspector;
10 import org.andromda.core.metafacade.MetafacadeBase;
11 import org.andromda.core.metafacade.MetafacadeFactory;
12 import org.andromda.core.metafacade.ModelValidationMessage;
13 import org.andromda.metafacades.uml.AssociationEndFacade;
14 import org.andromda.metafacades.uml.AttributeFacade;
15 import org.andromda.metafacades.uml.ClassifierFacade;
16 import org.andromda.metafacades.uml.ConstraintFacade;
17 import org.andromda.metafacades.uml.DependencyFacade;
18 import org.andromda.metafacades.uml.Entity;
19 import org.andromda.metafacades.uml.EntityAssociationEnd;
20 import org.andromda.metafacades.uml.EntityQueryOperation;
21 import org.andromda.metafacades.uml.GeneralizableElementFacade;
22 import org.andromda.metafacades.uml.GeneralizationFacade;
23 import org.andromda.metafacades.uml.ModelElementFacade;
24 import org.andromda.metafacades.uml.ModelFacade;
25 import org.andromda.metafacades.uml.OperationFacade;
26 import org.andromda.metafacades.uml.PackageFacade;
27 import org.andromda.metafacades.uml.StateMachineFacade;
28 import org.andromda.metafacades.uml.StereotypeFacade;
29 import org.andromda.metafacades.uml.TaggedValueFacade;
30 import org.andromda.metafacades.uml.TemplateParameterFacade;
31 import org.andromda.metafacades.uml.TypeMappings;
32
33 /**
34 * Represents an entity EJB.
35 * MetafacadeLogic for EJBEntityFacade
36 *
37 * @see EJBEntityFacade
38 */
39 public abstract class EJBEntityFacadeLogic
40 extends MetafacadeBase
41 implements EJBEntityFacade
42 {
43 /**
44 * The underlying UML object
45 * @see Object
46 */
47 protected Object metaObject;
48
49 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
50 * @param metaObjectIn
51 * @param context
52 */
53 protected EJBEntityFacadeLogic(Object metaObjectIn, String context)
54 {
55 super(metaObjectIn, getContext(context));
56 this.superEntity =
57 (Entity)
58 MetafacadeFactory.getInstance().createFacadeImpl(
59 "org.andromda.metafacades.uml.Entity",
60 metaObjectIn,
61 getContext(context));
62 this.metaObject = metaObjectIn;
63 }
64
65 /**
66 * Gets the context for this metafacade logic instance.
67 * @param context String. Set to EJBEntityFacade if null
68 * @return context String
69 */
70 private static String getContext(String context)
71 {
72 if (context == null)
73 {
74 context = "org.andromda.cartridges.ejb.metafacades.EJBEntityFacade";
75 }
76 return context;
77 }
78
79 private Entity superEntity;
80 private boolean superEntityInitialized = false;
81
82 /**
83 * Gets the Entity parent instance.
84 * @return this.superEntity Entity
85 */
86 private Entity getSuperEntity()
87 {
88 if (!this.superEntityInitialized)
89 {
90 ((MetafacadeBase)this.superEntity).setMetafacadeContext(this.getMetafacadeContext());
91 this.superEntityInitialized = true;
92 }
93 return this.superEntity;
94 }
95
96 /** Reset context only for non-root metafacades
97 * @param context
98 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
99 */
100 @Override
101 public void resetMetafacadeContext(String context)
102 {
103 if (!this.contextRoot) // reset context only for non-root metafacades
104 {
105 context = getContext(context); // to have same value as in original constructor call
106 setMetafacadeContext (context);
107 if (this.superEntityInitialized)
108 {
109 ((MetafacadeBase)this.superEntity).resetMetafacadeContext(context);
110 }
111 }
112 }
113
114 /**
115 * @return boolean true always
116 * @see EJBEntityFacade
117 */
118 public boolean isEJBEntityFacadeMetaType()
119 {
120 return true;
121 }
122
123 // --------------- attributes ---------------------
124
125 /**
126 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#isSyntheticCreateMethodAllowed()
127 * @return boolean
128 */
129 protected abstract boolean handleIsSyntheticCreateMethodAllowed();
130
131 private boolean __syntheticCreateMethodAllowed1a;
132 private boolean __syntheticCreateMethodAllowed1aSet = false;
133
134 /**
135 * Whether or not to allow a synthetic (auto generated) create method.
136 * @return (boolean)handleIsSyntheticCreateMethodAllowed()
137 */
138 public final boolean isSyntheticCreateMethodAllowed()
139 {
140 boolean syntheticCreateMethodAllowed1a = this.__syntheticCreateMethodAllowed1a;
141 if (!this.__syntheticCreateMethodAllowed1aSet)
142 {
143 // syntheticCreateMethodAllowed has no pre constraints
144 syntheticCreateMethodAllowed1a = handleIsSyntheticCreateMethodAllowed();
145 // syntheticCreateMethodAllowed has no post constraints
146 this.__syntheticCreateMethodAllowed1a = syntheticCreateMethodAllowed1a;
147 if (isMetafacadePropertyCachingEnabled())
148 {
149 this.__syntheticCreateMethodAllowed1aSet = true;
150 }
151 }
152 return syntheticCreateMethodAllowed1a;
153 }
154
155 /**
156 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getAllEntityRelations()
157 * @return Collection
158 */
159 protected abstract Collection handleGetAllEntityRelations();
160
161 private Collection __allEntityRelations2a;
162 private boolean __allEntityRelations2aSet = false;
163
164 /**
165 * Find all associations that define relations to other entities.
166 * This method returns the source association ends for all associations that define
167 * a container managed relation. The returned collection includes both
168 * direct relations and inherited relations. A direct relation is an association with some other
169 * class matching the following criteria: 1) The class at the other side of the association is
170 * stereotyped <<Entity>> 2) The association is navigable from to the other side.
171 * An inherited relation is an association from an abstract super type matching the following
172 * criteria: 1) The inheritance path to this abstract super type, including this super type
173 * itself, consists only of abstract classes with stereotype <<Entity>> 2) The class at the
174 * other side of the association is stereotyped <<Entity>>. 3) The association is navigable from
175 * this abstract super type to the other side.
176 * Relations must match the following integrity constraint:
177 * - The <<Entity>> at the target end is not abstract.
178 * The integrity constraint is necessary because the target of a container managed relation in
179 * the EJB framework must be a concrete entity bean; there is no such thing as an
180 * "abstract entity bean" in the EJB specification. It is possible, however, to generate and
181 * compile code for this case, an error will only show up at deploy time. In order to catch
182 * this kind of error at the earliest possible stage, this method checks the integrity
183 * constraint and throws an exception if it is violated.
184 * @return (Collection)handleGetAllEntityRelations()
185 */
186 public final Collection getAllEntityRelations()
187 {
188 Collection allEntityRelations2a = this.__allEntityRelations2a;
189 if (!this.__allEntityRelations2aSet)
190 {
191 // allEntityRelations has no pre constraints
192 allEntityRelations2a = handleGetAllEntityRelations();
193 // allEntityRelations has no post constraints
194 this.__allEntityRelations2a = allEntityRelations2a;
195 if (isMetafacadePropertyCachingEnabled())
196 {
197 this.__allEntityRelations2aSet = true;
198 }
199 }
200 return allEntityRelations2a;
201 }
202
203 /**
204 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getJndiName()
205 * @return String
206 */
207 protected abstract String handleGetJndiName();
208
209 private String __jndiName3a;
210 private boolean __jndiName3aSet = false;
211
212 /**
213 * TODO: Model Documentation for
214 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.jndiName
215 * @return (String)handleGetJndiName()
216 */
217 public final String getJndiName()
218 {
219 String jndiName3a = this.__jndiName3a;
220 if (!this.__jndiName3aSet)
221 {
222 // jndiName has no pre constraints
223 jndiName3a = handleGetJndiName();
224 // jndiName has no post constraints
225 this.__jndiName3a = jndiName3a;
226 if (isMetafacadePropertyCachingEnabled())
227 {
228 this.__jndiName3aSet = true;
229 }
230 }
231 return jndiName3a;
232 }
233
234 /**
235 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getViewType()
236 * @return String
237 */
238 protected abstract String handleGetViewType();
239
240 private String __viewType4a;
241 private boolean __viewType4aSet = false;
242
243 /**
244 * A string indicating whether the Bean is a local or remotely accessable bean.
245 * @return (String)handleGetViewType()
246 */
247 public final String getViewType()
248 {
249 String viewType4a = this.__viewType4a;
250 if (!this.__viewType4aSet)
251 {
252 // viewType has no pre constraints
253 viewType4a = handleGetViewType();
254 // viewType has no post constraints
255 this.__viewType4a = viewType4a;
256 if (isMetafacadePropertyCachingEnabled())
257 {
258 this.__viewType4aSet = true;
259 }
260 }
261 return viewType4a;
262 }
263
264 /**
265 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getAllInstanceAttributes()
266 * @return List
267 */
268 protected abstract List handleGetAllInstanceAttributes();
269
270 private List __allInstanceAttributes5a;
271 private boolean __allInstanceAttributes5aSet = false;
272
273 /**
274 * All instanceAttributes for this entity. The list includes the instanceAttributes that are
275 * inherited from super classes. The list contains the inherited instanceAttributes first,
276 * followed by the instanceAttributes defined in this class.
277 * @return (List)handleGetAllInstanceAttributes()
278 */
279 public final List getAllInstanceAttributes()
280 {
281 List allInstanceAttributes5a = this.__allInstanceAttributes5a;
282 if (!this.__allInstanceAttributes5aSet)
283 {
284 // allInstanceAttributes has no pre constraints
285 allInstanceAttributes5a = handleGetAllInstanceAttributes();
286 // allInstanceAttributes has no post constraints
287 this.__allInstanceAttributes5a = allInstanceAttributes5a;
288 if (isMetafacadePropertyCachingEnabled())
289 {
290 this.__allInstanceAttributes5aSet = true;
291 }
292 }
293 return allInstanceAttributes5a;
294 }
295
296 /**
297 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getInheritedInstanceAttributes()
298 * @return List
299 */
300 protected abstract List handleGetInheritedInstanceAttributes();
301
302 private List __inheritedInstanceAttributes6a;
303 private boolean __inheritedInstanceAttributes6aSet = false;
304
305 /**
306 * All inherited instanceAttributes this class. The instanceAttributes are grouped by the class
307 * that defines the instanceAttributes, with instanceAttributes from the most removed super
308 * class first.
309 * @return (List)handleGetInheritedInstanceAttributes()
310 */
311 public final List getInheritedInstanceAttributes()
312 {
313 List inheritedInstanceAttributes6a = this.__inheritedInstanceAttributes6a;
314 if (!this.__inheritedInstanceAttributes6aSet)
315 {
316 // inheritedInstanceAttributes has no pre constraints
317 inheritedInstanceAttributes6a = handleGetInheritedInstanceAttributes();
318 // inheritedInstanceAttributes has no post constraints
319 this.__inheritedInstanceAttributes6a = inheritedInstanceAttributes6a;
320 if (isMetafacadePropertyCachingEnabled())
321 {
322 this.__inheritedInstanceAttributes6aSet = true;
323 }
324 }
325 return inheritedInstanceAttributes6a;
326 }
327
328 /**
329 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getHomeInterfaceName()
330 * @return String
331 */
332 protected abstract String handleGetHomeInterfaceName();
333
334 private String __homeInterfaceName7a;
335 private boolean __homeInterfaceName7aSet = false;
336
337 /**
338 * A String representing the name of a home interface for this entity EJB.
339 * @return (String)handleGetHomeInterfaceName()
340 */
341 public final String getHomeInterfaceName()
342 {
343 String homeInterfaceName7a = this.__homeInterfaceName7a;
344 if (!this.__homeInterfaceName7aSet)
345 {
346 // homeInterfaceName has no pre constraints
347 homeInterfaceName7a = handleGetHomeInterfaceName();
348 // homeInterfaceName has no post constraints
349 this.__homeInterfaceName7a = homeInterfaceName7a;
350 if (isMetafacadePropertyCachingEnabled())
351 {
352 this.__homeInterfaceName7aSet = true;
353 }
354 }
355 return homeInterfaceName7a;
356 }
357
358 /**
359 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getValueDependencies()
360 * @return Collection
361 */
362 protected abstract Collection handleGetValueDependencies();
363
364 private Collection __valueDependencies8a;
365 private boolean __valueDependencies8aSet = false;
366
367 /**
368 * TODO: Model Documentation for
369 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.valueDependencies
370 * @return (Collection)handleGetValueDependencies()
371 */
372 public final Collection getValueDependencies()
373 {
374 Collection valueDependencies8a = this.__valueDependencies8a;
375 if (!this.__valueDependencies8aSet)
376 {
377 // valueDependencies has no pre constraints
378 valueDependencies8a = handleGetValueDependencies();
379 // valueDependencies has no post constraints
380 this.__valueDependencies8a = valueDependencies8a;
381 if (isMetafacadePropertyCachingEnabled())
382 {
383 this.__valueDependencies8aSet = true;
384 }
385 }
386 return valueDependencies8a;
387 }
388
389 /**
390 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getEntityRelations()
391 * @return Collection
392 */
393 protected abstract Collection handleGetEntityRelations();
394
395 private Collection __entityRelations9a;
396 private boolean __entityRelations9aSet = false;
397
398 /**
399 * TODO: Model Documentation for
400 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.entityRelations
401 * @return (Collection)handleGetEntityRelations()
402 */
403 public final Collection getEntityRelations()
404 {
405 Collection entityRelations9a = this.__entityRelations9a;
406 if (!this.__entityRelations9aSet)
407 {
408 // entityRelations has no pre constraints
409 entityRelations9a = handleGetEntityRelations();
410 // entityRelations has no post constraints
411 this.__entityRelations9a = entityRelations9a;
412 if (isMetafacadePropertyCachingEnabled())
413 {
414 this.__entityRelations9aSet = true;
415 }
416 }
417 return entityRelations9a;
418 }
419
420 /**
421 * @see org.andromda.cartridges.ejb.metafacades.EJBEntityFacade#getTransactionType()
422 * @return String
423 */
424 protected abstract String handleGetTransactionType();
425
426 private String __transactionType10a;
427 private boolean __transactionType10aSet = false;
428
429 /**
430 * Gets the transaction type for this entity (i.e. REQUIRED, etc)
431 * @return (String)handleGetTransactionType()
432 */
433 public final String getTransactionType()
434 {
435 String transactionType10a = this.__transactionType10a;
436 if (!this.__transactionType10aSet)
437 {
438 // transactionType has no pre constraints
439 transactionType10a = handleGetTransactionType();
440 // transactionType has no post constraints
441 this.__transactionType10a = transactionType10a;
442 if (isMetafacadePropertyCachingEnabled())
443 {
444 this.__transactionType10aSet = true;
445 }
446 }
447 return transactionType10a;
448 }
449
450 // ---------------- business methods ----------------------
451
452 /**
453 * Method to be implemented in descendants
454 * Gets create methods for the entity. If 'follow'l is set to true, create methods from any
455 * super types will also be retrieved by following up the inheritance chain.
456 * @param follow
457 * @return Collection
458 */
459 protected abstract Collection handleGetCreateMethods(boolean follow);
460
461 /**
462 * Gets create methods for the entity. If 'follow'l is set to true, create methods from any
463 * super types will also be retrieved by following up the inheritance chain.
464 * @param follow boolean
465 * If true, all create methods will be returned from the inheritance hierarchy, false otherwise.
466 * @return handleGetCreateMethods(follow)
467 */
468 public Collection getCreateMethods(boolean follow)
469 {
470 // getCreateMethods has no pre constraints
471 Collection returnValue = handleGetCreateMethods(follow);
472 // getCreateMethods has no post constraints
473 return returnValue;
474 }
475
476 /**
477 * Method to be implemented in descendants
478 * Gets select methods for the entity, if all is set to 'true' then ALL select methods will be
479 * retrieved (including those inherited from any superclasses).
480 * @param follow
481 * @return Collection
482 */
483 protected abstract Collection handleGetSelectMethods(boolean follow);
484
485 /**
486 * Gets select methods for the entity, if all is set to 'true' then ALL select methods will be
487 * retrieved (including those inherited from any superclasses).
488 * @param follow boolean
489 * If set to true, then all select methods including those in its superclass will be retrieved.
490 * @return handleGetSelectMethods(follow)
491 */
492 public Collection getSelectMethods(boolean follow)
493 {
494 // getSelectMethods has no pre constraints
495 Collection returnValue = handleGetSelectMethods(follow);
496 // getSelectMethods has no post constraints
497 return returnValue;
498 }
499
500 /**
501 * Method to be implemented in descendants
502 * Gets all env-entries for the specified entity EJB. Env-entries are stored as static
503 * attributes on the entity and stereotyped as <<EnvEntry>>. If 'follow' is true, then the
504 * inheritance hierachy will be followed and we'll retrieve all env-entries from any super types
505 * as well.
506 * @param follow
507 * @return Collection
508 */
509 protected abstract Collection handleGetEnvironmentEntries(boolean follow);
510
511 /**
512 * Gets all env-entries for the specified entity EJB. Env-entries are stored as static
513 * attributes on the entity and stereotyped as <<EnvEntry>>. If 'follow' is true, then the
514 * inheritance hierachy will be followed and we'll retrieve all env-entries from any super types
515 * as well.
516 * @param follow boolean
517 * If true, then the inheritance hierachy will be followed and we'll retrieve all env-entries
518 * from any super types as well.
519 * @return handleGetEnvironmentEntries(follow)
520 */
521 public Collection getEnvironmentEntries(boolean follow)
522 {
523 // getEnvironmentEntries has no pre constraints
524 Collection returnValue = handleGetEnvironmentEntries(follow);
525 // getEnvironmentEntries has no post constraints
526 return returnValue;
527 }
528
529 /**
530 * Method to be implemented in descendants
531 * Gets all constants for this entity. Constants are defined as static read-only attributes
532 * which do NOT have the <<EnvEntry>> stereotype. If 'follow' is true, then the inheritance
533 * hierachy will be followed and we'll retrieve all constants from any super types as well.
534 * @param follow
535 * @return Collection
536 */
537 protected abstract Collection handleGetConstants(boolean follow);
538
539 /**
540 * Gets all constants for this entity. Constants are defined as static read-only attributes
541 * which do NOT have the <<EnvEntry>> stereotype. If 'follow' is true, then the inheritance
542 * hierachy will be followed and we'll retrieve all constants from any super types as well.
543 * @param follow boolean
544 * If true, then the inheritance hierachy will be followed and we'll retrieve all constants from
545 * any super types as well.
546 * @return handleGetConstants(follow)
547 */
548 public Collection getConstants(boolean follow)
549 {
550 // getConstants has no pre constraints
551 Collection returnValue = handleGetConstants(follow);
552 // getConstants has no post constraints
553 return returnValue;
554 }
555
556 /**
557 * Method to be implemented in descendants
558 * TODO: Model Documentation for
559 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isOperationPresent
560 * @param op
561 * @return boolean
562 */
563 protected abstract boolean handleIsOperationPresent(String op);
564
565 /**
566 * TODO: Model Documentation for
567 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isOperationPresent
568 * @param op String
569 * TODO: Model Documentation for
570 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isOperationPresent(op)
571 * @return handleIsOperationPresent(op)
572 */
573 public boolean isOperationPresent(String op)
574 {
575 // isOperationPresent has no pre constraints
576 boolean returnValue = handleIsOperationPresent(op);
577 // isOperationPresent has no post constraints
578 return returnValue;
579 }
580
581 /**
582 * Method to be implemented in descendants
583 * TODO: Model Documentation for
584 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isAttributePresent
585 * @param att
586 * @return boolean
587 */
588 protected abstract boolean handleIsAttributePresent(String att);
589
590 /**
591 * TODO: Model Documentation for
592 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isAttributePresent
593 * @param att String
594 * TODO: Model Documentation for
595 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isAttributePresent(att)
596 * @return handleIsAttributePresent(att)
597 */
598 public boolean isAttributePresent(String att)
599 {
600 // isAttributePresent has no pre constraints
601 boolean returnValue = handleIsAttributePresent(att);
602 // isAttributePresent has no post constraints
603 return returnValue;
604 }
605
606 /**
607 * Method to be implemented in descendants
608 * TODO: Model Documentation for
609 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isIdentifierPresent
610 * @param id
611 * @return boolean
612 */
613 protected abstract boolean handleIsIdentifierPresent(String id);
614
615 /**
616 * TODO: Model Documentation for
617 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isIdentifierPresent
618 * @param id String
619 * TODO: Model Documentation for
620 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.isIdentifierPresent(id)
621 * @return handleIsIdentifierPresent(id)
622 */
623 public boolean isIdentifierPresent(String id)
624 {
625 // isIdentifierPresent has no pre constraints
626 boolean returnValue = handleIsIdentifierPresent(id);
627 // isIdentifierPresent has no post constraints
628 return returnValue;
629 }
630
631 /**
632 * Method to be implemented in descendants
633 * TODO: Model Documentation for
634 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.getSqlType
635 * @return String
636 */
637 protected abstract String handleGetSqlType();
638
639 /**
640 * TODO: Model Documentation for
641 * org.andromda.cartridges.ejb.metafacades.EJBEntityFacade.getSqlType
642 * @return handleGetSqlType()
643 */
644 public String getSqlType()
645 {
646 // getSqlType has no pre constraints
647 String returnValue = handleGetSqlType();
648 // getSqlType has no post constraints
649 return returnValue;
650 }
651
652 /**
653 * @return true
654 * @see Entity
655 */
656 public boolean isEntityMetaType()
657 {
658 return true;
659 }
660
661 /**
662 * @return true
663 * @see ClassifierFacade
664 */
665 public boolean isClassifierFacadeMetaType()
666 {
667 return true;
668 }
669
670 /**
671 * @return true
672 * @see GeneralizableElementFacade
673 */
674 public boolean isGeneralizableElementFacadeMetaType()
675 {
676 return true;
677 }
678
679 /**
680 * @return true
681 * @see ModelElementFacade
682 */
683 public boolean isModelElementFacadeMetaType()
684 {
685 return true;
686 }
687
688 // ----------- delegates to Entity ------------
689 /**
690 * Return the attribute which name matches the parameter
691 * @see ClassifierFacade#findAttribute(String name)
692 */
693 public AttributeFacade findAttribute(String name)
694 {
695 return this.getSuperEntity().findAttribute(name);
696 }
697
698 /**
699 * Those abstraction dependencies for which this classifier is the client.
700 * @see ClassifierFacade#getAbstractions()
701 */
702 public Collection<ClassifierFacade> getAbstractions()
703 {
704 return this.getSuperEntity().getAbstractions();
705 }
706
707 /**
708 * Lists all classes associated to this one and any ancestor classes (through generalization).
709 * There will be no duplicates. The order of the elements is predictable.
710 * @see ClassifierFacade#getAllAssociatedClasses()
711 */
712 public Collection<ClassifierFacade> getAllAssociatedClasses()
713 {
714 return this.getSuperEntity().getAllAssociatedClasses();
715 }
716
717 /**
718 * A collection containing all 'properties' of the classifier and its ancestors. Properties are
719 * any attributes and navigable connecting association ends.
720 * @see ClassifierFacade#getAllProperties()
721 */
722 public Collection<ModelElementFacade> getAllProperties()
723 {
724 return this.getSuperEntity().getAllProperties();
725 }
726
727 /**
728 * A collection containing all required and/or read-only 'properties' of the classifier and its
729 * ancestors. Properties are any attributes and navigable connecting association ends.
730 * @see ClassifierFacade#getAllRequiredConstructorParameters()
731 */
732 public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
733 {
734 return this.getSuperEntity().getAllRequiredConstructorParameters();
735 }
736
737 /**
738 * Gets the array type for this classifier. If this classifier already represents an array, it
739 * just returns itself.
740 * @see ClassifierFacade#getArray()
741 */
742 public ClassifierFacade getArray()
743 {
744 return this.getSuperEntity().getArray();
745 }
746
747 /**
748 * The name of the classifier as an array.
749 * @see ClassifierFacade#getArrayName()
750 */
751 public String getArrayName()
752 {
753 return this.getSuperEntity().getArrayName();
754 }
755
756 /**
757 * Lists the classes associated to this one, there is no repitition of classes. The order of the
758 * elements is predictable.
759 * @see ClassifierFacade#getAssociatedClasses()
760 */
761 public Collection<ClassifierFacade> getAssociatedClasses()
762 {
763 return this.getSuperEntity().getAssociatedClasses();
764 }
765
766 /**
767 * Gets the association ends belonging to a classifier.
768 * @see ClassifierFacade#getAssociationEnds()
769 */
770 public List<AssociationEndFacade> getAssociationEnds()
771 {
772 return this.getSuperEntity().getAssociationEnds();
773 }
774
775 /**
776 * Gets the attributes that belong to the classifier.
777 * @see ClassifierFacade#getAttributes()
778 */
779 public List<AttributeFacade> getAttributes()
780 {
781 return this.getSuperEntity().getAttributes();
782 }
783
784 /**
785 * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
786 * hierarchy and gets the attributes from the super classes as well.
787 * @see ClassifierFacade#getAttributes(boolean follow)
788 */
789 public List<AttributeFacade> getAttributes(boolean follow)
790 {
791 return this.getSuperEntity().getAttributes(follow);
792 }
793
794 /**
795 * The fully qualified name of the classifier as an array.
796 * @see ClassifierFacade#getFullyQualifiedArrayName()
797 */
798 public String getFullyQualifiedArrayName()
799 {
800 return this.getSuperEntity().getFullyQualifiedArrayName();
801 }
802
803 /**
804 * Returns all those operations that could be implemented at this classifier's level. This means
805 * the operations owned by this classifier as well as any realized interface's operations
806 * (recursively) in case this classifier itself is not already an interface, or generalized when
807 * this classifier is an interface.
808 * @see ClassifierFacade#getImplementationOperations()
809 */
810 public Collection<OperationFacade> getImplementationOperations()
811 {
812 return this.getSuperEntity().getImplementationOperations();
813 }
814
815 /**
816 * A comma separated list of the fully qualified names of all implemented interfaces.
817 * @see ClassifierFacade#getImplementedInterfaceList()
818 */
819 public String getImplementedInterfaceList()
820 {
821 return this.getSuperEntity().getImplementedInterfaceList();
822 }
823
824 /**
825 * Those attributes that are scoped to an instance of this class.
826 * @see ClassifierFacade#getInstanceAttributes()
827 */
828 public Collection<AttributeFacade> getInstanceAttributes()
829 {
830 return this.getSuperEntity().getInstanceAttributes();
831 }
832
833 /**
834 * Those operations that are scoped to an instance of this class.
835 * @see ClassifierFacade#getInstanceOperations()
836 */
837 public List<OperationFacade> getInstanceOperations()
838 {
839 return this.getSuperEntity().getInstanceOperations();
840 }
841
842 /**
843 * Those interfaces that are abstractions of this classifier, this basically means this
844 * classifier realizes them.
845 * @see ClassifierFacade#getInterfaceAbstractions()
846 */
847 public Collection<ClassifierFacade> getInterfaceAbstractions()
848 {
849 return this.getSuperEntity().getInterfaceAbstractions();
850 }
851
852 /**
853 * A String representing a new Constructor declaration for this classifier type to be used in a
854 * Java environment.
855 * @see ClassifierFacade#getJavaNewString()
856 */
857 public String getJavaNewString()
858 {
859 return this.getSuperEntity().getJavaNewString();
860 }
861
862 /**
863 * A String representing the null-value for this classifier type to be used in a Java
864 * environment.
865 * @see ClassifierFacade#getJavaNullString()
866 */
867 public String getJavaNullString()
868 {
869 return this.getSuperEntity().getJavaNullString();
870 }
871
872 /**
873 * The other ends of this classifier's association ends which are navigable.
874 * @see ClassifierFacade#getNavigableConnectingEnds()
875 */
876 public Collection<AssociationEndFacade> getNavigableConnectingEnds()
877 {
878 return this.getSuperEntity().getNavigableConnectingEnds();
879 }
880
881 /**
882 * Get the other ends of this classifier's association ends which are navigable and if 'follow'
883 * is true goes up the inheritance hierarchy and gets the super association ends as well.
884 * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
885 */
886 public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
887 {
888 return this.getSuperEntity().getNavigableConnectingEnds(follow);
889 }
890
891 /**
892 * Assuming that the classifier is an array, this will return the non array type of the
893 * classifier from
894 * the model. If the classifier is NOT an array, it will just return itself.
895 * @see ClassifierFacade#getNonArray()
896 */
897 public ClassifierFacade getNonArray()
898 {
899 return this.getSuperEntity().getNonArray();
900 }
901
902 /**
903 * The attributes from this classifier in the form of an operation call (this example would be
904 * in Java): '(String attributeOne, String attributeTwo). If there were no attributes on the
905 * classifier, the result would be an empty '()'.
906 * @see ClassifierFacade#getOperationCallFromAttributes()
907 */
908 public String getOperationCallFromAttributes()
909 {
910 return this.getSuperEntity().getOperationCallFromAttributes();
911 }
912
913 /**
914 * The operations owned by this classifier.
915 * @see ClassifierFacade#getOperations()
916 */
917 public List<OperationFacade> getOperations()
918 {
919 return this.getSuperEntity().getOperations();
920 }
921
922 /**
923 * A collection containing all 'properties' of the classifier. Properties are any attributes
924 * and navigable connecting association ends.
925 * @see ClassifierFacade#getProperties()
926 */
927 public List<ModelElementFacade> getProperties()
928 {
929 return this.getSuperEntity().getProperties();
930 }
931
932 /**
933 * Gets all properties (attributes and navigable association ends) for the classifier and if
934 * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
935 * classes as well.
936 * @see ClassifierFacade#getProperties(boolean follow)
937 */
938 public List getProperties(boolean follow)
939 {
940 return this.getSuperEntity().getProperties(follow);
941 }
942
943 /**
944 * A collection containing all required and/or read-only 'properties' of the classifier.
945 * Properties are any attributes and navigable connecting association ends.
946 * @see ClassifierFacade#getRequiredConstructorParameters()
947 */
948 public Collection<ModelElementFacade> getRequiredConstructorParameters()
949 {
950 return this.getSuperEntity().getRequiredConstructorParameters();
951 }
952
953 /**
954 * Returns the serial version UID of the underlying model element.
955 * @see ClassifierFacade#getSerialVersionUID()
956 */
957 public long getSerialVersionUID()
958 {
959 return this.getSuperEntity().getSerialVersionUID();
960 }
961
962 /**
963 * Those attributes that are scoped to the definition of this class.
964 * @see ClassifierFacade#getStaticAttributes()
965 */
966 public Collection<AttributeFacade> getStaticAttributes()
967 {
968 return this.getSuperEntity().getStaticAttributes();
969 }
970
971 /**
972 * Those operations that are scoped to the definition of this class.
973 * @see ClassifierFacade#getStaticOperations()
974 */
975 public List<OperationFacade> getStaticOperations()
976 {
977 return this.getSuperEntity().getStaticOperations();
978 }
979
980 /**
981 * This class' superclass, returns the generalization if it is a ClassifierFacade, null
982 * otherwise.
983 * @see ClassifierFacade#getSuperClass()
984 */
985 public ClassifierFacade getSuperClass()
986 {
987 return this.getSuperEntity().getSuperClass();
988 }
989
990 /**
991 * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
992 * maps to 'Long'). If the classifier doesn't have a wrapper defined for it, this method will
993 * return a null. Note that wrapper mappings must be defined for the namespace by defining the
994 * 'wrapperMappingsUri', this property must point to the location of the mappings file which
995 * maps the primitives to wrapper types.
996 * @see ClassifierFacade#getWrapperName()
997 */
998 public String getWrapperName()
999 {
1000 return this.getSuperEntity().getWrapperName();
1001 }
1002
1003 /**
1004 * Indicates if this classifier is 'abstract'.
1005 * @see ClassifierFacade#isAbstract()
1006 */
1007 public boolean isAbstract()
1008 {
1009 return this.getSuperEntity().isAbstract();
1010 }
1011
1012 /**
1013 * True if this classifier represents an array type. False otherwise.
1014 * @see ClassifierFacade#isArrayType()
1015 */
1016 public boolean isArrayType()
1017 {
1018 return this.getSuperEntity().isArrayType();
1019 }
1020
1021 /**
1022 * True if the ClassifierFacade is an AssociationClass.
1023 * @see ClassifierFacade#isAssociationClass()
1024 */
1025 public boolean isAssociationClass()
1026 {
1027 return this.getSuperEntity().isAssociationClass();
1028 }
1029
1030 /**
1031 * Returns true if this type represents a Blob type.
1032 * @see ClassifierFacade#isBlobType()
1033 */
1034 public boolean isBlobType()
1035 {
1036 return this.getSuperEntity().isBlobType();
1037 }
1038
1039 /**
1040 * Indicates if this type represents a boolean type or not.
1041 * @see ClassifierFacade#isBooleanType()
1042 */
1043 public boolean isBooleanType()
1044 {
1045 return this.getSuperEntity().isBooleanType();
1046 }
1047
1048 /**
1049 * Indicates if this type represents a char, Character, or java.lang.Character type or not.
1050 * @see ClassifierFacade#isCharacterType()
1051 */
1052 public boolean isCharacterType()
1053 {
1054 return this.getSuperEntity().isCharacterType();
1055 }
1056
1057 /**
1058 * Returns true if this type represents a Clob type.
1059 * @see ClassifierFacade#isClobType()
1060 */
1061 public boolean isClobType()
1062 {
1063 return this.getSuperEntity().isClobType();
1064 }
1065
1066 /**
1067 * True if this classifier represents a collection type. False otherwise.
1068 * @see ClassifierFacade#isCollectionType()
1069 */
1070 public boolean isCollectionType()
1071 {
1072 return this.getSuperEntity().isCollectionType();
1073 }
1074
1075 /**
1076 * True/false depending on whether or not this classifier represents a datatype. A data type is
1077 * a type whose instances are identified only by their value. A data type may contain attributes
1078 * to support the modeling of structured data types.
1079 * @see ClassifierFacade#isDataType()
1080 */
1081 public boolean isDataType()
1082 {
1083 return this.getSuperEntity().isDataType();
1084 }
1085
1086 /**
1087 * True when this classifier is a date type.
1088 * @see ClassifierFacade#isDateType()
1089 */
1090 public boolean isDateType()
1091 {
1092 return this.getSuperEntity().isDateType();
1093 }
1094
1095 /**
1096 * Indicates if this type represents a Double type or not.
1097 * @see ClassifierFacade#isDoubleType()
1098 */
1099 public boolean isDoubleType()
1100 {
1101 return this.getSuperEntity().isDoubleType();
1102 }
1103
1104 /**
1105 * Indicates whether or not this classifier represents an "EmbeddedValue'.
1106 * @see ClassifierFacade#isEmbeddedValue()
1107 */
1108 public boolean isEmbeddedValue()
1109 {
1110 return this.getSuperEntity().isEmbeddedValue();
1111 }
1112
1113 /**
1114 * True if this classifier is in fact marked as an enumeration.
1115 * @see ClassifierFacade#isEnumeration()
1116 */
1117 public boolean isEnumeration()
1118 {
1119 return this.getSuperEntity().isEnumeration();
1120 }
1121
1122 /**
1123 * Returns true if this type represents a 'file' type.
1124 * @see ClassifierFacade#isFileType()
1125 */
1126 public boolean isFileType()
1127 {
1128 return this.getSuperEntity().isFileType();
1129 }
1130
1131 /**
1132 * Indicates if this type represents a Float type or not.
1133 * @see ClassifierFacade#isFloatType()
1134 */
1135 public boolean isFloatType()
1136 {
1137 return this.getSuperEntity().isFloatType();
1138 }
1139
1140 /**
1141 * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
1142 * @see ClassifierFacade#isIntegerType()
1143 */
1144 public boolean isIntegerType()
1145 {
1146 return this.getSuperEntity().isIntegerType();
1147 }
1148
1149 /**
1150 * True/false depending on whether or not this Classifier represents an interface.
1151 * @see ClassifierFacade#isInterface()
1152 */
1153 public boolean isInterface()
1154 {
1155 return this.getSuperEntity().isInterface();
1156 }
1157
1158 /**
1159 * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
1160 * @see ClassifierFacade#isLeaf()
1161 */
1162 public boolean isLeaf()
1163 {
1164 return this.getSuperEntity().isLeaf();
1165 }
1166
1167 /**
1168 * True if this classifier represents a list type. False otherwise.
1169 * @see ClassifierFacade#isListType()
1170 */
1171 public boolean isListType()
1172 {
1173 return this.getSuperEntity().isListType();
1174 }
1175
1176 /**
1177 * Indicates if this type represents a Long type or not.
1178 * @see ClassifierFacade#isLongType()
1179 */
1180 public boolean isLongType()
1181 {
1182 return this.getSuperEntity().isLongType();
1183 }
1184
1185 /**
1186 * Indicates whether or not this classifier represents a Map type.
1187 * @see ClassifierFacade#isMapType()
1188 */
1189 public boolean isMapType()
1190 {
1191 return this.getSuperEntity().isMapType();
1192 }
1193
1194 /**
1195 * Indicates whether or not this classifier represents a primitive type.
1196 * @see ClassifierFacade#isPrimitive()
1197 */
1198 public boolean isPrimitive()
1199 {
1200 return this.getSuperEntity().isPrimitive();
1201 }
1202
1203 /**
1204 * True if this classifier represents a set type. False otherwise.
1205 * @see ClassifierFacade#isSetType()
1206 */
1207 public boolean isSetType()
1208 {
1209 return this.getSuperEntity().isSetType();
1210 }
1211
1212 /**
1213 * Indicates whether or not this classifier represents a string type.
1214 * @see ClassifierFacade#isStringType()
1215 */
1216 public boolean isStringType()
1217 {
1218 return this.getSuperEntity().isStringType();
1219 }
1220
1221 /**
1222 * Indicates whether or not this classifier represents a time type.
1223 * @see ClassifierFacade#isTimeType()
1224 */
1225 public boolean isTimeType()
1226 {
1227 return this.getSuperEntity().isTimeType();
1228 }
1229
1230 /**
1231 * Returns true if this type is a wrapped primitive type.
1232 * @see ClassifierFacade#isWrappedPrimitive()
1233 */
1234 public boolean isWrappedPrimitive()
1235 {
1236 return this.getSuperEntity().isWrappedPrimitive();
1237 }
1238
1239 /**
1240 * Returns a collection of all entities this entity and its ancestors have a relation to.
1241 * @see Entity#getAllEntityReferences()
1242 */
1243 public Collection<DependencyFacade> getAllEntityReferences()
1244 {
1245 return this.getSuperEntity().getAllEntityReferences();
1246 }
1247
1248 /**
1249 * Gets a comma separated list of attribute names. If 'follow' is true, will travel up the
1250 * inheritance hiearchy to include attributes in parent entities as well. If 'withIdentifiers'
1251 * is true, will include identifiers.
1252 * @see Entity#getAttributeNameList(boolean follow, boolean withIdentifiers)
1253 */
1254 public String getAttributeNameList(boolean follow, boolean withIdentifiers)
1255 {
1256 return this.getSuperEntity().getAttributeNameList(follow, withIdentifiers);
1257 }
1258
1259 /**
1260 * Gets a comma separated list of attribute names. If 'follow' is true, will travel up the
1261 * inheritance hiearchy to include attributes in parent entities as well. If 'withIdentifiers'
1262 * is true, will include identifiers and if 'withDerived' is set to true, will include derived
1263 * attributes.
1264 * @see Entity#getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1265 */
1266 public String getAttributeNameList(boolean follow, boolean withIdentifiers, boolean withDerived)
1267 {
1268 return this.getSuperEntity().getAttributeNameList(follow, withIdentifiers, withDerived);
1269 }
1270
1271 /**
1272 * Gets a comma separated list of attribute types. If 'follow' is true, will travel up the
1273 * inheritance hierarchy to include attributes in parent entities as well. If 'withIdentifiers'
1274 * is true, will include identifiers.
1275 * @see Entity#getAttributeTypeList(boolean follow, boolean withIdentifiers)
1276 */
1277 public String getAttributeTypeList(boolean follow, boolean withIdentifiers)
1278 {
1279 return this.getSuperEntity().getAttributeTypeList(follow, withIdentifiers);
1280 }
1281
1282 /**
1283 * Gets all attributes of the entity, and optionally retieves the super entities attributes as
1284 * well as excludes the entity's identifiers if 'withIdentifiers' is set to false.
1285 * @see Entity#getAttributes(boolean follow, boolean withIdentifiers)
1286 */
1287 public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers)
1288 {
1289 return this.getSuperEntity().getAttributes(follow, withIdentifiers);
1290 }
1291
1292 /**
1293 * Gets all attributes of the entity, and optionally retieves the super entities attributes as
1294 * well as excludes the entity's identifiers if 'withIdentifiers' is set to false and exclude
1295 * derived attributes if 'withDerived' is set to false.
1296 * @see Entity#getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
1297 */
1298 public Collection<AttributeFacade> getAttributes(boolean follow, boolean withIdentifiers, boolean withDerived)
1299 {
1300 return this.getSuperEntity().getAttributes(follow, withIdentifiers, withDerived);
1301 }
1302
1303 /**
1304 * All business operations of the entity, these include any operations that aren't queries.
1305 * @see Entity#getBusinessOperations()
1306 */
1307 public Collection<OperationFacade> getBusinessOperations()
1308 {
1309 return this.getSuperEntity().getBusinessOperations();
1310 }
1311
1312 /**
1313 * Gets any children association ends (i.e. entity association ends that are participants in an
1314 * association with this entity and this entity has composite aggregation defined for those
1315 * associations).
1316 * @see Entity#getChildEnds()
1317 */
1318 public Collection<EntityAssociationEnd> getChildEnds()
1319 {
1320 return this.getSuperEntity().getChildEnds();
1321 }
1322
1323 /**
1324 * The embedded values belonging to this entity.
1325 * @see Entity#getEmbeddedValues()
1326 */
1327 public Collection<AttributeFacade> getEmbeddedValues()
1328 {
1329 return this.getSuperEntity().getEmbeddedValues();
1330 }
1331
1332 /**
1333 * All entities referenced by this entity.
1334 * @see Entity#getEntityReferences()
1335 */
1336 public Collection<DependencyFacade> getEntityReferences()
1337 {
1338 return this.getSuperEntity().getEntityReferences();
1339 }
1340
1341 /**
1342 * The full name of the type of the identifier. If composite identifier add the PK sufix to the
1343 * class name. If not, retorns the fully qualified name of the identifier.
1344 * @see Entity#getFullyQualifiedIdentifierTypeName()
1345 */
1346 public String getFullyQualifiedIdentifierTypeName()
1347 {
1348 return this.getSuperEntity().getFullyQualifiedIdentifierTypeName();
1349 }
1350
1351 /**
1352 * Gets all the associationEnds of this entity marked with the identifiers stereotype.
1353 * @see Entity#getIdentifierAssociationEnds()
1354 */
1355 public Collection<AssociationEndFacade> getIdentifierAssociationEnds()
1356 {
1357 return this.getSuperEntity().getIdentifierAssociationEnds();
1358 }
1359
1360 /**
1361 * The getter name of the identifier.
1362 * @see Entity#getIdentifierGetterName()
1363 */
1364 public String getIdentifierGetterName()
1365 {
1366 return this.getSuperEntity().getIdentifierGetterName();
1367 }
1368
1369 /**
1370 * The name of the identifier. If composite identifier add the Pk suffix. If not composite
1371 * returns the attribute name of the identifier.
1372 * @see Entity#getIdentifierName()
1373 */
1374 public String getIdentifierName()
1375 {
1376 return this.getSuperEntity().getIdentifierName();
1377 }
1378
1379 /**
1380 * The setter name of the identifier.
1381 * @see Entity#getIdentifierSetterName()
1382 */
1383 public String getIdentifierSetterName()
1384 {
1385 return this.getSuperEntity().getIdentifierSetterName();
1386 }
1387
1388 /**
1389 * The name of the type of the identifier. If composite identifier add the PK suffix to the
1390 * class name. If not, returns the name of the identifier.
1391 * @see Entity#getIdentifierTypeName()
1392 */
1393 public String getIdentifierTypeName()
1394 {
1395 return this.getSuperEntity().getIdentifierTypeName();
1396 }
1397
1398 /**
1399 * All the attributes of the entity which make up its identifier (primary key). Will search any
1400 * super classes as well. If no identifiers exist, a default identifier will be created if the
1401 * allowDefaultIdentifiers property is set to true.
1402 * @see Entity#getIdentifiers()
1403 */
1404 public Collection<ModelElementFacade> getIdentifiers()
1405 {
1406 return this.getSuperEntity().getIdentifiers();
1407 }
1408
1409 /**
1410 * Gets all identifiers for an entity. If 'follow' is true, and if no identifiers can be found
1411 * on the entity, a search up the inheritance chain will be performed, and the identifiers from
1412 * the first super class having them will be used. If no identifiers exist, a default
1413 * identifier will be created if the allowDefaultIdentifiers property is set to true.
1414 * Identifiers can be on attributes or associations (composite primary key).
1415 * @see Entity#getIdentifiers(boolean follow)
1416 */
1417 public Collection<ModelElementFacade> getIdentifiers(boolean follow)
1418 {
1419 return this.getSuperEntity().getIdentifiers(follow);
1420 }
1421
1422 /**
1423 * The maximum length a SQL name may be.
1424 * @see Entity#getMaxSqlNameLength()
1425 */
1426 public short getMaxSqlNameLength()
1427 {
1428 return this.getSuperEntity().getMaxSqlNameLength();
1429 }
1430
1431 /**
1432 * Gets the attributes as a list within an operation call, optionally including the type names
1433 * and the identifier attributes.
1434 * @see Entity#getOperationCallFromAttributes(boolean withIdentifiers)
1435 */
1436 public String getOperationCallFromAttributes(boolean withIdentifiers)
1437 {
1438 return this.getSuperEntity().getOperationCallFromAttributes(withIdentifiers);
1439 }
1440
1441 /**
1442 * Gets the attributes as a list within an operation call. If 'withTypeNames' is true, it will
1443 * include the type names, if 'withIdentifiers' is true it will include the identifiers. If
1444 * 'follow' is true it will follow the inheritance hierarchy and get the attributes of the super
1445 * class as well.
1446 * @see Entity#getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
1447 */
1448 public String getOperationCallFromAttributes(boolean withIdentifiers, boolean follow)
1449 {
1450 return this.getSuperEntity().getOperationCallFromAttributes(withIdentifiers, follow);
1451 }
1452
1453 /**
1454 * Returns the parent association end of this entity if its a child entity. The parent is the
1455 * entity that is the participant the association that has composite aggregation defined. Will
1456 * return null if the entity has no parent.
1457 * @see Entity#getParentEnd()
1458 */
1459 public EntityAssociationEnd getParentEnd()
1460 {
1461 return this.getSuperEntity().getParentEnd();
1462 }
1463
1464 /**
1465 * Gets all properties of this entity, this includes the attributes and navigable association
1466 * ends of the entity. The 'follow' flag indcates whether or not the inheritance hierarchy
1467 * should be followed when getting all the properties. The 'withIdentifiers' flag indicates
1468 * whether or not identifiers should be included in the collection of properties.
1469 * @see Entity#getProperties(boolean follow, boolean withIdentifiers)
1470 */
1471 public Collection<ModelElementFacade> getProperties(boolean follow, boolean withIdentifiers)
1472 {
1473 return this.getSuperEntity().getProperties(follow, withIdentifiers);
1474 }
1475
1476 /**
1477 * Returns all the operations that can perform queries on the entity.
1478 * @see Entity#getQueryOperations()
1479 */
1480 public Collection<EntityQueryOperation> getQueryOperations()
1481 {
1482 return this.getSuperEntity().getQueryOperations();
1483 }
1484
1485 /**
1486 * Gets all query operations for an entity. If 'follow' is true, and if no query operations can
1487 * be found on the entity, a search up the inheritance chain will be performed, and the
1488 * identifiers from the first super class having them will be used. If no identifiers exist, a
1489 * default identifier will be created if the allowDefaultIdentifiers property is set to true.
1490 * @see Entity#getQueryOperations(boolean follow)
1491 */
1492 public Collection<OperationFacade> getQueryOperations(boolean follow)
1493 {
1494 return this.getSuperEntity().getQueryOperations(follow);
1495 }
1496
1497 /**
1498 * Gets a comma separated list of required attribute names. If 'follow' is true, will travel up
1499 * the inheritance hierarchy to include attributes in parent entities as well. If
1500 * 'withIdentifiers' is true, will include identifiers.
1501 * @see Entity#getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
1502 */
1503 public String getRequiredAttributeNameList(boolean follow, boolean withIdentifiers)
1504 {
1505 return this.getSuperEntity().getRequiredAttributeNameList(follow, withIdentifiers);
1506 }
1507
1508 /**
1509 * Gets a comma separated list of attribute types with are required. If 'follow' is true, will
1510 * travel up the inheritance hierarchy to include attributes in parent entities as well. If
1511 * 'withIdentifiers' is true, will include identifiers.
1512 * @see Entity#getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
1513 */
1514 public String getRequiredAttributeTypeList(boolean follow, boolean withIdentifiers)
1515 {
1516 return this.getSuperEntity().getRequiredAttributeTypeList(follow, withIdentifiers);
1517 }
1518
1519 /**
1520 * Returns all attributes that are specified as 'required' in the model. If 'follow' is true,
1521 * then required attributes in super classes will also be returned, if false, just the ones
1522 * directly on the entity will be returned. If 'withIdentifiers' is true, the identifiers will
1523 * be include, if false, no identifiers will be included.
1524 * @see Entity#getRequiredAttributes(boolean follow, boolean withIdentifiers)
1525 */
1526 public Collection<AttributeFacade> getRequiredAttributes(boolean follow, boolean withIdentifiers)
1527 {
1528 return this.getSuperEntity().getRequiredAttributes(follow, withIdentifiers);
1529 }
1530
1531 /**
1532 * Gets all required properties for this entity. These consist of any required attributes as
1533 * well as navigable associations that are marked as 'required'. If 'follow' is true, then the
1534 * inheritance hierchy will be followed and all required properties from super classes will be
1535 * included as well.
1536 * If 'withIdentifiers' is true, the identifiers will be include, if false, no identifiers will
1537 * be included.
1538 * @see Entity#getRequiredProperties(boolean follow, boolean withIdentifiers)
1539 */
1540 public Collection<ModelElementFacade> getRequiredProperties(boolean follow, boolean withIdentifiers)
1541 {
1542 return this.getSuperEntity().getRequiredProperties(follow, withIdentifiers);
1543 }
1544
1545 /**
1546 * Creates a comma separated list of the required property names.
1547 * @see Entity#getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
1548 */
1549 public String getRequiredPropertyNameList(boolean follow, boolean withIdentifiers)
1550 {
1551 return this.getSuperEntity().getRequiredPropertyNameList(follow, withIdentifiers);
1552 }
1553
1554 /**
1555 * A comma separated list of the required property types.
1556 * @see Entity#getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
1557 */
1558 public String getRequiredPropertyTypeList(boolean follow, boolean withIdentifiers)
1559 {
1560 return this.getSuperEntity().getRequiredPropertyTypeList(follow, withIdentifiers);
1561 }
1562
1563 /**
1564 * The name of the schema that contains the database table
1565 * @see Entity#getSchema()
1566 */
1567 public String getSchema()
1568 {
1569 return this.getSuperEntity().getSchema();
1570 }
1571
1572 /**
1573 * The name of the database table to which this entity is persisted.
1574 * @see Entity#getTableName()
1575 */
1576 public String getTableName()
1577 {
1578 return this.getSuperEntity().getTableName();
1579 }
1580
1581 /**
1582 * Returns true/false depending on whether or not this entity represetns a child in an
1583 * association (this occurs when this entity is on the opposite end of an assocation end defined
1584 * as composite).
1585 * @see Entity#isChild()
1586 */
1587 public boolean isChild()
1588 {
1589 return this.getSuperEntity().isChild();
1590 }
1591
1592 /**
1593 * True if this entity identifier is a composite (consists of multiple key columns, typically
1594 * abstracted into an external composite identifier class)
1595 * @see Entity#isCompositeIdentifier()
1596 */
1597 public boolean isCompositeIdentifier()
1598 {
1599 return this.getSuperEntity().isCompositeIdentifier();
1600 }
1601
1602 /**
1603 * True if the entity has its identifiers dynamically added, false otherwise.
1604 * @see Entity#isDynamicIdentifiersPresent()
1605 */
1606 public boolean isDynamicIdentifiersPresent()
1607 {
1608 return this.getSuperEntity().isDynamicIdentifiersPresent();
1609 }
1610
1611 /**
1612 * True if the entity has any identifiers defined, false otherwise.
1613 * @see Entity#isIdentifiersPresent()
1614 */
1615 public boolean isIdentifiersPresent()
1616 {
1617 return this.getSuperEntity().isIdentifiersPresent();
1618 }
1619
1620 /**
1621 * Indiciates if this entity is using an assigned identifier or not.
1622 * @see Entity#isUsingAssignedIdentifier()
1623 */
1624 public boolean isUsingAssignedIdentifier()
1625 {
1626 return this.getSuperEntity().isUsingAssignedIdentifier();
1627 }
1628
1629 /**
1630 * Indicates whether or not this entity is using a foreign identifier as its identifiers. That
1631 * is: the foreignIdentifier flag was set on an incoming association end and the entity is
1632 * therefore using the related foreign parent entity's identifier.
1633 * @see Entity#isUsingForeignIdentifier()
1634 */
1635 public boolean isUsingForeignIdentifier()
1636 {
1637 return this.getSuperEntity().isUsingForeignIdentifier();
1638 }
1639
1640 /**
1641 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
1642 * to true.
1643 * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
1644 */
1645 public Object findTaggedValue(String tagName, boolean follow)
1646 {
1647 return this.getSuperEntity().findTaggedValue(tagName, follow);
1648 }
1649
1650 /**
1651 * All generalizations for this generalizable element, goes up the inheritance tree.
1652 * @see GeneralizableElementFacade#getAllGeneralizations()
1653 */
1654 public Collection<GeneralizableElementFacade> getAllGeneralizations()
1655 {
1656 return this.getSuperEntity().getAllGeneralizations();
1657 }
1658
1659 /**
1660 * All specializations (travels down the inheritance hierarchy).
1661 * @see GeneralizableElementFacade#getAllSpecializations()
1662 */
1663 public Collection<GeneralizableElementFacade> getAllSpecializations()
1664 {
1665 return this.getSuperEntity().getAllSpecializations();
1666 }
1667
1668 /**
1669 * Gets the direct generalization for this generalizable element.
1670 * @see GeneralizableElementFacade#getGeneralization()
1671 */
1672 public GeneralizableElementFacade getGeneralization()
1673 {
1674 return this.getSuperEntity().getGeneralization();
1675 }
1676
1677 /**
1678 * Gets the actual links that this generalization element is part of (it plays either the
1679 * specialization or generalization).
1680 * @see GeneralizableElementFacade#getGeneralizationLinks()
1681 */
1682 public Collection<GeneralizationFacade> getGeneralizationLinks()
1683 {
1684 return this.getSuperEntity().getGeneralizationLinks();
1685 }
1686
1687 /**
1688 * A comma separated list of the fully qualified names of all generalizations.
1689 * @see GeneralizableElementFacade#getGeneralizationList()
1690 */
1691 public String getGeneralizationList()
1692 {
1693 return this.getSuperEntity().getGeneralizationList();
1694 }
1695
1696 /**
1697 * The element found when you recursively follow the generalization path up to the root. If an
1698 * element has no generalization itself will be considered the root.
1699 * @see GeneralizableElementFacade#getGeneralizationRoot()
1700 */
1701 public GeneralizableElementFacade getGeneralizationRoot()
1702 {
1703 return this.getSuperEntity().getGeneralizationRoot();
1704 }
1705
1706 /**
1707 * Return all generalizations (ancestors) from this generalizable element.
1708 * @see GeneralizableElementFacade#getGeneralizations()
1709 */
1710 public Collection<GeneralizableElementFacade> getGeneralizations()
1711 {
1712 return this.getSuperEntity().getGeneralizations();
1713 }
1714
1715 /**
1716 * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
1717 * @see GeneralizableElementFacade#getSpecializations()
1718 */
1719 public Collection<GeneralizableElementFacade> getSpecializations()
1720 {
1721 return this.getSuperEntity().getSpecializations();
1722 }
1723
1724 /**
1725 * Copies all tagged values from the given ModelElementFacade to this model element facade.
1726 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
1727 */
1728 public void copyTaggedValues(ModelElementFacade element)
1729 {
1730 this.getSuperEntity().copyTaggedValues(element);
1731 }
1732
1733 /**
1734 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
1735 * one found will be returned.
1736 * @see ModelElementFacade#findTaggedValue(String tagName)
1737 */
1738 public Object findTaggedValue(String tagName)
1739 {
1740 return this.getSuperEntity().findTaggedValue(tagName);
1741 }
1742
1743 /**
1744 * Returns all the values for the tagged value with the specified name. The returned collection
1745 * will contains only String instances, or will be empty. Never null.
1746 * @see ModelElementFacade#findTaggedValues(String tagName)
1747 */
1748 public Collection<Object> findTaggedValues(String tagName)
1749 {
1750 return this.getSuperEntity().findTaggedValues(tagName);
1751 }
1752
1753 /**
1754 * Returns the fully qualified name of the model element. The fully qualified name includes
1755 * complete package qualified name of the underlying model element. The templates parameter will
1756 * be replaced by the correct one given the binding relation of the parameter to this element.
1757 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1758 */
1759 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1760 {
1761 return this.getSuperEntity().getBindedFullyQualifiedName(bindedElement);
1762 }
1763
1764 /**
1765 * Gets all constraints belonging to the model element.
1766 * @see ModelElementFacade#getConstraints()
1767 */
1768 public Collection<ConstraintFacade> getConstraints()
1769 {
1770 return this.getSuperEntity().getConstraints();
1771 }
1772
1773 /**
1774 * Returns the constraints of the argument kind that have been placed onto this model. Typical
1775 * kinds are "inv", "pre" and "post". Other kinds are possible.
1776 * @see ModelElementFacade#getConstraints(String kind)
1777 */
1778 public Collection<ConstraintFacade> getConstraints(String kind)
1779 {
1780 return this.getSuperEntity().getConstraints(kind);
1781 }
1782
1783 /**
1784 * Gets the documentation for the model element, The indent argument is prefixed to each line.
1785 * By default this method wraps lines after 64 characters.
1786 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
1787 * @see ModelElementFacade#getDocumentation(String indent)
1788 */
1789 public String getDocumentation(String indent)
1790 {
1791 return this.getSuperEntity().getDocumentation(indent);
1792 }
1793
1794 /**
1795 * This method returns the documentation for this model element, with the lines wrapped after
1796 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1797 * required. By default paragraphs are returned as HTML.
1798 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
1799 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
1800 */
1801 public String getDocumentation(String indent, int lineLength)
1802 {
1803 return this.getSuperEntity().getDocumentation(indent, lineLength);
1804 }
1805
1806 /**
1807 * This method returns the documentation for this model element, with the lines wrapped after
1808 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1809 * required. HTML style determines if HTML Escaping is applied.
1810 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
1811 */
1812 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
1813 {
1814 return this.getSuperEntity().getDocumentation(indent, lineLength, htmlStyle);
1815 }
1816
1817 /**
1818 * The fully qualified name of this model element.
1819 * @see ModelElementFacade#getFullyQualifiedName()
1820 */
1821 public String getFullyQualifiedName()
1822 {
1823 return this.getSuperEntity().getFullyQualifiedName();
1824 }
1825
1826 /**
1827 * Returns the fully qualified name of the model element. The fully qualified name includes
1828 * complete package qualified name of the underlying model element. If modelName is true, then
1829 * the original name of the model element (the name contained within the model) will be the name
1830 * returned, otherwise a name from a language mapping will be returned.
1831 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
1832 */
1833 public String getFullyQualifiedName(boolean modelName)
1834 {
1835 return this.getSuperEntity().getFullyQualifiedName(modelName);
1836 }
1837
1838 /**
1839 * Returns the fully qualified name as a path, the returned value always starts with out a slash
1840 * '/'.
1841 * @see ModelElementFacade#getFullyQualifiedNamePath()
1842 */
1843 public String getFullyQualifiedNamePath()
1844 {
1845 return this.getSuperEntity().getFullyQualifiedNamePath();
1846 }
1847
1848 /**
1849 * Gets the unique identifier of the underlying model element.
1850 * @see ModelElementFacade#getId()
1851 */
1852 public String getId()
1853 {
1854 return this.getSuperEntity().getId();
1855 }
1856
1857 /**
1858 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
1859 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
1860 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
1861 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
1862 * JDK5 compiler level.
1863 * @see ModelElementFacade#getKeywords()
1864 */
1865 public Collection<String> getKeywords()
1866 {
1867 return this.getSuperEntity().getKeywords();
1868 }
1869
1870 /**
1871 * UML2: Retrieves a localized label for this named element.
1872 * @see ModelElementFacade#getLabel()
1873 */
1874 public String getLabel()
1875 {
1876 return this.getSuperEntity().getLabel();
1877 }
1878
1879 /**
1880 * The language mappings that have been set for this model element.
1881 * @see ModelElementFacade#getLanguageMappings()
1882 */
1883 public TypeMappings getLanguageMappings()
1884 {
1885 return this.getSuperEntity().getLanguageMappings();
1886 }
1887
1888 /**
1889 * Return the model containing this model element (multiple models may be loaded and processed
1890 * at the same time).
1891 * @see ModelElementFacade#getModel()
1892 */
1893 public ModelFacade getModel()
1894 {
1895 return this.getSuperEntity().getModel();
1896 }
1897
1898 /**
1899 * The name of the model element.
1900 * @see ModelElementFacade#getName()
1901 */
1902 public String getName()
1903 {
1904 return this.getSuperEntity().getName();
1905 }
1906
1907 /**
1908 * Gets the package to which this model element belongs.
1909 * @see ModelElementFacade#getPackage()
1910 */
1911 public ModelElementFacade getPackage()
1912 {
1913 return this.getSuperEntity().getPackage();
1914 }
1915
1916 /**
1917 * The name of this model element's package.
1918 * @see ModelElementFacade#getPackageName()
1919 */
1920 public String getPackageName()
1921 {
1922 return this.getSuperEntity().getPackageName();
1923 }
1924
1925 /**
1926 * Gets the package name (optionally providing the ability to retrieve the model name and not
1927 * the mapped name).
1928 * @see ModelElementFacade#getPackageName(boolean modelName)
1929 */
1930 public String getPackageName(boolean modelName)
1931 {
1932 return this.getSuperEntity().getPackageName(modelName);
1933 }
1934
1935 /**
1936 * Returns the package as a path, the returned value always starts with out a slash '/'.
1937 * @see ModelElementFacade#getPackagePath()
1938 */
1939 public String getPackagePath()
1940 {
1941 return this.getSuperEntity().getPackagePath();
1942 }
1943
1944 /**
1945 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
1946 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
1947 * the names of the containing namespaces starting at the root of the hierarchy and ending with
1948 * the name of the NamedElement itself.
1949 * @see ModelElementFacade#getQualifiedName()
1950 */
1951 public String getQualifiedName()
1952 {
1953 return this.getSuperEntity().getQualifiedName();
1954 }
1955
1956 /**
1957 * Gets the root package for the model element.
1958 * @see ModelElementFacade#getRootPackage()
1959 */
1960 public PackageFacade getRootPackage()
1961 {
1962 return this.getSuperEntity().getRootPackage();
1963 }
1964
1965 /**
1966 * Gets the dependencies for which this model element is the source.
1967 * @see ModelElementFacade#getSourceDependencies()
1968 */
1969 public Collection<DependencyFacade> getSourceDependencies()
1970 {
1971 return this.getSuperEntity().getSourceDependencies();
1972 }
1973
1974 /**
1975 * If this model element is the context of an activity graph, this represents that activity
1976 * graph.
1977 * @see ModelElementFacade#getStateMachineContext()
1978 */
1979 public StateMachineFacade getStateMachineContext()
1980 {
1981 return this.getSuperEntity().getStateMachineContext();
1982 }
1983
1984 /**
1985 * The collection of ALL stereotype names for this model element.
1986 * @see ModelElementFacade#getStereotypeNames()
1987 */
1988 public Collection<String> getStereotypeNames()
1989 {
1990 return this.getSuperEntity().getStereotypeNames();
1991 }
1992
1993 /**
1994 * Gets all stereotypes for this model element.
1995 * @see ModelElementFacade#getStereotypes()
1996 */
1997 public Collection<StereotypeFacade> getStereotypes()
1998 {
1999 return this.getSuperEntity().getStereotypes();
2000 }
2001
2002 /**
2003 * Return the TaggedValues associated with this model element, under all stereotypes.
2004 * @see ModelElementFacade#getTaggedValues()
2005 */
2006 public Collection<TaggedValueFacade> getTaggedValues()
2007 {
2008 return this.getSuperEntity().getTaggedValues();
2009 }
2010
2011 /**
2012 * Gets the dependencies for which this model element is the target.
2013 * @see ModelElementFacade#getTargetDependencies()
2014 */
2015 public Collection<DependencyFacade> getTargetDependencies()
2016 {
2017 return this.getSuperEntity().getTargetDependencies();
2018 }
2019
2020 /**
2021 * Get the template parameter for this model element having the parameterName
2022 * @see ModelElementFacade#getTemplateParameter(String parameterName)
2023 */
2024 public Object getTemplateParameter(String parameterName)
2025 {
2026 return this.getSuperEntity().getTemplateParameter(parameterName);
2027 }
2028
2029 /**
2030 * Get the template parameters for this model element
2031 * @see ModelElementFacade#getTemplateParameters()
2032 */
2033 public Collection<TemplateParameterFacade> getTemplateParameters()
2034 {
2035 return this.getSuperEntity().getTemplateParameters();
2036 }
2037
2038 /**
2039 * The visibility (i.e. public, private, protected or package) of the model element, will
2040 * attempt a lookup for these values in the language mappings (if any).
2041 * @see ModelElementFacade#getVisibility()
2042 */
2043 public String getVisibility()
2044 {
2045 return this.getSuperEntity().getVisibility();
2046 }
2047
2048 /**
2049 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2050 * is taken into account when searching for the stereotype), false otherwise.
2051 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2052 */
2053 public boolean hasExactStereotype(String stereotypeName)
2054 {
2055 return this.getSuperEntity().hasExactStereotype(stereotypeName);
2056 }
2057
2058 /**
2059 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2060 * pipe, semicolon, or << >>
2061 * @see ModelElementFacade#hasKeyword(String keywordName)
2062 */
2063 public boolean hasKeyword(String keywordName)
2064 {
2065 return this.getSuperEntity().hasKeyword(keywordName);
2066 }
2067
2068 /**
2069 * Returns true if the model element has the specified stereotype. If the stereotype itself
2070 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2071 * one of the stereotype's ancestors has a matching name this method will return true, false
2072 * otherwise.
2073 * For example, if we have a certain stereotype called <<exception>> and a model element has a
2074 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2075 * method with 'stereotypeName' defined as 'exception' the method would return true since
2076 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
2077 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2078 * @see ModelElementFacade#hasStereotype(String stereotypeName)
2079 */
2080 public boolean hasStereotype(String stereotypeName)
2081 {
2082 return this.getSuperEntity().hasStereotype(stereotypeName);
2083 }
2084
2085 /**
2086 * True if there are target dependencies from this element that are instances of BindingFacade.
2087 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2088 * @see ModelElementFacade#isBindingDependenciesPresent()
2089 */
2090 public boolean isBindingDependenciesPresent()
2091 {
2092 return this.getSuperEntity().isBindingDependenciesPresent();
2093 }
2094
2095 /**
2096 * Indicates if any constraints are present on this model element.
2097 * @see ModelElementFacade#isConstraintsPresent()
2098 */
2099 public boolean isConstraintsPresent()
2100 {
2101 return this.getSuperEntity().isConstraintsPresent();
2102 }
2103
2104 /**
2105 * Indicates if any documentation is present on this model element.
2106 * @see ModelElementFacade#isDocumentationPresent()
2107 */
2108 public boolean isDocumentationPresent()
2109 {
2110 return this.getSuperEntity().isDocumentationPresent();
2111 }
2112
2113 /**
2114 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2115 * @see ModelElementFacade#isReservedWord()
2116 */
2117 public boolean isReservedWord()
2118 {
2119 return this.getSuperEntity().isReservedWord();
2120 }
2121
2122 /**
2123 * True is there are template parameters on this model element. For UML2, applies to Class,
2124 * Operation, Property, and Parameter.
2125 * @see ModelElementFacade#isTemplateParametersPresent()
2126 */
2127 public boolean isTemplateParametersPresent()
2128 {
2129 return this.getSuperEntity().isTemplateParametersPresent();
2130 }
2131
2132 /**
2133 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2134 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2135 * Enumerations and Interfaces, optionally applies on other model elements.
2136 * @see ModelElementFacade#isValidIdentifierName()
2137 */
2138 public boolean isValidIdentifierName()
2139 {
2140 return this.getSuperEntity().isValidIdentifierName();
2141 }
2142
2143 /**
2144 * Searches for the constraint with the specified 'name' on this model element, and if found
2145 * translates it using the specified 'translation' from a translation library discovered by the
2146 * framework.
2147 * @see ModelElementFacade#translateConstraint(String name, String translation)
2148 */
2149 public String translateConstraint(String name, String translation)
2150 {
2151 return this.getSuperEntity().translateConstraint(name, translation);
2152 }
2153
2154 /**
2155 * Translates all constraints belonging to this model element with the given 'translation'.
2156 * @see ModelElementFacade#translateConstraints(String translation)
2157 */
2158 public String[] translateConstraints(String translation)
2159 {
2160 return this.getSuperEntity().translateConstraints(translation);
2161 }
2162
2163 /**
2164 * Translates the constraints of the specified 'kind' belonging to this model element.
2165 * @see ModelElementFacade#translateConstraints(String kind, String translation)
2166 */
2167 public String[] translateConstraints(String kind, String translation)
2168 {
2169 return this.getSuperEntity().translateConstraints(kind, translation);
2170 }
2171
2172 /**
2173 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
2174 */
2175 @Override
2176 public void initialize()
2177 {
2178 this.getSuperEntity().initialize();
2179 }
2180
2181 /**
2182 * @return Object getSuperEntity().getValidationOwner()
2183 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
2184 */
2185 @Override
2186 public Object getValidationOwner()
2187 {
2188 Object owner = this.getSuperEntity().getValidationOwner();
2189 return owner;
2190 }
2191
2192 /**
2193 * @return String getSuperEntity().getValidationName()
2194 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
2195 */
2196 @Override
2197 public String getValidationName()
2198 {
2199 String name = this.getSuperEntity().getValidationName();
2200 return name;
2201 }
2202
2203 /**
2204 * @param validationMessages Collection<ModelValidationMessage>
2205 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
2206 */
2207 @Override
2208 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
2209 {
2210 this.getSuperEntity().validateInvariants(validationMessages);
2211 }
2212
2213 /**
2214 * The property that stores the name of the metafacade.
2215 */
2216 private static final String NAME_PROPERTY = "name";
2217 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
2218
2219 /**
2220 * @see Object#toString()
2221 */
2222 @Override
2223 public String toString()
2224 {
2225 final StringBuilder toString = new StringBuilder(this.getClass().getName());
2226 toString.append("[");
2227 try
2228 {
2229 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
2230 }
2231 catch (final Throwable tryAgain)
2232 {
2233 try
2234 {
2235 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
2236 }
2237 catch (final Throwable ignore)
2238 {
2239 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
2240 }
2241 }
2242 toString.append("]");
2243 return toString.toString();
2244 }
2245 }