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.Destination; 016import org.andromda.metafacades.uml.ModelElementFacade; 017import org.andromda.metafacades.uml.ModelFacade; 018import org.andromda.metafacades.uml.OperationFacade; 019import org.andromda.metafacades.uml.PackageFacade; 020import org.andromda.metafacades.uml.ParameterFacade; 021import org.andromda.metafacades.uml.Role; 022import org.andromda.metafacades.uml.Service; 023import org.andromda.metafacades.uml.ServiceOperation; 024import org.andromda.metafacades.uml.StateMachineFacade; 025import org.andromda.metafacades.uml.StereotypeFacade; 026import org.andromda.metafacades.uml.TaggedValueFacade; 027import org.andromda.metafacades.uml.TemplateParameterFacade; 028import org.andromda.metafacades.uml.TypeMappings; 029 030/** 031 * Represents an operation for a SpringService. 032 * MetafacadeLogic for SpringServiceOperation 033 * 034 * @see SpringServiceOperation 035 */ 036public abstract class SpringServiceOperationLogic 037 extends MetafacadeBase 038 implements SpringServiceOperation 039{ 040 /** 041 * The underlying UML object 042 * @see Object 043 */ 044 protected Object metaObject; 045 046 /** Create Metafacade implementation instance using the MetafacadeFactory from the context 047 * @param metaObjectIn 048 * @param context 049 */ 050 protected SpringServiceOperationLogic(Object metaObjectIn, String context) 051 { 052 super(metaObjectIn, getContext(context)); 053 this.superServiceOperation = 054 (ServiceOperation) 055 MetafacadeFactory.getInstance().createFacadeImpl( 056 "org.andromda.metafacades.uml.ServiceOperation", 057 metaObjectIn, 058 getContext(context)); 059 this.metaObject = metaObjectIn; 060 } 061 062 /** 063 * Gets the context for this metafacade logic instance. 064 * @param context String. Set to SpringServiceOperation if null 065 * @return context String 066 */ 067 private static String getContext(String context) 068 { 069 if (context == null) 070 { 071 context = "org.andromda.cartridges.spring.metafacades.SpringServiceOperation"; 072 } 073 return context; 074 } 075 076 private ServiceOperation superServiceOperation; 077 private boolean superServiceOperationInitialized = false; 078 079 /** 080 * Gets the ServiceOperation parent instance. 081 * @return this.superServiceOperation ServiceOperation 082 */ 083 private ServiceOperation getSuperServiceOperation() 084 { 085 if (!this.superServiceOperationInitialized) 086 { 087 ((MetafacadeBase)this.superServiceOperation).setMetafacadeContext(this.getMetafacadeContext()); 088 this.superServiceOperationInitialized = true; 089 } 090 return this.superServiceOperation; 091 } 092 093 /** Reset context only for non-root metafacades 094 * @param context 095 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context) 096 */ 097 @Override 098 public void resetMetafacadeContext(String context) 099 { 100 if (!this.contextRoot) // reset context only for non-root metafacades 101 { 102 context = getContext(context); // to have same value as in original constructor call 103 setMetafacadeContext (context); 104 if (this.superServiceOperationInitialized) 105 { 106 ((MetafacadeBase)this.superServiceOperation).resetMetafacadeContext(context); 107 } 108 } 109 } 110 111 /** 112 * @return boolean true always 113 * @see SpringServiceOperation 114 */ 115 public boolean isSpringServiceOperationMetaType() 116 { 117 return true; 118 } 119 120 // --------------- attributes --------------------- 121 122 /** 123 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#isWebserviceExposed() 124 * @return boolean 125 */ 126 protected abstract boolean handleIsWebserviceExposed(); 127 128 private boolean __webserviceExposed1a; 129 private boolean __webserviceExposed1aSet = false; 130 131 /** 132 * Returns true/false depending on whether or not this SpringServiceOperation should be exposed 133 * in a webservice. 134 * @return (boolean)handleIsWebserviceExposed() 135 */ 136 public final boolean isWebserviceExposed() 137 { 138 boolean webserviceExposed1a = this.__webserviceExposed1a; 139 if (!this.__webserviceExposed1aSet) 140 { 141 // webserviceExposed has no pre constraints 142 webserviceExposed1a = handleIsWebserviceExposed(); 143 // webserviceExposed has no post constraints 144 this.__webserviceExposed1a = webserviceExposed1a; 145 if (isMetafacadePropertyCachingEnabled()) 146 { 147 this.__webserviceExposed1aSet = true; 148 } 149 } 150 return webserviceExposed1a; 151 } 152 153 /** 154 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getImplementationName() 155 * @return String 156 */ 157 protected abstract String handleGetImplementationName(); 158 159 private String __implementationName2a; 160 private boolean __implementationName2aSet = false; 161 162 /** 163 * The name of the the operation used within the service implementation. 164 * @return (String)handleGetImplementationName() 165 */ 166 public final String getImplementationName() 167 { 168 String implementationName2a = this.__implementationName2a; 169 if (!this.__implementationName2aSet) 170 { 171 // implementationName has no pre constraints 172 implementationName2a = handleGetImplementationName(); 173 // implementationName has no post constraints 174 this.__implementationName2a = implementationName2a; 175 if (isMetafacadePropertyCachingEnabled()) 176 { 177 this.__implementationName2aSet = true; 178 } 179 } 180 return implementationName2a; 181 } 182 183 /** 184 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getImplementationSignature() 185 * @return String 186 */ 187 protected abstract String handleGetImplementationSignature(); 188 189 private String __implementationSignature3a; 190 private boolean __implementationSignature3aSet = false; 191 192 /** 193 * The signature for the implementation operation. 194 * @return (String)handleGetImplementationSignature() 195 */ 196 public final String getImplementationSignature() 197 { 198 String implementationSignature3a = this.__implementationSignature3a; 199 if (!this.__implementationSignature3aSet) 200 { 201 // implementationSignature has no pre constraints 202 implementationSignature3a = handleGetImplementationSignature(); 203 // implementationSignature has no post constraints 204 this.__implementationSignature3a = implementationSignature3a; 205 if (isMetafacadePropertyCachingEnabled()) 206 { 207 this.__implementationSignature3aSet = true; 208 } 209 } 210 return implementationSignature3a; 211 } 212 213 /** 214 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getImplementationCall() 215 * @return String 216 */ 217 protected abstract String handleGetImplementationCall(); 218 219 private String __implementationCall4a; 220 private boolean __implementationCall4aSet = false; 221 222 /** 223 * The method call for the implementation operation. 224 * @return (String)handleGetImplementationCall() 225 */ 226 public final String getImplementationCall() 227 { 228 String implementationCall4a = this.__implementationCall4a; 229 if (!this.__implementationCall4aSet) 230 { 231 // implementationCall has no pre constraints 232 implementationCall4a = handleGetImplementationCall(); 233 // implementationCall has no post constraints 234 this.__implementationCall4a = implementationCall4a; 235 if (isMetafacadePropertyCachingEnabled()) 236 { 237 this.__implementationCall4aSet = true; 238 } 239 } 240 return implementationCall4a; 241 } 242 243 /** 244 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getEjbTransactionType() 245 * @return String 246 */ 247 protected abstract String handleGetEjbTransactionType(); 248 249 private String __ejbTransactionType5a; 250 private boolean __ejbTransactionType5aSet = false; 251 252 /** 253 * The transaction type for EJB service operations (this is used when Session EJBs wrap the 254 * spring services). 255 * @return (String)handleGetEjbTransactionType() 256 */ 257 public final String getEjbTransactionType() 258 { 259 String ejbTransactionType5a = this.__ejbTransactionType5a; 260 if (!this.__ejbTransactionType5aSet) 261 { 262 // ejbTransactionType has no pre constraints 263 ejbTransactionType5a = handleGetEjbTransactionType(); 264 // ejbTransactionType has no post constraints 265 this.__ejbTransactionType5a = ejbTransactionType5a; 266 if (isMetafacadePropertyCachingEnabled()) 267 { 268 this.__ejbTransactionType5aSet = true; 269 } 270 } 271 return ejbTransactionType5a; 272 } 273 274 /** 275 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getTransactionType() 276 * @return String 277 */ 278 protected abstract String handleGetTransactionType(); 279 280 private String __transactionType6a; 281 private boolean __transactionType6aSet = false; 282 283 /** 284 * Stores the Spring transaction type for an operation. 285 * @return (String)handleGetTransactionType() 286 */ 287 public final String getTransactionType() 288 { 289 String transactionType6a = this.__transactionType6a; 290 if (!this.__transactionType6aSet) 291 { 292 // transactionType has no pre constraints 293 transactionType6a = handleGetTransactionType(); 294 // transactionType has no post constraints 295 this.__transactionType6a = transactionType6a; 296 if (isMetafacadePropertyCachingEnabled()) 297 { 298 this.__transactionType6aSet = true; 299 } 300 } 301 return transactionType6a; 302 } 303 304 /** 305 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getThrowsClause() 306 * @return String 307 */ 308 protected abstract String handleGetThrowsClause(); 309 310 private String __throwsClause7a; 311 private boolean __throwsClause7aSet = false; 312 313 /** 314 * Gets the throws clause for this service or null if the operation doesn't have any exceptions. 315 * @return (String)handleGetThrowsClause() 316 */ 317 public final String getThrowsClause() 318 { 319 String throwsClause7a = this.__throwsClause7a; 320 if (!this.__throwsClause7aSet) 321 { 322 // throwsClause has no pre constraints 323 throwsClause7a = handleGetThrowsClause(); 324 // throwsClause has no post constraints 325 this.__throwsClause7a = throwsClause7a; 326 if (isMetafacadePropertyCachingEnabled()) 327 { 328 this.__throwsClause7aSet = true; 329 } 330 } 331 return throwsClause7a; 332 } 333 334 /** 335 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getOutgoingMessageImplementationCall() 336 * @return String 337 */ 338 protected abstract String handleGetOutgoingMessageImplementationCall(); 339 340 private String __outgoingMessageImplementationCall8a; 341 private boolean __outgoingMessageImplementationCall8aSet = false; 342 343 /** 344 * The outgoing JMS method implementation call. 345 * @return (String)handleGetOutgoingMessageImplementationCall() 346 */ 347 public final String getOutgoingMessageImplementationCall() 348 { 349 String outgoingMessageImplementationCall8a = this.__outgoingMessageImplementationCall8a; 350 if (!this.__outgoingMessageImplementationCall8aSet) 351 { 352 // outgoingMessageImplementationCall has no pre constraints 353 outgoingMessageImplementationCall8a = handleGetOutgoingMessageImplementationCall(); 354 // outgoingMessageImplementationCall has no post constraints 355 this.__outgoingMessageImplementationCall8a = outgoingMessageImplementationCall8a; 356 if (isMetafacadePropertyCachingEnabled()) 357 { 358 this.__outgoingMessageImplementationCall8aSet = true; 359 } 360 } 361 return outgoingMessageImplementationCall8a; 362 } 363 364 /** 365 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getOutgoingMessageImplementationSignature() 366 * @return String 367 */ 368 protected abstract String handleGetOutgoingMessageImplementationSignature(); 369 370 private String __outgoingMessageImplementationSignature9a; 371 private boolean __outgoingMessageImplementationSignature9aSet = false; 372 373 /** 374 * The outgoing JMS implementation method signature. 375 * @return (String)handleGetOutgoingMessageImplementationSignature() 376 */ 377 public final String getOutgoingMessageImplementationSignature() 378 { 379 String outgoingMessageImplementationSignature9a = this.__outgoingMessageImplementationSignature9a; 380 if (!this.__outgoingMessageImplementationSignature9aSet) 381 { 382 // outgoingMessageImplementationSignature has no pre constraints 383 outgoingMessageImplementationSignature9a = handleGetOutgoingMessageImplementationSignature(); 384 // outgoingMessageImplementationSignature has no post constraints 385 this.__outgoingMessageImplementationSignature9a = outgoingMessageImplementationSignature9a; 386 if (isMetafacadePropertyCachingEnabled()) 387 { 388 this.__outgoingMessageImplementationSignature9aSet = true; 389 } 390 } 391 return outgoingMessageImplementationSignature9a; 392 } 393 394 /** 395 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getIncomingMessageImplementationSignature() 396 * @return String 397 */ 398 protected abstract String handleGetIncomingMessageImplementationSignature(); 399 400 private String __incomingMessageImplementationSignature10a; 401 private boolean __incomingMessageImplementationSignature10aSet = false; 402 403 /** 404 * The incoming JMS implementation method signature. 405 * @return (String)handleGetIncomingMessageImplementationSignature() 406 */ 407 public final String getIncomingMessageImplementationSignature() 408 { 409 String incomingMessageImplementationSignature10a = this.__incomingMessageImplementationSignature10a; 410 if (!this.__incomingMessageImplementationSignature10aSet) 411 { 412 // incomingMessageImplementationSignature has no pre constraints 413 incomingMessageImplementationSignature10a = handleGetIncomingMessageImplementationSignature(); 414 // incomingMessageImplementationSignature has no post constraints 415 this.__incomingMessageImplementationSignature10a = incomingMessageImplementationSignature10a; 416 if (isMetafacadePropertyCachingEnabled()) 417 { 418 this.__incomingMessageImplementationSignature10aSet = true; 419 } 420 } 421 return incomingMessageImplementationSignature10a; 422 } 423 424 /** 425 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getIncomingMessageImplementationCall() 426 * @return String 427 */ 428 protected abstract String handleGetIncomingMessageImplementationCall(); 429 430 private String __incomingMessageImplementationCall11a; 431 private boolean __incomingMessageImplementationCall11aSet = false; 432 433 /** 434 * The incoming JMS method implementation call. 435 * @return (String)handleGetIncomingMessageImplementationCall() 436 */ 437 public final String getIncomingMessageImplementationCall() 438 { 439 String incomingMessageImplementationCall11a = this.__incomingMessageImplementationCall11a; 440 if (!this.__incomingMessageImplementationCall11aSet) 441 { 442 // incomingMessageImplementationCall has no pre constraints 443 incomingMessageImplementationCall11a = handleGetIncomingMessageImplementationCall(); 444 // incomingMessageImplementationCall has no post constraints 445 this.__incomingMessageImplementationCall11a = incomingMessageImplementationCall11a; 446 if (isMetafacadePropertyCachingEnabled()) 447 { 448 this.__incomingMessageImplementationCall11aSet = true; 449 } 450 } 451 return incomingMessageImplementationCall11a; 452 } 453 454 /** 455 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getImplementationReturnTypeName() 456 * @return String 457 */ 458 protected abstract String handleGetImplementationReturnTypeName(); 459 460 private String __implementationReturnTypeName12a; 461 private boolean __implementationReturnTypeName12aSet = false; 462 463 /** 464 * The fully qualified name of the implementation return type. 465 * @return (String)handleGetImplementationReturnTypeName() 466 */ 467 public final String getImplementationReturnTypeName() 468 { 469 String implementationReturnTypeName12a = this.__implementationReturnTypeName12a; 470 if (!this.__implementationReturnTypeName12aSet) 471 { 472 // implementationReturnTypeName has no pre constraints 473 implementationReturnTypeName12a = handleGetImplementationReturnTypeName(); 474 // implementationReturnTypeName has no post constraints 475 this.__implementationReturnTypeName12a = implementationReturnTypeName12a; 476 if (isMetafacadePropertyCachingEnabled()) 477 { 478 this.__implementationReturnTypeName12aSet = true; 479 } 480 } 481 return implementationReturnTypeName12a; 482 } 483 484 /** 485 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getMessageListenerName() 486 * @return String 487 */ 488 protected abstract String handleGetMessageListenerName(); 489 490 private String __messageListenerName13a; 491 private boolean __messageListenerName13aSet = false; 492 493 /** 494 * Returns the name of the listener that accepts incoming messages for this operation. 495 * @return (String)handleGetMessageListenerName() 496 */ 497 public final String getMessageListenerName() 498 { 499 String messageListenerName13a = this.__messageListenerName13a; 500 if (!this.__messageListenerName13aSet) 501 { 502 // messageListenerName has no pre constraints 503 messageListenerName13a = handleGetMessageListenerName(); 504 // messageListenerName has no post constraints 505 this.__messageListenerName13a = messageListenerName13a; 506 if (isMetafacadePropertyCachingEnabled()) 507 { 508 this.__messageListenerName13aSet = true; 509 } 510 } 511 return messageListenerName13a; 512 } 513 514 /** 515 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getFullyQualifiedMessageListenerName() 516 * @return String 517 */ 518 protected abstract String handleGetFullyQualifiedMessageListenerName(); 519 520 private String __fullyQualifiedMessageListenerName14a; 521 private boolean __fullyQualifiedMessageListenerName14aSet = false; 522 523 /** 524 * The fully qualified name of the listener that accepts incoming messages for this operation. 525 * @return (String)handleGetFullyQualifiedMessageListenerName() 526 */ 527 public final String getFullyQualifiedMessageListenerName() 528 { 529 String fullyQualifiedMessageListenerName14a = this.__fullyQualifiedMessageListenerName14a; 530 if (!this.__fullyQualifiedMessageListenerName14aSet) 531 { 532 // fullyQualifiedMessageListenerName has no pre constraints 533 fullyQualifiedMessageListenerName14a = handleGetFullyQualifiedMessageListenerName(); 534 // fullyQualifiedMessageListenerName has no post constraints 535 this.__fullyQualifiedMessageListenerName14a = fullyQualifiedMessageListenerName14a; 536 if (isMetafacadePropertyCachingEnabled()) 537 { 538 this.__fullyQualifiedMessageListenerName14aSet = true; 539 } 540 } 541 return fullyQualifiedMessageListenerName14a; 542 } 543 544 /** 545 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getMessageListenerBeanName() 546 * @return String 547 */ 548 protected abstract String handleGetMessageListenerBeanName(); 549 550 private String __messageListenerBeanName15a; 551 private boolean __messageListenerBeanName15aSet = false; 552 553 /** 554 * The bean name of the message listener. 555 * @return (String)handleGetMessageListenerBeanName() 556 */ 557 public final String getMessageListenerBeanName() 558 { 559 String messageListenerBeanName15a = this.__messageListenerBeanName15a; 560 if (!this.__messageListenerBeanName15aSet) 561 { 562 // messageListenerBeanName has no pre constraints 563 messageListenerBeanName15a = handleGetMessageListenerBeanName(); 564 // messageListenerBeanName has no post constraints 565 this.__messageListenerBeanName15a = messageListenerBeanName15a; 566 if (isMetafacadePropertyCachingEnabled()) 567 { 568 this.__messageListenerBeanName15aSet = true; 569 } 570 } 571 return messageListenerBeanName15a; 572 } 573 574 /** 575 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getMessageListenerContainerReferenceName() 576 * @return String 577 */ 578 protected abstract String handleGetMessageListenerContainerReferenceName(); 579 580 private String __messageListenerContainerReferenceName16a; 581 private boolean __messageListenerContainerReferenceName16aSet = false; 582 583 /** 584 * The bean name for the message listener container reference. 585 * @return (String)handleGetMessageListenerContainerReferenceName() 586 */ 587 public final String getMessageListenerContainerReferenceName() 588 { 589 String messageListenerContainerReferenceName16a = this.__messageListenerContainerReferenceName16a; 590 if (!this.__messageListenerContainerReferenceName16aSet) 591 { 592 // messageListenerContainerReferenceName has no pre constraints 593 messageListenerContainerReferenceName16a = handleGetMessageListenerContainerReferenceName(); 594 // messageListenerContainerReferenceName has no post constraints 595 this.__messageListenerContainerReferenceName16a = messageListenerContainerReferenceName16a; 596 if (isMetafacadePropertyCachingEnabled()) 597 { 598 this.__messageListenerContainerReferenceName16aSet = true; 599 } 600 } 601 return messageListenerContainerReferenceName16a; 602 } 603 604 /** 605 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getMessageListenerContainerBeanName() 606 * @return String 607 */ 608 protected abstract String handleGetMessageListenerContainerBeanName(); 609 610 private String __messageListenerContainerBeanName17a; 611 private boolean __messageListenerContainerBeanName17aSet = false; 612 613 /** 614 * The bean name of the message listener container. 615 * @return (String)handleGetMessageListenerContainerBeanName() 616 */ 617 public final String getMessageListenerContainerBeanName() 618 { 619 String messageListenerContainerBeanName17a = this.__messageListenerContainerBeanName17a; 620 if (!this.__messageListenerContainerBeanName17aSet) 621 { 622 // messageListenerContainerBeanName has no pre constraints 623 messageListenerContainerBeanName17a = handleGetMessageListenerContainerBeanName(); 624 // messageListenerContainerBeanName has no post constraints 625 this.__messageListenerContainerBeanName17a = messageListenerContainerBeanName17a; 626 if (isMetafacadePropertyCachingEnabled()) 627 { 628 this.__messageListenerContainerBeanName17aSet = true; 629 } 630 } 631 return messageListenerContainerBeanName17a; 632 } 633 634 /** 635 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#isOptimizeAcknowledge() 636 * @return boolean 637 */ 638 protected abstract boolean handleIsOptimizeAcknowledge(); 639 640 private boolean __optimizeAcknowledge18a; 641 private boolean __optimizeAcknowledge18aSet = false; 642 643 /** 644 * Tthis flag includes whether or not the "optimizeAcknowledge" is true/false for a messaging 645 * destination (aka JMS topic/queue); when receiving a message through an ActiveMQ connection, 646 * @return (boolean)handleIsOptimizeAcknowledge() 647 */ 648 public final boolean isOptimizeAcknowledge() 649 { 650 boolean optimizeAcknowledge18a = this.__optimizeAcknowledge18a; 651 if (!this.__optimizeAcknowledge18aSet) 652 { 653 // optimizeAcknowledge has no pre constraints 654 optimizeAcknowledge18a = handleIsOptimizeAcknowledge(); 655 // optimizeAcknowledge has no post constraints 656 this.__optimizeAcknowledge18a = optimizeAcknowledge18a; 657 if (isMetafacadePropertyCachingEnabled()) 658 { 659 this.__optimizeAcknowledge18aSet = true; 660 } 661 } 662 return optimizeAcknowledge18a; 663 } 664 665 /** 666 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#getSessionAcknowledgeMode() 667 * @return String 668 */ 669 protected abstract String handleGetSessionAcknowledgeMode(); 670 671 private String __sessionAcknowledgeMode19a; 672 private boolean __sessionAcknowledgeMode19aSet = false; 673 674 /** 675 * Indicates the "session acknowledge mode" for the JMS session when this operation acts as a 676 * message receiver from the messaging destination (aka JMS topic/queue). 677 * @return (String)handleGetSessionAcknowledgeMode() 678 */ 679 public final String getSessionAcknowledgeMode() 680 { 681 String sessionAcknowledgeMode19a = this.__sessionAcknowledgeMode19a; 682 if (!this.__sessionAcknowledgeMode19aSet) 683 { 684 // sessionAcknowledgeMode has no pre constraints 685 sessionAcknowledgeMode19a = handleGetSessionAcknowledgeMode(); 686 // sessionAcknowledgeMode has no post constraints 687 this.__sessionAcknowledgeMode19a = sessionAcknowledgeMode19a; 688 if (isMetafacadePropertyCachingEnabled()) 689 { 690 this.__sessionAcknowledgeMode19aSet = true; 691 } 692 } 693 return sessionAcknowledgeMode19a; 694 } 695 696 /** 697 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#isNullMessageConverterRequired() 698 * @return boolean 699 */ 700 protected abstract boolean handleIsNullMessageConverterRequired(); 701 702 private boolean __nullMessageConverterRequired20a; 703 private boolean __nullMessageConverterRequired20aSet = false; 704 705 /** 706 * This flag tells if the MessageConverter associated to the MessageListenerAdapter handling 707 * incoming message should be set to null. 708 * @return (boolean)handleIsNullMessageConverterRequired() 709 */ 710 public final boolean isNullMessageConverterRequired() 711 { 712 boolean nullMessageConverterRequired20a = this.__nullMessageConverterRequired20a; 713 if (!this.__nullMessageConverterRequired20aSet) 714 { 715 // nullMessageConverterRequired has no pre constraints 716 nullMessageConverterRequired20a = handleIsNullMessageConverterRequired(); 717 // nullMessageConverterRequired has no post constraints 718 this.__nullMessageConverterRequired20a = nullMessageConverterRequired20a; 719 if (isMetafacadePropertyCachingEnabled()) 720 { 721 this.__nullMessageConverterRequired20aSet = true; 722 } 723 } 724 return nullMessageConverterRequired20a; 725 } 726 727 /** 728 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#isInitMethod() 729 * @return boolean 730 */ 731 protected abstract boolean handleIsInitMethod(); 732 733 private boolean __initMethod21a; 734 private boolean __initMethod21aSet = false; 735 736 /** 737 * Returns true/false depending on whether or not this SpringServiceOperation should be an 738 * init-method 739 * @return (boolean)handleIsInitMethod() 740 */ 741 public final boolean isInitMethod() 742 { 743 boolean initMethod21a = this.__initMethod21a; 744 if (!this.__initMethod21aSet) 745 { 746 // initMethod has no pre constraints 747 initMethod21a = handleIsInitMethod(); 748 // initMethod has no post constraints 749 this.__initMethod21a = initMethod21a; 750 if (isMetafacadePropertyCachingEnabled()) 751 { 752 this.__initMethod21aSet = true; 753 } 754 } 755 return initMethod21a; 756 } 757 758 /** 759 * @see org.andromda.cartridges.spring.metafacades.SpringServiceOperation#isDestroyMethod() 760 * @return boolean 761 */ 762 protected abstract boolean handleIsDestroyMethod(); 763 764 private boolean __destroyMethod22a; 765 private boolean __destroyMethod22aSet = false; 766 767 /** 768 * Returns true/false depending on whether or not this SpringServiceOperation should be an 769 * destroy-method 770 * @return (boolean)handleIsDestroyMethod() 771 */ 772 public final boolean isDestroyMethod() 773 { 774 boolean destroyMethod22a = this.__destroyMethod22a; 775 if (!this.__destroyMethod22aSet) 776 { 777 // destroyMethod has no pre constraints 778 destroyMethod22a = handleIsDestroyMethod(); 779 // destroyMethod has no post constraints 780 this.__destroyMethod22a = destroyMethod22a; 781 if (isMetafacadePropertyCachingEnabled()) 782 { 783 this.__destroyMethod22aSet = true; 784 } 785 } 786 return destroyMethod22a; 787 } 788 789 // ---------------- business methods ---------------------- 790 791 /** 792 * Method to be implemented in descendants 793 * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and 794 * appended to the list. 795 * @param initialExceptions 796 * @return String 797 */ 798 protected abstract String handleGetThrowsClause(String initialExceptions); 799 800 /** 801 * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and 802 * appended to the list. 803 * @param initialExceptions String 804 * A comma separated list of initial exceptions to add to the list. 805 * @return handleGetThrowsClause(initialExceptions) 806 */ 807 public String getThrowsClause(String initialExceptions) 808 { 809 // getThrowsClause has no pre constraints 810 String returnValue = handleGetThrowsClause(initialExceptions); 811 // getThrowsClause has no post constraints 812 return returnValue; 813 } 814 815 // ------------- associations ------------------ 816 817 /** 818 * @return true 819 * @see ServiceOperation 820 */ 821 public boolean isServiceOperationMetaType() 822 { 823 return true; 824 } 825 826 /** 827 * @return true 828 * @see OperationFacade 829 */ 830 public boolean isOperationFacadeMetaType() 831 { 832 return true; 833 } 834 835 /** 836 * @return true 837 * @see ModelElementFacade 838 */ 839 public boolean isModelElementFacadeMetaType() 840 { 841 return true; 842 } 843 844 // ----------- delegates to ServiceOperation ------------ 845 /** 846 * Copies all tagged values from the given ModelElementFacade to this model element facade. 847 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element) 848 */ 849 public void copyTaggedValues(ModelElementFacade element) 850 { 851 this.getSuperServiceOperation().copyTaggedValues(element); 852 } 853 854 /** 855 * Finds the tagged value with the specified 'tagName'. In case there are more values the first 856 * one found will be returned. 857 * @see ModelElementFacade#findTaggedValue(String tagName) 858 */ 859 public Object findTaggedValue(String tagName) 860 { 861 return this.getSuperServiceOperation().findTaggedValue(tagName); 862 } 863 864 /** 865 * Returns all the values for the tagged value with the specified name. The returned collection 866 * will contains only String instances, or will be empty. Never null. 867 * @see ModelElementFacade#findTaggedValues(String tagName) 868 */ 869 public Collection<Object> findTaggedValues(String tagName) 870 { 871 return this.getSuperServiceOperation().findTaggedValues(tagName); 872 } 873 874 /** 875 * Returns the fully qualified name of the model element. The fully qualified name includes 876 * complete package qualified name of the underlying model element. The templates parameter will 877 * be replaced by the correct one given the binding relation of the parameter to this element. 878 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement) 879 */ 880 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement) 881 { 882 return this.getSuperServiceOperation().getBindedFullyQualifiedName(bindedElement); 883 } 884 885 /** 886 * Gets all constraints belonging to the model element. 887 * @see ModelElementFacade#getConstraints() 888 */ 889 public Collection<ConstraintFacade> getConstraints() 890 { 891 return this.getSuperServiceOperation().getConstraints(); 892 } 893 894 /** 895 * Returns the constraints of the argument kind that have been placed onto this model. Typical 896 * kinds are "inv", "pre" and "post". Other kinds are possible. 897 * @see ModelElementFacade#getConstraints(String kind) 898 */ 899 public Collection<ConstraintFacade> getConstraints(String kind) 900 { 901 return this.getSuperServiceOperation().getConstraints(kind); 902 } 903 904 /** 905 * Gets the documentation for the model element, The indent argument is prefixed to each line. 906 * By default this method wraps lines after 64 characters. 907 * This method is equivalent to <code>getDocumentation(indent, 64)</code>. 908 * @see ModelElementFacade#getDocumentation(String indent) 909 */ 910 public String getDocumentation(String indent) 911 { 912 return this.getSuperServiceOperation().getDocumentation(indent); 913 } 914 915 /** 916 * This method returns the documentation for this model element, with the lines wrapped after 917 * the specified number of characters, values of less than 1 will indicate no line wrapping is 918 * required. By default paragraphs are returned as HTML. 919 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>. 920 * @see ModelElementFacade#getDocumentation(String indent, int lineLength) 921 */ 922 public String getDocumentation(String indent, int lineLength) 923 { 924 return this.getSuperServiceOperation().getDocumentation(indent, lineLength); 925 } 926 927 /** 928 * This method returns the documentation for this model element, with the lines wrapped after 929 * the specified number of characters, values of less than 1 will indicate no line wrapping is 930 * required. HTML style determines if HTML Escaping is applied. 931 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle) 932 */ 933 public String getDocumentation(String indent, int lineLength, boolean htmlStyle) 934 { 935 return this.getSuperServiceOperation().getDocumentation(indent, lineLength, htmlStyle); 936 } 937 938 /** 939 * The fully qualified name of this model element. 940 * @see ModelElementFacade#getFullyQualifiedName() 941 */ 942 public String getFullyQualifiedName() 943 { 944 return this.getSuperServiceOperation().getFullyQualifiedName(); 945 } 946 947 /** 948 * Returns the fully qualified name of the model element. The fully qualified name includes 949 * complete package qualified name of the underlying model element. If modelName is true, then 950 * the original name of the model element (the name contained within the model) will be the name 951 * returned, otherwise a name from a language mapping will be returned. 952 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName) 953 */ 954 public String getFullyQualifiedName(boolean modelName) 955 { 956 return this.getSuperServiceOperation().getFullyQualifiedName(modelName); 957 } 958 959 /** 960 * Returns the fully qualified name as a path, the returned value always starts with out a slash 961 * '/'. 962 * @see ModelElementFacade#getFullyQualifiedNamePath() 963 */ 964 public String getFullyQualifiedNamePath() 965 { 966 return this.getSuperServiceOperation().getFullyQualifiedNamePath(); 967 } 968 969 /** 970 * Gets the unique identifier of the underlying model element. 971 * @see ModelElementFacade#getId() 972 */ 973 public String getId() 974 { 975 return this.getSuperServiceOperation().getId(); 976 } 977 978 /** 979 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which 980 * are not represented by other properties, i.e. native, transient, volatile, synchronized, 981 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings: 982 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require 983 * JDK5 compiler level. 984 * @see ModelElementFacade#getKeywords() 985 */ 986 public Collection<String> getKeywords() 987 { 988 return this.getSuperServiceOperation().getKeywords(); 989 } 990 991 /** 992 * UML2: Retrieves a localized label for this named element. 993 * @see ModelElementFacade#getLabel() 994 */ 995 public String getLabel() 996 { 997 return this.getSuperServiceOperation().getLabel(); 998 } 999 1000 /** 1001 * The language mappings that have been set for this model element. 1002 * @see ModelElementFacade#getLanguageMappings() 1003 */ 1004 public TypeMappings getLanguageMappings() 1005 { 1006 return this.getSuperServiceOperation().getLanguageMappings(); 1007 } 1008 1009 /** 1010 * Return the model containing this model element (multiple models may be loaded and processed 1011 * at the same time). 1012 * @see ModelElementFacade#getModel() 1013 */ 1014 public ModelFacade getModel() 1015 { 1016 return this.getSuperServiceOperation().getModel(); 1017 } 1018 1019 /** 1020 * The name of the model element. 1021 * @see ModelElementFacade#getName() 1022 */ 1023 public String getName() 1024 { 1025 return this.getSuperServiceOperation().getName(); 1026 } 1027 1028 /** 1029 * Gets the package to which this model element belongs. 1030 * @see ModelElementFacade#getPackage() 1031 */ 1032 public ModelElementFacade getPackage() 1033 { 1034 return this.getSuperServiceOperation().getPackage(); 1035 } 1036 1037 /** 1038 * The name of this model element's package. 1039 * @see ModelElementFacade#getPackageName() 1040 */ 1041 public String getPackageName() 1042 { 1043 return this.getSuperServiceOperation().getPackageName(); 1044 } 1045 1046 /** 1047 * Gets the package name (optionally providing the ability to retrieve the model name and not 1048 * the mapped name). 1049 * @see ModelElementFacade#getPackageName(boolean modelName) 1050 */ 1051 public String getPackageName(boolean modelName) 1052 { 1053 return this.getSuperServiceOperation().getPackageName(modelName); 1054 } 1055 1056 /** 1057 * Returns the package as a path, the returned value always starts with out a slash '/'. 1058 * @see ModelElementFacade#getPackagePath() 1059 */ 1060 public String getPackagePath() 1061 { 1062 return this.getSuperServiceOperation().getPackagePath(); 1063 } 1064 1065 /** 1066 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the 1067 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from 1068 * the names of the containing namespaces starting at the root of the hierarchy and ending with 1069 * the name of the NamedElement itself. 1070 * @see ModelElementFacade#getQualifiedName() 1071 */ 1072 public String getQualifiedName() 1073 { 1074 return this.getSuperServiceOperation().getQualifiedName(); 1075 } 1076 1077 /** 1078 * Gets the root package for the model element. 1079 * @see ModelElementFacade#getRootPackage() 1080 */ 1081 public PackageFacade getRootPackage() 1082 { 1083 return this.getSuperServiceOperation().getRootPackage(); 1084 } 1085 1086 /** 1087 * Gets the dependencies for which this model element is the source. 1088 * @see ModelElementFacade#getSourceDependencies() 1089 */ 1090 public Collection<DependencyFacade> getSourceDependencies() 1091 { 1092 return this.getSuperServiceOperation().getSourceDependencies(); 1093 } 1094 1095 /** 1096 * If this model element is the context of an activity graph, this represents that activity 1097 * graph. 1098 * @see ModelElementFacade#getStateMachineContext() 1099 */ 1100 public StateMachineFacade getStateMachineContext() 1101 { 1102 return this.getSuperServiceOperation().getStateMachineContext(); 1103 } 1104 1105 /** 1106 * The collection of ALL stereotype names for this model element. 1107 * @see ModelElementFacade#getStereotypeNames() 1108 */ 1109 public Collection<String> getStereotypeNames() 1110 { 1111 return this.getSuperServiceOperation().getStereotypeNames(); 1112 } 1113 1114 /** 1115 * Gets all stereotypes for this model element. 1116 * @see ModelElementFacade#getStereotypes() 1117 */ 1118 public Collection<StereotypeFacade> getStereotypes() 1119 { 1120 return this.getSuperServiceOperation().getStereotypes(); 1121 } 1122 1123 /** 1124 * Return the TaggedValues associated with this model element, under all stereotypes. 1125 * @see ModelElementFacade#getTaggedValues() 1126 */ 1127 public Collection<TaggedValueFacade> getTaggedValues() 1128 { 1129 return this.getSuperServiceOperation().getTaggedValues(); 1130 } 1131 1132 /** 1133 * Gets the dependencies for which this model element is the target. 1134 * @see ModelElementFacade#getTargetDependencies() 1135 */ 1136 public Collection<DependencyFacade> getTargetDependencies() 1137 { 1138 return this.getSuperServiceOperation().getTargetDependencies(); 1139 } 1140 1141 /** 1142 * Get the template parameter for this model element having the parameterName 1143 * @see ModelElementFacade#getTemplateParameter(String parameterName) 1144 */ 1145 public Object getTemplateParameter(String parameterName) 1146 { 1147 return this.getSuperServiceOperation().getTemplateParameter(parameterName); 1148 } 1149 1150 /** 1151 * Get the template parameters for this model element 1152 * @see ModelElementFacade#getTemplateParameters() 1153 */ 1154 public Collection<TemplateParameterFacade> getTemplateParameters() 1155 { 1156 return this.getSuperServiceOperation().getTemplateParameters(); 1157 } 1158 1159 /** 1160 * The visibility (i.e. public, private, protected or package) of the model element, will 1161 * attempt a lookup for these values in the language mappings (if any). 1162 * @see ModelElementFacade#getVisibility() 1163 */ 1164 public String getVisibility() 1165 { 1166 return this.getSuperServiceOperation().getVisibility(); 1167 } 1168 1169 /** 1170 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance 1171 * is taken into account when searching for the stereotype), false otherwise. 1172 * @see ModelElementFacade#hasExactStereotype(String stereotypeName) 1173 */ 1174 public boolean hasExactStereotype(String stereotypeName) 1175 { 1176 return this.getSuperServiceOperation().hasExactStereotype(stereotypeName); 1177 } 1178 1179 /** 1180 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma, 1181 * pipe, semicolon, or << >> 1182 * @see ModelElementFacade#hasKeyword(String keywordName) 1183 */ 1184 public boolean hasKeyword(String keywordName) 1185 { 1186 return this.getSuperServiceOperation().hasKeyword(keywordName); 1187 } 1188 1189 /** 1190 * Returns true if the model element has the specified stereotype. If the stereotype itself 1191 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if 1192 * one of the stereotype's ancestors has a matching name this method will return true, false 1193 * otherwise. 1194 * For example, if we have a certain stereotype called <<exception>> and a model element has a 1195 * stereotype called <<applicationException>> which extends <<exception>>, when calling this 1196 * method with 'stereotypeName' defined as 'exception' the method would return true since 1197 * <<applicationException>> inherits from <<exception>>. If you want to check if the model 1198 * element has the exact stereotype, then use the method 'hasExactStereotype' instead. 1199 * @see ModelElementFacade#hasStereotype(String stereotypeName) 1200 */ 1201 public boolean hasStereotype(String stereotypeName) 1202 { 1203 return this.getSuperServiceOperation().hasStereotype(stereotypeName); 1204 } 1205 1206 /** 1207 * True if there are target dependencies from this element that are instances of BindingFacade. 1208 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies. 1209 * @see ModelElementFacade#isBindingDependenciesPresent() 1210 */ 1211 public boolean isBindingDependenciesPresent() 1212 { 1213 return this.getSuperServiceOperation().isBindingDependenciesPresent(); 1214 } 1215 1216 /** 1217 * Indicates if any constraints are present on this model element. 1218 * @see ModelElementFacade#isConstraintsPresent() 1219 */ 1220 public boolean isConstraintsPresent() 1221 { 1222 return this.getSuperServiceOperation().isConstraintsPresent(); 1223 } 1224 1225 /** 1226 * Indicates if any documentation is present on this model element. 1227 * @see ModelElementFacade#isDocumentationPresent() 1228 */ 1229 public boolean isDocumentationPresent() 1230 { 1231 return this.getSuperServiceOperation().isDocumentationPresent(); 1232 } 1233 1234 /** 1235 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript. 1236 * @see ModelElementFacade#isReservedWord() 1237 */ 1238 public boolean isReservedWord() 1239 { 1240 return this.getSuperServiceOperation().isReservedWord(); 1241 } 1242 1243 /** 1244 * True is there are template parameters on this model element. For UML2, applies to Class, 1245 * Operation, Property, and Parameter. 1246 * @see ModelElementFacade#isTemplateParametersPresent() 1247 */ 1248 public boolean isTemplateParametersPresent() 1249 { 1250 return this.getSuperServiceOperation().isTemplateParametersPresent(); 1251 } 1252 1253 /** 1254 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++, 1255 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on 1256 * Enumerations and Interfaces, optionally applies on other model elements. 1257 * @see ModelElementFacade#isValidIdentifierName() 1258 */ 1259 public boolean isValidIdentifierName() 1260 { 1261 return this.getSuperServiceOperation().isValidIdentifierName(); 1262 } 1263 1264 /** 1265 * Searches for the constraint with the specified 'name' on this model element, and if found 1266 * translates it using the specified 'translation' from a translation library discovered by the 1267 * framework. 1268 * @see ModelElementFacade#translateConstraint(String name, String translation) 1269 */ 1270 public String translateConstraint(String name, String translation) 1271 { 1272 return this.getSuperServiceOperation().translateConstraint(name, translation); 1273 } 1274 1275 /** 1276 * Translates all constraints belonging to this model element with the given 'translation'. 1277 * @see ModelElementFacade#translateConstraints(String translation) 1278 */ 1279 public String[] translateConstraints(String translation) 1280 { 1281 return this.getSuperServiceOperation().translateConstraints(translation); 1282 } 1283 1284 /** 1285 * Translates the constraints of the specified 'kind' belonging to this model element. 1286 * @see ModelElementFacade#translateConstraints(String kind, String translation) 1287 */ 1288 public String[] translateConstraints(String kind, String translation) 1289 { 1290 return this.getSuperServiceOperation().translateConstraints(kind, translation); 1291 } 1292 1293 /** 1294 * Finds the parameter on this operation having the given name, if no parameter is found, null 1295 * is returned instead. 1296 * @see OperationFacade#findParameter(String name) 1297 */ 1298 public ParameterFacade findParameter(String name) 1299 { 1300 return this.getSuperServiceOperation().findParameter(name); 1301 } 1302 1303 /** 1304 * Searches the given feature for the specified tag. 1305 * If the follow boolean is set to true then the search will continue from the class operation 1306 * to the class itself and then up the class hierarchy. 1307 * @see OperationFacade#findTaggedValue(String name, boolean follow) 1308 */ 1309 public Object findTaggedValue(String name, boolean follow) 1310 { 1311 return this.getSuperServiceOperation().findTaggedValue(name, follow); 1312 } 1313 1314 /** 1315 * A comma separated list of all argument names. 1316 * @see OperationFacade#getArgumentNames() 1317 */ 1318 public String getArgumentNames() 1319 { 1320 return this.getSuperServiceOperation().getArgumentNames(); 1321 } 1322 1323 /** 1324 * A comma separated list of all types of each argument, in order. 1325 * @see OperationFacade#getArgumentTypeNames() 1326 */ 1327 public String getArgumentTypeNames() 1328 { 1329 return this.getSuperServiceOperation().getArgumentTypeNames(); 1330 } 1331 1332 /** 1333 * Specification of an argument used to pass information into or out of an invocation of a 1334 * behavioral 1335 * feature. Parameters are allowed to be treated as connectable elements. Parameters have 1336 * support for 1337 * streaming, exceptions, and parameter sets. 1338 * @see OperationFacade#getArguments() 1339 */ 1340 public Collection<ParameterFacade> getArguments() 1341 { 1342 return this.getSuperServiceOperation().getArguments(); 1343 } 1344 1345 /** 1346 * Constructs the operation call with the operation name 1347 * @see OperationFacade#getCall() 1348 */ 1349 public String getCall() 1350 { 1351 return this.getSuperServiceOperation().getCall(); 1352 } 1353 1354 /** 1355 * Returns the concurrency modifier for this operation (i.e. concurrent, guarded or sequential) 1356 * of the model element, will attempt a lookup for these values in the language mappings (if 1357 * any). 1358 * @see OperationFacade#getConcurrency() 1359 */ 1360 public String getConcurrency() 1361 { 1362 return this.getSuperServiceOperation().getConcurrency(); 1363 } 1364 1365 /** 1366 * A comma separated list containing all exceptions that this operation throws. Exceptions are 1367 * determined through dependencies that have the target element stereotyped as <<Exception>>. 1368 * @see OperationFacade#getExceptionList() 1369 */ 1370 public String getExceptionList() 1371 { 1372 return this.getSuperServiceOperation().getExceptionList(); 1373 } 1374 1375 /** 1376 * Returns a comma separated list of exceptions appended to the comma separated list of fully 1377 * qualified 'initialException' classes passed in to this method. 1378 * @see OperationFacade#getExceptionList(String initialExceptions) 1379 */ 1380 public String getExceptionList(String initialExceptions) 1381 { 1382 return this.getSuperServiceOperation().getExceptionList(initialExceptions); 1383 } 1384 1385 /** 1386 * A collection of all exceptions thrown by this operation. 1387 * @see OperationFacade#getExceptions() 1388 */ 1389 public Collection<ModelElementFacade> getExceptions() 1390 { 1391 return this.getSuperServiceOperation().getExceptions(); 1392 } 1393 1394 /** 1395 * Return Type with multiplicity taken into account. UML14 does not allow multiplicity *. 1396 * @see OperationFacade#getGetterSetterReturnTypeName() 1397 */ 1398 public String getGetterSetterReturnTypeName() 1399 { 1400 return this.getSuperServiceOperation().getGetterSetterReturnTypeName(); 1401 } 1402 1403 /** 1404 * the lower value for the multiplicity 1405 * -only applicable for UML2 1406 * @see OperationFacade#getLower() 1407 */ 1408 public int getLower() 1409 { 1410 return this.getSuperServiceOperation().getLower(); 1411 } 1412 1413 /** 1414 * Returns the operation method body determined from UML sequence diagrams or other UML sources. 1415 * @see OperationFacade#getMethodBody() 1416 */ 1417 public String getMethodBody() 1418 { 1419 return this.getSuperServiceOperation().getMethodBody(); 1420 } 1421 1422 /** 1423 * The operation this operation overrides, null if this operation is not overriding. 1424 * @see OperationFacade#getOverriddenOperation() 1425 */ 1426 public OperationFacade getOverriddenOperation() 1427 { 1428 return this.getSuperServiceOperation().getOverriddenOperation(); 1429 } 1430 1431 /** 1432 * Gets the owner of this operation 1433 * @see OperationFacade#getOwner() 1434 */ 1435 public ClassifierFacade getOwner() 1436 { 1437 return this.getSuperServiceOperation().getOwner(); 1438 } 1439 1440 /** 1441 * Return all parameters for the operation, including the return parameter. 1442 * @see OperationFacade#getParameters() 1443 */ 1444 public Collection<ParameterFacade> getParameters() 1445 { 1446 return this.getSuperServiceOperation().getParameters(); 1447 } 1448 1449 /** 1450 * The name of the operation that handles postcondition constraints. 1451 * @see OperationFacade#getPostconditionName() 1452 */ 1453 public String getPostconditionName() 1454 { 1455 return this.getSuperServiceOperation().getPostconditionName(); 1456 } 1457 1458 /** 1459 * The postcondition constraints belonging to this operation. 1460 * @see OperationFacade#getPostconditions() 1461 */ 1462 public Collection<ConstraintFacade> getPostconditions() 1463 { 1464 return this.getSuperServiceOperation().getPostconditions(); 1465 } 1466 1467 /** 1468 * The call to the precondition operation. 1469 * @see OperationFacade#getPreconditionCall() 1470 */ 1471 public String getPreconditionCall() 1472 { 1473 return this.getSuperServiceOperation().getPreconditionCall(); 1474 } 1475 1476 /** 1477 * The name of the operation that handles precondition constraints. 1478 * @see OperationFacade#getPreconditionName() 1479 */ 1480 public String getPreconditionName() 1481 { 1482 return this.getSuperServiceOperation().getPreconditionName(); 1483 } 1484 1485 /** 1486 * The signature of the precondition operation. 1487 * @see OperationFacade#getPreconditionSignature() 1488 */ 1489 public String getPreconditionSignature() 1490 { 1491 return this.getSuperServiceOperation().getPreconditionSignature(); 1492 } 1493 1494 /** 1495 * The precondition constraints belonging to this operation. 1496 * @see OperationFacade#getPreconditions() 1497 */ 1498 public Collection<ConstraintFacade> getPreconditions() 1499 { 1500 return this.getSuperServiceOperation().getPreconditions(); 1501 } 1502 1503 /** 1504 * (UML2 Only). Get the actual return parameter (which may have stereotypes etc). 1505 * @see OperationFacade#getReturnParameter() 1506 */ 1507 public ParameterFacade getReturnParameter() 1508 { 1509 return this.getSuperServiceOperation().getReturnParameter(); 1510 } 1511 1512 /** 1513 * The operation return type parameter. 1514 * @see OperationFacade#getReturnType() 1515 */ 1516 public ClassifierFacade getReturnType() 1517 { 1518 return this.getSuperServiceOperation().getReturnType(); 1519 } 1520 1521 /** 1522 * Return the operation signature, including public/protested abstract returnType name plus 1523 * argument type and name 1524 * @see OperationFacade#getSignature() 1525 */ 1526 public String getSignature() 1527 { 1528 return this.getSuperServiceOperation().getSignature(); 1529 } 1530 1531 /** 1532 * Returns the signature of the operation and optionally appends the argument names (if 1533 * withArgumentNames is true), otherwise returns the signature with just the types alone in the 1534 * signature. 1535 * @see OperationFacade#getSignature(boolean withArgumentNames) 1536 */ 1537 public String getSignature(boolean withArgumentNames) 1538 { 1539 return this.getSuperServiceOperation().getSignature(withArgumentNames); 1540 } 1541 1542 /** 1543 * Returns the signature of the operation and optionally appends the given 'argumentModifier' to 1544 * each argument. 1545 * @see OperationFacade#getSignature(String argumentModifier) 1546 */ 1547 public String getSignature(String argumentModifier) 1548 { 1549 return this.getSuperServiceOperation().getSignature(argumentModifier); 1550 } 1551 1552 /** 1553 * A comma-separated parameter list (type and name of each parameter) of an operation. 1554 * @see OperationFacade#getTypedArgumentList() 1555 */ 1556 public String getTypedArgumentList() 1557 { 1558 return this.getSuperServiceOperation().getTypedArgumentList(); 1559 } 1560 1561 /** 1562 * A comma-separated parameter list (type and name of each parameter) of an operation with an 1563 * optional modifier (i.e final) before each parameter. 1564 * @see OperationFacade#getTypedArgumentList(String modifier) 1565 */ 1566 public String getTypedArgumentList(String modifier) 1567 { 1568 return this.getSuperServiceOperation().getTypedArgumentList(modifier); 1569 } 1570 1571 /** 1572 * the upper value for the multiplicity (will be -1 for *) 1573 * - only applicable for UML2 1574 * @see OperationFacade#getUpper() 1575 */ 1576 public int getUpper() 1577 { 1578 return this.getSuperServiceOperation().getUpper(); 1579 } 1580 1581 /** 1582 * True is the operation is abstract. 1583 * @see OperationFacade#isAbstract() 1584 */ 1585 public boolean isAbstract() 1586 { 1587 return this.getSuperServiceOperation().isAbstract(); 1588 } 1589 1590 /** 1591 * True if the operation has (i.e. throws any exceptions) false otherwise. 1592 * @see OperationFacade#isExceptionsPresent() 1593 */ 1594 public boolean isExceptionsPresent() 1595 { 1596 return this.getSuperServiceOperation().isExceptionsPresent(); 1597 } 1598 1599 /** 1600 * IsLeaf property in the operation. If true, operation is final, cannot be extended or 1601 * implemented by a descendant. Default=false. 1602 * @see OperationFacade#isLeaf() 1603 */ 1604 public boolean isLeaf() 1605 { 1606 return this.getSuperServiceOperation().isLeaf(); 1607 } 1608 1609 /** 1610 * UML2 only. If the return type parameter multiplicity>1 OR the operation multiplicity>1. 1611 * Default=false. 1612 * @see OperationFacade#isMany() 1613 */ 1614 public boolean isMany() 1615 { 1616 return this.getSuperServiceOperation().isMany(); 1617 } 1618 1619 /** 1620 * UML2 only: If isMany (Collection type returned), is the type unique within the collection. 1621 * Unique+Ordered determines CollectionType implementation of return result. Default=false. 1622 * @see OperationFacade#isOrdered() 1623 */ 1624 public boolean isOrdered() 1625 { 1626 return this.getSuperServiceOperation().isOrdered(); 1627 } 1628 1629 /** 1630 * True if this operation overrides an operation defined in an ancestor class. An operation 1631 * overrides when the names of the operations as well as the types of the arguments are equal. 1632 * The return type may be different and is, as well as any exceptions, ignored. 1633 * @see OperationFacade#isOverriding() 1634 */ 1635 public boolean isOverriding() 1636 { 1637 return this.getSuperServiceOperation().isOverriding(); 1638 } 1639 1640 /** 1641 * Whether any postcondition constraints are present on this operation. 1642 * @see OperationFacade#isPostconditionsPresent() 1643 */ 1644 public boolean isPostconditionsPresent() 1645 { 1646 return this.getSuperServiceOperation().isPostconditionsPresent(); 1647 } 1648 1649 /** 1650 * Whether any precondition constraints are present on this operation. 1651 * @see OperationFacade#isPreconditionsPresent() 1652 */ 1653 public boolean isPreconditionsPresent() 1654 { 1655 return this.getSuperServiceOperation().isPreconditionsPresent(); 1656 } 1657 1658 /** 1659 * Indicates whether or not this operation is a query operation. 1660 * @see OperationFacade#isQuery() 1661 */ 1662 public boolean isQuery() 1663 { 1664 return this.getSuperServiceOperation().isQuery(); 1665 } 1666 1667 /** 1668 * True/false depending on whether or not the operation has a return type or not (i.e. a return 1669 * type of something other than void). 1670 * @see OperationFacade#isReturnTypePresent() 1671 */ 1672 public boolean isReturnTypePresent() 1673 { 1674 return this.getSuperServiceOperation().isReturnTypePresent(); 1675 } 1676 1677 /** 1678 * True is the operation is static (only a single instance can be instantiated). 1679 * @see OperationFacade#isStatic() 1680 */ 1681 public boolean isStatic() 1682 { 1683 return this.getSuperServiceOperation().isStatic(); 1684 } 1685 1686 /** 1687 * UML2 only: for Collection return type, is the type unique within the collection. 1688 * Unique+Ordered determines the returned CollectionType. Default=false. 1689 * @see OperationFacade#isUnique() 1690 */ 1691 public boolean isUnique() 1692 { 1693 return this.getSuperServiceOperation().isUnique(); 1694 } 1695 1696 /** 1697 * The destination for any incoming messages. 1698 * @see ServiceOperation#getIncomingDestination() 1699 */ 1700 public Destination getIncomingDestination() 1701 { 1702 return this.getSuperServiceOperation().getIncomingDestination(); 1703 } 1704 1705 /** 1706 * The destination for any outgoing messages. 1707 * @see ServiceOperation#getOutgoingDestination() 1708 */ 1709 public Destination getOutgoingDestination() 1710 { 1711 return this.getSuperServiceOperation().getOutgoingDestination(); 1712 } 1713 1714 /** 1715 * The users of the service operation, these are the actor's that can access this operation. 1716 * @see ServiceOperation#getRoles() 1717 */ 1718 public Collection<Role> getRoles() 1719 { 1720 return this.getSuperServiceOperation().getRoles(); 1721 } 1722 1723 /** 1724 * The service which owns the service operation. 1725 * @see ServiceOperation#getService() 1726 */ 1727 public Service getService() 1728 { 1729 return this.getSuperServiceOperation().getService(); 1730 } 1731 1732 /** 1733 * Whether or not this operation represents an "incoming" message operation (i.e. it receives 1734 * messages from Queues or Topics). 1735 * @see ServiceOperation#isIncomingMessageOperation() 1736 */ 1737 public boolean isIncomingMessageOperation() 1738 { 1739 return this.getSuperServiceOperation().isIncomingMessageOperation(); 1740 } 1741 1742 /** 1743 * Whether or not this is operation accepts incoming or outgoing messages. 1744 * @see ServiceOperation#isMessageOperation() 1745 */ 1746 public boolean isMessageOperation() 1747 { 1748 return this.getSuperServiceOperation().isMessageOperation(); 1749 } 1750 1751 /** 1752 * Whether or not this service operation represents an "outgoing" messaging operation (i.e. it 1753 * sends messages to Queues or Topics). 1754 * @see ServiceOperation#isOutgoingMessageOperation() 1755 */ 1756 public boolean isOutgoingMessageOperation() 1757 { 1758 return this.getSuperServiceOperation().isOutgoingMessageOperation(); 1759 } 1760 1761 /** 1762 * @see org.andromda.core.metafacade.MetafacadeBase#initialize() 1763 */ 1764 @Override 1765 public void initialize() 1766 { 1767 this.getSuperServiceOperation().initialize(); 1768 } 1769 1770 /** 1771 * @return Object getSuperServiceOperation().getValidationOwner() 1772 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner() 1773 */ 1774 @Override 1775 public Object getValidationOwner() 1776 { 1777 Object owner = this.getSuperServiceOperation().getValidationOwner(); 1778 return owner; 1779 } 1780 1781 /** 1782 * @return String getSuperServiceOperation().getValidationName() 1783 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName() 1784 */ 1785 @Override 1786 public String getValidationName() 1787 { 1788 String name = this.getSuperServiceOperation().getValidationName(); 1789 return name; 1790 } 1791 1792 /** 1793 * @param validationMessages Collection<ModelValidationMessage> 1794 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages) 1795 */ 1796 @Override 1797 public void validateInvariants(Collection<ModelValidationMessage> validationMessages) 1798 { 1799 this.getSuperServiceOperation().validateInvariants(validationMessages); 1800 } 1801 1802 /** 1803 * The property that stores the name of the metafacade. 1804 */ 1805 private static final String NAME_PROPERTY = "name"; 1806 private static final String FQNAME_PROPERTY = "fullyQualifiedName"; 1807 1808 /** 1809 * @see Object#toString() 1810 */ 1811 @Override 1812 public String toString() 1813 { 1814 final StringBuilder toString = new StringBuilder(this.getClass().getName()); 1815 toString.append("["); 1816 try 1817 { 1818 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY)); 1819 } 1820 catch (final Throwable tryAgain) 1821 { 1822 try 1823 { 1824 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY)); 1825 } 1826 catch (final Throwable ignore) 1827 { 1828 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property 1829 } 1830 } 1831 toString.append("]"); 1832 return toString.toString(); 1833 } 1834}