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.ModelElementFacade; 016import org.andromda.metafacades.uml.ModelFacade; 017import org.andromda.metafacades.uml.OperationFacade; 018import org.andromda.metafacades.uml.PackageFacade; 019import org.andromda.metafacades.uml.ParameterFacade; 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 operation in an entity EJB bean POJO. 028 * MetafacadeLogic for EJB3OperationFacade 029 * 030 * @see EJB3OperationFacade 031 */ 032public abstract class EJB3OperationFacadeLogic 033 extends MetafacadeBase 034 implements EJB3OperationFacade 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 EJB3OperationFacadeLogic(Object metaObjectIn, String context) 047 { 048 super(metaObjectIn, getContext(context)); 049 this.superOperationFacade = 050 (OperationFacade) 051 MetafacadeFactory.getInstance().createFacadeImpl( 052 "org.andromda.metafacades.uml.OperationFacade", 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 EJB3OperationFacade 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.EJB3OperationFacade"; 068 } 069 return context; 070 } 071 072 private OperationFacade superOperationFacade; 073 private boolean superOperationFacadeInitialized = false; 074 075 /** 076 * Gets the OperationFacade parent instance. 077 * @return this.superOperationFacade OperationFacade 078 */ 079 private OperationFacade getSuperOperationFacade() 080 { 081 if (!this.superOperationFacadeInitialized) 082 { 083 ((MetafacadeBase)this.superOperationFacade).setMetafacadeContext(this.getMetafacadeContext()); 084 this.superOperationFacadeInitialized = true; 085 } 086 return this.superOperationFacade; 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.superOperationFacadeInitialized) 101 { 102 ((MetafacadeBase)this.superOperationFacade).resetMetafacadeContext(context); 103 } 104 } 105 } 106 107 /** 108 * @return boolean true always 109 * @see EJB3OperationFacade 110 */ 111 public boolean isEJB3OperationFacadeMetaType() 112 { 113 return true; 114 } 115 116 // --------------- attributes --------------------- 117 118 /** 119 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isBusinessOperation() 120 * @return boolean 121 */ 122 protected abstract boolean handleIsBusinessOperation(); 123 124 private boolean __businessOperation1a; 125 private boolean __businessOperation1aSet = false; 126 127 /** 128 * True/false on whether or not this operation is an EJB business operation. This returns true 129 * if the operation is not one of the following: 130 * Create Method 131 * Finder or Query Method 132 * Select Method 133 * @return (boolean)handleIsBusinessOperation() 134 */ 135 public final boolean isBusinessOperation() 136 { 137 boolean businessOperation1a = this.__businessOperation1a; 138 if (!this.__businessOperation1aSet) 139 { 140 // businessOperation has no pre constraints 141 businessOperation1a = handleIsBusinessOperation(); 142 // businessOperation has no post constraints 143 this.__businessOperation1a = businessOperation1a; 144 if (isMetafacadePropertyCachingEnabled()) 145 { 146 this.__businessOperation1aSet = true; 147 } 148 } 149 return businessOperation1a; 150 } 151 152 /** 153 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isSelectMethod() 154 * @return boolean 155 */ 156 protected abstract boolean handleIsSelectMethod(); 157 158 private boolean __selectMethod2a; 159 private boolean __selectMethod2aSet = false; 160 161 /** 162 * True/false on whether or not this operation represents a select method. 163 * @return (boolean)handleIsSelectMethod() 164 */ 165 public final boolean isSelectMethod() 166 { 167 boolean selectMethod2a = this.__selectMethod2a; 168 if (!this.__selectMethod2aSet) 169 { 170 // selectMethod has no pre constraints 171 selectMethod2a = handleIsSelectMethod(); 172 // selectMethod has no post constraints 173 this.__selectMethod2a = selectMethod2a; 174 if (isMetafacadePropertyCachingEnabled()) 175 { 176 this.__selectMethod2aSet = true; 177 } 178 } 179 return selectMethod2a; 180 } 181 182 /** 183 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPrePersist() 184 * @return boolean 185 */ 186 protected abstract boolean handleIsPrePersist(); 187 188 private boolean __prePersist3a; 189 private boolean __prePersist3aSet = false; 190 191 /** 192 * Returns true if the associated operation has the <<PrePersist>> stereotype. 193 * NOTE: The method signature must return void and have no args. 194 * @return (boolean)handleIsPrePersist() 195 */ 196 public final boolean isPrePersist() 197 { 198 boolean prePersist3a = this.__prePersist3a; 199 if (!this.__prePersist3aSet) 200 { 201 // prePersist has no pre constraints 202 prePersist3a = handleIsPrePersist(); 203 // prePersist has no post constraints 204 this.__prePersist3a = prePersist3a; 205 if (isMetafacadePropertyCachingEnabled()) 206 { 207 this.__prePersist3aSet = true; 208 } 209 } 210 return prePersist3a; 211 } 212 213 /** 214 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPostPersist() 215 * @return boolean 216 */ 217 protected abstract boolean handleIsPostPersist(); 218 219 private boolean __postPersist4a; 220 private boolean __postPersist4aSet = false; 221 222 /** 223 * Returns true if the associated operation has the <<PostPersist>> stereotype. 224 * NOTE: The method signature must return void and have no args. 225 * @return (boolean)handleIsPostPersist() 226 */ 227 public final boolean isPostPersist() 228 { 229 boolean postPersist4a = this.__postPersist4a; 230 if (!this.__postPersist4aSet) 231 { 232 // postPersist has no pre constraints 233 postPersist4a = handleIsPostPersist(); 234 // postPersist has no post constraints 235 this.__postPersist4a = postPersist4a; 236 if (isMetafacadePropertyCachingEnabled()) 237 { 238 this.__postPersist4aSet = true; 239 } 240 } 241 return postPersist4a; 242 } 243 244 /** 245 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPreRemove() 246 * @return boolean 247 */ 248 protected abstract boolean handleIsPreRemove(); 249 250 private boolean __preRemove5a; 251 private boolean __preRemove5aSet = false; 252 253 /** 254 * Returns true if the associated operation has the <<PreRemove>> stereotype. 255 * NOTE: The method signature must return void and have no args. 256 * @return (boolean)handleIsPreRemove() 257 */ 258 public final boolean isPreRemove() 259 { 260 boolean preRemove5a = this.__preRemove5a; 261 if (!this.__preRemove5aSet) 262 { 263 // preRemove has no pre constraints 264 preRemove5a = handleIsPreRemove(); 265 // preRemove has no post constraints 266 this.__preRemove5a = preRemove5a; 267 if (isMetafacadePropertyCachingEnabled()) 268 { 269 this.__preRemove5aSet = true; 270 } 271 } 272 return preRemove5a; 273 } 274 275 /** 276 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPostRemove() 277 * @return boolean 278 */ 279 protected abstract boolean handleIsPostRemove(); 280 281 private boolean __postRemove6a; 282 private boolean __postRemove6aSet = false; 283 284 /** 285 * Returns true if the associated operation has the <<PostRemove>> stereotype. 286 * NOTE: The method signature must return void and have no args. 287 * @return (boolean)handleIsPostRemove() 288 */ 289 public final boolean isPostRemove() 290 { 291 boolean postRemove6a = this.__postRemove6a; 292 if (!this.__postRemove6aSet) 293 { 294 // postRemove has no pre constraints 295 postRemove6a = handleIsPostRemove(); 296 // postRemove has no post constraints 297 this.__postRemove6a = postRemove6a; 298 if (isMetafacadePropertyCachingEnabled()) 299 { 300 this.__postRemove6aSet = true; 301 } 302 } 303 return postRemove6a; 304 } 305 306 /** 307 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPreUpdate() 308 * @return boolean 309 */ 310 protected abstract boolean handleIsPreUpdate(); 311 312 private boolean __preUpdate7a; 313 private boolean __preUpdate7aSet = false; 314 315 /** 316 * Returns true if the associated operation has the <<PreUpdate>> stereotype. 317 * NOTE: The method signature must return void and have no args. 318 * @return (boolean)handleIsPreUpdate() 319 */ 320 public final boolean isPreUpdate() 321 { 322 boolean preUpdate7a = this.__preUpdate7a; 323 if (!this.__preUpdate7aSet) 324 { 325 // preUpdate has no pre constraints 326 preUpdate7a = handleIsPreUpdate(); 327 // preUpdate has no post constraints 328 this.__preUpdate7a = preUpdate7a; 329 if (isMetafacadePropertyCachingEnabled()) 330 { 331 this.__preUpdate7aSet = true; 332 } 333 } 334 return preUpdate7a; 335 } 336 337 /** 338 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPostUpdate() 339 * @return boolean 340 */ 341 protected abstract boolean handleIsPostUpdate(); 342 343 private boolean __postUpdate8a; 344 private boolean __postUpdate8aSet = false; 345 346 /** 347 * Returns true if the associated operation has the <<PostUpdate>> stereotype. 348 * NOTE: The method signature must return void and have no args. 349 * @return (boolean)handleIsPostUpdate() 350 */ 351 public final boolean isPostUpdate() 352 { 353 boolean postUpdate8a = this.__postUpdate8a; 354 if (!this.__postUpdate8aSet) 355 { 356 // postUpdate has no pre constraints 357 postUpdate8a = handleIsPostUpdate(); 358 // postUpdate has no post constraints 359 this.__postUpdate8a = postUpdate8a; 360 if (isMetafacadePropertyCachingEnabled()) 361 { 362 this.__postUpdate8aSet = true; 363 } 364 } 365 return postUpdate8a; 366 } 367 368 /** 369 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isPostLoad() 370 * @return boolean 371 */ 372 protected abstract boolean handleIsPostLoad(); 373 374 private boolean __postLoad9a; 375 private boolean __postLoad9aSet = false; 376 377 /** 378 * Returns true if the associated operation has the <<PostLoad>> stereotype. 379 * NOTE: The method signature must return void and have no args. 380 * @return (boolean)handleIsPostLoad() 381 */ 382 public final boolean isPostLoad() 383 { 384 boolean postLoad9a = this.__postLoad9a; 385 if (!this.__postLoad9aSet) 386 { 387 // postLoad has no pre constraints 388 postLoad9a = handleIsPostLoad(); 389 // postLoad has no post constraints 390 this.__postLoad9a = postLoad9a; 391 if (isMetafacadePropertyCachingEnabled()) 392 { 393 this.__postLoad9aSet = true; 394 } 395 } 396 return postLoad9a; 397 } 398 399 /** 400 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isLifecycleCallback() 401 * @return boolean 402 */ 403 protected abstract boolean handleIsLifecycleCallback(); 404 405 private boolean __lifecycleCallback10a; 406 private boolean __lifecycleCallback10aSet = false; 407 408 /** 409 * Returns true if this operation is marked with any of the lifecycle callback stereotypes like 410 * PrePersist, PostPersist, PreRemove, PostRemove, PreUpdate, PostUpdate or PostLoad. 411 * @return (boolean)handleIsLifecycleCallback() 412 */ 413 public final boolean isLifecycleCallback() 414 { 415 boolean lifecycleCallback10a = this.__lifecycleCallback10a; 416 if (!this.__lifecycleCallback10aSet) 417 { 418 // lifecycleCallback has no pre constraints 419 lifecycleCallback10a = handleIsLifecycleCallback(); 420 // lifecycleCallback has no post constraints 421 this.__lifecycleCallback10a = lifecycleCallback10a; 422 if (isMetafacadePropertyCachingEnabled()) 423 { 424 this.__lifecycleCallback10aSet = true; 425 } 426 } 427 return lifecycleCallback10a; 428 } 429 430 /** 431 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#getImplementationName() 432 * @return String 433 */ 434 protected abstract String handleGetImplementationName(); 435 436 private String __implementationName11a; 437 private boolean __implementationName11aSet = false; 438 439 /** 440 * The name of the operation used within the entity implementation. 441 * @return (String)handleGetImplementationName() 442 */ 443 public final String getImplementationName() 444 { 445 String implementationName11a = this.__implementationName11a; 446 if (!this.__implementationName11aSet) 447 { 448 // implementationName has no pre constraints 449 implementationName11a = handleGetImplementationName(); 450 // implementationName has no post constraints 451 this.__implementationName11a = implementationName11a; 452 if (isMetafacadePropertyCachingEnabled()) 453 { 454 this.__implementationName11aSet = true; 455 } 456 } 457 return implementationName11a; 458 } 459 460 /** 461 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#getImplementationCall() 462 * @return String 463 */ 464 protected abstract String handleGetImplementationCall(); 465 466 private String __implementationCall12a; 467 private boolean __implementationCall12aSet = false; 468 469 /** 470 * The method call for the implementation operation. 471 * @return (String)handleGetImplementationCall() 472 */ 473 public final String getImplementationCall() 474 { 475 String implementationCall12a = this.__implementationCall12a; 476 if (!this.__implementationCall12aSet) 477 { 478 // implementationCall has no pre constraints 479 implementationCall12a = handleGetImplementationCall(); 480 // implementationCall has no post constraints 481 this.__implementationCall12a = implementationCall12a; 482 if (isMetafacadePropertyCachingEnabled()) 483 { 484 this.__implementationCall12aSet = true; 485 } 486 } 487 return implementationCall12a; 488 } 489 490 /** 491 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#getImplementationSignature() 492 * @return String 493 */ 494 protected abstract String handleGetImplementationSignature(); 495 496 private String __implementationSignature13a; 497 private boolean __implementationSignature13aSet = false; 498 499 /** 500 * The signature for the implementation operation. 501 * @return (String)handleGetImplementationSignature() 502 */ 503 public final String getImplementationSignature() 504 { 505 String implementationSignature13a = this.__implementationSignature13a; 506 if (!this.__implementationSignature13aSet) 507 { 508 // implementationSignature has no pre constraints 509 implementationSignature13a = handleGetImplementationSignature(); 510 // implementationSignature has no post constraints 511 this.__implementationSignature13a = implementationSignature13a; 512 if (isMetafacadePropertyCachingEnabled()) 513 { 514 this.__implementationSignature13aSet = true; 515 } 516 } 517 return implementationSignature13a; 518 } 519 520 /** 521 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isCreateMethod() 522 * @return boolean 523 */ 524 protected abstract boolean handleIsCreateMethod(); 525 526 private boolean __createMethod14a; 527 private boolean __createMethod14aSet = false; 528 529 /** 530 * Returns true if the operation has the <<CreateMethod>> stereotype. 531 * @return (boolean)handleIsCreateMethod() 532 */ 533 public final boolean isCreateMethod() 534 { 535 boolean createMethod14a = this.__createMethod14a; 536 if (!this.__createMethod14aSet) 537 { 538 // createMethod has no pre constraints 539 createMethod14a = handleIsCreateMethod(); 540 // createMethod has no post constraints 541 this.__createMethod14a = createMethod14a; 542 if (isMetafacadePropertyCachingEnabled()) 543 { 544 this.__createMethod14aSet = true; 545 } 546 } 547 return createMethod14a; 548 } 549 550 /** 551 * @see org.andromda.cartridges.ejb3.metafacades.EJB3OperationFacade#isFinderMethod() 552 * @return boolean 553 */ 554 protected abstract boolean handleIsFinderMethod(); 555 556 private boolean __finderMethod15a; 557 private boolean __finderMethod15aSet = false; 558 559 /** 560 * Returns true if the operation is a finder or query operation. 561 * @return (boolean)handleIsFinderMethod() 562 */ 563 public final boolean isFinderMethod() 564 { 565 boolean finderMethod15a = this.__finderMethod15a; 566 if (!this.__finderMethod15aSet) 567 { 568 // finderMethod has no pre constraints 569 finderMethod15a = handleIsFinderMethod(); 570 // finderMethod has no post constraints 571 this.__finderMethod15a = finderMethod15a; 572 if (isMetafacadePropertyCachingEnabled()) 573 { 574 this.__finderMethod15aSet = true; 575 } 576 } 577 return finderMethod15a; 578 } 579 580 // ------------- associations ------------------ 581 582 /** 583 * @return true 584 * @see OperationFacade 585 */ 586 public boolean isOperationFacadeMetaType() 587 { 588 return true; 589 } 590 591 /** 592 * @return true 593 * @see ModelElementFacade 594 */ 595 public boolean isModelElementFacadeMetaType() 596 { 597 return true; 598 } 599 600 // ----------- delegates to OperationFacade ------------ 601 /** 602 * Copies all tagged values from the given ModelElementFacade to this model element facade. 603 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element) 604 */ 605 public void copyTaggedValues(ModelElementFacade element) 606 { 607 this.getSuperOperationFacade().copyTaggedValues(element); 608 } 609 610 /** 611 * Finds the tagged value with the specified 'tagName'. In case there are more values the first 612 * one found will be returned. 613 * @see ModelElementFacade#findTaggedValue(String tagName) 614 */ 615 public Object findTaggedValue(String tagName) 616 { 617 return this.getSuperOperationFacade().findTaggedValue(tagName); 618 } 619 620 /** 621 * Returns all the values for the tagged value with the specified name. The returned collection 622 * will contains only String instances, or will be empty. Never null. 623 * @see ModelElementFacade#findTaggedValues(String tagName) 624 */ 625 public Collection<Object> findTaggedValues(String tagName) 626 { 627 return this.getSuperOperationFacade().findTaggedValues(tagName); 628 } 629 630 /** 631 * Returns the fully qualified name of the model element. The fully qualified name includes 632 * complete package qualified name of the underlying model element. The templates parameter will 633 * be replaced by the correct one given the binding relation of the parameter to this element. 634 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement) 635 */ 636 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement) 637 { 638 return this.getSuperOperationFacade().getBindedFullyQualifiedName(bindedElement); 639 } 640 641 /** 642 * Gets all constraints belonging to the model element. 643 * @see ModelElementFacade#getConstraints() 644 */ 645 public Collection<ConstraintFacade> getConstraints() 646 { 647 return this.getSuperOperationFacade().getConstraints(); 648 } 649 650 /** 651 * Returns the constraints of the argument kind that have been placed onto this model. Typical 652 * kinds are "inv", "pre" and "post". Other kinds are possible. 653 * @see ModelElementFacade#getConstraints(String kind) 654 */ 655 public Collection<ConstraintFacade> getConstraints(String kind) 656 { 657 return this.getSuperOperationFacade().getConstraints(kind); 658 } 659 660 /** 661 * Gets the documentation for the model element, The indent argument is prefixed to each line. 662 * By default this method wraps lines after 64 characters. 663 * This method is equivalent to <code>getDocumentation(indent, 64)</code>. 664 * @see ModelElementFacade#getDocumentation(String indent) 665 */ 666 public String getDocumentation(String indent) 667 { 668 return this.getSuperOperationFacade().getDocumentation(indent); 669 } 670 671 /** 672 * This method returns the documentation for this model element, with the lines wrapped after 673 * the specified number of characters, values of less than 1 will indicate no line wrapping is 674 * required. By default paragraphs are returned as HTML. 675 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>. 676 * @see ModelElementFacade#getDocumentation(String indent, int lineLength) 677 */ 678 public String getDocumentation(String indent, int lineLength) 679 { 680 return this.getSuperOperationFacade().getDocumentation(indent, lineLength); 681 } 682 683 /** 684 * This method returns the documentation for this model element, with the lines wrapped after 685 * the specified number of characters, values of less than 1 will indicate no line wrapping is 686 * required. HTML style determines if HTML Escaping is applied. 687 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle) 688 */ 689 public String getDocumentation(String indent, int lineLength, boolean htmlStyle) 690 { 691 return this.getSuperOperationFacade().getDocumentation(indent, lineLength, htmlStyle); 692 } 693 694 /** 695 * The fully qualified name of this model element. 696 * @see ModelElementFacade#getFullyQualifiedName() 697 */ 698 public String getFullyQualifiedName() 699 { 700 return this.getSuperOperationFacade().getFullyQualifiedName(); 701 } 702 703 /** 704 * Returns the fully qualified name of the model element. The fully qualified name includes 705 * complete package qualified name of the underlying model element. If modelName is true, then 706 * the original name of the model element (the name contained within the model) will be the name 707 * returned, otherwise a name from a language mapping will be returned. 708 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName) 709 */ 710 public String getFullyQualifiedName(boolean modelName) 711 { 712 return this.getSuperOperationFacade().getFullyQualifiedName(modelName); 713 } 714 715 /** 716 * Returns the fully qualified name as a path, the returned value always starts with out a slash 717 * '/'. 718 * @see ModelElementFacade#getFullyQualifiedNamePath() 719 */ 720 public String getFullyQualifiedNamePath() 721 { 722 return this.getSuperOperationFacade().getFullyQualifiedNamePath(); 723 } 724 725 /** 726 * Gets the unique identifier of the underlying model element. 727 * @see ModelElementFacade#getId() 728 */ 729 public String getId() 730 { 731 return this.getSuperOperationFacade().getId(); 732 } 733 734 /** 735 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which 736 * are not represented by other properties, i.e. native, transient, volatile, synchronized, 737 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings: 738 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require 739 * JDK5 compiler level. 740 * @see ModelElementFacade#getKeywords() 741 */ 742 public Collection<String> getKeywords() 743 { 744 return this.getSuperOperationFacade().getKeywords(); 745 } 746 747 /** 748 * UML2: Retrieves a localized label for this named element. 749 * @see ModelElementFacade#getLabel() 750 */ 751 public String getLabel() 752 { 753 return this.getSuperOperationFacade().getLabel(); 754 } 755 756 /** 757 * The language mappings that have been set for this model element. 758 * @see ModelElementFacade#getLanguageMappings() 759 */ 760 public TypeMappings getLanguageMappings() 761 { 762 return this.getSuperOperationFacade().getLanguageMappings(); 763 } 764 765 /** 766 * Return the model containing this model element (multiple models may be loaded and processed 767 * at the same time). 768 * @see ModelElementFacade#getModel() 769 */ 770 public ModelFacade getModel() 771 { 772 return this.getSuperOperationFacade().getModel(); 773 } 774 775 /** 776 * The name of the model element. 777 * @see ModelElementFacade#getName() 778 */ 779 public String getName() 780 { 781 return this.getSuperOperationFacade().getName(); 782 } 783 784 /** 785 * Gets the package to which this model element belongs. 786 * @see ModelElementFacade#getPackage() 787 */ 788 public ModelElementFacade getPackage() 789 { 790 return this.getSuperOperationFacade().getPackage(); 791 } 792 793 /** 794 * The name of this model element's package. 795 * @see ModelElementFacade#getPackageName() 796 */ 797 public String getPackageName() 798 { 799 return this.getSuperOperationFacade().getPackageName(); 800 } 801 802 /** 803 * Gets the package name (optionally providing the ability to retrieve the model name and not 804 * the mapped name). 805 * @see ModelElementFacade#getPackageName(boolean modelName) 806 */ 807 public String getPackageName(boolean modelName) 808 { 809 return this.getSuperOperationFacade().getPackageName(modelName); 810 } 811 812 /** 813 * Returns the package as a path, the returned value always starts with out a slash '/'. 814 * @see ModelElementFacade#getPackagePath() 815 */ 816 public String getPackagePath() 817 { 818 return this.getSuperOperationFacade().getPackagePath(); 819 } 820 821 /** 822 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the 823 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from 824 * the names of the containing namespaces starting at the root of the hierarchy and ending with 825 * the name of the NamedElement itself. 826 * @see ModelElementFacade#getQualifiedName() 827 */ 828 public String getQualifiedName() 829 { 830 return this.getSuperOperationFacade().getQualifiedName(); 831 } 832 833 /** 834 * Gets the root package for the model element. 835 * @see ModelElementFacade#getRootPackage() 836 */ 837 public PackageFacade getRootPackage() 838 { 839 return this.getSuperOperationFacade().getRootPackage(); 840 } 841 842 /** 843 * Gets the dependencies for which this model element is the source. 844 * @see ModelElementFacade#getSourceDependencies() 845 */ 846 public Collection<DependencyFacade> getSourceDependencies() 847 { 848 return this.getSuperOperationFacade().getSourceDependencies(); 849 } 850 851 /** 852 * If this model element is the context of an activity graph, this represents that activity 853 * graph. 854 * @see ModelElementFacade#getStateMachineContext() 855 */ 856 public StateMachineFacade getStateMachineContext() 857 { 858 return this.getSuperOperationFacade().getStateMachineContext(); 859 } 860 861 /** 862 * The collection of ALL stereotype names for this model element. 863 * @see ModelElementFacade#getStereotypeNames() 864 */ 865 public Collection<String> getStereotypeNames() 866 { 867 return this.getSuperOperationFacade().getStereotypeNames(); 868 } 869 870 /** 871 * Gets all stereotypes for this model element. 872 * @see ModelElementFacade#getStereotypes() 873 */ 874 public Collection<StereotypeFacade> getStereotypes() 875 { 876 return this.getSuperOperationFacade().getStereotypes(); 877 } 878 879 /** 880 * Return the TaggedValues associated with this model element, under all stereotypes. 881 * @see ModelElementFacade#getTaggedValues() 882 */ 883 public Collection<TaggedValueFacade> getTaggedValues() 884 { 885 return this.getSuperOperationFacade().getTaggedValues(); 886 } 887 888 /** 889 * Gets the dependencies for which this model element is the target. 890 * @see ModelElementFacade#getTargetDependencies() 891 */ 892 public Collection<DependencyFacade> getTargetDependencies() 893 { 894 return this.getSuperOperationFacade().getTargetDependencies(); 895 } 896 897 /** 898 * Get the template parameter for this model element having the parameterName 899 * @see ModelElementFacade#getTemplateParameter(String parameterName) 900 */ 901 public Object getTemplateParameter(String parameterName) 902 { 903 return this.getSuperOperationFacade().getTemplateParameter(parameterName); 904 } 905 906 /** 907 * Get the template parameters for this model element 908 * @see ModelElementFacade#getTemplateParameters() 909 */ 910 public Collection<TemplateParameterFacade> getTemplateParameters() 911 { 912 return this.getSuperOperationFacade().getTemplateParameters(); 913 } 914 915 /** 916 * The visibility (i.e. public, private, protected or package) of the model element, will 917 * attempt a lookup for these values in the language mappings (if any). 918 * @see ModelElementFacade#getVisibility() 919 */ 920 public String getVisibility() 921 { 922 return this.getSuperOperationFacade().getVisibility(); 923 } 924 925 /** 926 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance 927 * is taken into account when searching for the stereotype), false otherwise. 928 * @see ModelElementFacade#hasExactStereotype(String stereotypeName) 929 */ 930 public boolean hasExactStereotype(String stereotypeName) 931 { 932 return this.getSuperOperationFacade().hasExactStereotype(stereotypeName); 933 } 934 935 /** 936 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma, 937 * pipe, semicolon, or << >> 938 * @see ModelElementFacade#hasKeyword(String keywordName) 939 */ 940 public boolean hasKeyword(String keywordName) 941 { 942 return this.getSuperOperationFacade().hasKeyword(keywordName); 943 } 944 945 /** 946 * Returns true if the model element has the specified stereotype. If the stereotype itself 947 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if 948 * one of the stereotype's ancestors has a matching name this method will return true, false 949 * otherwise. 950 * For example, if we have a certain stereotype called <<exception>> and a model element has a 951 * stereotype called <<applicationException>> which extends <<exception>>, when calling this 952 * method with 'stereotypeName' defined as 'exception' the method would return true since 953 * <<applicationException>> inherits from <<exception>>. If you want to check if the model 954 * element has the exact stereotype, then use the method 'hasExactStereotype' instead. 955 * @see ModelElementFacade#hasStereotype(String stereotypeName) 956 */ 957 public boolean hasStereotype(String stereotypeName) 958 { 959 return this.getSuperOperationFacade().hasStereotype(stereotypeName); 960 } 961 962 /** 963 * True if there are target dependencies from this element that are instances of BindingFacade. 964 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies. 965 * @see ModelElementFacade#isBindingDependenciesPresent() 966 */ 967 public boolean isBindingDependenciesPresent() 968 { 969 return this.getSuperOperationFacade().isBindingDependenciesPresent(); 970 } 971 972 /** 973 * Indicates if any constraints are present on this model element. 974 * @see ModelElementFacade#isConstraintsPresent() 975 */ 976 public boolean isConstraintsPresent() 977 { 978 return this.getSuperOperationFacade().isConstraintsPresent(); 979 } 980 981 /** 982 * Indicates if any documentation is present on this model element. 983 * @see ModelElementFacade#isDocumentationPresent() 984 */ 985 public boolean isDocumentationPresent() 986 { 987 return this.getSuperOperationFacade().isDocumentationPresent(); 988 } 989 990 /** 991 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript. 992 * @see ModelElementFacade#isReservedWord() 993 */ 994 public boolean isReservedWord() 995 { 996 return this.getSuperOperationFacade().isReservedWord(); 997 } 998 999 /** 1000 * True is there are template parameters on this model element. For UML2, applies to Class, 1001 * Operation, Property, and Parameter. 1002 * @see ModelElementFacade#isTemplateParametersPresent() 1003 */ 1004 public boolean isTemplateParametersPresent() 1005 { 1006 return this.getSuperOperationFacade().isTemplateParametersPresent(); 1007 } 1008 1009 /** 1010 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++, 1011 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on 1012 * Enumerations and Interfaces, optionally applies on other model elements. 1013 * @see ModelElementFacade#isValidIdentifierName() 1014 */ 1015 public boolean isValidIdentifierName() 1016 { 1017 return this.getSuperOperationFacade().isValidIdentifierName(); 1018 } 1019 1020 /** 1021 * Searches for the constraint with the specified 'name' on this model element, and if found 1022 * translates it using the specified 'translation' from a translation library discovered by the 1023 * framework. 1024 * @see ModelElementFacade#translateConstraint(String name, String translation) 1025 */ 1026 public String translateConstraint(String name, String translation) 1027 { 1028 return this.getSuperOperationFacade().translateConstraint(name, translation); 1029 } 1030 1031 /** 1032 * Translates all constraints belonging to this model element with the given 'translation'. 1033 * @see ModelElementFacade#translateConstraints(String translation) 1034 */ 1035 public String[] translateConstraints(String translation) 1036 { 1037 return this.getSuperOperationFacade().translateConstraints(translation); 1038 } 1039 1040 /** 1041 * Translates the constraints of the specified 'kind' belonging to this model element. 1042 * @see ModelElementFacade#translateConstraints(String kind, String translation) 1043 */ 1044 public String[] translateConstraints(String kind, String translation) 1045 { 1046 return this.getSuperOperationFacade().translateConstraints(kind, translation); 1047 } 1048 1049 /** 1050 * Finds the parameter on this operation having the given name, if no parameter is found, null 1051 * is returned instead. 1052 * @see OperationFacade#findParameter(String name) 1053 */ 1054 public ParameterFacade findParameter(String name) 1055 { 1056 return this.getSuperOperationFacade().findParameter(name); 1057 } 1058 1059 /** 1060 * Searches the given feature for the specified tag. 1061 * If the follow boolean is set to true then the search will continue from the class operation 1062 * to the class itself and then up the class hierarchy. 1063 * @see OperationFacade#findTaggedValue(String name, boolean follow) 1064 */ 1065 public Object findTaggedValue(String name, boolean follow) 1066 { 1067 return this.getSuperOperationFacade().findTaggedValue(name, follow); 1068 } 1069 1070 /** 1071 * A comma separated list of all argument names. 1072 * @see OperationFacade#getArgumentNames() 1073 */ 1074 public String getArgumentNames() 1075 { 1076 return this.getSuperOperationFacade().getArgumentNames(); 1077 } 1078 1079 /** 1080 * A comma separated list of all types of each argument, in order. 1081 * @see OperationFacade#getArgumentTypeNames() 1082 */ 1083 public String getArgumentTypeNames() 1084 { 1085 return this.getSuperOperationFacade().getArgumentTypeNames(); 1086 } 1087 1088 /** 1089 * Specification of an argument used to pass information into or out of an invocation of a 1090 * behavioral 1091 * feature. Parameters are allowed to be treated as connectable elements. Parameters have 1092 * support for 1093 * streaming, exceptions, and parameter sets. 1094 * @see OperationFacade#getArguments() 1095 */ 1096 public Collection<ParameterFacade> getArguments() 1097 { 1098 return this.getSuperOperationFacade().getArguments(); 1099 } 1100 1101 /** 1102 * Constructs the operation call with the operation name 1103 * @see OperationFacade#getCall() 1104 */ 1105 public String getCall() 1106 { 1107 return this.getSuperOperationFacade().getCall(); 1108 } 1109 1110 /** 1111 * Returns the concurrency modifier for this operation (i.e. concurrent, guarded or sequential) 1112 * of the model element, will attempt a lookup for these values in the language mappings (if 1113 * any). 1114 * @see OperationFacade#getConcurrency() 1115 */ 1116 public String getConcurrency() 1117 { 1118 return this.getSuperOperationFacade().getConcurrency(); 1119 } 1120 1121 /** 1122 * A comma separated list containing all exceptions that this operation throws. Exceptions are 1123 * determined through dependencies that have the target element stereotyped as <<Exception>>. 1124 * @see OperationFacade#getExceptionList() 1125 */ 1126 public String getExceptionList() 1127 { 1128 return this.getSuperOperationFacade().getExceptionList(); 1129 } 1130 1131 /** 1132 * Returns a comma separated list of exceptions appended to the comma separated list of fully 1133 * qualified 'initialException' classes passed in to this method. 1134 * @see OperationFacade#getExceptionList(String initialExceptions) 1135 */ 1136 public String getExceptionList(String initialExceptions) 1137 { 1138 return this.getSuperOperationFacade().getExceptionList(initialExceptions); 1139 } 1140 1141 /** 1142 * A collection of all exceptions thrown by this operation. 1143 * @see OperationFacade#getExceptions() 1144 */ 1145 public Collection<ModelElementFacade> getExceptions() 1146 { 1147 return this.getSuperOperationFacade().getExceptions(); 1148 } 1149 1150 /** 1151 * Return Type with multiplicity taken into account. UML14 does not allow multiplicity *. 1152 * @see OperationFacade#getGetterSetterReturnTypeName() 1153 */ 1154 public String getGetterSetterReturnTypeName() 1155 { 1156 return this.getSuperOperationFacade().getGetterSetterReturnTypeName(); 1157 } 1158 1159 /** 1160 * the lower value for the multiplicity 1161 * -only applicable for UML2 1162 * @see OperationFacade#getLower() 1163 */ 1164 public int getLower() 1165 { 1166 return this.getSuperOperationFacade().getLower(); 1167 } 1168 1169 /** 1170 * Returns the operation method body determined from UML sequence diagrams or other UML sources. 1171 * @see OperationFacade#getMethodBody() 1172 */ 1173 public String getMethodBody() 1174 { 1175 return this.getSuperOperationFacade().getMethodBody(); 1176 } 1177 1178 /** 1179 * The operation this operation overrides, null if this operation is not overriding. 1180 * @see OperationFacade#getOverriddenOperation() 1181 */ 1182 public OperationFacade getOverriddenOperation() 1183 { 1184 return this.getSuperOperationFacade().getOverriddenOperation(); 1185 } 1186 1187 /** 1188 * Gets the owner of this operation 1189 * @see OperationFacade#getOwner() 1190 */ 1191 public ClassifierFacade getOwner() 1192 { 1193 return this.getSuperOperationFacade().getOwner(); 1194 } 1195 1196 /** 1197 * Return all parameters for the operation, including the return parameter. 1198 * @see OperationFacade#getParameters() 1199 */ 1200 public Collection<ParameterFacade> getParameters() 1201 { 1202 return this.getSuperOperationFacade().getParameters(); 1203 } 1204 1205 /** 1206 * The name of the operation that handles postcondition constraints. 1207 * @see OperationFacade#getPostconditionName() 1208 */ 1209 public String getPostconditionName() 1210 { 1211 return this.getSuperOperationFacade().getPostconditionName(); 1212 } 1213 1214 /** 1215 * The postcondition constraints belonging to this operation. 1216 * @see OperationFacade#getPostconditions() 1217 */ 1218 public Collection<ConstraintFacade> getPostconditions() 1219 { 1220 return this.getSuperOperationFacade().getPostconditions(); 1221 } 1222 1223 /** 1224 * The call to the precondition operation. 1225 * @see OperationFacade#getPreconditionCall() 1226 */ 1227 public String getPreconditionCall() 1228 { 1229 return this.getSuperOperationFacade().getPreconditionCall(); 1230 } 1231 1232 /** 1233 * The name of the operation that handles precondition constraints. 1234 * @see OperationFacade#getPreconditionName() 1235 */ 1236 public String getPreconditionName() 1237 { 1238 return this.getSuperOperationFacade().getPreconditionName(); 1239 } 1240 1241 /** 1242 * The signature of the precondition operation. 1243 * @see OperationFacade#getPreconditionSignature() 1244 */ 1245 public String getPreconditionSignature() 1246 { 1247 return this.getSuperOperationFacade().getPreconditionSignature(); 1248 } 1249 1250 /** 1251 * The precondition constraints belonging to this operation. 1252 * @see OperationFacade#getPreconditions() 1253 */ 1254 public Collection<ConstraintFacade> getPreconditions() 1255 { 1256 return this.getSuperOperationFacade().getPreconditions(); 1257 } 1258 1259 /** 1260 * (UML2 Only). Get the actual return parameter (which may have stereotypes etc). 1261 * @see OperationFacade#getReturnParameter() 1262 */ 1263 public ParameterFacade getReturnParameter() 1264 { 1265 return this.getSuperOperationFacade().getReturnParameter(); 1266 } 1267 1268 /** 1269 * The operation return type parameter. 1270 * @see OperationFacade#getReturnType() 1271 */ 1272 public ClassifierFacade getReturnType() 1273 { 1274 return this.getSuperOperationFacade().getReturnType(); 1275 } 1276 1277 /** 1278 * Return the operation signature, including public/protested abstract returnType name plus 1279 * argument type and name 1280 * @see OperationFacade#getSignature() 1281 */ 1282 public String getSignature() 1283 { 1284 return this.getSuperOperationFacade().getSignature(); 1285 } 1286 1287 /** 1288 * Returns the signature of the operation and optionally appends the argument names (if 1289 * withArgumentNames is true), otherwise returns the signature with just the types alone in the 1290 * signature. 1291 * @see OperationFacade#getSignature(boolean withArgumentNames) 1292 */ 1293 public String getSignature(boolean withArgumentNames) 1294 { 1295 return this.getSuperOperationFacade().getSignature(withArgumentNames); 1296 } 1297 1298 /** 1299 * Returns the signature of the operation and optionally appends the given 'argumentModifier' to 1300 * each argument. 1301 * @see OperationFacade#getSignature(String argumentModifier) 1302 */ 1303 public String getSignature(String argumentModifier) 1304 { 1305 return this.getSuperOperationFacade().getSignature(argumentModifier); 1306 } 1307 1308 /** 1309 * A comma-separated parameter list (type and name of each parameter) of an operation. 1310 * @see OperationFacade#getTypedArgumentList() 1311 */ 1312 public String getTypedArgumentList() 1313 { 1314 return this.getSuperOperationFacade().getTypedArgumentList(); 1315 } 1316 1317 /** 1318 * A comma-separated parameter list (type and name of each parameter) of an operation with an 1319 * optional modifier (i.e final) before each parameter. 1320 * @see OperationFacade#getTypedArgumentList(String modifier) 1321 */ 1322 public String getTypedArgumentList(String modifier) 1323 { 1324 return this.getSuperOperationFacade().getTypedArgumentList(modifier); 1325 } 1326 1327 /** 1328 * the upper value for the multiplicity (will be -1 for *) 1329 * - only applicable for UML2 1330 * @see OperationFacade#getUpper() 1331 */ 1332 public int getUpper() 1333 { 1334 return this.getSuperOperationFacade().getUpper(); 1335 } 1336 1337 /** 1338 * True is the operation is abstract. 1339 * @see OperationFacade#isAbstract() 1340 */ 1341 public boolean isAbstract() 1342 { 1343 return this.getSuperOperationFacade().isAbstract(); 1344 } 1345 1346 /** 1347 * True if the operation has (i.e. throws any exceptions) false otherwise. 1348 * @see OperationFacade#isExceptionsPresent() 1349 */ 1350 public boolean isExceptionsPresent() 1351 { 1352 return this.getSuperOperationFacade().isExceptionsPresent(); 1353 } 1354 1355 /** 1356 * IsLeaf property in the operation. If true, operation is final, cannot be extended or 1357 * implemented by a descendant. Default=false. 1358 * @see OperationFacade#isLeaf() 1359 */ 1360 public boolean isLeaf() 1361 { 1362 return this.getSuperOperationFacade().isLeaf(); 1363 } 1364 1365 /** 1366 * UML2 only. If the return type parameter multiplicity>1 OR the operation multiplicity>1. 1367 * Default=false. 1368 * @see OperationFacade#isMany() 1369 */ 1370 public boolean isMany() 1371 { 1372 return this.getSuperOperationFacade().isMany(); 1373 } 1374 1375 /** 1376 * UML2 only: If isMany (Collection type returned), is the type unique within the collection. 1377 * Unique+Ordered determines CollectionType implementation of return result. Default=false. 1378 * @see OperationFacade#isOrdered() 1379 */ 1380 public boolean isOrdered() 1381 { 1382 return this.getSuperOperationFacade().isOrdered(); 1383 } 1384 1385 /** 1386 * True if this operation overrides an operation defined in an ancestor class. An operation 1387 * overrides when the names of the operations as well as the types of the arguments are equal. 1388 * The return type may be different and is, as well as any exceptions, ignored. 1389 * @see OperationFacade#isOverriding() 1390 */ 1391 public boolean isOverriding() 1392 { 1393 return this.getSuperOperationFacade().isOverriding(); 1394 } 1395 1396 /** 1397 * Whether any postcondition constraints are present on this operation. 1398 * @see OperationFacade#isPostconditionsPresent() 1399 */ 1400 public boolean isPostconditionsPresent() 1401 { 1402 return this.getSuperOperationFacade().isPostconditionsPresent(); 1403 } 1404 1405 /** 1406 * Whether any precondition constraints are present on this operation. 1407 * @see OperationFacade#isPreconditionsPresent() 1408 */ 1409 public boolean isPreconditionsPresent() 1410 { 1411 return this.getSuperOperationFacade().isPreconditionsPresent(); 1412 } 1413 1414 /** 1415 * Indicates whether or not this operation is a query operation. 1416 * @see OperationFacade#isQuery() 1417 */ 1418 public boolean isQuery() 1419 { 1420 return this.getSuperOperationFacade().isQuery(); 1421 } 1422 1423 /** 1424 * True/false depending on whether or not the operation has a return type or not (i.e. a return 1425 * type of something other than void). 1426 * @see OperationFacade#isReturnTypePresent() 1427 */ 1428 public boolean isReturnTypePresent() 1429 { 1430 return this.getSuperOperationFacade().isReturnTypePresent(); 1431 } 1432 1433 /** 1434 * True is the operation is static (only a single instance can be instantiated). 1435 * @see OperationFacade#isStatic() 1436 */ 1437 public boolean isStatic() 1438 { 1439 return this.getSuperOperationFacade().isStatic(); 1440 } 1441 1442 /** 1443 * UML2 only: for Collection return type, is the type unique within the collection. 1444 * Unique+Ordered determines the returned CollectionType. Default=false. 1445 * @see OperationFacade#isUnique() 1446 */ 1447 public boolean isUnique() 1448 { 1449 return this.getSuperOperationFacade().isUnique(); 1450 } 1451 1452 /** 1453 * @see org.andromda.core.metafacade.MetafacadeBase#initialize() 1454 */ 1455 @Override 1456 public void initialize() 1457 { 1458 this.getSuperOperationFacade().initialize(); 1459 } 1460 1461 /** 1462 * @return Object getSuperOperationFacade().getValidationOwner() 1463 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner() 1464 */ 1465 @Override 1466 public Object getValidationOwner() 1467 { 1468 Object owner = this.getSuperOperationFacade().getValidationOwner(); 1469 return owner; 1470 } 1471 1472 /** 1473 * @return String getSuperOperationFacade().getValidationName() 1474 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName() 1475 */ 1476 @Override 1477 public String getValidationName() 1478 { 1479 String name = this.getSuperOperationFacade().getValidationName(); 1480 return name; 1481 } 1482 1483 /** 1484 * @param validationMessages Collection<ModelValidationMessage> 1485 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages) 1486 */ 1487 @Override 1488 public void validateInvariants(Collection<ModelValidationMessage> validationMessages) 1489 { 1490 this.getSuperOperationFacade().validateInvariants(validationMessages); 1491 } 1492 1493 /** 1494 * The property that stores the name of the metafacade. 1495 */ 1496 private static final String NAME_PROPERTY = "name"; 1497 private static final String FQNAME_PROPERTY = "fullyQualifiedName"; 1498 1499 /** 1500 * @see Object#toString() 1501 */ 1502 @Override 1503 public String toString() 1504 { 1505 final StringBuilder toString = new StringBuilder(this.getClass().getName()); 1506 toString.append("["); 1507 try 1508 { 1509 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY)); 1510 } 1511 catch (final Throwable tryAgain) 1512 { 1513 try 1514 { 1515 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY)); 1516 } 1517 catch (final Throwable ignore) 1518 { 1519 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property 1520 } 1521 } 1522 toString.append("]"); 1523 return toString.toString(); 1524 } 1525}