1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.ejb3.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.core.common.Introspector;
9 import org.andromda.core.metafacade.MetafacadeBase;
10 import org.andromda.core.metafacade.MetafacadeFactory;
11 import org.andromda.core.metafacade.ModelValidationMessage;
12 import org.andromda.metafacades.uml.ClassifierFacade;
13 import org.andromda.metafacades.uml.ConstraintFacade;
14 import org.andromda.metafacades.uml.DependencyFacade;
15 import org.andromda.metafacades.uml.EventFacade;
16 import org.andromda.metafacades.uml.ModelElementFacade;
17 import org.andromda.metafacades.uml.ModelFacade;
18 import org.andromda.metafacades.uml.OperationFacade;
19 import org.andromda.metafacades.uml.PackageFacade;
20 import org.andromda.metafacades.uml.ParameterFacade;
21 import org.andromda.metafacades.uml.StateMachineFacade;
22 import org.andromda.metafacades.uml.StereotypeFacade;
23 import org.andromda.metafacades.uml.TaggedValueFacade;
24 import org.andromda.metafacades.uml.TemplateParameterFacade;
25 import org.andromda.metafacades.uml.TypeMappings;
26
27 /**
28 * TODO: Model Documentation for
29 * org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationParameterFacade
30 * MetafacadeLogic for EJB3SessionOperationParameterFacade
31 *
32 * @see EJB3SessionOperationParameterFacade
33 */
34 public abstract class EJB3SessionOperationParameterFacadeLogic
35 extends MetafacadeBase
36 implements EJB3SessionOperationParameterFacade
37 {
38 /**
39 * The underlying UML object
40 * @see Object
41 */
42 protected Object metaObject;
43
44 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
45 * @param metaObjectIn
46 * @param context
47 */
48 protected EJB3SessionOperationParameterFacadeLogic(Object metaObjectIn, String context)
49 {
50 super(metaObjectIn, getContext(context));
51 this.superParameterFacade =
52 (ParameterFacade)
53 MetafacadeFactory.getInstance().createFacadeImpl(
54 "org.andromda.metafacades.uml.ParameterFacade",
55 metaObjectIn,
56 getContext(context));
57 this.metaObject = metaObjectIn;
58 }
59
60 /**
61 * Gets the context for this metafacade logic instance.
62 * @param context String. Set to EJB3SessionOperationParameterFacade if null
63 * @return context String
64 */
65 private static String getContext(String context)
66 {
67 if (context == null)
68 {
69 context = "org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationParameterFacade";
70 }
71 return context;
72 }
73
74 private ParameterFacade superParameterFacade;
75 private boolean superParameterFacadeInitialized = false;
76
77 /**
78 * Gets the ParameterFacade parent instance.
79 * @return this.superParameterFacade ParameterFacade
80 */
81 private ParameterFacade getSuperParameterFacade()
82 {
83 if (!this.superParameterFacadeInitialized)
84 {
85 ((MetafacadeBase)this.superParameterFacade).setMetafacadeContext(this.getMetafacadeContext());
86 this.superParameterFacadeInitialized = true;
87 }
88 return this.superParameterFacade;
89 }
90
91 /** Reset context only for non-root metafacades
92 * @param context
93 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
94 */
95 @Override
96 public void resetMetafacadeContext(String context)
97 {
98 if (!this.contextRoot) // reset context only for non-root metafacades
99 {
100 context = getContext(context); // to have same value as in original constructor call
101 setMetafacadeContext (context);
102 if (this.superParameterFacadeInitialized)
103 {
104 ((MetafacadeBase)this.superParameterFacade).resetMetafacadeContext(context);
105 }
106 }
107 }
108
109 /**
110 * @return boolean true always
111 * @see EJB3SessionOperationParameterFacade
112 */
113 public boolean isEJB3SessionOperationParameterFacadeMetaType()
114 {
115 return true;
116 }
117
118 // --------------- attributes ---------------------
119
120 /**
121 * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationParameterFacade#isSeamAsynchronousDuration()
122 * @return boolean
123 */
124 protected abstract boolean handleIsSeamAsynchronousDuration();
125
126 private boolean __seamAsynchronousDuration1a;
127 private boolean __seamAsynchronousDuration1aSet = false;
128
129 /**
130 * Specifies that a parameter of the asynchronous call is the duration before the call is
131 * processed (or first processed for recurring calls).
132 * @return (boolean)handleIsSeamAsynchronousDuration()
133 */
134 public final boolean isSeamAsynchronousDuration()
135 {
136 boolean seamAsynchronousDuration1a = this.__seamAsynchronousDuration1a;
137 if (!this.__seamAsynchronousDuration1aSet)
138 {
139 // seamAsynchronousDuration has no pre constraints
140 seamAsynchronousDuration1a = handleIsSeamAsynchronousDuration();
141 // seamAsynchronousDuration has no post constraints
142 this.__seamAsynchronousDuration1a = seamAsynchronousDuration1a;
143 if (isMetafacadePropertyCachingEnabled())
144 {
145 this.__seamAsynchronousDuration1aSet = true;
146 }
147 }
148 return seamAsynchronousDuration1a;
149 }
150
151 /**
152 * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationParameterFacade#isSeamAsynchronousExpiration()
153 * @return boolean
154 */
155 protected abstract boolean handleIsSeamAsynchronousExpiration();
156
157 private boolean __seamAsynchronousExpiration2a;
158 private boolean __seamAsynchronousExpiration2aSet = false;
159
160 /**
161 * Specifies that a parameter of the asynchronous call is the datetime at which the call is
162 * processed (or first processed for recurring calls).
163 * @return (boolean)handleIsSeamAsynchronousExpiration()
164 */
165 public final boolean isSeamAsynchronousExpiration()
166 {
167 boolean seamAsynchronousExpiration2a = this.__seamAsynchronousExpiration2a;
168 if (!this.__seamAsynchronousExpiration2aSet)
169 {
170 // seamAsynchronousExpiration has no pre constraints
171 seamAsynchronousExpiration2a = handleIsSeamAsynchronousExpiration();
172 // seamAsynchronousExpiration has no post constraints
173 this.__seamAsynchronousExpiration2a = seamAsynchronousExpiration2a;
174 if (isMetafacadePropertyCachingEnabled())
175 {
176 this.__seamAsynchronousExpiration2aSet = true;
177 }
178 }
179 return seamAsynchronousExpiration2a;
180 }
181
182 /**
183 * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationParameterFacade#isSeamAsynchronousIntervalDuration()
184 * @return boolean
185 */
186 protected abstract boolean handleIsSeamAsynchronousIntervalDuration();
187
188 private boolean __seamAsynchronousIntervalDuration3a;
189 private boolean __seamAsynchronousIntervalDuration3aSet = false;
190
191 /**
192 * Specifies that an asynchronous method call recurs, and that the annotationed parameter is
193 * duration between recurrences.
194 * @return (boolean)handleIsSeamAsynchronousIntervalDuration()
195 */
196 public final boolean isSeamAsynchronousIntervalDuration()
197 {
198 boolean seamAsynchronousIntervalDuration3a = this.__seamAsynchronousIntervalDuration3a;
199 if (!this.__seamAsynchronousIntervalDuration3aSet)
200 {
201 // seamAsynchronousIntervalDuration has no pre constraints
202 seamAsynchronousIntervalDuration3a = handleIsSeamAsynchronousIntervalDuration();
203 // seamAsynchronousIntervalDuration has no post constraints
204 this.__seamAsynchronousIntervalDuration3a = seamAsynchronousIntervalDuration3a;
205 if (isMetafacadePropertyCachingEnabled())
206 {
207 this.__seamAsynchronousIntervalDuration3aSet = true;
208 }
209 }
210 return seamAsynchronousIntervalDuration3a;
211 }
212
213 /**
214 * @return true
215 * @see ParameterFacade
216 */
217 public boolean isParameterFacadeMetaType()
218 {
219 return true;
220 }
221
222 /**
223 * @return true
224 * @see ModelElementFacade
225 */
226 public boolean isModelElementFacadeMetaType()
227 {
228 return true;
229 }
230
231 // ----------- delegates to ParameterFacade ------------
232 /**
233 * Copies all tagged values from the given ModelElementFacade to this model element facade.
234 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
235 */
236 public void copyTaggedValues(ModelElementFacade element)
237 {
238 this.getSuperParameterFacade().copyTaggedValues(element);
239 }
240
241 /**
242 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
243 * one found will be returned.
244 * @see ModelElementFacade#findTaggedValue(String tagName)
245 */
246 public Object findTaggedValue(String tagName)
247 {
248 return this.getSuperParameterFacade().findTaggedValue(tagName);
249 }
250
251 /**
252 * Returns all the values for the tagged value with the specified name. The returned collection
253 * will contains only String instances, or will be empty. Never null.
254 * @see ModelElementFacade#findTaggedValues(String tagName)
255 */
256 public Collection<Object> findTaggedValues(String tagName)
257 {
258 return this.getSuperParameterFacade().findTaggedValues(tagName);
259 }
260
261 /**
262 * Returns the fully qualified name of the model element. The fully qualified name includes
263 * complete package qualified name of the underlying model element. The templates parameter will
264 * be replaced by the correct one given the binding relation of the parameter to this element.
265 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
266 */
267 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
268 {
269 return this.getSuperParameterFacade().getBindedFullyQualifiedName(bindedElement);
270 }
271
272 /**
273 * Gets all constraints belonging to the model element.
274 * @see ModelElementFacade#getConstraints()
275 */
276 public Collection<ConstraintFacade> getConstraints()
277 {
278 return this.getSuperParameterFacade().getConstraints();
279 }
280
281 /**
282 * Returns the constraints of the argument kind that have been placed onto this model. Typical
283 * kinds are "inv", "pre" and "post". Other kinds are possible.
284 * @see ModelElementFacade#getConstraints(String kind)
285 */
286 public Collection<ConstraintFacade> getConstraints(String kind)
287 {
288 return this.getSuperParameterFacade().getConstraints(kind);
289 }
290
291 /**
292 * Gets the documentation for the model element, The indent argument is prefixed to each line.
293 * By default this method wraps lines after 64 characters.
294 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
295 * @see ModelElementFacade#getDocumentation(String indent)
296 */
297 public String getDocumentation(String indent)
298 {
299 return this.getSuperParameterFacade().getDocumentation(indent);
300 }
301
302 /**
303 * This method returns the documentation for this model element, with the lines wrapped after
304 * the specified number of characters, values of less than 1 will indicate no line wrapping is
305 * required. By default paragraphs are returned as HTML.
306 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
307 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
308 */
309 public String getDocumentation(String indent, int lineLength)
310 {
311 return this.getSuperParameterFacade().getDocumentation(indent, lineLength);
312 }
313
314 /**
315 * This method returns the documentation for this model element, with the lines wrapped after
316 * the specified number of characters, values of less than 1 will indicate no line wrapping is
317 * required. HTML style determines if HTML Escaping is applied.
318 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
319 */
320 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
321 {
322 return this.getSuperParameterFacade().getDocumentation(indent, lineLength, htmlStyle);
323 }
324
325 /**
326 * The fully qualified name of this model element.
327 * @see ModelElementFacade#getFullyQualifiedName()
328 */
329 public String getFullyQualifiedName()
330 {
331 return this.getSuperParameterFacade().getFullyQualifiedName();
332 }
333
334 /**
335 * Returns the fully qualified name of the model element. The fully qualified name includes
336 * complete package qualified name of the underlying model element. If modelName is true, then
337 * the original name of the model element (the name contained within the model) will be the name
338 * returned, otherwise a name from a language mapping will be returned.
339 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
340 */
341 public String getFullyQualifiedName(boolean modelName)
342 {
343 return this.getSuperParameterFacade().getFullyQualifiedName(modelName);
344 }
345
346 /**
347 * Returns the fully qualified name as a path, the returned value always starts with out a slash
348 * '/'.
349 * @see ModelElementFacade#getFullyQualifiedNamePath()
350 */
351 public String getFullyQualifiedNamePath()
352 {
353 return this.getSuperParameterFacade().getFullyQualifiedNamePath();
354 }
355
356 /**
357 * Gets the unique identifier of the underlying model element.
358 * @see ModelElementFacade#getId()
359 */
360 public String getId()
361 {
362 return this.getSuperParameterFacade().getId();
363 }
364
365 /**
366 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
367 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
368 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
369 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
370 * JDK5 compiler level.
371 * @see ModelElementFacade#getKeywords()
372 */
373 public Collection<String> getKeywords()
374 {
375 return this.getSuperParameterFacade().getKeywords();
376 }
377
378 /**
379 * UML2: Retrieves a localized label for this named element.
380 * @see ModelElementFacade#getLabel()
381 */
382 public String getLabel()
383 {
384 return this.getSuperParameterFacade().getLabel();
385 }
386
387 /**
388 * The language mappings that have been set for this model element.
389 * @see ModelElementFacade#getLanguageMappings()
390 */
391 public TypeMappings getLanguageMappings()
392 {
393 return this.getSuperParameterFacade().getLanguageMappings();
394 }
395
396 /**
397 * Return the model containing this model element (multiple models may be loaded and processed
398 * at the same time).
399 * @see ModelElementFacade#getModel()
400 */
401 public ModelFacade getModel()
402 {
403 return this.getSuperParameterFacade().getModel();
404 }
405
406 /**
407 * The name of the model element.
408 * @see ModelElementFacade#getName()
409 */
410 public String getName()
411 {
412 return this.getSuperParameterFacade().getName();
413 }
414
415 /**
416 * Gets the package to which this model element belongs.
417 * @see ModelElementFacade#getPackage()
418 */
419 public ModelElementFacade getPackage()
420 {
421 return this.getSuperParameterFacade().getPackage();
422 }
423
424 /**
425 * The name of this model element's package.
426 * @see ModelElementFacade#getPackageName()
427 */
428 public String getPackageName()
429 {
430 return this.getSuperParameterFacade().getPackageName();
431 }
432
433 /**
434 * Gets the package name (optionally providing the ability to retrieve the model name and not
435 * the mapped name).
436 * @see ModelElementFacade#getPackageName(boolean modelName)
437 */
438 public String getPackageName(boolean modelName)
439 {
440 return this.getSuperParameterFacade().getPackageName(modelName);
441 }
442
443 /**
444 * Returns the package as a path, the returned value always starts with out a slash '/'.
445 * @see ModelElementFacade#getPackagePath()
446 */
447 public String getPackagePath()
448 {
449 return this.getSuperParameterFacade().getPackagePath();
450 }
451
452 /**
453 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
454 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
455 * the names of the containing namespaces starting at the root of the hierarchy and ending with
456 * the name of the NamedElement itself.
457 * @see ModelElementFacade#getQualifiedName()
458 */
459 public String getQualifiedName()
460 {
461 return this.getSuperParameterFacade().getQualifiedName();
462 }
463
464 /**
465 * Gets the root package for the model element.
466 * @see ModelElementFacade#getRootPackage()
467 */
468 public PackageFacade getRootPackage()
469 {
470 return this.getSuperParameterFacade().getRootPackage();
471 }
472
473 /**
474 * Gets the dependencies for which this model element is the source.
475 * @see ModelElementFacade#getSourceDependencies()
476 */
477 public Collection<DependencyFacade> getSourceDependencies()
478 {
479 return this.getSuperParameterFacade().getSourceDependencies();
480 }
481
482 /**
483 * If this model element is the context of an activity graph, this represents that activity
484 * graph.
485 * @see ModelElementFacade#getStateMachineContext()
486 */
487 public StateMachineFacade getStateMachineContext()
488 {
489 return this.getSuperParameterFacade().getStateMachineContext();
490 }
491
492 /**
493 * The collection of ALL stereotype names for this model element.
494 * @see ModelElementFacade#getStereotypeNames()
495 */
496 public Collection<String> getStereotypeNames()
497 {
498 return this.getSuperParameterFacade().getStereotypeNames();
499 }
500
501 /**
502 * Gets all stereotypes for this model element.
503 * @see ModelElementFacade#getStereotypes()
504 */
505 public Collection<StereotypeFacade> getStereotypes()
506 {
507 return this.getSuperParameterFacade().getStereotypes();
508 }
509
510 /**
511 * Return the TaggedValues associated with this model element, under all stereotypes.
512 * @see ModelElementFacade#getTaggedValues()
513 */
514 public Collection<TaggedValueFacade> getTaggedValues()
515 {
516 return this.getSuperParameterFacade().getTaggedValues();
517 }
518
519 /**
520 * Gets the dependencies for which this model element is the target.
521 * @see ModelElementFacade#getTargetDependencies()
522 */
523 public Collection<DependencyFacade> getTargetDependencies()
524 {
525 return this.getSuperParameterFacade().getTargetDependencies();
526 }
527
528 /**
529 * Get the template parameter for this model element having the parameterName
530 * @see ModelElementFacade#getTemplateParameter(String parameterName)
531 */
532 public Object getTemplateParameter(String parameterName)
533 {
534 return this.getSuperParameterFacade().getTemplateParameter(parameterName);
535 }
536
537 /**
538 * Get the template parameters for this model element
539 * @see ModelElementFacade#getTemplateParameters()
540 */
541 public Collection<TemplateParameterFacade> getTemplateParameters()
542 {
543 return this.getSuperParameterFacade().getTemplateParameters();
544 }
545
546 /**
547 * The visibility (i.e. public, private, protected or package) of the model element, will
548 * attempt a lookup for these values in the language mappings (if any).
549 * @see ModelElementFacade#getVisibility()
550 */
551 public String getVisibility()
552 {
553 return this.getSuperParameterFacade().getVisibility();
554 }
555
556 /**
557 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
558 * is taken into account when searching for the stereotype), false otherwise.
559 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
560 */
561 public boolean hasExactStereotype(String stereotypeName)
562 {
563 return this.getSuperParameterFacade().hasExactStereotype(stereotypeName);
564 }
565
566 /**
567 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
568 * pipe, semicolon, or << >>
569 * @see ModelElementFacade#hasKeyword(String keywordName)
570 */
571 public boolean hasKeyword(String keywordName)
572 {
573 return this.getSuperParameterFacade().hasKeyword(keywordName);
574 }
575
576 /**
577 * Returns true if the model element has the specified stereotype. If the stereotype itself
578 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
579 * one of the stereotype's ancestors has a matching name this method will return true, false
580 * otherwise.
581 * For example, if we have a certain stereotype called <<exception>> and a model element has a
582 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
583 * method with 'stereotypeName' defined as 'exception' the method would return true since
584 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
585 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
586 * @see ModelElementFacade#hasStereotype(String stereotypeName)
587 */
588 public boolean hasStereotype(String stereotypeName)
589 {
590 return this.getSuperParameterFacade().hasStereotype(stereotypeName);
591 }
592
593 /**
594 * True if there are target dependencies from this element that are instances of BindingFacade.
595 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
596 * @see ModelElementFacade#isBindingDependenciesPresent()
597 */
598 public boolean isBindingDependenciesPresent()
599 {
600 return this.getSuperParameterFacade().isBindingDependenciesPresent();
601 }
602
603 /**
604 * Indicates if any constraints are present on this model element.
605 * @see ModelElementFacade#isConstraintsPresent()
606 */
607 public boolean isConstraintsPresent()
608 {
609 return this.getSuperParameterFacade().isConstraintsPresent();
610 }
611
612 /**
613 * Indicates if any documentation is present on this model element.
614 * @see ModelElementFacade#isDocumentationPresent()
615 */
616 public boolean isDocumentationPresent()
617 {
618 return this.getSuperParameterFacade().isDocumentationPresent();
619 }
620
621 /**
622 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
623 * @see ModelElementFacade#isReservedWord()
624 */
625 public boolean isReservedWord()
626 {
627 return this.getSuperParameterFacade().isReservedWord();
628 }
629
630 /**
631 * True is there are template parameters on this model element. For UML2, applies to Class,
632 * Operation, Property, and Parameter.
633 * @see ModelElementFacade#isTemplateParametersPresent()
634 */
635 public boolean isTemplateParametersPresent()
636 {
637 return this.getSuperParameterFacade().isTemplateParametersPresent();
638 }
639
640 /**
641 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
642 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
643 * Enumerations and Interfaces, optionally applies on other model elements.
644 * @see ModelElementFacade#isValidIdentifierName()
645 */
646 public boolean isValidIdentifierName()
647 {
648 return this.getSuperParameterFacade().isValidIdentifierName();
649 }
650
651 /**
652 * Searches for the constraint with the specified 'name' on this model element, and if found
653 * translates it using the specified 'translation' from a translation library discovered by the
654 * framework.
655 * @see ModelElementFacade#translateConstraint(String name, String translation)
656 */
657 public String translateConstraint(String name, String translation)
658 {
659 return this.getSuperParameterFacade().translateConstraint(name, translation);
660 }
661
662 /**
663 * Translates all constraints belonging to this model element with the given 'translation'.
664 * @see ModelElementFacade#translateConstraints(String translation)
665 */
666 public String[] translateConstraints(String translation)
667 {
668 return this.getSuperParameterFacade().translateConstraints(translation);
669 }
670
671 /**
672 * Translates the constraints of the specified 'kind' belonging to this model element.
673 * @see ModelElementFacade#translateConstraints(String kind, String translation)
674 */
675 public String[] translateConstraints(String kind, String translation)
676 {
677 return this.getSuperParameterFacade().translateConstraints(kind, translation);
678 }
679
680 /**
681 * TODO: Model Documentation for ParameterFacade.defaultValue
682 * @see ParameterFacade#getDefaultValue()
683 */
684 public String getDefaultValue()
685 {
686 return this.getSuperParameterFacade().getDefaultValue();
687 }
688
689 /**
690 * UML2: A representation of the literals of the enumeration 'Parameter Effect Kind': CREATE,
691 * READ, UPDATE, DELETE. The datatype ParameterEffectKind is an enumeration that indicates the
692 * effect of a behavior on values passed in or out of its parameters.
693 * @see ParameterFacade#getEffect()
694 */
695 public String getEffect()
696 {
697 return this.getSuperParameterFacade().getEffect();
698 }
699
700 /**
701 * If this parameter is located on an event, this will represent that event.
702 * @see ParameterFacade#getEvent()
703 */
704 public EventFacade getEvent()
705 {
706 return this.getSuperParameterFacade().getEvent();
707 }
708
709 /**
710 * The name to use for accessors getting this parameter from a bean.
711 * @see ParameterFacade#getGetterName()
712 */
713 public String getGetterName()
714 {
715 return this.getSuperParameterFacade().getGetterName();
716 }
717
718 /**
719 * Fully Qualified TypeName, determined in part by multiplicity (for UML2). For UML14, same as
720 * getterName.
721 * @see ParameterFacade#getGetterSetterTypeName()
722 */
723 public String getGetterSetterTypeName()
724 {
725 return this.getSuperParameterFacade().getGetterSetterTypeName();
726 }
727
728 /**
729 * Fully Qualified implementation class of TypeName, determined in part by multiplicity (for
730 * UML2). If upper multiplicity =1, same as getterSetterTypeName.
731 * @see ParameterFacade#getGetterSetterTypeNameImpl()
732 */
733 public String getGetterSetterTypeNameImpl()
734 {
735 return this.getSuperParameterFacade().getGetterSetterTypeNameImpl();
736 }
737
738 /**
739 * the lower value for the multiplicity
740 * -only applicable for UML2
741 * @see ParameterFacade#getLower()
742 */
743 public int getLower()
744 {
745 return this.getSuperParameterFacade().getLower();
746 }
747
748 /**
749 * If this parameter is located on an operation, this will represent that operation.
750 * @see ParameterFacade#getOperation()
751 */
752 public OperationFacade getOperation()
753 {
754 return this.getSuperParameterFacade().getOperation();
755 }
756
757 /**
758 * The name to use for accessors getting this parameter in a bean.
759 * @see ParameterFacade#getSetterName()
760 */
761 public String getSetterName()
762 {
763 return this.getSuperParameterFacade().getSetterName();
764 }
765
766 /**
767 * A Classifier is a classification of instances - it describes a set of instances that have
768 * features
769 * in common. Can specify a generalization hierarchy by referencing its general classifiers. It
770 * may be
771 * a Class, DataType, PrimitiveType, Association, Collaboration, UseCase, etc. Can specify a
772 * generalization hierarchy by referencing its general classifiers. Has the capability to own
773 * collaboration uses. These collaboration uses link a collaboration with the classifier to give
774 * a
775 * description of the workings of the classifier. Classifier is defined to be a kind of
776 * templateable
777 * element so that a classifier can be parameterized. It is also defined to be a kind of
778 * parameterable
779 * element so that a classifier can be a formal template parameter.
780 * @see ParameterFacade#getType()
781 */
782 public ClassifierFacade getType()
783 {
784 return this.getSuperParameterFacade().getType();
785 }
786
787 /**
788 * the upper value of the multiplicity (will be -1 for *)
789 * -only applicable for UML2
790 * @see ParameterFacade#getUpper()
791 */
792 public int getUpper()
793 {
794 return this.getSuperParameterFacade().getUpper();
795 }
796
797 /**
798 * Indicates if the default value is present.
799 * @see ParameterFacade#isDefaultValuePresent()
800 */
801 public boolean isDefaultValuePresent()
802 {
803 return this.getSuperParameterFacade().isDefaultValuePresent();
804 }
805
806 /**
807 * UML2: Returns the value of the 'Is Exception' attribute. The default value is "false". Tells
808 * whether an output parameter may emit a value to the exclusion of the other outputs.
809 * @see ParameterFacade#isException()
810 */
811 public boolean isException()
812 {
813 return this.getSuperParameterFacade().isException();
814 }
815
816 /**
817 * True if this parameter is an 'in' parameter.
818 * @see ParameterFacade#isInParameter()
819 */
820 public boolean isInParameter()
821 {
822 return this.getSuperParameterFacade().isInParameter();
823 }
824
825 /**
826 * True if this parameter is an inout parameter.
827 * @see ParameterFacade#isInoutParameter()
828 */
829 public boolean isInoutParameter()
830 {
831 return this.getSuperParameterFacade().isInoutParameter();
832 }
833
834 /**
835 * If upper>1 or upper==unlimited. Only applies to UML2. For UML14, always false.
836 * @see ParameterFacade#isMany()
837 */
838 public boolean isMany()
839 {
840 return this.getSuperParameterFacade().isMany();
841 }
842
843 /**
844 * UML2 Only: Is parameter ordered within the Collection type. Ordered+Unique determines the
845 * implementation Collection Type. For UML14, always false.
846 * @see ParameterFacade#isOrdered()
847 */
848 public boolean isOrdered()
849 {
850 return this.getSuperParameterFacade().isOrdered();
851 }
852
853 /**
854 * True if this parameter is an 'out' parameter.
855 * @see ParameterFacade#isOutParameter()
856 */
857 public boolean isOutParameter()
858 {
859 return this.getSuperParameterFacade().isOutParameter();
860 }
861
862 /**
863 * True if this parameter is readable, aka an in-parameter, or this feature is unspecified.
864 * @see ParameterFacade#isReadable()
865 */
866 public boolean isReadable()
867 {
868 return this.getSuperParameterFacade().isReadable();
869 }
870
871 /**
872 * Whether or not this parameter is considered required (i.e must a non-empty value).
873 * @see ParameterFacade#isRequired()
874 */
875 public boolean isRequired()
876 {
877 return this.getSuperParameterFacade().isRequired();
878 }
879
880 /**
881 * Whether or not this parameter represents a return parameter.
882 * @see ParameterFacade#isReturn()
883 */
884 public boolean isReturn()
885 {
886 return this.getSuperParameterFacade().isReturn();
887 }
888
889 /**
890 * If Parameter type isMany (UML2), is the parameter unique within the Collection. Unique+Sorted
891 * determines pareter implementation type. For UML14, always false.
892 * @see ParameterFacade#isUnique()
893 */
894 public boolean isUnique()
895 {
896 return this.getSuperParameterFacade().isUnique();
897 }
898
899 /**
900 * True if this parameter is writable, aka an out-parameter, or this feature is unspecified.
901 * @see ParameterFacade#isWritable()
902 */
903 public boolean isWritable()
904 {
905 return this.getSuperParameterFacade().isWritable();
906 }
907
908 /**
909 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
910 */
911 @Override
912 public void initialize()
913 {
914 this.getSuperParameterFacade().initialize();
915 }
916
917 /**
918 * @return Object getSuperParameterFacade().getValidationOwner()
919 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
920 */
921 @Override
922 public Object getValidationOwner()
923 {
924 Object owner = this.getSuperParameterFacade().getValidationOwner();
925 return owner;
926 }
927
928 /**
929 * @return String getSuperParameterFacade().getValidationName()
930 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
931 */
932 @Override
933 public String getValidationName()
934 {
935 String name = this.getSuperParameterFacade().getValidationName();
936 return name;
937 }
938
939 /**
940 * @param validationMessages Collection<ModelValidationMessage>
941 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
942 */
943 @Override
944 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
945 {
946 this.getSuperParameterFacade().validateInvariants(validationMessages);
947 }
948
949 /**
950 * The property that stores the name of the metafacade.
951 */
952 private static final String NAME_PROPERTY = "name";
953 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
954
955 /**
956 * @see Object#toString()
957 */
958 @Override
959 public String toString()
960 {
961 final StringBuilder toString = new StringBuilder(this.getClass().getName());
962 toString.append("[");
963 try
964 {
965 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
966 }
967 catch (final Throwable tryAgain)
968 {
969 try
970 {
971 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
972 }
973 catch (final Throwable ignore)
974 {
975 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
976 }
977 }
978 toString.append("]");
979 return toString.toString();
980 }
981 }