1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.ejb3.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.Destination;
19 import org.andromda.metafacades.uml.GeneralizableElementFacade;
20 import org.andromda.metafacades.uml.GeneralizationFacade;
21 import org.andromda.metafacades.uml.ModelElementFacade;
22 import org.andromda.metafacades.uml.ModelFacade;
23 import org.andromda.metafacades.uml.OperationFacade;
24 import org.andromda.metafacades.uml.PackageFacade;
25 import org.andromda.metafacades.uml.Role;
26 import org.andromda.metafacades.uml.Service;
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 * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacade
35 * MetafacadeLogic for EJB3InterceptorFacade
36 *
37 * @see EJB3InterceptorFacade
38 */
39 public abstract class EJB3InterceptorFacadeLogic
40 extends MetafacadeBase
41 implements EJB3InterceptorFacade
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 EJB3InterceptorFacadeLogic(Object metaObjectIn, String context)
54 {
55 super(metaObjectIn, getContext(context));
56 this.superService =
57 (Service)
58 MetafacadeFactory.getInstance().createFacadeImpl(
59 "org.andromda.metafacades.uml.Service",
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 EJB3InterceptorFacade 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.ejb3.metafacades.EJB3InterceptorFacade";
75 }
76 return context;
77 }
78
79 private Service superService;
80 private boolean superServiceInitialized = false;
81
82 /**
83 * Gets the Service parent instance.
84 * @return this.superService Service
85 */
86 private Service getSuperService()
87 {
88 if (!this.superServiceInitialized)
89 {
90 ((MetafacadeBase)this.superService).setMetafacadeContext(this.getMetafacadeContext());
91 this.superServiceInitialized = true;
92 }
93 return this.superService;
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.superServiceInitialized)
108 {
109 ((MetafacadeBase)this.superService).resetMetafacadeContext(context);
110 }
111 }
112 }
113
114 /**
115 * @return boolean true always
116 * @see EJB3InterceptorFacade
117 */
118 public boolean isEJB3InterceptorFacadeMetaType()
119 {
120 return true;
121 }
122
123 // --------------- attributes ---------------------
124
125 /**
126 * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacade#getInterceptorName()
127 * @return String
128 */
129 protected abstract String handleGetInterceptorName();
130
131 private String __interceptorName1a;
132 private boolean __interceptorName1aSet = false;
133
134 /**
135 * Returns the interceptor class name.
136 * @return (String)handleGetInterceptorName()
137 */
138 public final String getInterceptorName()
139 {
140 String interceptorName1a = this.__interceptorName1a;
141 if (!this.__interceptorName1aSet)
142 {
143 // interceptorName has no pre constraints
144 interceptorName1a = handleGetInterceptorName();
145 // interceptorName has no post constraints
146 this.__interceptorName1a = interceptorName1a;
147 if (isMetafacadePropertyCachingEnabled())
148 {
149 this.__interceptorName1aSet = true;
150 }
151 }
152 return interceptorName1a;
153 }
154
155 /**
156 * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacade#getFullyQualifiedInterceptorName()
157 * @return String
158 */
159 protected abstract String handleGetFullyQualifiedInterceptorName();
160
161 private String __fullyQualifiedInterceptorName2a;
162 private boolean __fullyQualifiedInterceptorName2aSet = false;
163
164 /**
165 * Returns the fully qualified interceptor class name.
166 * @return (String)handleGetFullyQualifiedInterceptorName()
167 */
168 public final String getFullyQualifiedInterceptorName()
169 {
170 String fullyQualifiedInterceptorName2a = this.__fullyQualifiedInterceptorName2a;
171 if (!this.__fullyQualifiedInterceptorName2aSet)
172 {
173 // fullyQualifiedInterceptorName has no pre constraints
174 fullyQualifiedInterceptorName2a = handleGetFullyQualifiedInterceptorName();
175 // fullyQualifiedInterceptorName has no post constraints
176 this.__fullyQualifiedInterceptorName2a = fullyQualifiedInterceptorName2a;
177 if (isMetafacadePropertyCachingEnabled())
178 {
179 this.__fullyQualifiedInterceptorName2aSet = true;
180 }
181 }
182 return fullyQualifiedInterceptorName2a;
183 }
184
185 /**
186 * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacade#getInterceptorReferences()
187 * @return Collection
188 */
189 protected abstract Collection handleGetInterceptorReferences();
190
191 private Collection __interceptorReferences3a;
192 private boolean __interceptorReferences3aSet = false;
193
194 /**
195 * Returns the Collection of target elements from this interceptor class where the target class
196 * has a stereotype of Interceptor.
197 * @return (Collection)handleGetInterceptorReferences()
198 */
199 public final Collection getInterceptorReferences()
200 {
201 Collection interceptorReferences3a = this.__interceptorReferences3a;
202 if (!this.__interceptorReferences3aSet)
203 {
204 // interceptorReferences has no pre constraints
205 interceptorReferences3a = handleGetInterceptorReferences();
206 // interceptorReferences has no post constraints
207 this.__interceptorReferences3a = interceptorReferences3a;
208 if (isMetafacadePropertyCachingEnabled())
209 {
210 this.__interceptorReferences3aSet = true;
211 }
212 }
213 return interceptorReferences3a;
214 }
215
216 /**
217 * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacade#isDefaultInterceptor()
218 * @return boolean
219 */
220 protected abstract boolean handleIsDefaultInterceptor();
221
222 private boolean __defaultInterceptor4a;
223 private boolean __defaultInterceptor4aSet = false;
224
225 /**
226 * Returns true if this interceptor is a default interceptor.
227 * @return (boolean)handleIsDefaultInterceptor()
228 */
229 public final boolean isDefaultInterceptor()
230 {
231 boolean defaultInterceptor4a = this.__defaultInterceptor4a;
232 if (!this.__defaultInterceptor4aSet)
233 {
234 // defaultInterceptor has no pre constraints
235 defaultInterceptor4a = handleIsDefaultInterceptor();
236 // defaultInterceptor has no post constraints
237 this.__defaultInterceptor4a = defaultInterceptor4a;
238 if (isMetafacadePropertyCachingEnabled())
239 {
240 this.__defaultInterceptor4aSet = true;
241 }
242 }
243 return defaultInterceptor4a;
244 }
245
246 /**
247 * @return true
248 * @see Service
249 */
250 public boolean isServiceMetaType()
251 {
252 return true;
253 }
254
255 /**
256 * @return true
257 * @see ClassifierFacade
258 */
259 public boolean isClassifierFacadeMetaType()
260 {
261 return true;
262 }
263
264 /**
265 * @return true
266 * @see GeneralizableElementFacade
267 */
268 public boolean isGeneralizableElementFacadeMetaType()
269 {
270 return true;
271 }
272
273 /**
274 * @return true
275 * @see ModelElementFacade
276 */
277 public boolean isModelElementFacadeMetaType()
278 {
279 return true;
280 }
281
282 // ----------- delegates to Service ------------
283 /**
284 * Return the attribute which name matches the parameter
285 * @see ClassifierFacade#findAttribute(String name)
286 */
287 public AttributeFacade findAttribute(String name)
288 {
289 return this.getSuperService().findAttribute(name);
290 }
291
292 /**
293 * Those abstraction dependencies for which this classifier is the client.
294 * @see ClassifierFacade#getAbstractions()
295 */
296 public Collection<ClassifierFacade> getAbstractions()
297 {
298 return this.getSuperService().getAbstractions();
299 }
300
301 /**
302 * Lists all classes associated to this one and any ancestor classes (through generalization).
303 * There will be no duplicates. The order of the elements is predictable.
304 * @see ClassifierFacade#getAllAssociatedClasses()
305 */
306 public Collection<ClassifierFacade> getAllAssociatedClasses()
307 {
308 return this.getSuperService().getAllAssociatedClasses();
309 }
310
311 /**
312 * A collection containing all 'properties' of the classifier and its ancestors. Properties are
313 * any attributes and navigable connecting association ends.
314 * @see ClassifierFacade#getAllProperties()
315 */
316 public Collection<ModelElementFacade> getAllProperties()
317 {
318 return this.getSuperService().getAllProperties();
319 }
320
321 /**
322 * A collection containing all required and/or read-only 'properties' of the classifier and its
323 * ancestors. Properties are any attributes and navigable connecting association ends.
324 * @see ClassifierFacade#getAllRequiredConstructorParameters()
325 */
326 public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
327 {
328 return this.getSuperService().getAllRequiredConstructorParameters();
329 }
330
331 /**
332 * Gets the array type for this classifier. If this classifier already represents an array, it
333 * just returns itself.
334 * @see ClassifierFacade#getArray()
335 */
336 public ClassifierFacade getArray()
337 {
338 return this.getSuperService().getArray();
339 }
340
341 /**
342 * The name of the classifier as an array.
343 * @see ClassifierFacade#getArrayName()
344 */
345 public String getArrayName()
346 {
347 return this.getSuperService().getArrayName();
348 }
349
350 /**
351 * Lists the classes associated to this one, there is no repitition of classes. The order of the
352 * elements is predictable.
353 * @see ClassifierFacade#getAssociatedClasses()
354 */
355 public Collection<ClassifierFacade> getAssociatedClasses()
356 {
357 return this.getSuperService().getAssociatedClasses();
358 }
359
360 /**
361 * Gets the association ends belonging to a classifier.
362 * @see ClassifierFacade#getAssociationEnds()
363 */
364 public List<AssociationEndFacade> getAssociationEnds()
365 {
366 return this.getSuperService().getAssociationEnds();
367 }
368
369 /**
370 * Gets the attributes that belong to the classifier.
371 * @see ClassifierFacade#getAttributes()
372 */
373 public List<AttributeFacade> getAttributes()
374 {
375 return this.getSuperService().getAttributes();
376 }
377
378 /**
379 * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
380 * hierarchy and gets the attributes from the super classes as well.
381 * @see ClassifierFacade#getAttributes(boolean follow)
382 */
383 public List<AttributeFacade> getAttributes(boolean follow)
384 {
385 return this.getSuperService().getAttributes(follow);
386 }
387
388 /**
389 * The fully qualified name of the classifier as an array.
390 * @see ClassifierFacade#getFullyQualifiedArrayName()
391 */
392 public String getFullyQualifiedArrayName()
393 {
394 return this.getSuperService().getFullyQualifiedArrayName();
395 }
396
397 /**
398 * Returns all those operations that could be implemented at this classifier's level. This means
399 * the operations owned by this classifier as well as any realized interface's operations
400 * (recursively) in case this classifier itself is not already an interface, or generalized when
401 * this classifier is an interface.
402 * @see ClassifierFacade#getImplementationOperations()
403 */
404 public Collection<OperationFacade> getImplementationOperations()
405 {
406 return this.getSuperService().getImplementationOperations();
407 }
408
409 /**
410 * A comma separated list of the fully qualified names of all implemented interfaces.
411 * @see ClassifierFacade#getImplementedInterfaceList()
412 */
413 public String getImplementedInterfaceList()
414 {
415 return this.getSuperService().getImplementedInterfaceList();
416 }
417
418 /**
419 * Those attributes that are scoped to an instance of this class.
420 * @see ClassifierFacade#getInstanceAttributes()
421 */
422 public Collection<AttributeFacade> getInstanceAttributes()
423 {
424 return this.getSuperService().getInstanceAttributes();
425 }
426
427 /**
428 * Those operations that are scoped to an instance of this class.
429 * @see ClassifierFacade#getInstanceOperations()
430 */
431 public List<OperationFacade> getInstanceOperations()
432 {
433 return this.getSuperService().getInstanceOperations();
434 }
435
436 /**
437 * Those interfaces that are abstractions of this classifier, this basically means this
438 * classifier realizes them.
439 * @see ClassifierFacade#getInterfaceAbstractions()
440 */
441 public Collection<ClassifierFacade> getInterfaceAbstractions()
442 {
443 return this.getSuperService().getInterfaceAbstractions();
444 }
445
446 /**
447 * A String representing a new Constructor declaration for this classifier type to be used in a
448 * Java environment.
449 * @see ClassifierFacade#getJavaNewString()
450 */
451 public String getJavaNewString()
452 {
453 return this.getSuperService().getJavaNewString();
454 }
455
456 /**
457 * A String representing the null-value for this classifier type to be used in a Java
458 * environment.
459 * @see ClassifierFacade#getJavaNullString()
460 */
461 public String getJavaNullString()
462 {
463 return this.getSuperService().getJavaNullString();
464 }
465
466 /**
467 * The other ends of this classifier's association ends which are navigable.
468 * @see ClassifierFacade#getNavigableConnectingEnds()
469 */
470 public Collection<AssociationEndFacade> getNavigableConnectingEnds()
471 {
472 return this.getSuperService().getNavigableConnectingEnds();
473 }
474
475 /**
476 * Get the other ends of this classifier's association ends which are navigable and if 'follow'
477 * is true goes up the inheritance hierarchy and gets the super association ends as well.
478 * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
479 */
480 public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
481 {
482 return this.getSuperService().getNavigableConnectingEnds(follow);
483 }
484
485 /**
486 * Assuming that the classifier is an array, this will return the non array type of the
487 * classifier from
488 * the model. If the classifier is NOT an array, it will just return itself.
489 * @see ClassifierFacade#getNonArray()
490 */
491 public ClassifierFacade getNonArray()
492 {
493 return this.getSuperService().getNonArray();
494 }
495
496 /**
497 * The attributes from this classifier in the form of an operation call (this example would be
498 * in Java): '(String attributeOne, String attributeTwo). If there were no attributes on the
499 * classifier, the result would be an empty '()'.
500 * @see ClassifierFacade#getOperationCallFromAttributes()
501 */
502 public String getOperationCallFromAttributes()
503 {
504 return this.getSuperService().getOperationCallFromAttributes();
505 }
506
507 /**
508 * The operations owned by this classifier.
509 * @see ClassifierFacade#getOperations()
510 */
511 public List<OperationFacade> getOperations()
512 {
513 return this.getSuperService().getOperations();
514 }
515
516 /**
517 * A collection containing all 'properties' of the classifier. Properties are any attributes
518 * and navigable connecting association ends.
519 * @see ClassifierFacade#getProperties()
520 */
521 public List<ModelElementFacade> getProperties()
522 {
523 return this.getSuperService().getProperties();
524 }
525
526 /**
527 * Gets all properties (attributes and navigable association ends) for the classifier and if
528 * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
529 * classes as well.
530 * @see ClassifierFacade#getProperties(boolean follow)
531 */
532 public List getProperties(boolean follow)
533 {
534 return this.getSuperService().getProperties(follow);
535 }
536
537 /**
538 * A collection containing all required and/or read-only 'properties' of the classifier.
539 * Properties are any attributes and navigable connecting association ends.
540 * @see ClassifierFacade#getRequiredConstructorParameters()
541 */
542 public Collection<ModelElementFacade> getRequiredConstructorParameters()
543 {
544 return this.getSuperService().getRequiredConstructorParameters();
545 }
546
547 /**
548 * Returns the serial version UID of the underlying model element.
549 * @see ClassifierFacade#getSerialVersionUID()
550 */
551 public long getSerialVersionUID()
552 {
553 return this.getSuperService().getSerialVersionUID();
554 }
555
556 /**
557 * Those attributes that are scoped to the definition of this class.
558 * @see ClassifierFacade#getStaticAttributes()
559 */
560 public Collection<AttributeFacade> getStaticAttributes()
561 {
562 return this.getSuperService().getStaticAttributes();
563 }
564
565 /**
566 * Those operations that are scoped to the definition of this class.
567 * @see ClassifierFacade#getStaticOperations()
568 */
569 public List<OperationFacade> getStaticOperations()
570 {
571 return this.getSuperService().getStaticOperations();
572 }
573
574 /**
575 * This class' superclass, returns the generalization if it is a ClassifierFacade, null
576 * otherwise.
577 * @see ClassifierFacade#getSuperClass()
578 */
579 public ClassifierFacade getSuperClass()
580 {
581 return this.getSuperService().getSuperClass();
582 }
583
584 /**
585 * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
586 * maps to 'Long'). If the classifier doesn't have a wrapper defined for it, this method will
587 * return a null. Note that wrapper mappings must be defined for the namespace by defining the
588 * 'wrapperMappingsUri', this property must point to the location of the mappings file which
589 * maps the primitives to wrapper types.
590 * @see ClassifierFacade#getWrapperName()
591 */
592 public String getWrapperName()
593 {
594 return this.getSuperService().getWrapperName();
595 }
596
597 /**
598 * Indicates if this classifier is 'abstract'.
599 * @see ClassifierFacade#isAbstract()
600 */
601 public boolean isAbstract()
602 {
603 return this.getSuperService().isAbstract();
604 }
605
606 /**
607 * True if this classifier represents an array type. False otherwise.
608 * @see ClassifierFacade#isArrayType()
609 */
610 public boolean isArrayType()
611 {
612 return this.getSuperService().isArrayType();
613 }
614
615 /**
616 * True if the ClassifierFacade is an AssociationClass.
617 * @see ClassifierFacade#isAssociationClass()
618 */
619 public boolean isAssociationClass()
620 {
621 return this.getSuperService().isAssociationClass();
622 }
623
624 /**
625 * Returns true if this type represents a Blob type.
626 * @see ClassifierFacade#isBlobType()
627 */
628 public boolean isBlobType()
629 {
630 return this.getSuperService().isBlobType();
631 }
632
633 /**
634 * Indicates if this type represents a boolean type or not.
635 * @see ClassifierFacade#isBooleanType()
636 */
637 public boolean isBooleanType()
638 {
639 return this.getSuperService().isBooleanType();
640 }
641
642 /**
643 * Indicates if this type represents a char, Character, or java.lang.Character type or not.
644 * @see ClassifierFacade#isCharacterType()
645 */
646 public boolean isCharacterType()
647 {
648 return this.getSuperService().isCharacterType();
649 }
650
651 /**
652 * Returns true if this type represents a Clob type.
653 * @see ClassifierFacade#isClobType()
654 */
655 public boolean isClobType()
656 {
657 return this.getSuperService().isClobType();
658 }
659
660 /**
661 * True if this classifier represents a collection type. False otherwise.
662 * @see ClassifierFacade#isCollectionType()
663 */
664 public boolean isCollectionType()
665 {
666 return this.getSuperService().isCollectionType();
667 }
668
669 /**
670 * True/false depending on whether or not this classifier represents a datatype. A data type is
671 * a type whose instances are identified only by their value. A data type may contain attributes
672 * to support the modeling of structured data types.
673 * @see ClassifierFacade#isDataType()
674 */
675 public boolean isDataType()
676 {
677 return this.getSuperService().isDataType();
678 }
679
680 /**
681 * True when this classifier is a date type.
682 * @see ClassifierFacade#isDateType()
683 */
684 public boolean isDateType()
685 {
686 return this.getSuperService().isDateType();
687 }
688
689 /**
690 * Indicates if this type represents a Double type or not.
691 * @see ClassifierFacade#isDoubleType()
692 */
693 public boolean isDoubleType()
694 {
695 return this.getSuperService().isDoubleType();
696 }
697
698 /**
699 * Indicates whether or not this classifier represents an "EmbeddedValue'.
700 * @see ClassifierFacade#isEmbeddedValue()
701 */
702 public boolean isEmbeddedValue()
703 {
704 return this.getSuperService().isEmbeddedValue();
705 }
706
707 /**
708 * True if this classifier is in fact marked as an enumeration.
709 * @see ClassifierFacade#isEnumeration()
710 */
711 public boolean isEnumeration()
712 {
713 return this.getSuperService().isEnumeration();
714 }
715
716 /**
717 * Returns true if this type represents a 'file' type.
718 * @see ClassifierFacade#isFileType()
719 */
720 public boolean isFileType()
721 {
722 return this.getSuperService().isFileType();
723 }
724
725 /**
726 * Indicates if this type represents a Float type or not.
727 * @see ClassifierFacade#isFloatType()
728 */
729 public boolean isFloatType()
730 {
731 return this.getSuperService().isFloatType();
732 }
733
734 /**
735 * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
736 * @see ClassifierFacade#isIntegerType()
737 */
738 public boolean isIntegerType()
739 {
740 return this.getSuperService().isIntegerType();
741 }
742
743 /**
744 * True/false depending on whether or not this Classifier represents an interface.
745 * @see ClassifierFacade#isInterface()
746 */
747 public boolean isInterface()
748 {
749 return this.getSuperService().isInterface();
750 }
751
752 /**
753 * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
754 * @see ClassifierFacade#isLeaf()
755 */
756 public boolean isLeaf()
757 {
758 return this.getSuperService().isLeaf();
759 }
760
761 /**
762 * True if this classifier represents a list type. False otherwise.
763 * @see ClassifierFacade#isListType()
764 */
765 public boolean isListType()
766 {
767 return this.getSuperService().isListType();
768 }
769
770 /**
771 * Indicates if this type represents a Long type or not.
772 * @see ClassifierFacade#isLongType()
773 */
774 public boolean isLongType()
775 {
776 return this.getSuperService().isLongType();
777 }
778
779 /**
780 * Indicates whether or not this classifier represents a Map type.
781 * @see ClassifierFacade#isMapType()
782 */
783 public boolean isMapType()
784 {
785 return this.getSuperService().isMapType();
786 }
787
788 /**
789 * Indicates whether or not this classifier represents a primitive type.
790 * @see ClassifierFacade#isPrimitive()
791 */
792 public boolean isPrimitive()
793 {
794 return this.getSuperService().isPrimitive();
795 }
796
797 /**
798 * True if this classifier represents a set type. False otherwise.
799 * @see ClassifierFacade#isSetType()
800 */
801 public boolean isSetType()
802 {
803 return this.getSuperService().isSetType();
804 }
805
806 /**
807 * Indicates whether or not this classifier represents a string type.
808 * @see ClassifierFacade#isStringType()
809 */
810 public boolean isStringType()
811 {
812 return this.getSuperService().isStringType();
813 }
814
815 /**
816 * Indicates whether or not this classifier represents a time type.
817 * @see ClassifierFacade#isTimeType()
818 */
819 public boolean isTimeType()
820 {
821 return this.getSuperService().isTimeType();
822 }
823
824 /**
825 * Returns true if this type is a wrapped primitive type.
826 * @see ClassifierFacade#isWrappedPrimitive()
827 */
828 public boolean isWrappedPrimitive()
829 {
830 return this.getSuperService().isWrappedPrimitive();
831 }
832
833 /**
834 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
835 * to true.
836 * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
837 */
838 public Object findTaggedValue(String tagName, boolean follow)
839 {
840 return this.getSuperService().findTaggedValue(tagName, follow);
841 }
842
843 /**
844 * All generalizations for this generalizable element, goes up the inheritance tree.
845 * @see GeneralizableElementFacade#getAllGeneralizations()
846 */
847 public Collection<GeneralizableElementFacade> getAllGeneralizations()
848 {
849 return this.getSuperService().getAllGeneralizations();
850 }
851
852 /**
853 * All specializations (travels down the inheritance hierarchy).
854 * @see GeneralizableElementFacade#getAllSpecializations()
855 */
856 public Collection<GeneralizableElementFacade> getAllSpecializations()
857 {
858 return this.getSuperService().getAllSpecializations();
859 }
860
861 /**
862 * Gets the direct generalization for this generalizable element.
863 * @see GeneralizableElementFacade#getGeneralization()
864 */
865 public GeneralizableElementFacade getGeneralization()
866 {
867 return this.getSuperService().getGeneralization();
868 }
869
870 /**
871 * Gets the actual links that this generalization element is part of (it plays either the
872 * specialization or generalization).
873 * @see GeneralizableElementFacade#getGeneralizationLinks()
874 */
875 public Collection<GeneralizationFacade> getGeneralizationLinks()
876 {
877 return this.getSuperService().getGeneralizationLinks();
878 }
879
880 /**
881 * A comma separated list of the fully qualified names of all generalizations.
882 * @see GeneralizableElementFacade#getGeneralizationList()
883 */
884 public String getGeneralizationList()
885 {
886 return this.getSuperService().getGeneralizationList();
887 }
888
889 /**
890 * The element found when you recursively follow the generalization path up to the root. If an
891 * element has no generalization itself will be considered the root.
892 * @see GeneralizableElementFacade#getGeneralizationRoot()
893 */
894 public GeneralizableElementFacade getGeneralizationRoot()
895 {
896 return this.getSuperService().getGeneralizationRoot();
897 }
898
899 /**
900 * Return all generalizations (ancestors) from this generalizable element.
901 * @see GeneralizableElementFacade#getGeneralizations()
902 */
903 public Collection<GeneralizableElementFacade> getGeneralizations()
904 {
905 return this.getSuperService().getGeneralizations();
906 }
907
908 /**
909 * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
910 * @see GeneralizableElementFacade#getSpecializations()
911 */
912 public Collection<GeneralizableElementFacade> getSpecializations()
913 {
914 return this.getSuperService().getSpecializations();
915 }
916
917 /**
918 * Copies all tagged values from the given ModelElementFacade to this model element facade.
919 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
920 */
921 public void copyTaggedValues(ModelElementFacade element)
922 {
923 this.getSuperService().copyTaggedValues(element);
924 }
925
926 /**
927 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
928 * one found will be returned.
929 * @see ModelElementFacade#findTaggedValue(String tagName)
930 */
931 public Object findTaggedValue(String tagName)
932 {
933 return this.getSuperService().findTaggedValue(tagName);
934 }
935
936 /**
937 * Returns all the values for the tagged value with the specified name. The returned collection
938 * will contains only String instances, or will be empty. Never null.
939 * @see ModelElementFacade#findTaggedValues(String tagName)
940 */
941 public Collection<Object> findTaggedValues(String tagName)
942 {
943 return this.getSuperService().findTaggedValues(tagName);
944 }
945
946 /**
947 * Returns the fully qualified name of the model element. The fully qualified name includes
948 * complete package qualified name of the underlying model element. The templates parameter will
949 * be replaced by the correct one given the binding relation of the parameter to this element.
950 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
951 */
952 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
953 {
954 return this.getSuperService().getBindedFullyQualifiedName(bindedElement);
955 }
956
957 /**
958 * Gets all constraints belonging to the model element.
959 * @see ModelElementFacade#getConstraints()
960 */
961 public Collection<ConstraintFacade> getConstraints()
962 {
963 return this.getSuperService().getConstraints();
964 }
965
966 /**
967 * Returns the constraints of the argument kind that have been placed onto this model. Typical
968 * kinds are "inv", "pre" and "post". Other kinds are possible.
969 * @see ModelElementFacade#getConstraints(String kind)
970 */
971 public Collection<ConstraintFacade> getConstraints(String kind)
972 {
973 return this.getSuperService().getConstraints(kind);
974 }
975
976 /**
977 * Gets the documentation for the model element, The indent argument is prefixed to each line.
978 * By default this method wraps lines after 64 characters.
979 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
980 * @see ModelElementFacade#getDocumentation(String indent)
981 */
982 public String getDocumentation(String indent)
983 {
984 return this.getSuperService().getDocumentation(indent);
985 }
986
987 /**
988 * This method returns the documentation for this model element, with the lines wrapped after
989 * the specified number of characters, values of less than 1 will indicate no line wrapping is
990 * required. By default paragraphs are returned as HTML.
991 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
992 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
993 */
994 public String getDocumentation(String indent, int lineLength)
995 {
996 return this.getSuperService().getDocumentation(indent, lineLength);
997 }
998
999 /**
1000 * This method returns the documentation for this model element, with the lines wrapped after
1001 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1002 * required. HTML style determines if HTML Escaping is applied.
1003 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
1004 */
1005 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
1006 {
1007 return this.getSuperService().getDocumentation(indent, lineLength, htmlStyle);
1008 }
1009
1010 /**
1011 * The fully qualified name of this model element.
1012 * @see ModelElementFacade#getFullyQualifiedName()
1013 */
1014 public String getFullyQualifiedName()
1015 {
1016 return this.getSuperService().getFullyQualifiedName();
1017 }
1018
1019 /**
1020 * Returns the fully qualified name of the model element. The fully qualified name includes
1021 * complete package qualified name of the underlying model element. If modelName is true, then
1022 * the original name of the model element (the name contained within the model) will be the name
1023 * returned, otherwise a name from a language mapping will be returned.
1024 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
1025 */
1026 public String getFullyQualifiedName(boolean modelName)
1027 {
1028 return this.getSuperService().getFullyQualifiedName(modelName);
1029 }
1030
1031 /**
1032 * Returns the fully qualified name as a path, the returned value always starts with out a slash
1033 * '/'.
1034 * @see ModelElementFacade#getFullyQualifiedNamePath()
1035 */
1036 public String getFullyQualifiedNamePath()
1037 {
1038 return this.getSuperService().getFullyQualifiedNamePath();
1039 }
1040
1041 /**
1042 * Gets the unique identifier of the underlying model element.
1043 * @see ModelElementFacade#getId()
1044 */
1045 public String getId()
1046 {
1047 return this.getSuperService().getId();
1048 }
1049
1050 /**
1051 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
1052 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
1053 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
1054 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
1055 * JDK5 compiler level.
1056 * @see ModelElementFacade#getKeywords()
1057 */
1058 public Collection<String> getKeywords()
1059 {
1060 return this.getSuperService().getKeywords();
1061 }
1062
1063 /**
1064 * UML2: Retrieves a localized label for this named element.
1065 * @see ModelElementFacade#getLabel()
1066 */
1067 public String getLabel()
1068 {
1069 return this.getSuperService().getLabel();
1070 }
1071
1072 /**
1073 * The language mappings that have been set for this model element.
1074 * @see ModelElementFacade#getLanguageMappings()
1075 */
1076 public TypeMappings getLanguageMappings()
1077 {
1078 return this.getSuperService().getLanguageMappings();
1079 }
1080
1081 /**
1082 * Return the model containing this model element (multiple models may be loaded and processed
1083 * at the same time).
1084 * @see ModelElementFacade#getModel()
1085 */
1086 public ModelFacade getModel()
1087 {
1088 return this.getSuperService().getModel();
1089 }
1090
1091 /**
1092 * The name of the model element.
1093 * @see ModelElementFacade#getName()
1094 */
1095 public String getName()
1096 {
1097 return this.getSuperService().getName();
1098 }
1099
1100 /**
1101 * Gets the package to which this model element belongs.
1102 * @see ModelElementFacade#getPackage()
1103 */
1104 public ModelElementFacade getPackage()
1105 {
1106 return this.getSuperService().getPackage();
1107 }
1108
1109 /**
1110 * The name of this model element's package.
1111 * @see ModelElementFacade#getPackageName()
1112 */
1113 public String getPackageName()
1114 {
1115 return this.getSuperService().getPackageName();
1116 }
1117
1118 /**
1119 * Gets the package name (optionally providing the ability to retrieve the model name and not
1120 * the mapped name).
1121 * @see ModelElementFacade#getPackageName(boolean modelName)
1122 */
1123 public String getPackageName(boolean modelName)
1124 {
1125 return this.getSuperService().getPackageName(modelName);
1126 }
1127
1128 /**
1129 * Returns the package as a path, the returned value always starts with out a slash '/'.
1130 * @see ModelElementFacade#getPackagePath()
1131 */
1132 public String getPackagePath()
1133 {
1134 return this.getSuperService().getPackagePath();
1135 }
1136
1137 /**
1138 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
1139 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
1140 * the names of the containing namespaces starting at the root of the hierarchy and ending with
1141 * the name of the NamedElement itself.
1142 * @see ModelElementFacade#getQualifiedName()
1143 */
1144 public String getQualifiedName()
1145 {
1146 return this.getSuperService().getQualifiedName();
1147 }
1148
1149 /**
1150 * Gets the root package for the model element.
1151 * @see ModelElementFacade#getRootPackage()
1152 */
1153 public PackageFacade getRootPackage()
1154 {
1155 return this.getSuperService().getRootPackage();
1156 }
1157
1158 /**
1159 * Gets the dependencies for which this model element is the source.
1160 * @see ModelElementFacade#getSourceDependencies()
1161 */
1162 public Collection<DependencyFacade> getSourceDependencies()
1163 {
1164 return this.getSuperService().getSourceDependencies();
1165 }
1166
1167 /**
1168 * If this model element is the context of an activity graph, this represents that activity
1169 * graph.
1170 * @see ModelElementFacade#getStateMachineContext()
1171 */
1172 public StateMachineFacade getStateMachineContext()
1173 {
1174 return this.getSuperService().getStateMachineContext();
1175 }
1176
1177 /**
1178 * The collection of ALL stereotype names for this model element.
1179 * @see ModelElementFacade#getStereotypeNames()
1180 */
1181 public Collection<String> getStereotypeNames()
1182 {
1183 return this.getSuperService().getStereotypeNames();
1184 }
1185
1186 /**
1187 * Gets all stereotypes for this model element.
1188 * @see ModelElementFacade#getStereotypes()
1189 */
1190 public Collection<StereotypeFacade> getStereotypes()
1191 {
1192 return this.getSuperService().getStereotypes();
1193 }
1194
1195 /**
1196 * Return the TaggedValues associated with this model element, under all stereotypes.
1197 * @see ModelElementFacade#getTaggedValues()
1198 */
1199 public Collection<TaggedValueFacade> getTaggedValues()
1200 {
1201 return this.getSuperService().getTaggedValues();
1202 }
1203
1204 /**
1205 * Gets the dependencies for which this model element is the target.
1206 * @see ModelElementFacade#getTargetDependencies()
1207 */
1208 public Collection<DependencyFacade> getTargetDependencies()
1209 {
1210 return this.getSuperService().getTargetDependencies();
1211 }
1212
1213 /**
1214 * Get the template parameter for this model element having the parameterName
1215 * @see ModelElementFacade#getTemplateParameter(String parameterName)
1216 */
1217 public Object getTemplateParameter(String parameterName)
1218 {
1219 return this.getSuperService().getTemplateParameter(parameterName);
1220 }
1221
1222 /**
1223 * Get the template parameters for this model element
1224 * @see ModelElementFacade#getTemplateParameters()
1225 */
1226 public Collection<TemplateParameterFacade> getTemplateParameters()
1227 {
1228 return this.getSuperService().getTemplateParameters();
1229 }
1230
1231 /**
1232 * The visibility (i.e. public, private, protected or package) of the model element, will
1233 * attempt a lookup for these values in the language mappings (if any).
1234 * @see ModelElementFacade#getVisibility()
1235 */
1236 public String getVisibility()
1237 {
1238 return this.getSuperService().getVisibility();
1239 }
1240
1241 /**
1242 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
1243 * is taken into account when searching for the stereotype), false otherwise.
1244 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
1245 */
1246 public boolean hasExactStereotype(String stereotypeName)
1247 {
1248 return this.getSuperService().hasExactStereotype(stereotypeName);
1249 }
1250
1251 /**
1252 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
1253 * pipe, semicolon, or << >>
1254 * @see ModelElementFacade#hasKeyword(String keywordName)
1255 */
1256 public boolean hasKeyword(String keywordName)
1257 {
1258 return this.getSuperService().hasKeyword(keywordName);
1259 }
1260
1261 /**
1262 * Returns true if the model element has the specified stereotype. If the stereotype itself
1263 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
1264 * one of the stereotype's ancestors has a matching name this method will return true, false
1265 * otherwise.
1266 * For example, if we have a certain stereotype called <<exception>> and a model element has a
1267 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
1268 * method with 'stereotypeName' defined as 'exception' the method would return true since
1269 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
1270 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
1271 * @see ModelElementFacade#hasStereotype(String stereotypeName)
1272 */
1273 public boolean hasStereotype(String stereotypeName)
1274 {
1275 return this.getSuperService().hasStereotype(stereotypeName);
1276 }
1277
1278 /**
1279 * True if there are target dependencies from this element that are instances of BindingFacade.
1280 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
1281 * @see ModelElementFacade#isBindingDependenciesPresent()
1282 */
1283 public boolean isBindingDependenciesPresent()
1284 {
1285 return this.getSuperService().isBindingDependenciesPresent();
1286 }
1287
1288 /**
1289 * Indicates if any constraints are present on this model element.
1290 * @see ModelElementFacade#isConstraintsPresent()
1291 */
1292 public boolean isConstraintsPresent()
1293 {
1294 return this.getSuperService().isConstraintsPresent();
1295 }
1296
1297 /**
1298 * Indicates if any documentation is present on this model element.
1299 * @see ModelElementFacade#isDocumentationPresent()
1300 */
1301 public boolean isDocumentationPresent()
1302 {
1303 return this.getSuperService().isDocumentationPresent();
1304 }
1305
1306 /**
1307 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
1308 * @see ModelElementFacade#isReservedWord()
1309 */
1310 public boolean isReservedWord()
1311 {
1312 return this.getSuperService().isReservedWord();
1313 }
1314
1315 /**
1316 * True is there are template parameters on this model element. For UML2, applies to Class,
1317 * Operation, Property, and Parameter.
1318 * @see ModelElementFacade#isTemplateParametersPresent()
1319 */
1320 public boolean isTemplateParametersPresent()
1321 {
1322 return this.getSuperService().isTemplateParametersPresent();
1323 }
1324
1325 /**
1326 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
1327 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
1328 * Enumerations and Interfaces, optionally applies on other model elements.
1329 * @see ModelElementFacade#isValidIdentifierName()
1330 */
1331 public boolean isValidIdentifierName()
1332 {
1333 return this.getSuperService().isValidIdentifierName();
1334 }
1335
1336 /**
1337 * Searches for the constraint with the specified 'name' on this model element, and if found
1338 * translates it using the specified 'translation' from a translation library discovered by the
1339 * framework.
1340 * @see ModelElementFacade#translateConstraint(String name, String translation)
1341 */
1342 public String translateConstraint(String name, String translation)
1343 {
1344 return this.getSuperService().translateConstraint(name, translation);
1345 }
1346
1347 /**
1348 * Translates all constraints belonging to this model element with the given 'translation'.
1349 * @see ModelElementFacade#translateConstraints(String translation)
1350 */
1351 public String[] translateConstraints(String translation)
1352 {
1353 return this.getSuperService().translateConstraints(translation);
1354 }
1355
1356 /**
1357 * Translates the constraints of the specified 'kind' belonging to this model element.
1358 * @see ModelElementFacade#translateConstraints(String kind, String translation)
1359 */
1360 public String[] translateConstraints(String kind, String translation)
1361 {
1362 return this.getSuperService().translateConstraints(kind, translation);
1363 }
1364
1365 /**
1366 * Returns a collection of all entities this service and its ancestors have a relation to.
1367 * @see Service#getAllEntityReferences()
1368 */
1369 public Collection<DependencyFacade> getAllEntityReferences()
1370 {
1371 return this.getSuperService().getAllEntityReferences();
1372 }
1373
1374 /**
1375 * All messaging destinations that belong to this service and all decendent services.
1376 * @see Service#getAllMessagingDestinations()
1377 */
1378 public Collection<Destination> getAllMessagingDestinations()
1379 {
1380 return this.getSuperService().getAllMessagingDestinations();
1381 }
1382
1383 /**
1384 * All roles associated with the service, this includes both roles that have access to the
1385 * entire service, and any roles that have access to a single operation.
1386 * @see Service#getAllRoles()
1387 */
1388 public Collection<Role> getAllRoles()
1389 {
1390 return this.getSuperService().getAllRoles();
1391 }
1392
1393 /**
1394 * Returns a collection of all services this service and its ancestors have a relation to.
1395 * @see Service#getAllServiceReferences()
1396 */
1397 public Collection<DependencyFacade> getAllServiceReferences()
1398 {
1399 return this.getSuperService().getAllServiceReferences();
1400 }
1401
1402 /**
1403 * References to all entities to which this service has a dependency.
1404 * @see Service#getEntityReferences()
1405 */
1406 public Collection<DependencyFacade> getEntityReferences()
1407 {
1408 return this.getSuperService().getEntityReferences();
1409 }
1410
1411 /**
1412 * All messaging destinations available to this service.
1413 * @see Service#getMessagingDestinations()
1414 */
1415 public Collection<Destination> getMessagingDestinations()
1416 {
1417 return this.getSuperService().getMessagingDestinations();
1418 }
1419
1420 /**
1421 * The roles of the service, these are the actor's that can access this service.
1422 * @see Service#getRoles()
1423 */
1424 public Collection<Role> getRoles()
1425 {
1426 return this.getSuperService().getRoles();
1427 }
1428
1429 /**
1430 * References to all services to which this service has a dependency.
1431 * @see Service#getServiceReferences()
1432 */
1433 public Collection<DependencyFacade> getServiceReferences()
1434 {
1435 return this.getSuperService().getServiceReferences();
1436 }
1437
1438 /**
1439 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
1440 */
1441 @Override
1442 public void initialize()
1443 {
1444 this.getSuperService().initialize();
1445 }
1446
1447 /**
1448 * @return Object getSuperService().getValidationOwner()
1449 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
1450 */
1451 @Override
1452 public Object getValidationOwner()
1453 {
1454 Object owner = this.getSuperService().getValidationOwner();
1455 return owner;
1456 }
1457
1458 /**
1459 * @return String getSuperService().getValidationName()
1460 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
1461 */
1462 @Override
1463 public String getValidationName()
1464 {
1465 String name = this.getSuperService().getValidationName();
1466 return name;
1467 }
1468
1469 /**
1470 * @param validationMessages Collection<ModelValidationMessage>
1471 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
1472 */
1473 @Override
1474 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
1475 {
1476 this.getSuperService().validateInvariants(validationMessages);
1477 }
1478
1479 /**
1480 * The property that stores the name of the metafacade.
1481 */
1482 private static final String NAME_PROPERTY = "name";
1483 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
1484
1485 /**
1486 * @see Object#toString()
1487 */
1488 @Override
1489 public String toString()
1490 {
1491 final StringBuilder toString = new StringBuilder(this.getClass().getName());
1492 toString.append("[");
1493 try
1494 {
1495 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
1496 }
1497 catch (final Throwable tryAgain)
1498 {
1499 try
1500 {
1501 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
1502 }
1503 catch (final Throwable ignore)
1504 {
1505 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
1506 }
1507 }
1508 toString.append("]");
1509 return toString.toString();
1510 }
1511 }