1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.spring.metafacades;
6
7 import java.util.Collection;
8 import 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.ConstraintFacade;
13 import org.andromda.metafacades.uml.DependencyFacade;
14 import org.andromda.metafacades.uml.ModelElementFacade;
15 import org.andromda.metafacades.uml.ModelFacade;
16 import org.andromda.metafacades.uml.PackageFacade;
17 import org.andromda.metafacades.uml.StateMachineFacade;
18 import org.andromda.metafacades.uml.StereotypeFacade;
19 import org.andromda.metafacades.uml.TaggedValueFacade;
20 import org.andromda.metafacades.uml.TemplateParameterFacade;
21 import org.andromda.metafacades.uml.TypeMappings;
22
23 /**
24 * Represents a dependency between spring objects.
25 * MetafacadeLogic for SpringDependency
26 *
27 * @see SpringDependency
28 */
29 public abstract class SpringDependencyLogic
30 extends MetafacadeBase
31 implements SpringDependency
32 {
33 /**
34 * The underlying UML object
35 * @see Object
36 */
37 protected Object metaObject;
38
39 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
40 * @param metaObjectIn
41 * @param context
42 */
43 protected SpringDependencyLogic(Object metaObjectIn, String context)
44 {
45 super(metaObjectIn, getContext(context));
46 this.superDependencyFacade =
47 (DependencyFacade)
48 MetafacadeFactory.getInstance().createFacadeImpl(
49 "org.andromda.metafacades.uml.DependencyFacade",
50 metaObjectIn,
51 getContext(context));
52 this.metaObject = metaObjectIn;
53 }
54
55 /**
56 * Gets the context for this metafacade logic instance.
57 * @param context String. Set to SpringDependency if null
58 * @return context String
59 */
60 private static String getContext(String context)
61 {
62 if (context == null)
63 {
64 context = "org.andromda.cartridges.spring.metafacades.SpringDependency";
65 }
66 return context;
67 }
68
69 private DependencyFacade superDependencyFacade;
70 private boolean superDependencyFacadeInitialized = false;
71
72 /**
73 * Gets the DependencyFacade parent instance.
74 * @return this.superDependencyFacade DependencyFacade
75 */
76 private DependencyFacade getSuperDependencyFacade()
77 {
78 if (!this.superDependencyFacadeInitialized)
79 {
80 ((MetafacadeBase)this.superDependencyFacade).setMetafacadeContext(this.getMetafacadeContext());
81 this.superDependencyFacadeInitialized = true;
82 }
83 return this.superDependencyFacade;
84 }
85
86 /** Reset context only for non-root metafacades
87 * @param context
88 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
89 */
90 @Override
91 public void resetMetafacadeContext(String context)
92 {
93 if (!this.contextRoot) // reset context only for non-root metafacades
94 {
95 context = getContext(context); // to have same value as in original constructor call
96 setMetafacadeContext (context);
97 if (this.superDependencyFacadeInitialized)
98 {
99 ((MetafacadeBase)this.superDependencyFacade).resetMetafacadeContext(context);
100 }
101 }
102 }
103
104 /**
105 * @return boolean true always
106 * @see SpringDependency
107 */
108 public boolean isSpringDependencyMetaType()
109 {
110 return true;
111 }
112
113 // --------------- attributes ---------------------
114
115 /**
116 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationConstantName()
117 * @return String
118 */
119 protected abstract String handleGetTransformationConstantName();
120
121 private String __transformationConstantName1a;
122 private boolean __transformationConstantName1aSet = false;
123
124 /**
125 * The name of the constant designated for use as a transformation flag for value objects (only
126 * makes sense when this dependency goes into a value object).
127 * @return (String)handleGetTransformationConstantName()
128 */
129 public final String getTransformationConstantName()
130 {
131 String transformationConstantName1a = this.__transformationConstantName1a;
132 if (!this.__transformationConstantName1aSet)
133 {
134 // transformationConstantName has no pre constraints
135 transformationConstantName1a = handleGetTransformationConstantName();
136 // transformationConstantName has no post constraints
137 this.__transformationConstantName1a = transformationConstantName1a;
138 if (isMetafacadePropertyCachingEnabled())
139 {
140 this.__transformationConstantName1aSet = true;
141 }
142 }
143 return transformationConstantName1a;
144 }
145
146 /**
147 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationMethodName()
148 * @return String
149 */
150 protected abstract String handleGetTransformationMethodName();
151
152 private String __transformationMethodName2a;
153 private boolean __transformationMethodName2aSet = false;
154
155 /**
156 * The name of the method use for transformation into a value object (only makes sense when this
157 * dependency goes into a value object).
158 * @return (String)handleGetTransformationMethodName()
159 */
160 public final String getTransformationMethodName()
161 {
162 String transformationMethodName2a = this.__transformationMethodName2a;
163 if (!this.__transformationMethodName2aSet)
164 {
165 // transformationMethodName has no pre constraints
166 transformationMethodName2a = handleGetTransformationMethodName();
167 // transformationMethodName has no post constraints
168 this.__transformationMethodName2a = transformationMethodName2a;
169 if (isMetafacadePropertyCachingEnabled())
170 {
171 this.__transformationMethodName2aSet = true;
172 }
173 }
174 return transformationMethodName2a;
175 }
176
177 /**
178 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationAnonymousName()
179 * @return String
180 */
181 protected abstract String handleGetTransformationAnonymousName();
182
183 private String __transformationAnonymousName3a;
184 private boolean __transformationAnonymousName3aSet = false;
185
186 /**
187 * TODO: Model Documentation for
188 * org.andromda.cartridges.spring.metafacades.SpringDependency.transformationAnonymousName
189 * @return (String)handleGetTransformationAnonymousName()
190 */
191 public final String getTransformationAnonymousName()
192 {
193 String transformationAnonymousName3a = this.__transformationAnonymousName3a;
194 if (!this.__transformationAnonymousName3aSet)
195 {
196 // transformationAnonymousName has no pre constraints
197 transformationAnonymousName3a = handleGetTransformationAnonymousName();
198 // transformationAnonymousName has no post constraints
199 this.__transformationAnonymousName3a = transformationAnonymousName3a;
200 if (isMetafacadePropertyCachingEnabled())
201 {
202 this.__transformationAnonymousName3aSet = true;
203 }
204 }
205 return transformationAnonymousName3a;
206 }
207
208 /**
209 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#isCircularReference()
210 * @return boolean
211 */
212 protected abstract boolean handleIsCircularReference();
213
214 private boolean __circularReference4a;
215 private boolean __circularReference4aSet = false;
216
217 /**
218 * Indicates if this dependency is part of a circular reference (meaning that both entities
219 * reference each other).
220 * @return (boolean)handleIsCircularReference()
221 */
222 public final boolean isCircularReference()
223 {
224 boolean circularReference4a = this.__circularReference4a;
225 if (!this.__circularReference4aSet)
226 {
227 // circularReference has no pre constraints
228 circularReference4a = handleIsCircularReference();
229 // circularReference has no post constraints
230 this.__circularReference4a = circularReference4a;
231 if (isMetafacadePropertyCachingEnabled())
232 {
233 this.__circularReference4aSet = true;
234 }
235 }
236 return circularReference4a;
237 }
238
239 /**
240 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToCollectionMethodName()
241 * @return String
242 */
243 protected abstract String handleGetTransformationToCollectionMethodName();
244
245 private String __transformationToCollectionMethodName5a;
246 private boolean __transformationToCollectionMethodName5aSet = false;
247
248 /**
249 * Returns the name of the method for transforming the contents of a collection.
250 * @return (String)handleGetTransformationToCollectionMethodName()
251 */
252 public final String getTransformationToCollectionMethodName()
253 {
254 String transformationToCollectionMethodName5a = this.__transformationToCollectionMethodName5a;
255 if (!this.__transformationToCollectionMethodName5aSet)
256 {
257 // transformationToCollectionMethodName has no pre constraints
258 transformationToCollectionMethodName5a = handleGetTransformationToCollectionMethodName();
259 // transformationToCollectionMethodName has no post constraints
260 this.__transformationToCollectionMethodName5a = transformationToCollectionMethodName5a;
261 if (isMetafacadePropertyCachingEnabled())
262 {
263 this.__transformationToCollectionMethodName5aSet = true;
264 }
265 }
266 return transformationToCollectionMethodName5a;
267 }
268
269 /**
270 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoName()
271 * @return String
272 */
273 protected abstract String handleGetDaoName();
274
275 private String __daoName6a;
276 private boolean __daoName6aSet = false;
277
278 /**
279 * The name given to a DAO reference.
280 * @return (String)handleGetDaoName()
281 */
282 public final String getDaoName()
283 {
284 String daoName6a = this.__daoName6a;
285 if (!this.__daoName6aSet)
286 {
287 // daoName has no pre constraints
288 daoName6a = handleGetDaoName();
289 // daoName has no post constraints
290 this.__daoName6a = daoName6a;
291 if (isMetafacadePropertyCachingEnabled())
292 {
293 this.__daoName6aSet = true;
294 }
295 }
296 return daoName6a;
297 }
298
299 /**
300 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoGetterName()
301 * @return String
302 */
303 protected abstract String handleGetDaoGetterName();
304
305 private String __daoGetterName7a;
306 private boolean __daoGetterName7aSet = false;
307
308 /**
309 * The name of the DAO reference getter name.
310 * @return (String)handleGetDaoGetterName()
311 */
312 public final String getDaoGetterName()
313 {
314 String daoGetterName7a = this.__daoGetterName7a;
315 if (!this.__daoGetterName7aSet)
316 {
317 // daoGetterName has no pre constraints
318 daoGetterName7a = handleGetDaoGetterName();
319 // daoGetterName has no post constraints
320 this.__daoGetterName7a = daoGetterName7a;
321 if (isMetafacadePropertyCachingEnabled())
322 {
323 this.__daoGetterName7aSet = true;
324 }
325 }
326 return daoGetterName7a;
327 }
328
329 /**
330 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getDaoSetterName()
331 * @return String
332 */
333 protected abstract String handleGetDaoSetterName();
334
335 private String __daoSetterName8a;
336 private boolean __daoSetterName8aSet = false;
337
338 /**
339 * The DAO reference setter's name.
340 * @return (String)handleGetDaoSetterName()
341 */
342 public final String getDaoSetterName()
343 {
344 String daoSetterName8a = this.__daoSetterName8a;
345 if (!this.__daoSetterName8aSet)
346 {
347 // daoSetterName has no pre constraints
348 daoSetterName8a = handleGetDaoSetterName();
349 // daoSetterName has no post constraints
350 this.__daoSetterName8a = daoSetterName8a;
351 if (isMetafacadePropertyCachingEnabled())
352 {
353 this.__daoSetterName8aSet = true;
354 }
355 }
356 return daoSetterName8a;
357 }
358
359 /**
360 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationConstantValue()
361 * @return int
362 */
363 protected abstract int handleGetTransformationConstantValue();
364
365 private int __transformationConstantValue9a;
366 private boolean __transformationConstantValue9aSet = false;
367
368 /**
369 * Stores the transformation constrant name.
370 * @return (int)handleGetTransformationConstantValue()
371 */
372 public final int getTransformationConstantValue()
373 {
374 int transformationConstantValue9a = this.__transformationConstantValue9a;
375 if (!this.__transformationConstantValue9aSet)
376 {
377 // transformationConstantValue has no pre constraints
378 transformationConstantValue9a = handleGetTransformationConstantValue();
379 // transformationConstantValue has no post constraints
380 this.__transformationConstantValue9a = transformationConstantValue9a;
381 if (isMetafacadePropertyCachingEnabled())
382 {
383 this.__transformationConstantValue9aSet = true;
384 }
385 }
386 return transformationConstantValue9a;
387 }
388
389 /**
390 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToEntityCollectionMethodName()
391 * @return String
392 */
393 protected abstract String handleGetTransformationToEntityCollectionMethodName();
394
395 private String __transformationToEntityCollectionMethodName10a;
396 private boolean __transformationToEntityCollectionMethodName10aSet = false;
397
398 /**
399 * The method name that performs the value object collection to entity collection
400 * transformation.
401 * @return (String)handleGetTransformationToEntityCollectionMethodName()
402 */
403 public final String getTransformationToEntityCollectionMethodName()
404 {
405 String transformationToEntityCollectionMethodName10a = this.__transformationToEntityCollectionMethodName10a;
406 if (!this.__transformationToEntityCollectionMethodName10aSet)
407 {
408 // transformationToEntityCollectionMethodName has no pre constraints
409 transformationToEntityCollectionMethodName10a = handleGetTransformationToEntityCollectionMethodName();
410 // transformationToEntityCollectionMethodName has no post constraints
411 this.__transformationToEntityCollectionMethodName10a = transformationToEntityCollectionMethodName10a;
412 if (isMetafacadePropertyCachingEnabled())
413 {
414 this.__transformationToEntityCollectionMethodName10aSet = true;
415 }
416 }
417 return transformationToEntityCollectionMethodName10a;
418 }
419
420 /**
421 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToEntityMethodName()
422 * @return String
423 */
424 protected abstract String handleGetTransformationToEntityMethodName();
425
426 private String __transformationToEntityMethodName11a;
427 private boolean __transformationToEntityMethodName11aSet = false;
428
429 /**
430 * The name of the "to entity" transformation method name.
431 * @return (String)handleGetTransformationToEntityMethodName()
432 */
433 public final String getTransformationToEntityMethodName()
434 {
435 String transformationToEntityMethodName11a = this.__transformationToEntityMethodName11a;
436 if (!this.__transformationToEntityMethodName11aSet)
437 {
438 // transformationToEntityMethodName has no pre constraints
439 transformationToEntityMethodName11a = handleGetTransformationToEntityMethodName();
440 // transformationToEntityMethodName has no post constraints
441 this.__transformationToEntityMethodName11a = transformationToEntityMethodName11a;
442 if (isMetafacadePropertyCachingEnabled())
443 {
444 this.__transformationToEntityMethodName11aSet = true;
445 }
446 }
447 return transformationToEntityMethodName11a;
448 }
449
450 /**
451 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getValueObjectToEntityTransformerName()
452 * @return String
453 */
454 protected abstract String handleGetValueObjectToEntityTransformerName();
455
456 private String __valueObjectToEntityTransformerName12a;
457 private boolean __valueObjectToEntityTransformerName12aSet = false;
458
459 /**
460 * The name of the class that performs the value object to entity transformation.
461 * @return (String)handleGetValueObjectToEntityTransformerName()
462 */
463 public final String getValueObjectToEntityTransformerName()
464 {
465 String valueObjectToEntityTransformerName12a = this.__valueObjectToEntityTransformerName12a;
466 if (!this.__valueObjectToEntityTransformerName12aSet)
467 {
468 // valueObjectToEntityTransformerName has no pre constraints
469 valueObjectToEntityTransformerName12a = handleGetValueObjectToEntityTransformerName();
470 // valueObjectToEntityTransformerName has no post constraints
471 this.__valueObjectToEntityTransformerName12a = valueObjectToEntityTransformerName12a;
472 if (isMetafacadePropertyCachingEnabled())
473 {
474 this.__valueObjectToEntityTransformerName12aSet = true;
475 }
476 }
477 return valueObjectToEntityTransformerName12a;
478 }
479
480 /**
481 * @see org.andromda.cartridges.spring.metafacades.SpringDependency#getTransformationToArrayMethodName()
482 * @return String
483 */
484 protected abstract String handleGetTransformationToArrayMethodName();
485
486 private String __transformationToArrayMethodName13a;
487 private boolean __transformationToArrayMethodName13aSet = false;
488
489 /**
490 * Returns the name of the method for transforming the contents of a collection to an array.
491 * @return (String)handleGetTransformationToArrayMethodName()
492 */
493 public final String getTransformationToArrayMethodName()
494 {
495 String transformationToArrayMethodName13a = this.__transformationToArrayMethodName13a;
496 if (!this.__transformationToArrayMethodName13aSet)
497 {
498 // transformationToArrayMethodName has no pre constraints
499 transformationToArrayMethodName13a = handleGetTransformationToArrayMethodName();
500 // transformationToArrayMethodName has no post constraints
501 this.__transformationToArrayMethodName13a = transformationToArrayMethodName13a;
502 if (isMetafacadePropertyCachingEnabled())
503 {
504 this.__transformationToArrayMethodName13aSet = true;
505 }
506 }
507 return transformationToArrayMethodName13a;
508 }
509
510 /**
511 * @return true
512 * @see DependencyFacade
513 */
514 public boolean isDependencyFacadeMetaType()
515 {
516 return true;
517 }
518
519 /**
520 * @return true
521 * @see ModelElementFacade
522 */
523 public boolean isModelElementFacadeMetaType()
524 {
525 return true;
526 }
527
528 // ----------- delegates to DependencyFacade ------------
529 /**
530 * The "getter" name for this dependency.
531 * @see DependencyFacade#getGetterName()
532 */
533 public String getGetterName()
534 {
535 return this.getSuperDependencyFacade().getGetterName();
536 }
537
538 /**
539 * The "setter" name for this dependency.
540 * @see DependencyFacade#getSetterName()
541 */
542 public String getSetterName()
543 {
544 return this.getSuperDependencyFacade().getSetterName();
545 }
546
547 /**
548 * The source element of this dependency.
549 * @see DependencyFacade#getSourceElement()
550 */
551 public ModelElementFacade getSourceElement()
552 {
553 return this.getSuperDependencyFacade().getSourceElement();
554 }
555
556 /**
557 * Gets the element to which the dependencies belong.
558 * @see DependencyFacade#getTargetElement()
559 */
560 public ModelElementFacade getTargetElement()
561 {
562 return this.getSuperDependencyFacade().getTargetElement();
563 }
564
565 /**
566 * Copies all tagged values from the given ModelElementFacade to this model element facade.
567 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
568 */
569 public void copyTaggedValues(ModelElementFacade element)
570 {
571 this.getSuperDependencyFacade().copyTaggedValues(element);
572 }
573
574 /**
575 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
576 * one found will be returned.
577 * @see ModelElementFacade#findTaggedValue(String tagName)
578 */
579 public Object findTaggedValue(String tagName)
580 {
581 return this.getSuperDependencyFacade().findTaggedValue(tagName);
582 }
583
584 /**
585 * Returns all the values for the tagged value with the specified name. The returned collection
586 * will contains only String instances, or will be empty. Never null.
587 * @see ModelElementFacade#findTaggedValues(String tagName)
588 */
589 public Collection<Object> findTaggedValues(String tagName)
590 {
591 return this.getSuperDependencyFacade().findTaggedValues(tagName);
592 }
593
594 /**
595 * Returns the fully qualified name of the model element. The fully qualified name includes
596 * complete package qualified name of the underlying model element. The templates parameter will
597 * be replaced by the correct one given the binding relation of the parameter to this element.
598 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
599 */
600 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
601 {
602 return this.getSuperDependencyFacade().getBindedFullyQualifiedName(bindedElement);
603 }
604
605 /**
606 * Gets all constraints belonging to the model element.
607 * @see ModelElementFacade#getConstraints()
608 */
609 public Collection<ConstraintFacade> getConstraints()
610 {
611 return this.getSuperDependencyFacade().getConstraints();
612 }
613
614 /**
615 * Returns the constraints of the argument kind that have been placed onto this model. Typical
616 * kinds are "inv", "pre" and "post". Other kinds are possible.
617 * @see ModelElementFacade#getConstraints(String kind)
618 */
619 public Collection<ConstraintFacade> getConstraints(String kind)
620 {
621 return this.getSuperDependencyFacade().getConstraints(kind);
622 }
623
624 /**
625 * Gets the documentation for the model element, The indent argument is prefixed to each line.
626 * By default this method wraps lines after 64 characters.
627 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
628 * @see ModelElementFacade#getDocumentation(String indent)
629 */
630 public String getDocumentation(String indent)
631 {
632 return this.getSuperDependencyFacade().getDocumentation(indent);
633 }
634
635 /**
636 * This method returns the documentation for this model element, with the lines wrapped after
637 * the specified number of characters, values of less than 1 will indicate no line wrapping is
638 * required. By default paragraphs are returned as HTML.
639 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
640 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
641 */
642 public String getDocumentation(String indent, int lineLength)
643 {
644 return this.getSuperDependencyFacade().getDocumentation(indent, lineLength);
645 }
646
647 /**
648 * This method returns the documentation for this model element, with the lines wrapped after
649 * the specified number of characters, values of less than 1 will indicate no line wrapping is
650 * required. HTML style determines if HTML Escaping is applied.
651 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
652 */
653 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
654 {
655 return this.getSuperDependencyFacade().getDocumentation(indent, lineLength, htmlStyle);
656 }
657
658 /**
659 * The fully qualified name of this model element.
660 * @see ModelElementFacade#getFullyQualifiedName()
661 */
662 public String getFullyQualifiedName()
663 {
664 return this.getSuperDependencyFacade().getFullyQualifiedName();
665 }
666
667 /**
668 * Returns the fully qualified name of the model element. The fully qualified name includes
669 * complete package qualified name of the underlying model element. If modelName is true, then
670 * the original name of the model element (the name contained within the model) will be the name
671 * returned, otherwise a name from a language mapping will be returned.
672 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
673 */
674 public String getFullyQualifiedName(boolean modelName)
675 {
676 return this.getSuperDependencyFacade().getFullyQualifiedName(modelName);
677 }
678
679 /**
680 * Returns the fully qualified name as a path, the returned value always starts with out a slash
681 * '/'.
682 * @see ModelElementFacade#getFullyQualifiedNamePath()
683 */
684 public String getFullyQualifiedNamePath()
685 {
686 return this.getSuperDependencyFacade().getFullyQualifiedNamePath();
687 }
688
689 /**
690 * Gets the unique identifier of the underlying model element.
691 * @see ModelElementFacade#getId()
692 */
693 public String getId()
694 {
695 return this.getSuperDependencyFacade().getId();
696 }
697
698 /**
699 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
700 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
701 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
702 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
703 * JDK5 compiler level.
704 * @see ModelElementFacade#getKeywords()
705 */
706 public Collection<String> getKeywords()
707 {
708 return this.getSuperDependencyFacade().getKeywords();
709 }
710
711 /**
712 * UML2: Retrieves a localized label for this named element.
713 * @see ModelElementFacade#getLabel()
714 */
715 public String getLabel()
716 {
717 return this.getSuperDependencyFacade().getLabel();
718 }
719
720 /**
721 * The language mappings that have been set for this model element.
722 * @see ModelElementFacade#getLanguageMappings()
723 */
724 public TypeMappings getLanguageMappings()
725 {
726 return this.getSuperDependencyFacade().getLanguageMappings();
727 }
728
729 /**
730 * Return the model containing this model element (multiple models may be loaded and processed
731 * at the same time).
732 * @see ModelElementFacade#getModel()
733 */
734 public ModelFacade getModel()
735 {
736 return this.getSuperDependencyFacade().getModel();
737 }
738
739 /**
740 * The name of the model element.
741 * @see ModelElementFacade#getName()
742 */
743 public String getName()
744 {
745 return this.getSuperDependencyFacade().getName();
746 }
747
748 /**
749 * Gets the package to which this model element belongs.
750 * @see ModelElementFacade#getPackage()
751 */
752 public ModelElementFacade getPackage()
753 {
754 return this.getSuperDependencyFacade().getPackage();
755 }
756
757 /**
758 * The name of this model element's package.
759 * @see ModelElementFacade#getPackageName()
760 */
761 public String getPackageName()
762 {
763 return this.getSuperDependencyFacade().getPackageName();
764 }
765
766 /**
767 * Gets the package name (optionally providing the ability to retrieve the model name and not
768 * the mapped name).
769 * @see ModelElementFacade#getPackageName(boolean modelName)
770 */
771 public String getPackageName(boolean modelName)
772 {
773 return this.getSuperDependencyFacade().getPackageName(modelName);
774 }
775
776 /**
777 * Returns the package as a path, the returned value always starts with out a slash '/'.
778 * @see ModelElementFacade#getPackagePath()
779 */
780 public String getPackagePath()
781 {
782 return this.getSuperDependencyFacade().getPackagePath();
783 }
784
785 /**
786 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
787 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
788 * the names of the containing namespaces starting at the root of the hierarchy and ending with
789 * the name of the NamedElement itself.
790 * @see ModelElementFacade#getQualifiedName()
791 */
792 public String getQualifiedName()
793 {
794 return this.getSuperDependencyFacade().getQualifiedName();
795 }
796
797 /**
798 * Gets the root package for the model element.
799 * @see ModelElementFacade#getRootPackage()
800 */
801 public PackageFacade getRootPackage()
802 {
803 return this.getSuperDependencyFacade().getRootPackage();
804 }
805
806 /**
807 * Gets the dependencies for which this model element is the source.
808 * @see ModelElementFacade#getSourceDependencies()
809 */
810 public Collection<DependencyFacade> getSourceDependencies()
811 {
812 return this.getSuperDependencyFacade().getSourceDependencies();
813 }
814
815 /**
816 * If this model element is the context of an activity graph, this represents that activity
817 * graph.
818 * @see ModelElementFacade#getStateMachineContext()
819 */
820 public StateMachineFacade getStateMachineContext()
821 {
822 return this.getSuperDependencyFacade().getStateMachineContext();
823 }
824
825 /**
826 * The collection of ALL stereotype names for this model element.
827 * @see ModelElementFacade#getStereotypeNames()
828 */
829 public Collection<String> getStereotypeNames()
830 {
831 return this.getSuperDependencyFacade().getStereotypeNames();
832 }
833
834 /**
835 * Gets all stereotypes for this model element.
836 * @see ModelElementFacade#getStereotypes()
837 */
838 public Collection<StereotypeFacade> getStereotypes()
839 {
840 return this.getSuperDependencyFacade().getStereotypes();
841 }
842
843 /**
844 * Return the TaggedValues associated with this model element, under all stereotypes.
845 * @see ModelElementFacade#getTaggedValues()
846 */
847 public Collection<TaggedValueFacade> getTaggedValues()
848 {
849 return this.getSuperDependencyFacade().getTaggedValues();
850 }
851
852 /**
853 * Gets the dependencies for which this model element is the target.
854 * @see ModelElementFacade#getTargetDependencies()
855 */
856 public Collection<DependencyFacade> getTargetDependencies()
857 {
858 return this.getSuperDependencyFacade().getTargetDependencies();
859 }
860
861 /**
862 * Get the template parameter for this model element having the parameterName
863 * @see ModelElementFacade#getTemplateParameter(String parameterName)
864 */
865 public Object getTemplateParameter(String parameterName)
866 {
867 return this.getSuperDependencyFacade().getTemplateParameter(parameterName);
868 }
869
870 /**
871 * Get the template parameters for this model element
872 * @see ModelElementFacade#getTemplateParameters()
873 */
874 public Collection<TemplateParameterFacade> getTemplateParameters()
875 {
876 return this.getSuperDependencyFacade().getTemplateParameters();
877 }
878
879 /**
880 * The visibility (i.e. public, private, protected or package) of the model element, will
881 * attempt a lookup for these values in the language mappings (if any).
882 * @see ModelElementFacade#getVisibility()
883 */
884 public String getVisibility()
885 {
886 return this.getSuperDependencyFacade().getVisibility();
887 }
888
889 /**
890 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
891 * is taken into account when searching for the stereotype), false otherwise.
892 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
893 */
894 public boolean hasExactStereotype(String stereotypeName)
895 {
896 return this.getSuperDependencyFacade().hasExactStereotype(stereotypeName);
897 }
898
899 /**
900 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
901 * pipe, semicolon, or << >>
902 * @see ModelElementFacade#hasKeyword(String keywordName)
903 */
904 public boolean hasKeyword(String keywordName)
905 {
906 return this.getSuperDependencyFacade().hasKeyword(keywordName);
907 }
908
909 /**
910 * Returns true if the model element has the specified stereotype. If the stereotype itself
911 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
912 * one of the stereotype's ancestors has a matching name this method will return true, false
913 * otherwise.
914 * For example, if we have a certain stereotype called <<exception>> and a model element has a
915 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
916 * method with 'stereotypeName' defined as 'exception' the method would return true since
917 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
918 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
919 * @see ModelElementFacade#hasStereotype(String stereotypeName)
920 */
921 public boolean hasStereotype(String stereotypeName)
922 {
923 return this.getSuperDependencyFacade().hasStereotype(stereotypeName);
924 }
925
926 /**
927 * True if there are target dependencies from this element that are instances of BindingFacade.
928 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
929 * @see ModelElementFacade#isBindingDependenciesPresent()
930 */
931 public boolean isBindingDependenciesPresent()
932 {
933 return this.getSuperDependencyFacade().isBindingDependenciesPresent();
934 }
935
936 /**
937 * Indicates if any constraints are present on this model element.
938 * @see ModelElementFacade#isConstraintsPresent()
939 */
940 public boolean isConstraintsPresent()
941 {
942 return this.getSuperDependencyFacade().isConstraintsPresent();
943 }
944
945 /**
946 * Indicates if any documentation is present on this model element.
947 * @see ModelElementFacade#isDocumentationPresent()
948 */
949 public boolean isDocumentationPresent()
950 {
951 return this.getSuperDependencyFacade().isDocumentationPresent();
952 }
953
954 /**
955 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
956 * @see ModelElementFacade#isReservedWord()
957 */
958 public boolean isReservedWord()
959 {
960 return this.getSuperDependencyFacade().isReservedWord();
961 }
962
963 /**
964 * True is there are template parameters on this model element. For UML2, applies to Class,
965 * Operation, Property, and Parameter.
966 * @see ModelElementFacade#isTemplateParametersPresent()
967 */
968 public boolean isTemplateParametersPresent()
969 {
970 return this.getSuperDependencyFacade().isTemplateParametersPresent();
971 }
972
973 /**
974 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
975 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
976 * Enumerations and Interfaces, optionally applies on other model elements.
977 * @see ModelElementFacade#isValidIdentifierName()
978 */
979 public boolean isValidIdentifierName()
980 {
981 return this.getSuperDependencyFacade().isValidIdentifierName();
982 }
983
984 /**
985 * Searches for the constraint with the specified 'name' on this model element, and if found
986 * translates it using the specified 'translation' from a translation library discovered by the
987 * framework.
988 * @see ModelElementFacade#translateConstraint(String name, String translation)
989 */
990 public String translateConstraint(String name, String translation)
991 {
992 return this.getSuperDependencyFacade().translateConstraint(name, translation);
993 }
994
995 /**
996 * Translates all constraints belonging to this model element with the given 'translation'.
997 * @see ModelElementFacade#translateConstraints(String translation)
998 */
999 public String[] translateConstraints(String translation)
1000 {
1001 return this.getSuperDependencyFacade().translateConstraints(translation);
1002 }
1003
1004 /**
1005 * Translates the constraints of the specified 'kind' belonging to this model element.
1006 * @see ModelElementFacade#translateConstraints(String kind, String translation)
1007 */
1008 public String[] translateConstraints(String kind, String translation)
1009 {
1010 return this.getSuperDependencyFacade().translateConstraints(kind, translation);
1011 }
1012
1013 /**
1014 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
1015 */
1016 @Override
1017 public void initialize()
1018 {
1019 this.getSuperDependencyFacade().initialize();
1020 }
1021
1022 /**
1023 * @return Object getSuperDependencyFacade().getValidationOwner()
1024 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
1025 */
1026 @Override
1027 public Object getValidationOwner()
1028 {
1029 Object owner = this.getSuperDependencyFacade().getValidationOwner();
1030 return owner;
1031 }
1032
1033 /**
1034 * @return String getSuperDependencyFacade().getValidationName()
1035 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
1036 */
1037 @Override
1038 public String getValidationName()
1039 {
1040 String name = this.getSuperDependencyFacade().getValidationName();
1041 return name;
1042 }
1043
1044 /**
1045 * @param validationMessages Collection<ModelValidationMessage>
1046 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
1047 */
1048 @Override
1049 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
1050 {
1051 this.getSuperDependencyFacade().validateInvariants(validationMessages);
1052 }
1053
1054 /**
1055 * The property that stores the name of the metafacade.
1056 */
1057 private static final String NAME_PROPERTY = "name";
1058 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
1059
1060 /**
1061 * @see Object#toString()
1062 */
1063 @Override
1064 public String toString()
1065 {
1066 final StringBuilder toString = new StringBuilder(this.getClass().getName());
1067 toString.append("[");
1068 try
1069 {
1070 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
1071 }
1072 catch (final Throwable tryAgain)
1073 {
1074 try
1075 {
1076 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
1077 }
1078 catch (final Throwable ignore)
1079 {
1080 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
1081 }
1082 }
1083 toString.append("]");
1084 return toString.toString();
1085 }
1086 }