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