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