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 }