001// license-header java merge-point 002// 003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify! 004// 005package org.andromda.cartridges.ejb3.metafacades; 006 007import java.util.Collection; 008import org.andromda.core.common.Introspector; 009import org.andromda.core.metafacade.MetafacadeBase; 010import org.andromda.core.metafacade.MetafacadeFactory; 011import org.andromda.core.metafacade.ModelValidationMessage; 012import org.andromda.metafacades.uml.ClassifierFacade; 013import org.andromda.metafacades.uml.ConstraintFacade; 014import org.andromda.metafacades.uml.DependencyFacade; 015import org.andromda.metafacades.uml.EntityAttribute; 016import org.andromda.metafacades.uml.EnumerationFacade; 017import org.andromda.metafacades.uml.ModelElementFacade; 018import org.andromda.metafacades.uml.ModelFacade; 019import org.andromda.metafacades.uml.PackageFacade; 020import org.andromda.metafacades.uml.StateMachineFacade; 021import org.andromda.metafacades.uml.StereotypeFacade; 022import org.andromda.metafacades.uml.TaggedValueFacade; 023import org.andromda.metafacades.uml.TemplateParameterFacade; 024import org.andromda.metafacades.uml.TypeMappings; 025 026/** 027 * Represents an EJB attribute. 028 * MetafacadeLogic for EJB3EntityAttributeFacade 029 * 030 * @see EJB3EntityAttributeFacade 031 */ 032public abstract class EJB3EntityAttributeFacadeLogic 033 extends MetafacadeBase 034 implements EJB3EntityAttributeFacade 035{ 036 /** 037 * The underlying UML object 038 * @see Object 039 */ 040 protected Object metaObject; 041 042 /** Create Metafacade implementation instance using the MetafacadeFactory from the context 043 * @param metaObjectIn 044 * @param context 045 */ 046 protected EJB3EntityAttributeFacadeLogic(Object metaObjectIn, String context) 047 { 048 super(metaObjectIn, getContext(context)); 049 this.superEntityAttribute = 050 (EntityAttribute) 051 MetafacadeFactory.getInstance().createFacadeImpl( 052 "org.andromda.metafacades.uml.EntityAttribute", 053 metaObjectIn, 054 getContext(context)); 055 this.metaObject = metaObjectIn; 056 } 057 058 /** 059 * Gets the context for this metafacade logic instance. 060 * @param context String. Set to EJB3EntityAttributeFacade if null 061 * @return context String 062 */ 063 private static String getContext(String context) 064 { 065 if (context == null) 066 { 067 context = "org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade"; 068 } 069 return context; 070 } 071 072 private EntityAttribute superEntityAttribute; 073 private boolean superEntityAttributeInitialized = false; 074 075 /** 076 * Gets the EntityAttribute parent instance. 077 * @return this.superEntityAttribute EntityAttribute 078 */ 079 private EntityAttribute getSuperEntityAttribute() 080 { 081 if (!this.superEntityAttributeInitialized) 082 { 083 ((MetafacadeBase)this.superEntityAttribute).setMetafacadeContext(this.getMetafacadeContext()); 084 this.superEntityAttributeInitialized = true; 085 } 086 return this.superEntityAttribute; 087 } 088 089 /** Reset context only for non-root metafacades 090 * @param context 091 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context) 092 */ 093 @Override 094 public void resetMetafacadeContext(String context) 095 { 096 if (!this.contextRoot) // reset context only for non-root metafacades 097 { 098 context = getContext(context); // to have same value as in original constructor call 099 setMetafacadeContext (context); 100 if (this.superEntityAttributeInitialized) 101 { 102 ((MetafacadeBase)this.superEntityAttribute).resetMetafacadeContext(context); 103 } 104 } 105 } 106 107 /** 108 * @return boolean true always 109 * @see EJB3EntityAttributeFacade 110 */ 111 public boolean isEJB3EntityAttributeFacadeMetaType() 112 { 113 return true; 114 } 115 116 // --------------- attributes --------------------- 117 118 /** 119 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getFetchType() 120 * @return String 121 */ 122 protected abstract String handleGetFetchType(); 123 124 private String __fetchType1a; 125 private boolean __fetchType1aSet = false; 126 127 /** 128 * Gets the fetch type for this attribute. Default fetch type for attribute is EAGER. 129 * This will return either EAGER or LAZY. 130 * @return (String)handleGetFetchType() 131 */ 132 public final String getFetchType() 133 { 134 String fetchType1a = this.__fetchType1a; 135 if (!this.__fetchType1aSet) 136 { 137 // fetchType has no pre constraints 138 fetchType1a = handleGetFetchType(); 139 // fetchType has no post constraints 140 this.__fetchType1a = fetchType1a; 141 if (isMetafacadePropertyCachingEnabled()) 142 { 143 this.__fetchType1aSet = true; 144 } 145 } 146 return fetchType1a; 147 } 148 149 /** 150 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isVersion() 151 * @return boolean 152 */ 153 protected abstract boolean handleIsVersion(); 154 155 private boolean __version2a; 156 private boolean __version2aSet = false; 157 158 /** 159 * True is this attribute is a version property (optimistic lock value) for this entity class. 160 * @return (boolean)handleIsVersion() 161 */ 162 public final boolean isVersion() 163 { 164 boolean version2a = this.__version2a; 165 if (!this.__version2aSet) 166 { 167 // version has no pre constraints 168 version2a = handleIsVersion(); 169 // version has no post constraints 170 this.__version2a = version2a; 171 if (isMetafacadePropertyCachingEnabled()) 172 { 173 this.__version2aSet = true; 174 } 175 } 176 return version2a; 177 } 178 179 /** 180 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isLob() 181 * @return boolean 182 */ 183 protected abstract boolean handleIsLob(); 184 185 private boolean __lob3a; 186 private boolean __lob3aSet = false; 187 188 /** 189 * Returns true if the property type is specified as datatype::Blob or datatype::Clob. 190 * LOB type is CLOB for characters or BLOB for binary data. 191 * @return (boolean)handleIsLob() 192 */ 193 public final boolean isLob() 194 { 195 boolean lob3a = this.__lob3a; 196 if (!this.__lob3aSet) 197 { 198 // lob has no pre constraints 199 lob3a = handleIsLob(); 200 // lob has no post constraints 201 this.__lob3a = lob3a; 202 if (isMetafacadePropertyCachingEnabled()) 203 { 204 this.__lob3aSet = true; 205 } 206 } 207 return lob3a; 208 } 209 210 /** 211 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorType() 212 * @return String 213 */ 214 protected abstract String handleGetGeneratorType(); 215 216 private String __generatorType4a; 217 private boolean __generatorType4aSet = false; 218 219 /** 220 * Determine the generator type for the Id annotation on the entity attribute - the PK strategy. 221 * If the attribute type is numeric, the default generator type is AUTO. Otherwise, the 222 * generator type is NONE, ie for String types. 223 * @return (String)handleGetGeneratorType() 224 */ 225 public final String getGeneratorType() 226 { 227 String generatorType4a = this.__generatorType4a; 228 if (!this.__generatorType4aSet) 229 { 230 // generatorType has no pre constraints 231 generatorType4a = handleGetGeneratorType(); 232 // generatorType has no post constraints 233 this.__generatorType4a = generatorType4a; 234 if (isMetafacadePropertyCachingEnabled()) 235 { 236 this.__generatorType4aSet = true; 237 } 238 } 239 return generatorType4a; 240 } 241 242 /** 243 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getColumnDefinition() 244 * @return String 245 */ 246 protected abstract String handleGetColumnDefinition(); 247 248 private String __columnDefinition5a; 249 private boolean __columnDefinition5aSet = false; 250 251 /** 252 * Defines the column definition DDL used when creating table schema - use to override default 253 * container DDL. This is automatically defined if the attribute type is an enumeration. 254 * @return (String)handleGetColumnDefinition() 255 */ 256 public final String getColumnDefinition() 257 { 258 String columnDefinition5a = this.__columnDefinition5a; 259 if (!this.__columnDefinition5aSet) 260 { 261 // columnDefinition has no pre constraints 262 columnDefinition5a = handleGetColumnDefinition(); 263 // columnDefinition has no post constraints 264 this.__columnDefinition5a = columnDefinition5a; 265 if (isMetafacadePropertyCachingEnabled()) 266 { 267 this.__columnDefinition5aSet = true; 268 } 269 } 270 return columnDefinition5a; 271 } 272 273 /** 274 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getColumnPrecision() 275 * @return String 276 */ 277 protected abstract String handleGetColumnPrecision(); 278 279 private String __columnPrecision6a; 280 private boolean __columnPrecision6aSet = false; 281 282 /** 283 * Set the column precision value. Only applies to double and float columns. 284 * ie Use for setting dollar precision. 285 * @return (String)handleGetColumnPrecision() 286 */ 287 public final String getColumnPrecision() 288 { 289 String columnPrecision6a = this.__columnPrecision6a; 290 if (!this.__columnPrecision6aSet) 291 { 292 // columnPrecision has no pre constraints 293 columnPrecision6a = handleGetColumnPrecision(); 294 // columnPrecision has no post constraints 295 this.__columnPrecision6a = columnPrecision6a; 296 if (isMetafacadePropertyCachingEnabled()) 297 { 298 this.__columnPrecision6aSet = true; 299 } 300 } 301 return columnPrecision6a; 302 } 303 304 /** 305 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getColumnScale() 306 * @return String 307 */ 308 protected abstract String handleGetColumnScale(); 309 310 private String __columnScale7a; 311 private boolean __columnScale7aSet = false; 312 313 /** 314 * Column scale use denotes the decimal precision. 315 * ie Use to set the 2 digit cent scale. 316 * @return (String)handleGetColumnScale() 317 */ 318 public final String getColumnScale() 319 { 320 String columnScale7a = this.__columnScale7a; 321 if (!this.__columnScale7aSet) 322 { 323 // columnScale has no pre constraints 324 columnScale7a = handleGetColumnScale(); 325 // columnScale has no post constraints 326 this.__columnScale7a = columnScale7a; 327 if (isMetafacadePropertyCachingEnabled()) 328 { 329 this.__columnScale7aSet = true; 330 } 331 } 332 return columnScale7a; 333 } 334 335 /** 336 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isColumnNullable() 337 * @return boolean 338 */ 339 protected abstract boolean handleIsColumnNullable(); 340 341 private boolean __columnNullable8a; 342 private boolean __columnNullable8aSet = false; 343 344 /** 345 * Whether the column can be nullable. False for identifier and unique fields. If 346 * andromda_persistence_column_nullable tag is set, the tagged value is used. Otherwise, 347 * determine if this attribute is required from the multiplicity set on the attribute. 348 * @return (boolean)handleIsColumnNullable() 349 */ 350 public final boolean isColumnNullable() 351 { 352 boolean columnNullable8a = this.__columnNullable8a; 353 if (!this.__columnNullable8aSet) 354 { 355 // columnNullable has no pre constraints 356 columnNullable8a = handleIsColumnNullable(); 357 // columnNullable has no post constraints 358 this.__columnNullable8a = columnNullable8a; 359 if (isMetafacadePropertyCachingEnabled()) 360 { 361 this.__columnNullable8aSet = true; 362 } 363 } 364 return columnNullable8a; 365 } 366 367 /** 368 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isEager() 369 * @return boolean 370 */ 371 protected abstract boolean handleIsEager(); 372 373 private boolean __eager9a; 374 private boolean __eager9aSet = false; 375 376 /** 377 * Determine if the fetch type for this attribute is eager loading. 378 * @return (boolean)handleIsEager() 379 */ 380 public final boolean isEager() 381 { 382 boolean eager9a = this.__eager9a; 383 if (!this.__eager9aSet) 384 { 385 // eager has no pre constraints 386 eager9a = handleIsEager(); 387 // eager has no post constraints 388 this.__eager9a = eager9a; 389 if (isMetafacadePropertyCachingEnabled()) 390 { 391 this.__eager9aSet = true; 392 } 393 } 394 return eager9a; 395 } 396 397 /** 398 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isLazy() 399 * @return boolean 400 */ 401 protected abstract boolean handleIsLazy(); 402 403 private boolean __lazy10a; 404 private boolean __lazy10aSet = false; 405 406 /** 407 * Determine if the fetch type for this attribute is lazy loading. 408 * @return (boolean)handleIsLazy() 409 */ 410 public final boolean isLazy() 411 { 412 boolean lazy10a = this.__lazy10a; 413 if (!this.__lazy10aSet) 414 { 415 // lazy has no pre constraints 416 lazy10a = handleIsLazy(); 417 // lazy has no post constraints 418 this.__lazy10a = lazy10a; 419 if (isMetafacadePropertyCachingEnabled()) 420 { 421 this.__lazy10aSet = true; 422 } 423 } 424 return lazy10a; 425 } 426 427 /** 428 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorName() 429 * @return String 430 */ 431 protected abstract String handleGetGeneratorName(); 432 433 private String __generatorName11a; 434 private boolean __generatorName11aSet = false; 435 436 /** 437 * Return the name for the generator, if one exists and should exists for SequenceGenerator and 438 * TableGenerator, which can be reference by the id for its generator. 439 * @return (String)handleGetGeneratorName() 440 */ 441 public final String getGeneratorName() 442 { 443 String generatorName11a = this.__generatorName11a; 444 if (!this.__generatorName11aSet) 445 { 446 // generatorName has no pre constraints 447 generatorName11a = handleGetGeneratorName(); 448 // generatorName has no post constraints 449 this.__generatorName11a = generatorName11a; 450 if (isMetafacadePropertyCachingEnabled()) 451 { 452 this.__generatorName11aSet = true; 453 } 454 } 455 return generatorName11a; 456 } 457 458 /** 459 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorSourceName() 460 * @return String 461 */ 462 protected abstract String handleGetGeneratorSourceName(); 463 464 private String __generatorSourceName12a; 465 private boolean __generatorSourceName12aSet = false; 466 467 /** 468 * Returns the sequence name or table name for the generator depending on the generator type 469 * specified. 470 * @return (String)handleGetGeneratorSourceName() 471 */ 472 public final String getGeneratorSourceName() 473 { 474 String generatorSourceName12a = this.__generatorSourceName12a; 475 if (!this.__generatorSourceName12aSet) 476 { 477 // generatorSourceName has no pre constraints 478 generatorSourceName12a = handleGetGeneratorSourceName(); 479 // generatorSourceName has no post constraints 480 this.__generatorSourceName12a = generatorSourceName12a; 481 if (isMetafacadePropertyCachingEnabled()) 482 { 483 this.__generatorSourceName12aSet = true; 484 } 485 } 486 return generatorSourceName12a; 487 } 488 489 /** 490 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorPkColumnValue() 491 * @return String 492 */ 493 protected abstract String handleGetGeneratorPkColumnValue(); 494 495 private String __generatorPkColumnValue13a; 496 private boolean __generatorPkColumnValue13aSet = false; 497 498 /** 499 * Returns the name of the primary key value in the generator table assigned to this set of 500 * generated values. 501 * @return (String)handleGetGeneratorPkColumnValue() 502 */ 503 public final String getGeneratorPkColumnValue() 504 { 505 String generatorPkColumnValue13a = this.__generatorPkColumnValue13a; 506 if (!this.__generatorPkColumnValue13aSet) 507 { 508 // generatorPkColumnValue has no pre constraints 509 generatorPkColumnValue13a = handleGetGeneratorPkColumnValue(); 510 // generatorPkColumnValue has no post constraints 511 this.__generatorPkColumnValue13a = generatorPkColumnValue13a; 512 if (isMetafacadePropertyCachingEnabled()) 513 { 514 this.__generatorPkColumnValue13aSet = true; 515 } 516 } 517 return generatorPkColumnValue13a; 518 } 519 520 /** 521 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorInitialValue() 522 * @return int 523 */ 524 protected abstract int handleGetGeneratorInitialValue(); 525 526 private int __generatorInitialValue14a; 527 private boolean __generatorInitialValue14aSet = false; 528 529 /** 530 * Returns the inital value assigned when allocating ids from the specified generator. 531 * @return (int)handleGetGeneratorInitialValue() 532 */ 533 public final int getGeneratorInitialValue() 534 { 535 int generatorInitialValue14a = this.__generatorInitialValue14a; 536 if (!this.__generatorInitialValue14aSet) 537 { 538 // generatorInitialValue has no pre constraints 539 generatorInitialValue14a = handleGetGeneratorInitialValue(); 540 // generatorInitialValue has no post constraints 541 this.__generatorInitialValue14a = generatorInitialValue14a; 542 if (isMetafacadePropertyCachingEnabled()) 543 { 544 this.__generatorInitialValue14aSet = true; 545 } 546 } 547 return generatorInitialValue14a; 548 } 549 550 /** 551 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorAllocationSize() 552 * @return int 553 */ 554 protected abstract int handleGetGeneratorAllocationSize(); 555 556 private int __generatorAllocationSize15a; 557 private boolean __generatorAllocationSize15aSet = false; 558 559 /** 560 * Returns the amount to increment the generator value when allocating id numbers. 561 * @return (int)handleGetGeneratorAllocationSize() 562 */ 563 public final int getGeneratorAllocationSize() 564 { 565 int generatorAllocationSize15a = this.__generatorAllocationSize15a; 566 if (!this.__generatorAllocationSize15aSet) 567 { 568 // generatorAllocationSize has no pre constraints 569 generatorAllocationSize15a = handleGetGeneratorAllocationSize(); 570 // generatorAllocationSize has no post constraints 571 this.__generatorAllocationSize15a = generatorAllocationSize15a; 572 if (isMetafacadePropertyCachingEnabled()) 573 { 574 this.__generatorAllocationSize15aSet = true; 575 } 576 } 577 return generatorAllocationSize15a; 578 } 579 580 /** 581 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeSequence() 582 * @return boolean 583 */ 584 protected abstract boolean handleIsGeneratorTypeSequence(); 585 586 private boolean __generatorTypeSequence16a; 587 private boolean __generatorTypeSequence16aSet = false; 588 589 /** 590 * Returns true if a sequence generator has been assigned to this attribute, false otherwise. 591 * @return (boolean)handleIsGeneratorTypeSequence() 592 */ 593 public final boolean isGeneratorTypeSequence() 594 { 595 boolean generatorTypeSequence16a = this.__generatorTypeSequence16a; 596 if (!this.__generatorTypeSequence16aSet) 597 { 598 // generatorTypeSequence has no pre constraints 599 generatorTypeSequence16a = handleIsGeneratorTypeSequence(); 600 // generatorTypeSequence has no post constraints 601 this.__generatorTypeSequence16a = generatorTypeSequence16a; 602 if (isMetafacadePropertyCachingEnabled()) 603 { 604 this.__generatorTypeSequence16aSet = true; 605 } 606 } 607 return generatorTypeSequence16a; 608 } 609 610 /** 611 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeTable() 612 * @return boolean 613 */ 614 protected abstract boolean handleIsGeneratorTypeTable(); 615 616 private boolean __generatorTypeTable17a; 617 private boolean __generatorTypeTable17aSet = false; 618 619 /** 620 * Returns true if a table generator has been assigned to this attribute, false otherwise. 621 * @return (boolean)handleIsGeneratorTypeTable() 622 */ 623 public final boolean isGeneratorTypeTable() 624 { 625 boolean generatorTypeTable17a = this.__generatorTypeTable17a; 626 if (!this.__generatorTypeTable17aSet) 627 { 628 // generatorTypeTable has no pre constraints 629 generatorTypeTable17a = handleIsGeneratorTypeTable(); 630 // generatorTypeTable has no post constraints 631 this.__generatorTypeTable17a = generatorTypeTable17a; 632 if (isMetafacadePropertyCachingEnabled()) 633 { 634 this.__generatorTypeTable17aSet = true; 635 } 636 } 637 return generatorTypeTable17a; 638 } 639 640 /** 641 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeAuto() 642 * @return boolean 643 */ 644 protected abstract boolean handleIsGeneratorTypeAuto(); 645 646 private boolean __generatorTypeAuto18a; 647 private boolean __generatorTypeAuto18aSet = false; 648 649 /** 650 * Returns true if an auto generator has been assigned to this attribute, false otherwise. 651 * @return (boolean)handleIsGeneratorTypeAuto() 652 */ 653 public final boolean isGeneratorTypeAuto() 654 { 655 boolean generatorTypeAuto18a = this.__generatorTypeAuto18a; 656 if (!this.__generatorTypeAuto18aSet) 657 { 658 // generatorTypeAuto has no pre constraints 659 generatorTypeAuto18a = handleIsGeneratorTypeAuto(); 660 // generatorTypeAuto has no post constraints 661 this.__generatorTypeAuto18a = generatorTypeAuto18a; 662 if (isMetafacadePropertyCachingEnabled()) 663 { 664 this.__generatorTypeAuto18aSet = true; 665 } 666 } 667 return generatorTypeAuto18a; 668 } 669 670 /** 671 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeNone() 672 * @return boolean 673 */ 674 protected abstract boolean handleIsGeneratorTypeNone(); 675 676 private boolean __generatorTypeNone19a; 677 private boolean __generatorTypeNone19aSet = false; 678 679 /** 680 * Returns true no generator has been assigned to this attribute, false otherwise. 681 * @return (boolean)handleIsGeneratorTypeNone() 682 */ 683 public final boolean isGeneratorTypeNone() 684 { 685 boolean generatorTypeNone19a = this.__generatorTypeNone19a; 686 if (!this.__generatorTypeNone19aSet) 687 { 688 // generatorTypeNone has no pre constraints 689 generatorTypeNone19a = handleIsGeneratorTypeNone(); 690 // generatorTypeNone has no post constraints 691 this.__generatorTypeNone19a = generatorTypeNone19a; 692 if (isMetafacadePropertyCachingEnabled()) 693 { 694 this.__generatorTypeNone19aSet = true; 695 } 696 } 697 return generatorTypeNone19a; 698 } 699 700 /** 701 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeIdentity() 702 * @return boolean 703 */ 704 protected abstract boolean handleIsGeneratorTypeIdentity(); 705 706 private boolean __generatorTypeIdentity20a; 707 private boolean __generatorTypeIdentity20aSet = false; 708 709 /** 710 * Returns true if an identity generator has been assigned to this attribute, false otherwise. 711 * @return (boolean)handleIsGeneratorTypeIdentity() 712 */ 713 public final boolean isGeneratorTypeIdentity() 714 { 715 boolean generatorTypeIdentity20a = this.__generatorTypeIdentity20a; 716 if (!this.__generatorTypeIdentity20aSet) 717 { 718 // generatorTypeIdentity has no pre constraints 719 generatorTypeIdentity20a = handleIsGeneratorTypeIdentity(); 720 // generatorTypeIdentity has no post constraints 721 this.__generatorTypeIdentity20a = generatorTypeIdentity20a; 722 if (isMetafacadePropertyCachingEnabled()) 723 { 724 this.__generatorTypeIdentity20aSet = true; 725 } 726 } 727 return generatorTypeIdentity20a; 728 } 729 730 /** 731 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getTemporalType() 732 * @return String 733 */ 734 protected abstract String handleGetTemporalType(); 735 736 private String __temporalType21a; 737 private boolean __temporalType21aSet = false; 738 739 /** 740 * Returns the temporal type value set via tagged value on attribute if one exists. Expect one 741 * of DATE, TIME, TIMESTAMP or NONE. This can only be applied to attributes of type 742 * java.util.Date or java.util.Calendar. 743 * @return (String)handleGetTemporalType() 744 */ 745 public final String getTemporalType() 746 { 747 String temporalType21a = this.__temporalType21a; 748 if (!this.__temporalType21aSet) 749 { 750 // temporalType has no pre constraints 751 temporalType21a = handleGetTemporalType(); 752 // temporalType has no post constraints 753 this.__temporalType21a = temporalType21a; 754 if (isMetafacadePropertyCachingEnabled()) 755 { 756 this.__temporalType21aSet = true; 757 } 758 } 759 return temporalType21a; 760 } 761 762 /** 763 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getEnumerationType() 764 * @return String 765 */ 766 protected abstract String handleGetEnumerationType(); 767 768 private String __enumerationType22a; 769 private boolean __enumerationType22aSet = false; 770 771 /** 772 * Returns the persistent property/field enumeration type. Will return either ORDINAL for enums 773 * mapped as an integer or STRING for enums mapped as a string. If not specified on an 774 * enumerated type, then the ORDINAL type is assumed 775 * @return (String)handleGetEnumerationType() 776 */ 777 public final String getEnumerationType() 778 { 779 String enumerationType22a = this.__enumerationType22a; 780 if (!this.__enumerationType22aSet) 781 { 782 // enumerationType has no pre constraints 783 enumerationType22a = handleGetEnumerationType(); 784 // enumerationType has no post constraints 785 this.__enumerationType22a = enumerationType22a; 786 if (isMetafacadePropertyCachingEnabled()) 787 { 788 this.__enumerationType22aSet = true; 789 } 790 } 791 return enumerationType22a; 792 } 793 794 /** 795 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isInsertEnabled() 796 * @return boolean 797 */ 798 protected abstract boolean handleIsInsertEnabled(); 799 800 private boolean __insertEnabled23a; 801 private boolean __insertEnabled23aSet = false; 802 803 /** 804 * Specifies whether a mapped column should be included in SQL INSERT statements. 805 * @return (boolean)handleIsInsertEnabled() 806 */ 807 public final boolean isInsertEnabled() 808 { 809 boolean insertEnabled23a = this.__insertEnabled23a; 810 if (!this.__insertEnabled23aSet) 811 { 812 // insertEnabled has no pre constraints 813 insertEnabled23a = handleIsInsertEnabled(); 814 // insertEnabled has no post constraints 815 this.__insertEnabled23a = insertEnabled23a; 816 if (isMetafacadePropertyCachingEnabled()) 817 { 818 this.__insertEnabled23aSet = true; 819 } 820 } 821 return insertEnabled23a; 822 } 823 824 /** 825 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isUpdateEnabled() 826 * @return boolean 827 */ 828 protected abstract boolean handleIsUpdateEnabled(); 829 830 private boolean __updateEnabled24a; 831 private boolean __updateEnabled24aSet = false; 832 833 /** 834 * Specifies whether a mapped column should be included in SQL UPDATE statements. 835 * @return (boolean)handleIsUpdateEnabled() 836 */ 837 public final boolean isUpdateEnabled() 838 { 839 boolean updateEnabled24a = this.__updateEnabled24a; 840 if (!this.__updateEnabled24aSet) 841 { 842 // updateEnabled has no pre constraints 843 updateEnabled24a = handleIsUpdateEnabled(); 844 // updateEnabled has no post constraints 845 this.__updateEnabled24a = updateEnabled24a; 846 if (isMetafacadePropertyCachingEnabled()) 847 { 848 this.__updateEnabled24aSet = true; 849 } 850 } 851 return updateEnabled24a; 852 } 853 854 /** 855 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getLobType() 856 * @return String 857 */ 858 protected abstract String handleGetLobType(); 859 860 private String __lobType25a; 861 private boolean __lobType25aSet = false; 862 863 /** 864 * Returns the user overridden lob type for this property. This is set via tagged value 865 * andromda_persistence_lob_type. Default values are String for Clob and byte[] for Blob. 866 * @return (String)handleGetLobType() 867 */ 868 public final String getLobType() 869 { 870 String lobType25a = this.__lobType25a; 871 if (!this.__lobType25aSet) 872 { 873 // lobType has no pre constraints 874 lobType25a = handleGetLobType(); 875 // lobType has no post constraints 876 this.__lobType25a = lobType25a; 877 if (isMetafacadePropertyCachingEnabled()) 878 { 879 this.__lobType25aSet = true; 880 } 881 } 882 return lobType25a; 883 } 884 885 /** 886 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isContainsEmbeddedObject() 887 * @return boolean 888 */ 889 protected abstract boolean handleIsContainsEmbeddedObject(); 890 891 private boolean __containsEmbeddedObject26a; 892 private boolean __containsEmbeddedObject26aSet = false; 893 894 /** 895 * Returns true if this attribute's type is an embedded value object. 896 * @return (boolean)handleIsContainsEmbeddedObject() 897 */ 898 public final boolean isContainsEmbeddedObject() 899 { 900 boolean containsEmbeddedObject26a = this.__containsEmbeddedObject26a; 901 if (!this.__containsEmbeddedObject26aSet) 902 { 903 // containsEmbeddedObject has no pre constraints 904 containsEmbeddedObject26a = handleIsContainsEmbeddedObject(); 905 // containsEmbeddedObject has no post constraints 906 this.__containsEmbeddedObject26a = containsEmbeddedObject26a; 907 if (isMetafacadePropertyCachingEnabled()) 908 { 909 this.__containsEmbeddedObject26aSet = true; 910 } 911 } 912 return containsEmbeddedObject26a; 913 } 914 915 /** 916 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#isGeneratorTypeGeneric() 917 * @return boolean 918 */ 919 protected abstract boolean handleIsGeneratorTypeGeneric(); 920 921 private boolean __generatorTypeGeneric27a; 922 private boolean __generatorTypeGeneric27aSet = false; 923 924 /** 925 * Returns true if a generic generator has been assigned to this attribute, false otherwise. 926 * @return (boolean)handleIsGeneratorTypeGeneric() 927 */ 928 public final boolean isGeneratorTypeGeneric() 929 { 930 boolean generatorTypeGeneric27a = this.__generatorTypeGeneric27a; 931 if (!this.__generatorTypeGeneric27aSet) 932 { 933 // generatorTypeGeneric has no pre constraints 934 generatorTypeGeneric27a = handleIsGeneratorTypeGeneric(); 935 // generatorTypeGeneric has no post constraints 936 this.__generatorTypeGeneric27a = generatorTypeGeneric27a; 937 if (isMetafacadePropertyCachingEnabled()) 938 { 939 this.__generatorTypeGeneric27aSet = true; 940 } 941 } 942 return generatorTypeGeneric27a; 943 } 944 945 /** 946 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getGeneratorGenericStrategy() 947 * @return String 948 */ 949 protected abstract String handleGetGeneratorGenericStrategy(); 950 951 private String __generatorGenericStrategy28a; 952 private boolean __generatorGenericStrategy28aSet = false; 953 954 /** 955 * Returns the org.hibernate.annotations.GenericGenerator strategy either a predefined Hibernate 956 * strategy or a fully qualified class name. 957 * @return (String)handleGetGeneratorGenericStrategy() 958 */ 959 public final String getGeneratorGenericStrategy() 960 { 961 String generatorGenericStrategy28a = this.__generatorGenericStrategy28a; 962 if (!this.__generatorGenericStrategy28aSet) 963 { 964 // generatorGenericStrategy has no pre constraints 965 generatorGenericStrategy28a = handleGetGeneratorGenericStrategy(); 966 // generatorGenericStrategy has no post constraints 967 this.__generatorGenericStrategy28a = generatorGenericStrategy28a; 968 if (isMetafacadePropertyCachingEnabled()) 969 { 970 this.__generatorGenericStrategy28aSet = true; 971 } 972 } 973 return generatorGenericStrategy28a; 974 } 975 976 /** 977 * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getOverrideType() 978 * @return String 979 */ 980 protected abstract String handleGetOverrideType(); 981 982 private String __overrideType29a; 983 private boolean __overrideType29aSet = false; 984 985 /** 986 * The overridden hibernate type for the annotation on the entity attribute, to manually specify 987 * a type using the @org.hibernate.annotations.Type or in other persistence provider. Generally 988 * used for Boolean types in legacy databases, i.e yes_no, true_false. Could be:The name of a 989 * Hibernate basic type: integer, string, character, date, timestamp, float, binary, 990 * serializable, object, blob etc.; The name of a Java class with a default basic type: int, 991 * float, char, String, java.util.Date, java.lang.Integer, java.sql.Clob etc.; The 992 * name of a serializable Java class; The class name of a custom type: 993 * com.illflow.type.MyCustomType etc. 994 * @return (String)handleGetOverrideType() 995 */ 996 public final String getOverrideType() 997 { 998 String overrideType29a = this.__overrideType29a; 999 if (!this.__overrideType29aSet) 1000 { 1001 // overrideType has no pre constraints 1002 overrideType29a = handleGetOverrideType(); 1003 // overrideType has no post constraints 1004 this.__overrideType29a = overrideType29a; 1005 if (isMetafacadePropertyCachingEnabled()) 1006 { 1007 this.__overrideType29aSet = true; 1008 } 1009 } 1010 return overrideType29a; 1011 } 1012 1013 /** 1014 * @return true 1015 * @see EntityAttribute 1016 */ 1017 public boolean isEntityAttributeMetaType() 1018 { 1019 return true; 1020 } 1021 1022 /** 1023 * @return true 1024 * @see org.andromda.metafacades.uml.AttributeFacade 1025 */ 1026 public boolean isAttributeFacadeMetaType() 1027 { 1028 return true; 1029 } 1030 1031 /** 1032 * @return true 1033 * @see ModelElementFacade 1034 */ 1035 public boolean isModelElementFacadeMetaType() 1036 { 1037 return true; 1038 } 1039 1040 // ----------- delegates to EntityAttribute ------------ 1041 /** 1042 * Searches the given feature for the specified tag. 1043 * If the follow boolean is set to true then the search will continue from the class attribute 1044 * to the class itself and then up the class hierarchy. 1045 * @see org.andromda.metafacades.uml.AttributeFacade#findTaggedValue(String name, boolean follow) 1046 */ 1047 public Object findTaggedValue(String name, boolean follow) 1048 { 1049 return this.getSuperEntityAttribute().findTaggedValue(name, follow); 1050 } 1051 1052 /** 1053 * The default value of the attribute. This is the value given if no value is defined. 1054 * @see org.andromda.metafacades.uml.AttributeFacade#getDefaultValue() 1055 */ 1056 public String getDefaultValue() 1057 { 1058 return this.getSuperEntityAttribute().getDefaultValue(); 1059 } 1060 1061 /** 1062 * If the attribute is an enumeration literal this represents the owning enumeration. Can be 1063 * empty. 1064 * @see org.andromda.metafacades.uml.AttributeFacade#getEnumeration() 1065 */ 1066 public EnumerationFacade getEnumeration() 1067 { 1068 return this.getSuperEntityAttribute().getEnumeration(); 1069 } 1070 1071 /** 1072 * Returns the enumeration literal parameters defined by tagged value as a comma separated list. 1073 * @see org.andromda.metafacades.uml.AttributeFacade#getEnumerationLiteralParameters() 1074 */ 1075 public String getEnumerationLiteralParameters() 1076 { 1077 return this.getSuperEntityAttribute().getEnumerationLiteralParameters(); 1078 } 1079 1080 /** 1081 * The value for this attribute if it is an enumeration literal, null otherwise. The default 1082 * value is returned as a String if it has been specified, if it's not specified this 1083 * attribute's name is assumed. 1084 * @see org.andromda.metafacades.uml.AttributeFacade#getEnumerationValue() 1085 */ 1086 public String getEnumerationValue() 1087 { 1088 return this.getSuperEntityAttribute().getEnumerationValue(); 1089 } 1090 1091 /** 1092 * The name of the accessor operation that would retrieve this attribute's value. 1093 * @see org.andromda.metafacades.uml.AttributeFacade#getGetterName() 1094 */ 1095 public String getGetterName() 1096 { 1097 return this.getSuperEntityAttribute().getGetterName(); 1098 } 1099 1100 /** 1101 * The name of the type that is returned on the accessor and mutator operations, determined in 1102 * part by the multiplicity. 1103 * @see org.andromda.metafacades.uml.AttributeFacade#getGetterSetterTypeName() 1104 */ 1105 public String getGetterSetterTypeName() 1106 { 1107 return this.getSuperEntityAttribute().getGetterSetterTypeName(); 1108 } 1109 1110 /** 1111 * the lower value for the multiplicity 1112 * -only applicable for UML2 1113 * @see org.andromda.metafacades.uml.AttributeFacade#getLower() 1114 */ 1115 public int getLower() 1116 { 1117 return this.getSuperEntityAttribute().getLower(); 1118 } 1119 1120 /** 1121 * Gets the classifier who is the owner of the attributes. 1122 * @see org.andromda.metafacades.uml.AttributeFacade#getOwner() 1123 */ 1124 public ClassifierFacade getOwner() 1125 { 1126 return this.getSuperEntityAttribute().getOwner(); 1127 } 1128 1129 /** 1130 * The name of the mutator operation that would retrieve this attribute's value. 1131 * @see org.andromda.metafacades.uml.AttributeFacade#getSetterName() 1132 */ 1133 public String getSetterName() 1134 { 1135 return this.getSuperEntityAttribute().getSetterName(); 1136 } 1137 1138 /** 1139 * The classifier owning this attribute. 1140 * @see org.andromda.metafacades.uml.AttributeFacade#getType() 1141 */ 1142 public ClassifierFacade getType() 1143 { 1144 return this.getSuperEntityAttribute().getType(); 1145 } 1146 1147 /** 1148 * the upper value for the multiplicity (will be -1 for *) 1149 * -only applicable for UML2 1150 * @see org.andromda.metafacades.uml.AttributeFacade#getUpper() 1151 */ 1152 public int getUpper() 1153 { 1154 return this.getSuperEntityAttribute().getUpper(); 1155 } 1156 1157 /** 1158 * True if this attribute can only be set. 1159 * @see org.andromda.metafacades.uml.AttributeFacade#isAddOnly() 1160 */ 1161 public boolean isAddOnly() 1162 { 1163 return this.getSuperEntityAttribute().isAddOnly(); 1164 } 1165 1166 /** 1167 * True if this attribute can be modified. 1168 * @see org.andromda.metafacades.uml.AttributeFacade#isChangeable() 1169 */ 1170 public boolean isChangeable() 1171 { 1172 return this.getSuperEntityAttribute().isChangeable(); 1173 } 1174 1175 /** 1176 * Indicates if the default value is present. 1177 * @see org.andromda.metafacades.uml.AttributeFacade#isDefaultValuePresent() 1178 */ 1179 public boolean isDefaultValuePresent() 1180 { 1181 return this.getSuperEntityAttribute().isDefaultValuePresent(); 1182 } 1183 1184 /** 1185 * If the attribute is derived (its value is computed). UML2 only. UML14 always returns false. 1186 * Default=false. 1187 * @see org.andromda.metafacades.uml.AttributeFacade#isDerived() 1188 */ 1189 public boolean isDerived() 1190 { 1191 return this.getSuperEntityAttribute().isDerived(); 1192 } 1193 1194 /** 1195 * True if this attribute is owned by an enumeration. 1196 * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationLiteral() 1197 */ 1198 public boolean isEnumerationLiteral() 1199 { 1200 return this.getSuperEntityAttribute().isEnumerationLiteral(); 1201 } 1202 1203 /** 1204 * Returns true if enumeration literal parameters exist (defined by tagged value) for the 1205 * literal. 1206 * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationLiteralParametersExist() 1207 */ 1208 public boolean isEnumerationLiteralParametersExist() 1209 { 1210 return this.getSuperEntityAttribute().isEnumerationLiteralParametersExist(); 1211 } 1212 1213 /** 1214 * True if this attribute is owned by an enumeration but is defined as a member variable (NOT a 1215 * literal). 1216 * @see org.andromda.metafacades.uml.AttributeFacade#isEnumerationMember() 1217 */ 1218 public boolean isEnumerationMember() 1219 { 1220 return this.getSuperEntityAttribute().isEnumerationMember(); 1221 } 1222 1223 /** 1224 * IsLeaf property in the operation. If true, operation is final, cannot be extended or 1225 * implemented by a descendant. 1226 * @see org.andromda.metafacades.uml.AttributeFacade#isLeaf() 1227 */ 1228 public boolean isLeaf() 1229 { 1230 return this.getSuperEntityAttribute().isLeaf(); 1231 } 1232 1233 /** 1234 * Whether or not this attribute has a multiplicity greater than 1. 1235 * @see org.andromda.metafacades.uml.AttributeFacade#isMany() 1236 */ 1237 public boolean isMany() 1238 { 1239 return this.getSuperEntityAttribute().isMany(); 1240 } 1241 1242 /** 1243 * Indicates whether or not the attributes are ordered (if multiplicity is greater than 1). 1244 * @see org.andromda.metafacades.uml.AttributeFacade#isOrdered() 1245 */ 1246 public boolean isOrdered() 1247 { 1248 return this.getSuperEntityAttribute().isOrdered(); 1249 } 1250 1251 /** 1252 * Whether or not this attribute can be modified. 1253 * @see org.andromda.metafacades.uml.AttributeFacade#isReadOnly() 1254 */ 1255 public boolean isReadOnly() 1256 { 1257 return this.getSuperEntityAttribute().isReadOnly(); 1258 } 1259 1260 /** 1261 * Whether or not the multiplicity of this attribute is 1. 1262 * @see org.andromda.metafacades.uml.AttributeFacade#isRequired() 1263 */ 1264 public boolean isRequired() 1265 { 1266 return this.getSuperEntityAttribute().isRequired(); 1267 } 1268 1269 /** 1270 * Indicates if this attribute is 'static', meaning it has a classifier scope. 1271 * @see org.andromda.metafacades.uml.AttributeFacade#isStatic() 1272 */ 1273 public boolean isStatic() 1274 { 1275 return this.getSuperEntityAttribute().isStatic(); 1276 } 1277 1278 /** 1279 * If the attribute is unique within the Collection type. UML2 only. UML14 always returns false. 1280 * Unique+Ordered determines the implementation Collection type. Default=false. 1281 * @see org.andromda.metafacades.uml.AttributeFacade#isUnique() 1282 */ 1283 public boolean isUnique() 1284 { 1285 return this.getSuperEntityAttribute().isUnique(); 1286 } 1287 1288 /** 1289 * The name of the index to create on a column that persists the entity attribute. 1290 * @see EntityAttribute#getColumnIndex() 1291 */ 1292 public String getColumnIndex() 1293 { 1294 return this.getSuperEntityAttribute().getColumnIndex(); 1295 } 1296 1297 /** 1298 * The length of the column that persists this entity attribute. 1299 * @see EntityAttribute#getColumnLength() 1300 */ 1301 public String getColumnLength() 1302 { 1303 return this.getSuperEntityAttribute().getColumnLength(); 1304 } 1305 1306 /** 1307 * The name of the table column to which this entity is mapped. 1308 * @see EntityAttribute#getColumnName() 1309 */ 1310 public String getColumnName() 1311 { 1312 return this.getSuperEntityAttribute().getColumnName(); 1313 } 1314 1315 /** 1316 * The PIM to language specific mappings for JDBC. 1317 * @see EntityAttribute#getJdbcMappings() 1318 */ 1319 public TypeMappings getJdbcMappings() 1320 { 1321 return this.getSuperEntityAttribute().getJdbcMappings(); 1322 } 1323 1324 /** 1325 * The JDBC type for this entity attribute. 1326 * @see EntityAttribute#getJdbcType() 1327 */ 1328 public String getJdbcType() 1329 { 1330 return this.getSuperEntityAttribute().getJdbcType(); 1331 } 1332 1333 /** 1334 * The SQL mappings (i.e. the mappings which provide PIM to SQL mappings). 1335 * @see EntityAttribute#getSqlMappings() 1336 */ 1337 public TypeMappings getSqlMappings() 1338 { 1339 return this.getSuperEntityAttribute().getSqlMappings(); 1340 } 1341 1342 /** 1343 * The SQL type for this attribute. 1344 * @see EntityAttribute#getSqlType() 1345 */ 1346 public String getSqlType() 1347 { 1348 return this.getSuperEntityAttribute().getSqlType(); 1349 } 1350 1351 /** 1352 * The name of the unique-key that this unique attribute belongs 1353 * @see EntityAttribute#getUniqueGroup() 1354 */ 1355 public String getUniqueGroup() 1356 { 1357 return this.getSuperEntityAttribute().getUniqueGroup(); 1358 } 1359 1360 /** 1361 * True if this attribute is an identifier for its entity. 1362 * @see EntityAttribute#isIdentifier() 1363 */ 1364 public boolean isIdentifier() 1365 { 1366 return this.getSuperEntityAttribute().isIdentifier(); 1367 } 1368 1369 /** 1370 * Indicates this attribute should be ignored by the persistence layer. 1371 * @see EntityAttribute#isTransient() 1372 */ 1373 public boolean isTransient() 1374 { 1375 return this.getSuperEntityAttribute().isTransient(); 1376 } 1377 1378 /** 1379 * Copies all tagged values from the given ModelElementFacade to this model element facade. 1380 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element) 1381 */ 1382 public void copyTaggedValues(ModelElementFacade element) 1383 { 1384 this.getSuperEntityAttribute().copyTaggedValues(element); 1385 } 1386 1387 /** 1388 * Finds the tagged value with the specified 'tagName'. In case there are more values the first 1389 * one found will be returned. 1390 * @see ModelElementFacade#findTaggedValue(String tagName) 1391 */ 1392 public Object findTaggedValue(String tagName) 1393 { 1394 return this.getSuperEntityAttribute().findTaggedValue(tagName); 1395 } 1396 1397 /** 1398 * Returns all the values for the tagged value with the specified name. The returned collection 1399 * will contains only String instances, or will be empty. Never null. 1400 * @see ModelElementFacade#findTaggedValues(String tagName) 1401 */ 1402 public Collection<Object> findTaggedValues(String tagName) 1403 { 1404 return this.getSuperEntityAttribute().findTaggedValues(tagName); 1405 } 1406 1407 /** 1408 * Returns the fully qualified name of the model element. The fully qualified name includes 1409 * complete package qualified name of the underlying model element. The templates parameter will 1410 * be replaced by the correct one given the binding relation of the parameter to this element. 1411 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement) 1412 */ 1413 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement) 1414 { 1415 return this.getSuperEntityAttribute().getBindedFullyQualifiedName(bindedElement); 1416 } 1417 1418 /** 1419 * Gets all constraints belonging to the model element. 1420 * @see ModelElementFacade#getConstraints() 1421 */ 1422 public Collection<ConstraintFacade> getConstraints() 1423 { 1424 return this.getSuperEntityAttribute().getConstraints(); 1425 } 1426 1427 /** 1428 * Returns the constraints of the argument kind that have been placed onto this model. Typical 1429 * kinds are "inv", "pre" and "post". Other kinds are possible. 1430 * @see ModelElementFacade#getConstraints(String kind) 1431 */ 1432 public Collection<ConstraintFacade> getConstraints(String kind) 1433 { 1434 return this.getSuperEntityAttribute().getConstraints(kind); 1435 } 1436 1437 /** 1438 * Gets the documentation for the model element, The indent argument is prefixed to each line. 1439 * By default this method wraps lines after 64 characters. 1440 * This method is equivalent to <code>getDocumentation(indent, 64)</code>. 1441 * @see ModelElementFacade#getDocumentation(String indent) 1442 */ 1443 public String getDocumentation(String indent) 1444 { 1445 return this.getSuperEntityAttribute().getDocumentation(indent); 1446 } 1447 1448 /** 1449 * This method returns the documentation for this model element, with the lines wrapped after 1450 * the specified number of characters, values of less than 1 will indicate no line wrapping is 1451 * required. By default paragraphs are returned as HTML. 1452 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>. 1453 * @see ModelElementFacade#getDocumentation(String indent, int lineLength) 1454 */ 1455 public String getDocumentation(String indent, int lineLength) 1456 { 1457 return this.getSuperEntityAttribute().getDocumentation(indent, lineLength); 1458 } 1459 1460 /** 1461 * This method returns the documentation for this model element, with the lines wrapped after 1462 * the specified number of characters, values of less than 1 will indicate no line wrapping is 1463 * required. HTML style determines if HTML Escaping is applied. 1464 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle) 1465 */ 1466 public String getDocumentation(String indent, int lineLength, boolean htmlStyle) 1467 { 1468 return this.getSuperEntityAttribute().getDocumentation(indent, lineLength, htmlStyle); 1469 } 1470 1471 /** 1472 * The fully qualified name of this model element. 1473 * @see ModelElementFacade#getFullyQualifiedName() 1474 */ 1475 public String getFullyQualifiedName() 1476 { 1477 return this.getSuperEntityAttribute().getFullyQualifiedName(); 1478 } 1479 1480 /** 1481 * Returns the fully qualified name of the model element. The fully qualified name includes 1482 * complete package qualified name of the underlying model element. If modelName is true, then 1483 * the original name of the model element (the name contained within the model) will be the name 1484 * returned, otherwise a name from a language mapping will be returned. 1485 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName) 1486 */ 1487 public String getFullyQualifiedName(boolean modelName) 1488 { 1489 return this.getSuperEntityAttribute().getFullyQualifiedName(modelName); 1490 } 1491 1492 /** 1493 * Returns the fully qualified name as a path, the returned value always starts with out a slash 1494 * '/'. 1495 * @see ModelElementFacade#getFullyQualifiedNamePath() 1496 */ 1497 public String getFullyQualifiedNamePath() 1498 { 1499 return this.getSuperEntityAttribute().getFullyQualifiedNamePath(); 1500 } 1501 1502 /** 1503 * Gets the unique identifier of the underlying model element. 1504 * @see ModelElementFacade#getId() 1505 */ 1506 public String getId() 1507 { 1508 return this.getSuperEntityAttribute().getId(); 1509 } 1510 1511 /** 1512 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which 1513 * are not represented by other properties, i.e. native, transient, volatile, synchronized, 1514 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings: 1515 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require 1516 * JDK5 compiler level. 1517 * @see ModelElementFacade#getKeywords() 1518 */ 1519 public Collection<String> getKeywords() 1520 { 1521 return this.getSuperEntityAttribute().getKeywords(); 1522 } 1523 1524 /** 1525 * UML2: Retrieves a localized label for this named element. 1526 * @see ModelElementFacade#getLabel() 1527 */ 1528 public String getLabel() 1529 { 1530 return this.getSuperEntityAttribute().getLabel(); 1531 } 1532 1533 /** 1534 * The language mappings that have been set for this model element. 1535 * @see ModelElementFacade#getLanguageMappings() 1536 */ 1537 public TypeMappings getLanguageMappings() 1538 { 1539 return this.getSuperEntityAttribute().getLanguageMappings(); 1540 } 1541 1542 /** 1543 * Return the model containing this model element (multiple models may be loaded and processed 1544 * at the same time). 1545 * @see ModelElementFacade#getModel() 1546 */ 1547 public ModelFacade getModel() 1548 { 1549 return this.getSuperEntityAttribute().getModel(); 1550 } 1551 1552 /** 1553 * The name of the model element. 1554 * @see ModelElementFacade#getName() 1555 */ 1556 public String getName() 1557 { 1558 return this.getSuperEntityAttribute().getName(); 1559 } 1560 1561 /** 1562 * Gets the package to which this model element belongs. 1563 * @see ModelElementFacade#getPackage() 1564 */ 1565 public ModelElementFacade getPackage() 1566 { 1567 return this.getSuperEntityAttribute().getPackage(); 1568 } 1569 1570 /** 1571 * The name of this model element's package. 1572 * @see ModelElementFacade#getPackageName() 1573 */ 1574 public String getPackageName() 1575 { 1576 return this.getSuperEntityAttribute().getPackageName(); 1577 } 1578 1579 /** 1580 * Gets the package name (optionally providing the ability to retrieve the model name and not 1581 * the mapped name). 1582 * @see ModelElementFacade#getPackageName(boolean modelName) 1583 */ 1584 public String getPackageName(boolean modelName) 1585 { 1586 return this.getSuperEntityAttribute().getPackageName(modelName); 1587 } 1588 1589 /** 1590 * Returns the package as a path, the returned value always starts with out a slash '/'. 1591 * @see ModelElementFacade#getPackagePath() 1592 */ 1593 public String getPackagePath() 1594 { 1595 return this.getSuperEntityAttribute().getPackagePath(); 1596 } 1597 1598 /** 1599 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the 1600 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from 1601 * the names of the containing namespaces starting at the root of the hierarchy and ending with 1602 * the name of the NamedElement itself. 1603 * @see ModelElementFacade#getQualifiedName() 1604 */ 1605 public String getQualifiedName() 1606 { 1607 return this.getSuperEntityAttribute().getQualifiedName(); 1608 } 1609 1610 /** 1611 * Gets the root package for the model element. 1612 * @see ModelElementFacade#getRootPackage() 1613 */ 1614 public PackageFacade getRootPackage() 1615 { 1616 return this.getSuperEntityAttribute().getRootPackage(); 1617 } 1618 1619 /** 1620 * Gets the dependencies for which this model element is the source. 1621 * @see ModelElementFacade#getSourceDependencies() 1622 */ 1623 public Collection<DependencyFacade> getSourceDependencies() 1624 { 1625 return this.getSuperEntityAttribute().getSourceDependencies(); 1626 } 1627 1628 /** 1629 * If this model element is the context of an activity graph, this represents that activity 1630 * graph. 1631 * @see ModelElementFacade#getStateMachineContext() 1632 */ 1633 public StateMachineFacade getStateMachineContext() 1634 { 1635 return this.getSuperEntityAttribute().getStateMachineContext(); 1636 } 1637 1638 /** 1639 * The collection of ALL stereotype names for this model element. 1640 * @see ModelElementFacade#getStereotypeNames() 1641 */ 1642 public Collection<String> getStereotypeNames() 1643 { 1644 return this.getSuperEntityAttribute().getStereotypeNames(); 1645 } 1646 1647 /** 1648 * Gets all stereotypes for this model element. 1649 * @see ModelElementFacade#getStereotypes() 1650 */ 1651 public Collection<StereotypeFacade> getStereotypes() 1652 { 1653 return this.getSuperEntityAttribute().getStereotypes(); 1654 } 1655 1656 /** 1657 * Return the TaggedValues associated with this model element, under all stereotypes. 1658 * @see ModelElementFacade#getTaggedValues() 1659 */ 1660 public Collection<TaggedValueFacade> getTaggedValues() 1661 { 1662 return this.getSuperEntityAttribute().getTaggedValues(); 1663 } 1664 1665 /** 1666 * Gets the dependencies for which this model element is the target. 1667 * @see ModelElementFacade#getTargetDependencies() 1668 */ 1669 public Collection<DependencyFacade> getTargetDependencies() 1670 { 1671 return this.getSuperEntityAttribute().getTargetDependencies(); 1672 } 1673 1674 /** 1675 * Get the template parameter for this model element having the parameterName 1676 * @see ModelElementFacade#getTemplateParameter(String parameterName) 1677 */ 1678 public Object getTemplateParameter(String parameterName) 1679 { 1680 return this.getSuperEntityAttribute().getTemplateParameter(parameterName); 1681 } 1682 1683 /** 1684 * Get the template parameters for this model element 1685 * @see ModelElementFacade#getTemplateParameters() 1686 */ 1687 public Collection<TemplateParameterFacade> getTemplateParameters() 1688 { 1689 return this.getSuperEntityAttribute().getTemplateParameters(); 1690 } 1691 1692 /** 1693 * The visibility (i.e. public, private, protected or package) of the model element, will 1694 * attempt a lookup for these values in the language mappings (if any). 1695 * @see ModelElementFacade#getVisibility() 1696 */ 1697 public String getVisibility() 1698 { 1699 return this.getSuperEntityAttribute().getVisibility(); 1700 } 1701 1702 /** 1703 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance 1704 * is taken into account when searching for the stereotype), false otherwise. 1705 * @see ModelElementFacade#hasExactStereotype(String stereotypeName) 1706 */ 1707 public boolean hasExactStereotype(String stereotypeName) 1708 { 1709 return this.getSuperEntityAttribute().hasExactStereotype(stereotypeName); 1710 } 1711 1712 /** 1713 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma, 1714 * pipe, semicolon, or << >> 1715 * @see ModelElementFacade#hasKeyword(String keywordName) 1716 */ 1717 public boolean hasKeyword(String keywordName) 1718 { 1719 return this.getSuperEntityAttribute().hasKeyword(keywordName); 1720 } 1721 1722 /** 1723 * Returns true if the model element has the specified stereotype. If the stereotype itself 1724 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if 1725 * one of the stereotype's ancestors has a matching name this method will return true, false 1726 * otherwise. 1727 * For example, if we have a certain stereotype called <<exception>> and a model element has a 1728 * stereotype called <<applicationException>> which extends <<exception>>, when calling this 1729 * method with 'stereotypeName' defined as 'exception' the method would return true since 1730 * <<applicationException>> inherits from <<exception>>. If you want to check if the model 1731 * element has the exact stereotype, then use the method 'hasExactStereotype' instead. 1732 * @see ModelElementFacade#hasStereotype(String stereotypeName) 1733 */ 1734 public boolean hasStereotype(String stereotypeName) 1735 { 1736 return this.getSuperEntityAttribute().hasStereotype(stereotypeName); 1737 } 1738 1739 /** 1740 * True if there are target dependencies from this element that are instances of BindingFacade. 1741 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies. 1742 * @see ModelElementFacade#isBindingDependenciesPresent() 1743 */ 1744 public boolean isBindingDependenciesPresent() 1745 { 1746 return this.getSuperEntityAttribute().isBindingDependenciesPresent(); 1747 } 1748 1749 /** 1750 * Indicates if any constraints are present on this model element. 1751 * @see ModelElementFacade#isConstraintsPresent() 1752 */ 1753 public boolean isConstraintsPresent() 1754 { 1755 return this.getSuperEntityAttribute().isConstraintsPresent(); 1756 } 1757 1758 /** 1759 * Indicates if any documentation is present on this model element. 1760 * @see ModelElementFacade#isDocumentationPresent() 1761 */ 1762 public boolean isDocumentationPresent() 1763 { 1764 return this.getSuperEntityAttribute().isDocumentationPresent(); 1765 } 1766 1767 /** 1768 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript. 1769 * @see ModelElementFacade#isReservedWord() 1770 */ 1771 public boolean isReservedWord() 1772 { 1773 return this.getSuperEntityAttribute().isReservedWord(); 1774 } 1775 1776 /** 1777 * True is there are template parameters on this model element. For UML2, applies to Class, 1778 * Operation, Property, and Parameter. 1779 * @see ModelElementFacade#isTemplateParametersPresent() 1780 */ 1781 public boolean isTemplateParametersPresent() 1782 { 1783 return this.getSuperEntityAttribute().isTemplateParametersPresent(); 1784 } 1785 1786 /** 1787 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++, 1788 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on 1789 * Enumerations and Interfaces, optionally applies on other model elements. 1790 * @see ModelElementFacade#isValidIdentifierName() 1791 */ 1792 public boolean isValidIdentifierName() 1793 { 1794 return this.getSuperEntityAttribute().isValidIdentifierName(); 1795 } 1796 1797 /** 1798 * Searches for the constraint with the specified 'name' on this model element, and if found 1799 * translates it using the specified 'translation' from a translation library discovered by the 1800 * framework. 1801 * @see ModelElementFacade#translateConstraint(String name, String translation) 1802 */ 1803 public String translateConstraint(String name, String translation) 1804 { 1805 return this.getSuperEntityAttribute().translateConstraint(name, translation); 1806 } 1807 1808 /** 1809 * Translates all constraints belonging to this model element with the given 'translation'. 1810 * @see ModelElementFacade#translateConstraints(String translation) 1811 */ 1812 public String[] translateConstraints(String translation) 1813 { 1814 return this.getSuperEntityAttribute().translateConstraints(translation); 1815 } 1816 1817 /** 1818 * Translates the constraints of the specified 'kind' belonging to this model element. 1819 * @see ModelElementFacade#translateConstraints(String kind, String translation) 1820 */ 1821 public String[] translateConstraints(String kind, String translation) 1822 { 1823 return this.getSuperEntityAttribute().translateConstraints(kind, translation); 1824 } 1825 1826 /** 1827 * @see org.andromda.core.metafacade.MetafacadeBase#initialize() 1828 */ 1829 @Override 1830 public void initialize() 1831 { 1832 this.getSuperEntityAttribute().initialize(); 1833 } 1834 1835 /** 1836 * @return Object getSuperEntityAttribute().getValidationOwner() 1837 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner() 1838 */ 1839 @Override 1840 public Object getValidationOwner() 1841 { 1842 Object owner = this.getSuperEntityAttribute().getValidationOwner(); 1843 return owner; 1844 } 1845 1846 /** 1847 * @return String getSuperEntityAttribute().getValidationName() 1848 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName() 1849 */ 1850 @Override 1851 public String getValidationName() 1852 { 1853 String name = this.getSuperEntityAttribute().getValidationName(); 1854 return name; 1855 } 1856 1857 /** 1858 * @param validationMessages Collection<ModelValidationMessage> 1859 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages) 1860 */ 1861 @Override 1862 public void validateInvariants(Collection<ModelValidationMessage> validationMessages) 1863 { 1864 this.getSuperEntityAttribute().validateInvariants(validationMessages); 1865 } 1866 1867 /** 1868 * The property that stores the name of the metafacade. 1869 */ 1870 private static final String NAME_PROPERTY = "name"; 1871 private static final String FQNAME_PROPERTY = "fullyQualifiedName"; 1872 1873 /** 1874 * @see Object#toString() 1875 */ 1876 @Override 1877 public String toString() 1878 { 1879 final StringBuilder toString = new StringBuilder(this.getClass().getName()); 1880 toString.append("["); 1881 try 1882 { 1883 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY)); 1884 } 1885 catch (final Throwable tryAgain) 1886 { 1887 try 1888 { 1889 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY)); 1890 } 1891 catch (final Throwable ignore) 1892 { 1893 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property 1894 } 1895 } 1896 toString.append("]"); 1897 return toString.toString(); 1898 } 1899}