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