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