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.AssociationEndFacade;
13 import org.andromda.metafacades.uml.AssociationFacade;
14 import org.andromda.metafacades.uml.ClassifierFacade;
15 import org.andromda.metafacades.uml.ConstraintFacade;
16 import org.andromda.metafacades.uml.DependencyFacade;
17 import org.andromda.metafacades.uml.EntityAttribute;
18 import org.andromda.metafacades.uml.ManageableEntityAssociationEnd;
19 import org.andromda.metafacades.uml.ModelElementFacade;
20 import org.andromda.metafacades.uml.ModelFacade;
21 import org.andromda.metafacades.uml.PackageFacade;
22 import org.andromda.metafacades.uml.StateMachineFacade;
23 import org.andromda.metafacades.uml.StereotypeFacade;
24 import org.andromda.metafacades.uml.TaggedValueFacade;
25 import org.andromda.metafacades.uml.TemplateParameterFacade;
26 import org.andromda.metafacades.uml.TypeMappings;
27
28 /**
29 * TODO: Model Documentation for
30 * org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityAssociationEndFacade
31 * MetafacadeLogic for EJB3ManageableEntityAssociationEndFacade
32 *
33 * @see EJB3ManageableEntityAssociationEndFacade
34 */
35 public abstract class EJB3ManageableEntityAssociationEndFacadeLogic
36 extends MetafacadeBase
37 implements EJB3ManageableEntityAssociationEndFacade
38 {
39 /**
40 * The underlying UML object
41 * @see Object
42 */
43 protected Object metaObject;
44
45 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
46 * @param metaObjectIn
47 * @param context
48 */
49 protected EJB3ManageableEntityAssociationEndFacadeLogic(Object metaObjectIn, String context)
50 {
51 super(metaObjectIn, getContext(context));
52 this.superManageableEntityAssociationEnd =
53 (ManageableEntityAssociationEnd)
54 MetafacadeFactory.getInstance().createFacadeImpl(
55 "org.andromda.metafacades.uml.ManageableEntityAssociationEnd",
56 metaObjectIn,
57 getContext(context));
58 this.superEJB3AssociationEndFacade =
59 (EJB3AssociationEndFacade)
60 MetafacadeFactory.getInstance().createFacadeImpl(
61 "org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacade",
62 metaObjectIn,
63 getContext(context));
64 this.metaObject = metaObjectIn;
65 }
66
67 /**
68 * Gets the context for this metafacade logic instance.
69 * @param context String. Set to EJB3ManageableEntityAssociationEndFacade if null
70 * @return context String
71 */
72 private static String getContext(String context)
73 {
74 if (context == null)
75 {
76 context = "org.andromda.cartridges.ejb3.metafacades.EJB3ManageableEntityAssociationEndFacade";
77 }
78 return context;
79 }
80
81 private ManageableEntityAssociationEnd superManageableEntityAssociationEnd;
82 private boolean superManageableEntityAssociationEndInitialized = false;
83
84 /**
85 * Gets the ManageableEntityAssociationEnd parent instance.
86 * @return this.superManageableEntityAssociationEnd ManageableEntityAssociationEnd
87 */
88 protected ManageableEntityAssociationEnd getSuperManageableEntityAssociationEnd()
89 {
90 if (!this.superManageableEntityAssociationEndInitialized)
91 {
92 ((MetafacadeBase)this.superManageableEntityAssociationEnd).setMetafacadeContext(this.getMetafacadeContext());
93 this.superManageableEntityAssociationEndInitialized = true;
94 }
95 return this.superManageableEntityAssociationEnd;
96 }
97
98 private EJB3AssociationEndFacade superEJB3AssociationEndFacade;
99 private boolean superEJB3AssociationEndFacadeInitialized = false;
100
101 /**
102 * Gets the EJB3AssociationEndFacade parent instance.
103 * @return this.superEJB3AssociationEndFacade EJB3AssociationEndFacade
104 */
105 protected EJB3AssociationEndFacade getSuperEJB3AssociationEndFacade()
106 {
107 if (!this.superEJB3AssociationEndFacadeInitialized)
108 {
109 ((MetafacadeBase)this.superEJB3AssociationEndFacade).setMetafacadeContext(this.getMetafacadeContext());
110 this.superEJB3AssociationEndFacadeInitialized = true;
111 }
112 return this.superEJB3AssociationEndFacade;
113 }
114
115 /** Reset context only for non-root metafacades
116 * @param context
117 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
118 */
119 @Override
120 public void resetMetafacadeContext(String context)
121 {
122 if (!this.contextRoot) // reset context only for non-root metafacades
123 {
124 context = getContext(context); // to have same value as in original constructor call
125 setMetafacadeContext (context);
126 if (this.superManageableEntityAssociationEndInitialized)
127 {
128 ((MetafacadeBase)this.superManageableEntityAssociationEnd).resetMetafacadeContext(context);
129 }
130 if (this.superEJB3AssociationEndFacadeInitialized)
131 {
132 ((MetafacadeBase)this.superEJB3AssociationEndFacade).resetMetafacadeContext(context);
133 }
134 }
135 }
136
137 /**
138 * @return boolean true always
139 * @see EJB3ManageableEntityAssociationEndFacade
140 */
141 public boolean isEJB3ManageableEntityAssociationEndFacadeMetaType()
142 {
143 return true;
144 }
145
146 /**
147 * @return true
148 * @see EJB3AssociationEndFacade
149 */
150 public boolean isEJB3AssociationEndFacadeMetaType()
151 {
152 return true;
153 }
154
155 /**
156 * @return true
157 * @see ManageableEntityAssociationEnd
158 */
159 public boolean isManageableEntityAssociationEndMetaType()
160 {
161 return true;
162 }
163
164 /**
165 * @return true
166 * @see org.andromda.metafacades.uml.EntityAssociationEnd
167 */
168 public boolean isEntityAssociationEndMetaType()
169 {
170 return true;
171 }
172
173 /**
174 * @return true
175 * @see AssociationEndFacade
176 */
177 public boolean isAssociationEndFacadeMetaType()
178 {
179 return true;
180 }
181
182 /**
183 * @return true
184 * @see ModelElementFacade
185 */
186 public boolean isModelElementFacadeMetaType()
187 {
188 return true;
189 }
190
191 // ----------- delegates to ManageableEntityAssociationEnd ------------
192 /**
193 * Represents an attribute of an entity.
194 * @see ManageableEntityAssociationEnd#getManageableIdentifier()
195 */
196 public EntityAttribute getManageableIdentifier()
197 {
198 return this.getSuperManageableEntityAssociationEnd().getManageableIdentifier();
199 }
200
201 /**
202 * Whether or not this association end should be displayed.
203 * @see ManageableEntityAssociationEnd#isDisplay()
204 */
205 public boolean isDisplay()
206 {
207 return this.getSuperManageableEntityAssociationEnd().isDisplay();
208 }
209
210 // ----------- delegates to EJB3AssociationEndFacade ------------
211 /**
212 * Returns the default cascade property specified for UML aggregation.
213 * @see EJB3AssociationEndFacade#getAggregationCascadeType()
214 */
215 public String getAggregationCascadeType()
216 {
217 return this.getSuperEJB3AssociationEndFacade().getAggregationCascadeType();
218 }
219
220 /**
221 * Provides the cache policy for the entity association Collection.
222 * Posible values are NONE, READ_WRITE, NONSTRICT_READ_WRITE, READ_ONLY, TRANSACTIONAL.
223 * @see EJB3AssociationEndFacade#getCacheType()
224 */
225 public String getCacheType()
226 {
227 return this.getSuperEJB3AssociationEndFacade().getCacheType();
228 }
229
230 /**
231 * Return the cascade type attributes as an array of this association end or null if no relevant
232 * cascade attribute is found.
233 * @see EJB3AssociationEndFacade#getCascadeType()
234 */
235 public String getCascadeType()
236 {
237 return this.getSuperEJB3AssociationEndFacade().getCascadeType();
238 }
239
240 /**
241 * Returns the association end collection index name.
242 * @see EJB3AssociationEndFacade#getCollectionIndexName()
243 */
244 public String getCollectionIndexName()
245 {
246 return this.getSuperEJB3AssociationEndFacade().getCollectionIndexName();
247 }
248
249 /**
250 * this will only apply for Maps; it will return the type of the attribute specified on the
251 * CollectionIndexName tagged value
252 * @see EJB3AssociationEndFacade#getCollectionIndexType()
253 */
254 public String getCollectionIndexType()
255 {
256 return this.getSuperEJB3AssociationEndFacade().getCollectionIndexType();
257 }
258
259 /**
260 * Returns the collection type defined on this association end using the
261 * andromda_persistence_collection_type tagged value.
262 * If undefined use the following strategy:
263 * - If ordered collection type: return a list
264 * - Otherwise, return the default association collection type.
265 * @see EJB3AssociationEndFacade#getCollectionType()
266 */
267 public String getCollectionType()
268 {
269 return this.getSuperEJB3AssociationEndFacade().getCollectionType();
270 }
271
272 /**
273 * The fully qualified class name of the collection implementation type.
274 * @see EJB3AssociationEndFacade#getCollectionTypeImplemenationClass()
275 */
276 public String getCollectionTypeImplemenationClass()
277 {
278 return this.getSuperEJB3AssociationEndFacade().getCollectionTypeImplemenationClass();
279 }
280
281 /**
282 * The actual implementation of the collection type.
283 * @see EJB3AssociationEndFacade#getCollectionTypeImplementation()
284 */
285 public String getCollectionTypeImplementation()
286 {
287 return this.getSuperEJB3AssociationEndFacade().getCollectionTypeImplementation();
288 }
289
290 /**
291 * The actual implementation of the collection type.
292 * @see EJB3AssociationEndFacade#getCollectionTypeImplementation(String arg)
293 */
294 public String getCollectionTypeImplementation(String arg)
295 {
296 return this.getSuperEJB3AssociationEndFacade().getCollectionTypeImplementation(arg);
297 }
298
299 /**
300 * Defines the column definition DDL used when creating table schema - use to override default
301 * container DDL.
302 * @see EJB3AssociationEndFacade#getColumnDefinition()
303 */
304 public String getColumnDefinition()
305 {
306 return this.getSuperEJB3AssociationEndFacade().getColumnDefinition();
307 }
308
309 /**
310 * Returns the default cascade property specified for UML composition.
311 * @see EJB3AssociationEndFacade#getCompositionCascadeType()
312 */
313 public String getCompositionCascadeType()
314 {
315 return this.getSuperEJB3AssociationEndFacade().getCompositionCascadeType();
316 }
317
318 /**
319 * Returns the default collection interface from namespace descriptor.
320 * @see EJB3AssociationEndFacade#getDefaultCollectionInterface()
321 */
322 public String getDefaultCollectionInterface()
323 {
324 return this.getSuperEJB3AssociationEndFacade().getDefaultCollectionInterface();
325 }
326
327 /**
328 * Get the fetch type for this association end(CMR).
329 * If no fetch type tagged value is specified and COMPOSITION_DEFINES_EAGER_LOADING is enabled,
330 * then:
331 * <ul><li>aggregation: lazy-loaded</li><li>composition: eager-loaded</li></ul>
332 * Otherwise, the default fetch type for CMR of type One2Many and Many2Many is LAZY.
333 * Default fetch type for CMR of type Many2One and One2One is EAGER.
334 * This will return either EAGER or LAZY.
335 * @see EJB3AssociationEndFacade#getFetchType()
336 */
337 public String getFetchType()
338 {
339 return this.getSuperEJB3AssociationEndFacade().getFetchType();
340 }
341
342 /**
343 * Returns the name of the foreign key constraint to use for name property of
344 * org.hibernate.annotations.ForeignKey annotation used for Many-To-One,
345 * One-To-One and Many-To-Many relationships.
346 * @see EJB3AssociationEndFacade#getForeignKeyConstraintName(String suffix)
347 */
348 public String getForeignKeyConstraintName(String suffix)
349 {
350 return this.getSuperEJB3AssociationEndFacade().getForeignKeyConstraintName(suffix);
351 }
352
353 /**
354 * Returns the name of the foreign key to use for name property of JoinColumn/InverseJoinColumn
355 * used in JoinTable for One-To-Many and Many-To-Many relationships.
356 * @see EJB3AssociationEndFacade#getForeignKeyName(String suffix)
357 */
358 public String getForeignKeyName(String suffix)
359 {
360 return this.getSuperEJB3AssociationEndFacade().getForeignKeyName(suffix);
361 }
362
363 /**
364 * Returns the getter name for the label name of the display attribute of the manageable entity.
365 * @see EJB3AssociationEndFacade#getGetterLabelName()
366 */
367 public String getGetterLabelName()
368 {
369 return this.getSuperEJB3AssociationEndFacade().getGetterLabelName();
370 }
371
372 /**
373 * Returns the Hibernate cascade attribute of this association end.
374 * @see EJB3AssociationEndFacade#getHibernateCascadeType()
375 */
376 public String getHibernateCascadeType()
377 {
378 return this.getSuperEJB3AssociationEndFacade().getHibernateCascadeType();
379 }
380
381 /**
382 * Returns the label name for the association end used as the display attribute for manageable
383 * entities.
384 * @see EJB3AssociationEndFacade#getLabelName()
385 */
386 public String getLabelName()
387 {
388 return this.getSuperEJB3AssociationEndFacade().getLabelName();
389 }
390
391 /**
392 * The order by clause set to order the returning Collection object on the many side of an
393 * association.
394 * @see EJB3AssociationEndFacade#getOrderByClause()
395 */
396 public String getOrderByClause()
397 {
398 return this.getSuperEJB3AssociationEndFacade().getOrderByClause();
399 }
400
401 /**
402 * Returns the setter name for the label name of the display attribute of the manageable entity.
403 * @see EJB3AssociationEndFacade#getSetterLabelName()
404 */
405 public String getSetterLabelName()
406 {
407 return this.getSuperEJB3AssociationEndFacade().getSetterLabelName();
408 }
409
410 /**
411 * Returns true if the tagged value with the specified name exists for the association end.
412 * @see EJB3AssociationEndFacade#hasTaggedValue(String name)
413 */
414 public boolean hasTaggedValue(String name)
415 {
416 return this.getSuperEJB3AssociationEndFacade().hasTaggedValue(name);
417 }
418
419 /**
420 * Returns true if association caching has been enabled via namespace property
421 * hibernateEnableAssociationCache.
422 * @see EJB3AssociationEndFacade#isAssociationCacheEnabled()
423 */
424 public boolean isAssociationCacheEnabled()
425 {
426 return this.getSuperEJB3AssociationEndFacade().isAssociationCacheEnabled();
427 }
428
429 /**
430 * Returns true if the collection type is a collection. This will only be the case if the
431 * association end multiplicity is defined as ordered.
432 * @see EJB3AssociationEndFacade#isCollection()
433 */
434 public boolean isCollection()
435 {
436 return this.getSuperEJB3AssociationEndFacade().isCollection();
437 }
438
439 /**
440 * Returns true if the collection interface for this association end is java.util.SortedSet.
441 * @see EJB3AssociationEndFacade#isCollectionInterfaceSortedSet()
442 */
443 public boolean isCollectionInterfaceSortedSet()
444 {
445 return this.getSuperEJB3AssociationEndFacade().isCollectionInterfaceSortedSet();
446 }
447
448 /**
449 * Whether the column can be nullable. False for identifier and unique fields. If
450 * andromda_persistence_column_nullable tag is set, the tagged value is used. Otherwise,
451 * determine if this attribute is required from the multiplicity set on the attribute.
452 * @see EJB3AssociationEndFacade#isColumnNullable()
453 */
454 public boolean isColumnNullable()
455 {
456 return this.getSuperEJB3AssociationEndFacade().isColumnNullable();
457 }
458
459 /**
460 * Determine if the fetch type for this entity relationship end is eager loading.
461 * @see EJB3AssociationEndFacade#isEager()
462 */
463 public boolean isEager()
464 {
465 return this.getSuperEJB3AssociationEndFacade().isEager();
466 }
467
468 /**
469 * Returns true if a foreign key constraint has been defined explicitly by the user. Otherwise
470 * returns false. This will determine if the ForeignKey annotation will be rendered. We
471 * require this because there is no clean way of defining the constraint name for all
472 * constraints as there may be a chance that two constraints may have the same name. This
473 * vilates the database integrity.
474 * @see EJB3AssociationEndFacade#isForeignKeyConstraintDefined()
475 */
476 public boolean isForeignKeyConstraintDefined()
477 {
478 return this.getSuperEJB3AssociationEndFacade().isForeignKeyConstraintDefined();
479 }
480
481 /**
482 * Returns true if a Hibernate cascade attribute is defined for this association end.
483 * @see EJB3AssociationEndFacade#isHibernateCascadeExists()
484 */
485 public boolean isHibernateCascadeExists()
486 {
487 return this.getSuperEJB3AssociationEndFacade().isHibernateCascadeExists();
488 }
489
490 /**
491 * Determine if the fetch type for this entity relationship end is lazy loading.
492 * @see EJB3AssociationEndFacade#isLazy()
493 */
494 public boolean isLazy()
495 {
496 return this.getSuperEJB3AssociationEndFacade().isLazy();
497 }
498
499 /**
500 * Returns true if the collection type is a list. This will only be the case if the association
501 * end multiplicity is defined as ordered.
502 * @see EJB3AssociationEndFacade#isList()
503 */
504 public boolean isList()
505 {
506 return this.getSuperEJB3AssociationEndFacade().isList();
507 }
508
509 /**
510 * Returns true if the collection type is a map. This will only be the case if the association
511 * end multiplicity is defined as unordered.
512 * @see EJB3AssociationEndFacade#isMap()
513 */
514 public boolean isMap()
515 {
516 return this.getSuperEJB3AssociationEndFacade().isMap();
517 }
518
519 /**
520 * Sets the optional attribute on the annotation to determine if a null value is allowed. If
521 * set to false, non-null relationships must always exist. If the andromda_persistence_optional
522 * tag is set, then use the tagged value, otherwise determine if null value is allowed by way of
523 * multiplicity on the association end.
524 * @see EJB3AssociationEndFacade#isOptional()
525 */
526 public boolean isOptional()
527 {
528 return this.getSuperEJB3AssociationEndFacade().isOptional();
529 }
530
531 /**
532 * Determines if this association end if the owning side. Used in one-to-one and many-to-many
533 * relationships.
534 * @see EJB3AssociationEndFacade#isOwning()
535 */
536 public boolean isOwning()
537 {
538 return this.getSuperEJB3AssociationEndFacade().isOwning();
539 }
540
541 /**
542 * Returns true if the collection type is a set. This will only be the case if the association
543 * end multiplicity is defined as unordered.
544 * @see EJB3AssociationEndFacade#isSet()
545 */
546 public boolean isSet()
547 {
548 return this.getSuperEJB3AssociationEndFacade().isSet();
549 }
550
551 /**
552 * A name suitable for use when adding new elements to this association end in programming code.
553 * @see AssociationEndFacade#getAdderName()
554 */
555 public String getAdderName()
556 {
557 return this.getSuperEJB3AssociationEndFacade().getAdderName();
558 }
559
560 /**
561 * Returns the value of the 'Aggregation' attribute (none, shared, composite). The default value
562 * is "none". The literals are from the enumeration org.eclipse.uml2.uml.AggregationKind.
563 * Specifies the kind of aggregation that applies to the Property.
564 * @see AssociationEndFacade#getAggregationKind()
565 */
566 public String getAggregationKind()
567 {
568 return this.getSuperEJB3AssociationEndFacade().getAggregationKind();
569 }
570
571 /**
572 * The association owning this association end.
573 * @see AssociationEndFacade#getAssociation()
574 */
575 public AssociationFacade getAssociation()
576 {
577 return this.getSuperEJB3AssociationEndFacade().getAssociation();
578 }
579
580 /**
581 * UML2: Returns the value of the 'Default' attribute. Specifies a String that represents a
582 * value to be used when no argument is supplied for the Property. A String that is evaluated to
583 * give a default value for the Property when an object of the owning Classifier is
584 * instantiated. Can be something like: new ValueObject(values);
585 * @see AssociationEndFacade#getDefault()
586 */
587 public String getDefault()
588 {
589 return this.getSuperEJB3AssociationEndFacade().getDefault();
590 }
591
592 /**
593 * A name suitable for use when accessing this association end in programming code.
594 * @see AssociationEndFacade#getGetterName()
595 */
596 public String getGetterName()
597 {
598 return this.getSuperEJB3AssociationEndFacade().getGetterName();
599 }
600
601 /**
602 * The name of the type that is returned on the accessor and mutator operations, determined in
603 * part by the multiplicity.
604 * @see AssociationEndFacade#getGetterSetterTypeName()
605 */
606 public String getGetterSetterTypeName()
607 {
608 return this.getSuperEJB3AssociationEndFacade().getGetterSetterTypeName();
609 }
610
611 /**
612 * the lower value for the multiplicity
613 * -only applicable for UML2
614 * @see AssociationEndFacade#getLower()
615 */
616 public int getLower()
617 {
618 return this.getSuperEJB3AssociationEndFacade().getLower();
619 }
620
621 /**
622 * The other association end owned by this end's association.
623 * @see AssociationEndFacade#getOtherEnd()
624 */
625 public AssociationEndFacade getOtherEnd()
626 {
627 return this.getSuperEJB3AssociationEndFacade().getOtherEnd();
628 }
629
630 /**
631 * A name suitable for use when removing element from this association end in programming code.
632 * @see AssociationEndFacade#getRemoverName()
633 */
634 public String getRemoverName()
635 {
636 return this.getSuperEJB3AssociationEndFacade().getRemoverName();
637 }
638
639 /**
640 * A name suitable for use when accessing this association end in programming code.
641 * @see AssociationEndFacade#getSetterName()
642 */
643 public String getSetterName()
644 {
645 return this.getSuperEJB3AssociationEndFacade().getSetterName();
646 }
647
648 /**
649 * The classifier attached to this association end.
650 * @see AssociationEndFacade#getType()
651 */
652 public ClassifierFacade getType()
653 {
654 return this.getSuperEJB3AssociationEndFacade().getType();
655 }
656
657 /**
658 * the upper value for the multiplicity (will be -1 for *)
659 * -only applicable for UML2
660 * @see AssociationEndFacade#getUpper()
661 */
662 public int getUpper()
663 {
664 return this.getSuperEJB3AssociationEndFacade().getUpper();
665 }
666
667 /**
668 * True if this association end represents an aggregation relationship.
669 * @see AssociationEndFacade#isAggregation()
670 */
671 public boolean isAggregation()
672 {
673 return this.getSuperEJB3AssociationEndFacade().isAggregation();
674 }
675
676 /**
677 * Is true if update of one side of the association should also update the other side. false if
678 * not.
679 * @see AssociationEndFacade#isBidirectional()
680 */
681 public boolean isBidirectional()
682 {
683 return this.getSuperEJB3AssociationEndFacade().isBidirectional();
684 }
685
686 /**
687 * Returns whether or not (true/false) this association end is the child end of the assocation
688 * (i.e. the other end's aggregation is composition).
689 * @see AssociationEndFacade#isChild()
690 */
691 public boolean isChild()
692 {
693 return this.getSuperEJB3AssociationEndFacade().isChild();
694 }
695
696 /**
697 * True if this association end represents a composition relationship.
698 * @see AssociationEndFacade#isComposition()
699 */
700 public boolean isComposition()
701 {
702 return this.getSuperEJB3AssociationEndFacade().isComposition();
703 }
704
705 /**
706 * If the association end is derived (its value is computed). UML2 only. UML14 always returns
707 * false. Default=false.
708 * @see AssociationEndFacade#isDerived()
709 */
710 public boolean isDerived()
711 {
712 return this.getSuperEJB3AssociationEndFacade().isDerived();
713 }
714
715 /**
716 * IsLeaf property in the association end property. If true, attribute is final, cannot be
717 * extended or implemented by a descendant. Default=false.
718 * @see AssociationEndFacade#isLeaf()
719 */
720 public boolean isLeaf()
721 {
722 return this.getSuperEJB3AssociationEndFacade().isLeaf();
723 }
724
725 /**
726 * True if this association end's multiplicity is greater than one.
727 * @see AssociationEndFacade#isMany()
728 */
729 public boolean isMany()
730 {
731 return this.getSuperEJB3AssociationEndFacade().isMany();
732 }
733
734 /**
735 * True if this association end's and the other end's multiplicities are both many.
736 * @see AssociationEndFacade#isMany2Many()
737 */
738 public boolean isMany2Many()
739 {
740 return this.getSuperEJB3AssociationEndFacade().isMany2Many();
741 }
742
743 /**
744 * True if this association end's multiplicity is many while the other end's is one.
745 * @see AssociationEndFacade#isMany2One()
746 */
747 public boolean isMany2One()
748 {
749 return this.getSuperEJB3AssociationEndFacade().isMany2One();
750 }
751
752 /**
753 * True if it is possible to navigate from the other end to this association end .
754 * @see AssociationEndFacade#isNavigable()
755 */
756 public boolean isNavigable()
757 {
758 return this.getSuperEJB3AssociationEndFacade().isNavigable();
759 }
760
761 /**
762 * True if this association end's multiplicity is one while the other end's is many.
763 * @see AssociationEndFacade#isOne2Many()
764 */
765 public boolean isOne2Many()
766 {
767 return this.getSuperEJB3AssociationEndFacade().isOne2Many();
768 }
769
770 /**
771 * True if this association end's and the other end's multiplicities are both one.
772 * @see AssociationEndFacade#isOne2One()
773 */
774 public boolean isOne2One()
775 {
776 return this.getSuperEJB3AssociationEndFacade().isOne2One();
777 }
778
779 /**
780 * Indicates whether or not the association ends are ordered (if multiplicity is greater than
781 * 1).
782 * @see AssociationEndFacade#isOrdered()
783 */
784 public boolean isOrdered()
785 {
786 return this.getSuperEJB3AssociationEndFacade().isOrdered();
787 }
788
789 /**
790 * True if the association end cannot be changed.
791 * @see AssociationEndFacade#isReadOnly()
792 */
793 public boolean isReadOnly()
794 {
795 return this.getSuperEJB3AssociationEndFacade().isReadOnly();
796 }
797
798 /**
799 * True if this association end's multiplicity is strictly greater than zero.
800 * @see AssociationEndFacade#isRequired()
801 */
802 public boolean isRequired()
803 {
804 return this.getSuperEJB3AssociationEndFacade().isRequired();
805 }
806
807 /**
808 * Indicates if this associationEnd is 'static', meaning it has a classifier scope.
809 * @see AssociationEndFacade#isStatic()
810 */
811 public boolean isStatic()
812 {
813 return this.getSuperEJB3AssociationEndFacade().isStatic();
814 }
815
816 /**
817 * UML2: If the association attribute is unique within the Collection type. UML14 always returns
818 * false. Unique+Ordered determines the implementation Collection type. Default=false.
819 * @see AssociationEndFacade#isUnique()
820 */
821 public boolean isUnique()
822 {
823 return this.getSuperEJB3AssociationEndFacade().isUnique();
824 }
825
826 /**
827 * The name of the index to create on a column that persists the foreign key attribute.
828 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getColumnIndex()
829 */
830 public String getColumnIndex()
831 {
832 return this.getSuperEJB3AssociationEndFacade().getColumnIndex();
833 }
834
835 /**
836 * The name of the column that makes up the foreign key.
837 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getColumnName()
838 */
839 public String getColumnName()
840 {
841 return this.getSuperEJB3AssociationEndFacade().getColumnName();
842 }
843
844 /**
845 * The name of the foreign key constraint to use for databases.
846 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getForeignKeyConstraintName()
847 */
848 public String getForeignKeyConstraintName()
849 {
850 return this.getSuperEJB3AssociationEndFacade().getForeignKeyConstraintName();
851 }
852
853 /**
854 * The current foreign key suffix specified for this entity association end facade.
855 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getForeignKeySuffix()
856 */
857 public String getForeignKeySuffix()
858 {
859 return this.getSuperEJB3AssociationEndFacade().getForeignKeySuffix();
860 }
861
862 /**
863 * The SQL type for this the foreign key column of this association end.
864 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getSqlType()
865 */
866 public String getSqlType()
867 {
868 return this.getSuperEJB3AssociationEndFacade().getSqlType();
869 }
870
871 /**
872 * The name of the unique-key that this unique association end belongs
873 * @see org.andromda.metafacades.uml.EntityAssociationEnd#getUniqueGroup()
874 */
875 public String getUniqueGroup()
876 {
877 return this.getSuperEJB3AssociationEndFacade().getUniqueGroup();
878 }
879
880 /**
881 * Indicates whether or not a foreign identifier should be used for the entity that owns this
882 * association end. This would only make sense in the case of a child in a one-to-one
883 * parent-child association. If this flag is true, then the identifier of this entity should
884 * also be used as the foreign key to the related parent entity.
885 * @see org.andromda.metafacades.uml.EntityAssociationEnd#isForeignIdentifier()
886 */
887 public boolean isForeignIdentifier()
888 {
889 return this.getSuperEJB3AssociationEndFacade().isForeignIdentifier();
890 }
891
892 /**
893 * True if this association is an identifier for its entity.
894 * @see org.andromda.metafacades.uml.EntityAssociationEnd#isIdentifier()
895 */
896 public boolean isIdentifier()
897 {
898 return this.getSuperEJB3AssociationEndFacade().isIdentifier();
899 }
900
901 /**
902 * True if the associationEnd is marked with identifiers stereotype, false otherwise.
903 * @see org.andromda.metafacades.uml.EntityAssociationEnd#isIdentifiersPresent()
904 */
905 public boolean isIdentifiersPresent()
906 {
907 return this.getSuperEJB3AssociationEndFacade().isIdentifiersPresent();
908 }
909
910 /**
911 * Indicates this association end should be ignored by the persistence layer.
912 * @see org.andromda.metafacades.uml.EntityAssociationEnd#isTransient()
913 */
914 public boolean isTransient()
915 {
916 return this.getSuperEJB3AssociationEndFacade().isTransient();
917 }
918
919 /**
920 * Copies all tagged values from the given ModelElementFacade to this model element facade.
921 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
922 */
923 public void copyTaggedValues(ModelElementFacade element)
924 {
925 this.getSuperEJB3AssociationEndFacade().copyTaggedValues(element);
926 }
927
928 /**
929 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
930 * one found will be returned.
931 * @see ModelElementFacade#findTaggedValue(String tagName)
932 */
933 public Object findTaggedValue(String tagName)
934 {
935 return this.getSuperEJB3AssociationEndFacade().findTaggedValue(tagName);
936 }
937
938 /**
939 * Returns all the values for the tagged value with the specified name. The returned collection
940 * will contains only String instances, or will be empty. Never null.
941 * @see ModelElementFacade#findTaggedValues(String tagName)
942 */
943 public Collection<Object> findTaggedValues(String tagName)
944 {
945 return this.getSuperEJB3AssociationEndFacade().findTaggedValues(tagName);
946 }
947
948 /**
949 * Returns the fully qualified name of the model element. The fully qualified name includes
950 * complete package qualified name of the underlying model element. The templates parameter will
951 * be replaced by the correct one given the binding relation of the parameter to this element.
952 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
953 */
954 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
955 {
956 return this.getSuperEJB3AssociationEndFacade().getBindedFullyQualifiedName(bindedElement);
957 }
958
959 /**
960 * Gets all constraints belonging to the model element.
961 * @see ModelElementFacade#getConstraints()
962 */
963 public Collection<ConstraintFacade> getConstraints()
964 {
965 return this.getSuperEJB3AssociationEndFacade().getConstraints();
966 }
967
968 /**
969 * Returns the constraints of the argument kind that have been placed onto this model. Typical
970 * kinds are "inv", "pre" and "post". Other kinds are possible.
971 * @see ModelElementFacade#getConstraints(String kind)
972 */
973 public Collection<ConstraintFacade> getConstraints(String kind)
974 {
975 return this.getSuperEJB3AssociationEndFacade().getConstraints(kind);
976 }
977
978 /**
979 * Gets the documentation for the model element, The indent argument is prefixed to each line.
980 * By default this method wraps lines after 64 characters.
981 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
982 * @see ModelElementFacade#getDocumentation(String indent)
983 */
984 public String getDocumentation(String indent)
985 {
986 return this.getSuperEJB3AssociationEndFacade().getDocumentation(indent);
987 }
988
989 /**
990 * This method returns the documentation for this model element, with the lines wrapped after
991 * the specified number of characters, values of less than 1 will indicate no line wrapping is
992 * required. By default paragraphs are returned as HTML.
993 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
994 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
995 */
996 public String getDocumentation(String indent, int lineLength)
997 {
998 return this.getSuperEJB3AssociationEndFacade().getDocumentation(indent, lineLength);
999 }
1000
1001 /**
1002 * This method returns the documentation for this model element, with the lines wrapped after
1003 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1004 * required. HTML style determines if HTML Escaping is applied.
1005 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
1006 */
1007 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
1008 {
1009 return this.getSuperEJB3AssociationEndFacade().getDocumentation(indent, lineLength, htmlStyle);
1010 }
1011
1012 /**
1013 * The fully qualified name of this model element.
1014 * @see ModelElementFacade#getFullyQualifiedName()
1015 */
1016 public String getFullyQualifiedName()
1017 {
1018 return this.getSuperEJB3AssociationEndFacade().getFullyQualifiedName();
1019 }
1020
1021 /**
1022 * Returns the fully qualified name of the model element. The fully qualified name includes
1023 * complete package qualified name of the underlying model element. If modelName is true, then
1024 * the original name of the model element (the name contained within the model) will be the name
1025 * returned, otherwise a name from a language mapping will be returned.
1026 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
1027 */
1028 public String getFullyQualifiedName(boolean modelName)
1029 {
1030 return this.getSuperEJB3AssociationEndFacade().getFullyQualifiedName(modelName);
1031 }
1032
1033 /**
1034 * Returns the fully qualified name as a path, the returned value always starts with out a slash
1035 * '/'.
1036 * @see ModelElementFacade#getFullyQualifiedNamePath()
1037 */
1038 public String getFullyQualifiedNamePath()
1039 {
1040 return this.getSuperEJB3AssociationEndFacade().getFullyQualifiedNamePath();
1041 }
1042
1043 /**
1044 * Gets the unique identifier of the underlying model element.
1045 * @see ModelElementFacade#getId()
1046 */
1047 public String getId()
1048 {
1049 return this.getSuperEJB3AssociationEndFacade().getId();
1050 }
1051
1052 /**
1053 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
1054 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
1055 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
1056 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
1057 * JDK5 compiler level.
1058 * @see ModelElementFacade#getKeywords()
1059 */
1060 public Collection<String> getKeywords()
1061 {
1062 return this.getSuperEJB3AssociationEndFacade().getKeywords();
1063 }
1064
1065 /**
1066 * UML2: Retrieves a localized label for this named element.
1067 * @see ModelElementFacade#getLabel()
1068 */
1069 public String getLabel()
1070 {
1071 return this.getSuperEJB3AssociationEndFacade().getLabel();
1072 }
1073
1074 /**
1075 * The language mappings that have been set for this model element.
1076 * @see ModelElementFacade#getLanguageMappings()
1077 */
1078 public TypeMappings getLanguageMappings()
1079 {
1080 return this.getSuperEJB3AssociationEndFacade().getLanguageMappings();
1081 }
1082
1083 /**
1084 * Return the model containing this model element (multiple models may be loaded and processed
1085 * at the same time).
1086 * @see ModelElementFacade#getModel()
1087 */
1088 public ModelFacade getModel()
1089 {
1090 return this.getSuperEJB3AssociationEndFacade().getModel();
1091 }
1092
1093 /**
1094 * The name of the model element.
1095 * @see ModelElementFacade#getName()
1096 */
1097 public String getName()
1098 {
1099 return this.getSuperEJB3AssociationEndFacade().getName();
1100 }
1101
1102 /**
1103 * Gets the package to which this model element belongs.
1104 * @see ModelElementFacade#getPackage()
1105 */
1106 public ModelElementFacade getPackage()
1107 {
1108 return this.getSuperEJB3AssociationEndFacade().getPackage();
1109 }
1110
1111 /**
1112 * The name of this model element's package.
1113 * @see ModelElementFacade#getPackageName()
1114 */
1115 public String getPackageName()
1116 {
1117 return this.getSuperEJB3AssociationEndFacade().getPackageName();
1118 }
1119
1120 /**
1121 * Gets the package name (optionally providing the ability to retrieve the model name and not
1122 * the mapped name).
1123 * @see ModelElementFacade#getPackageName(boolean modelName)
1124 */
1125 public String getPackageName(boolean modelName)
1126 {
1127 return this.getSuperEJB3AssociationEndFacade().getPackageName(modelName);
1128 }
1129
1130 /**
1131 * Returns the package as a path, the returned value always starts with out a slash '/'.
1132 * @see ModelElementFacade#getPackagePath()
1133 */
1134 public String getPackagePath()
1135 {
1136 return this.getSuperEJB3AssociationEndFacade().getPackagePath();
1137 }
1138
1139 /**
1140 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
1141 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
1142 * the names of the containing namespaces starting at the root of the hierarchy and ending with
1143 * the name of the NamedElement itself.
1144 * @see ModelElementFacade#getQualifiedName()
1145 */
1146 public String getQualifiedName()
1147 {
1148 return this.getSuperEJB3AssociationEndFacade().getQualifiedName();
1149 }
1150
1151 /**
1152 * Gets the root package for the model element.
1153 * @see ModelElementFacade#getRootPackage()
1154 */
1155 public PackageFacade getRootPackage()
1156 {
1157 return this.getSuperEJB3AssociationEndFacade().getRootPackage();
1158 }
1159
1160 /**
1161 * Gets the dependencies for which this model element is the source.
1162 * @see ModelElementFacade#getSourceDependencies()
1163 */
1164 public Collection<DependencyFacade> getSourceDependencies()
1165 {
1166 return this.getSuperEJB3AssociationEndFacade().getSourceDependencies();
1167 }
1168
1169 /**
1170 * If this model element is the context of an activity graph, this represents that activity
1171 * graph.
1172 * @see ModelElementFacade#getStateMachineContext()
1173 */
1174 public StateMachineFacade getStateMachineContext()
1175 {
1176 return this.getSuperEJB3AssociationEndFacade().getStateMachineContext();
1177 }
1178
1179 /**
1180 * The collection of ALL stereotype names for this model element.
1181 * @see ModelElementFacade#getStereotypeNames()
1182 */
1183 public Collection<String> getStereotypeNames()
1184 {
1185 return this.getSuperEJB3AssociationEndFacade().getStereotypeNames();
1186 }
1187
1188 /**
1189 * Gets all stereotypes for this model element.
1190 * @see ModelElementFacade#getStereotypes()
1191 */
1192 public Collection<StereotypeFacade> getStereotypes()
1193 {
1194 return this.getSuperEJB3AssociationEndFacade().getStereotypes();
1195 }
1196
1197 /**
1198 * Return the TaggedValues associated with this model element, under all stereotypes.
1199 * @see ModelElementFacade#getTaggedValues()
1200 */
1201 public Collection<TaggedValueFacade> getTaggedValues()
1202 {
1203 return this.getSuperEJB3AssociationEndFacade().getTaggedValues();
1204 }
1205
1206 /**
1207 * Gets the dependencies for which this model element is the target.
1208 * @see ModelElementFacade#getTargetDependencies()
1209 */
1210 public Collection<DependencyFacade> getTargetDependencies()
1211 {
1212 return this.getSuperEJB3AssociationEndFacade().getTargetDependencies();
1213 }
1214
1215 /**
1216 * Get the template parameter for this model element having the parameterName
1217 * @see ModelElementFacade#getTemplateParameter(String parameterName)
1218 */
1219 public Object getTemplateParameter(String parameterName)
1220 {
1221 return this.getSuperEJB3AssociationEndFacade().getTemplateParameter(parameterName);
1222 }
1223
1224 /**
1225 * Get the template parameters for this model element
1226 * @see ModelElementFacade#getTemplateParameters()
1227 */
1228 public Collection<TemplateParameterFacade> getTemplateParameters()
1229 {
1230 return this.getSuperEJB3AssociationEndFacade().getTemplateParameters();
1231 }
1232
1233 /**
1234 * The visibility (i.e. public, private, protected or package) of the model element, will
1235 * attempt a lookup for these values in the language mappings (if any).
1236 * @see ModelElementFacade#getVisibility()
1237 */
1238 public String getVisibility()
1239 {
1240 return this.getSuperEJB3AssociationEndFacade().getVisibility();
1241 }
1242
1243 /**
1244 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
1245 * is taken into account when searching for the stereotype), false otherwise.
1246 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
1247 */
1248 public boolean hasExactStereotype(String stereotypeName)
1249 {
1250 return this.getSuperEJB3AssociationEndFacade().hasExactStereotype(stereotypeName);
1251 }
1252
1253 /**
1254 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
1255 * pipe, semicolon, or << >>
1256 * @see ModelElementFacade#hasKeyword(String keywordName)
1257 */
1258 public boolean hasKeyword(String keywordName)
1259 {
1260 return this.getSuperEJB3AssociationEndFacade().hasKeyword(keywordName);
1261 }
1262
1263 /**
1264 * Returns true if the model element has the specified stereotype. If the stereotype itself
1265 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
1266 * one of the stereotype's ancestors has a matching name this method will return true, false
1267 * otherwise.
1268 * For example, if we have a certain stereotype called <<exception>> and a model element has a
1269 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
1270 * method with 'stereotypeName' defined as 'exception' the method would return true since
1271 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
1272 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
1273 * @see ModelElementFacade#hasStereotype(String stereotypeName)
1274 */
1275 public boolean hasStereotype(String stereotypeName)
1276 {
1277 return this.getSuperEJB3AssociationEndFacade().hasStereotype(stereotypeName);
1278 }
1279
1280 /**
1281 * True if there are target dependencies from this element that are instances of BindingFacade.
1282 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
1283 * @see ModelElementFacade#isBindingDependenciesPresent()
1284 */
1285 public boolean isBindingDependenciesPresent()
1286 {
1287 return this.getSuperEJB3AssociationEndFacade().isBindingDependenciesPresent();
1288 }
1289
1290 /**
1291 * Indicates if any constraints are present on this model element.
1292 * @see ModelElementFacade#isConstraintsPresent()
1293 */
1294 public boolean isConstraintsPresent()
1295 {
1296 return this.getSuperEJB3AssociationEndFacade().isConstraintsPresent();
1297 }
1298
1299 /**
1300 * Indicates if any documentation is present on this model element.
1301 * @see ModelElementFacade#isDocumentationPresent()
1302 */
1303 public boolean isDocumentationPresent()
1304 {
1305 return this.getSuperEJB3AssociationEndFacade().isDocumentationPresent();
1306 }
1307
1308 /**
1309 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
1310 * @see ModelElementFacade#isReservedWord()
1311 */
1312 public boolean isReservedWord()
1313 {
1314 return this.getSuperEJB3AssociationEndFacade().isReservedWord();
1315 }
1316
1317 /**
1318 * True is there are template parameters on this model element. For UML2, applies to Class,
1319 * Operation, Property, and Parameter.
1320 * @see ModelElementFacade#isTemplateParametersPresent()
1321 */
1322 public boolean isTemplateParametersPresent()
1323 {
1324 return this.getSuperEJB3AssociationEndFacade().isTemplateParametersPresent();
1325 }
1326
1327 /**
1328 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
1329 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
1330 * Enumerations and Interfaces, optionally applies on other model elements.
1331 * @see ModelElementFacade#isValidIdentifierName()
1332 */
1333 public boolean isValidIdentifierName()
1334 {
1335 return this.getSuperEJB3AssociationEndFacade().isValidIdentifierName();
1336 }
1337
1338 /**
1339 * Searches for the constraint with the specified 'name' on this model element, and if found
1340 * translates it using the specified 'translation' from a translation library discovered by the
1341 * framework.
1342 * @see ModelElementFacade#translateConstraint(String name, String translation)
1343 */
1344 public String translateConstraint(String name, String translation)
1345 {
1346 return this.getSuperEJB3AssociationEndFacade().translateConstraint(name, translation);
1347 }
1348
1349 /**
1350 * Translates all constraints belonging to this model element with the given 'translation'.
1351 * @see ModelElementFacade#translateConstraints(String translation)
1352 */
1353 public String[] translateConstraints(String translation)
1354 {
1355 return this.getSuperEJB3AssociationEndFacade().translateConstraints(translation);
1356 }
1357
1358 /**
1359 * Translates the constraints of the specified 'kind' belonging to this model element.
1360 * @see ModelElementFacade#translateConstraints(String kind, String translation)
1361 */
1362 public String[] translateConstraints(String kind, String translation)
1363 {
1364 return this.getSuperEJB3AssociationEndFacade().translateConstraints(kind, translation);
1365 }
1366
1367 /**
1368 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
1369 */
1370 @Override
1371 public void initialize()
1372 {
1373 this.getSuperManageableEntityAssociationEnd().initialize();
1374 this.getSuperEJB3AssociationEndFacade().initialize();
1375 }
1376
1377 /**
1378 * @return Object getSuperManageableEntityAssociationEnd().getValidationOwner()
1379 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
1380 */
1381 @Override
1382 public Object getValidationOwner()
1383 {
1384 Object owner = this.getSuperManageableEntityAssociationEnd().getValidationOwner();
1385 if (owner == null)
1386 {
1387 owner = this.getSuperEJB3AssociationEndFacade().getValidationOwner();
1388 }
1389 return owner;
1390 }
1391
1392 /**
1393 * @return String getSuperManageableEntityAssociationEnd().getValidationName()
1394 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
1395 */
1396 @Override
1397 public String getValidationName()
1398 {
1399 String name = this.getSuperManageableEntityAssociationEnd().getValidationName();
1400 if (name == null)
1401 {
1402 name = this.getSuperEJB3AssociationEndFacade().getValidationName();
1403 }
1404 return name;
1405 }
1406
1407 /**
1408 * @param validationMessages Collection<ModelValidationMessage>
1409 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
1410 */
1411 @Override
1412 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
1413 {
1414 this.getSuperManageableEntityAssociationEnd().validateInvariants(validationMessages);
1415 this.getSuperEJB3AssociationEndFacade().validateInvariants(validationMessages);
1416 }
1417
1418 /**
1419 * The property that stores the name of the metafacade.
1420 */
1421 private static final String NAME_PROPERTY = "name";
1422 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
1423
1424 /**
1425 * @see Object#toString()
1426 */
1427 @Override
1428 public String toString()
1429 {
1430 final StringBuilder toString = new StringBuilder(this.getClass().getName());
1431 toString.append("[");
1432 try
1433 {
1434 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
1435 }
1436 catch (final Throwable tryAgain)
1437 {
1438 try
1439 {
1440 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
1441 }
1442 catch (final Throwable ignore)
1443 {
1444 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
1445 }
1446 }
1447 toString.append("]");
1448 return toString.toString();
1449 }
1450 }