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