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