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