1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.spring.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.core.common.Introspector;
9 import org.andromda.core.metafacade.MetafacadeBase;
10 import org.andromda.core.metafacade.MetafacadeFactory;
11 import org.andromda.core.metafacade.ModelValidationMessage;
12 import org.andromda.metafacades.uml.ClassifierFacade;
13 import org.andromda.metafacades.uml.ConstraintFacade;
14 import org.andromda.metafacades.uml.DependencyFacade;
15 import org.andromda.metafacades.uml.Destination;
16 import org.andromda.metafacades.uml.ModelElementFacade;
17 import org.andromda.metafacades.uml.ModelFacade;
18 import org.andromda.metafacades.uml.OperationFacade;
19 import org.andromda.metafacades.uml.PackageFacade;
20 import org.andromda.metafacades.uml.ParameterFacade;
21 import org.andromda.metafacades.uml.Role;
22 import org.andromda.metafacades.uml.Service;
23 import org.andromda.metafacades.uml.ServiceOperation;
24 import org.andromda.metafacades.uml.StateMachineFacade;
25 import org.andromda.metafacades.uml.StereotypeFacade;
26 import org.andromda.metafacades.uml.TaggedValueFacade;
27 import org.andromda.metafacades.uml.TemplateParameterFacade;
28 import org.andromda.metafacades.uml.TypeMappings;
29
30 /**
31 * Represents an operation for a SpringService.
32 * MetafacadeLogic for SpringServiceOperation
33 *
34 * @see SpringServiceOperation
35 */
36 public abstract class SpringServiceOperationLogic
37 extends MetafacadeBase
38 implements SpringServiceOperation
39 {
40 /**
41 * The underlying UML object
42 * @see Object
43 */
44 protected Object metaObject;
45
46 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
47 * @param metaObjectIn
48 * @param context
49 */
50 protected SpringServiceOperationLogic(Object metaObjectIn, String context)
51 {
52 super(metaObjectIn, getContext(context));
53 this.superServiceOperation =
54 (ServiceOperation)
55 MetafacadeFactory.getInstance().createFacadeImpl(
56 "org.andromda.metafacades.uml.ServiceOperation",
57 metaObjectIn,
58 getContext(context));
59 this.metaObject = metaObjectIn;
60 }
61
62 /**
63 * Gets the context for this metafacade logic instance.
64 * @param context String. Set to SpringServiceOperation if null
65 * @return context String
66 */
67 private static String getContext(String context)
68 {
69 if (context == null)
70 {
71 context = "org.andromda.cartridges.spring.metafacades.SpringServiceOperation";
72 }
73 return context;
74 }
75
76 private ServiceOperation superServiceOperation;
77 private boolean superServiceOperationInitialized = false;
78
79 /**
80 * Gets the ServiceOperation parent instance.
81 * @return this.superServiceOperation ServiceOperation
82 */
83 private ServiceOperation getSuperServiceOperation()
84 {
85 if (!this.superServiceOperationInitialized)
86 {
87 ((MetafacadeBase)this.superServiceOperation).setMetafacadeContext(this.getMetafacadeContext());
88 this.superServiceOperationInitialized = true;
89 }
90 return this.superServiceOperation;
91 }
92
93 /** Reset context only for non-root metafacades
94 * @param context
95 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
96 */
97 @Override
98 public void resetMetafacadeContext(String context)
99 {
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 }