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