1 // license-header java merge-point
2 //
3 // Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.ejb3.metafacades;
6
7 import java.util.Collection;
8 import java.util.List;
9 import org.andromda.core.common.Introspector;
10 import org.andromda.core.metafacade.MetafacadeBase;
11 import org.andromda.core.metafacade.MetafacadeFactory;
12 import org.andromda.core.metafacade.ModelValidationMessage;
13 import org.andromda.metafacades.uml.AssociationEndFacade;
14 import org.andromda.metafacades.uml.AttributeFacade;
15 import org.andromda.metafacades.uml.ClassifierFacade;
16 import org.andromda.metafacades.uml.ConstraintFacade;
17 import org.andromda.metafacades.uml.DependencyFacade;
18 import org.andromda.metafacades.uml.Destination;
19 import org.andromda.metafacades.uml.GeneralizableElementFacade;
20 import org.andromda.metafacades.uml.GeneralizationFacade;
21 import org.andromda.metafacades.uml.ModelElementFacade;
22 import org.andromda.metafacades.uml.ModelFacade;
23 import org.andromda.metafacades.uml.OperationFacade;
24 import org.andromda.metafacades.uml.PackageFacade;
25 import org.andromda.metafacades.uml.Role;
26 import org.andromda.metafacades.uml.Service;
27 import org.andromda.metafacades.uml.StateMachineFacade;
28 import org.andromda.metafacades.uml.StereotypeFacade;
29 import org.andromda.metafacades.uml.TaggedValueFacade;
30 import org.andromda.metafacades.uml.TemplateParameterFacade;
31 import org.andromda.metafacades.uml.TypeMappings;
32
33 /**
34 * Represents a message driven EJB.
35 * MetafacadeLogic for EJB3MessageDrivenFacade
36 *
37 * @see EJB3MessageDrivenFacade
38 */
39 public abstract class EJB3MessageDrivenFacadeLogic
40 extends MetafacadeBase
41 implements EJB3MessageDrivenFacade
42 {
43 /**
44 * The underlying UML object
45 * @see Object
46 */
47 protected Object metaObject;
48
49 /** Create Metafacade implementation instance using the MetafacadeFactory from the context
50 * @param metaObjectIn
51 * @param context
52 */
53 protected EJB3MessageDrivenFacadeLogic(Object metaObjectIn, String context)
54 {
55 super(metaObjectIn, getContext(context));
56 this.superService =
57 (Service)
58 MetafacadeFactory.getInstance().createFacadeImpl(
59 "org.andromda.metafacades.uml.Service",
60 metaObjectIn,
61 getContext(context));
62 this.metaObject = metaObjectIn;
63 }
64
65 /**
66 * Gets the context for this metafacade logic instance.
67 * @param context String. Set to EJB3MessageDrivenFacade if null
68 * @return context String
69 */
70 private static String getContext(String context)
71 {
72 if (context == null)
73 {
74 context = "org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade";
75 }
76 return context;
77 }
78
79 private Service superService;
80 private boolean superServiceInitialized = false;
81
82 /**
83 * Gets the Service parent instance.
84 * @return this.superService Service
85 */
86 private Service getSuperService()
87 {
88 if (!this.superServiceInitialized)
89 {
90 ((MetafacadeBase)this.superService).setMetafacadeContext(this.getMetafacadeContext());
91 this.superServiceInitialized = true;
92 }
93 return this.superService;
94 }
95
96 /** Reset context only for non-root metafacades
97 * @param context
98 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context)
99 */
100 @Override
101 public void resetMetafacadeContext(String context)
102 {
103 if (!this.contextRoot) // reset context only for non-root metafacades
104 {
105 context = getContext(context); // to have same value as in original constructor call
106 setMetafacadeContext (context);
107 if (this.superServiceInitialized)
108 {
109 ((MetafacadeBase)this.superService).resetMetafacadeContext(context);
110 }
111 }
112 }
113
114 /**
115 * @return boolean true always
116 * @see EJB3MessageDrivenFacade
117 */
118 public boolean isEJB3MessageDrivenFacadeMetaType()
119 {
120 return true;
121 }
122
123 // --------------- attributes ---------------------
124
125 /**
126 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getAcknowledgeMode()
127 * @return String
128 */
129 protected abstract String handleGetAcknowledgeMode();
130
131 private String __acknowledgeMode1a;
132 private boolean __acknowledgeMode1aSet = false;
133
134 /**
135 * Returns the acknowledge mode for this JMS message driven bean. This is automatically handled
136 * by the container. EJB 3.0 spec states:
137 * For container managed transaction demarcation, message acknowledgment is automatically
138 * handled as part of transaction commit. If bean-managed transaction demarcation is used, the
139 * message receipt cannot be part of the bean-managed transaction, therefore the receipt is
140 * acknowledged by the container. If this property is not specified, AUTO_ACKNOWLEDGE semantics
141 * is assumed.
142 * Possible values are AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE.
143 * @return (String)handleGetAcknowledgeMode()
144 */
145 public final String getAcknowledgeMode()
146 {
147 String acknowledgeMode1a = this.__acknowledgeMode1a;
148 if (!this.__acknowledgeMode1aSet)
149 {
150 // acknowledgeMode has no pre constraints
151 acknowledgeMode1a = handleGetAcknowledgeMode();
152 // acknowledgeMode has no post constraints
153 this.__acknowledgeMode1a = acknowledgeMode1a;
154 if (isMetafacadePropertyCachingEnabled())
155 {
156 this.__acknowledgeMode1aSet = true;
157 }
158 }
159 return acknowledgeMode1a;
160 }
161
162 /**
163 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getDestination()
164 * @return String
165 */
166 protected abstract String handleGetDestination();
167
168 private String __destination2a;
169 private boolean __destination2aSet = false;
170
171 /**
172 * Returns the destination queue or topic JNDI name this message driven bean is associated with.
173 * @return (String)handleGetDestination()
174 */
175 public final String getDestination()
176 {
177 String destination2a = this.__destination2a;
178 if (!this.__destination2aSet)
179 {
180 // destination has no pre constraints
181 destination2a = handleGetDestination();
182 // destination has no post constraints
183 this.__destination2a = destination2a;
184 if (isMetafacadePropertyCachingEnabled())
185 {
186 this.__destination2aSet = true;
187 }
188 }
189 return destination2a;
190 }
191
192 /**
193 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getDestinationType()
194 * @return String
195 */
196 protected abstract String handleGetDestinationType();
197
198 private String __destinationType3a;
199 private boolean __destinationType3aSet = false;
200
201 /**
202 * Returns the destination type of the message driven bean. Possible values are javax.jms.Queue
203 * or javax.jms.Topic.
204 * Queues ensure that messages are not missed, even if the EJB server is not running. Same
205 * applis to durable topic subscriptions.
206 * @return (String)handleGetDestinationType()
207 */
208 public final String getDestinationType()
209 {
210 String destinationType3a = this.__destinationType3a;
211 if (!this.__destinationType3aSet)
212 {
213 // destinationType has no pre constraints
214 destinationType3a = handleGetDestinationType();
215 // destinationType has no post constraints
216 this.__destinationType3a = destinationType3a;
217 if (isMetafacadePropertyCachingEnabled())
218 {
219 this.__destinationType3aSet = true;
220 }
221 }
222 return destinationType3a;
223 }
224
225 /**
226 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getFullyQualifiedMessageDrivenImplementationName()
227 * @return String
228 */
229 protected abstract String handleGetFullyQualifiedMessageDrivenImplementationName();
230
231 private String __fullyQualifiedMessageDrivenImplementationName4a;
232 private boolean __fullyQualifiedMessageDrivenImplementationName4aSet = false;
233
234 /**
235 * Returns the fully qualified message driven bean implementation name.
236 * @return (String)handleGetFullyQualifiedMessageDrivenImplementationName()
237 */
238 public final String getFullyQualifiedMessageDrivenImplementationName()
239 {
240 String fullyQualifiedMessageDrivenImplementationName4a = this.__fullyQualifiedMessageDrivenImplementationName4a;
241 if (!this.__fullyQualifiedMessageDrivenImplementationName4aSet)
242 {
243 // fullyQualifiedMessageDrivenImplementationName has no pre constraints
244 fullyQualifiedMessageDrivenImplementationName4a = handleGetFullyQualifiedMessageDrivenImplementationName();
245 // fullyQualifiedMessageDrivenImplementationName has no post constraints
246 this.__fullyQualifiedMessageDrivenImplementationName4a = fullyQualifiedMessageDrivenImplementationName4a;
247 if (isMetafacadePropertyCachingEnabled())
248 {
249 this.__fullyQualifiedMessageDrivenImplementationName4aSet = true;
250 }
251 }
252 return fullyQualifiedMessageDrivenImplementationName4a;
253 }
254
255 /**
256 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getFullyQualifiedMessageDrivenListenerName()
257 * @return String
258 */
259 protected abstract String handleGetFullyQualifiedMessageDrivenListenerName();
260
261 private String __fullyQualifiedMessageDrivenListenerName5a;
262 private boolean __fullyQualifiedMessageDrivenListenerName5aSet = false;
263
264 /**
265 * Returns the fully qualified message driven bean listener name.
266 * @return (String)handleGetFullyQualifiedMessageDrivenListenerName()
267 */
268 public final String getFullyQualifiedMessageDrivenListenerName()
269 {
270 String fullyQualifiedMessageDrivenListenerName5a = this.__fullyQualifiedMessageDrivenListenerName5a;
271 if (!this.__fullyQualifiedMessageDrivenListenerName5aSet)
272 {
273 // fullyQualifiedMessageDrivenListenerName has no pre constraints
274 fullyQualifiedMessageDrivenListenerName5a = handleGetFullyQualifiedMessageDrivenListenerName();
275 // fullyQualifiedMessageDrivenListenerName has no post constraints
276 this.__fullyQualifiedMessageDrivenListenerName5a = fullyQualifiedMessageDrivenListenerName5a;
277 if (isMetafacadePropertyCachingEnabled())
278 {
279 this.__fullyQualifiedMessageDrivenListenerName5aSet = true;
280 }
281 }
282 return fullyQualifiedMessageDrivenListenerName5a;
283 }
284
285 /**
286 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getFullyQualifiedMessageDrivenName()
287 * @return String
288 */
289 protected abstract String handleGetFullyQualifiedMessageDrivenName();
290
291 private String __fullyQualifiedMessageDrivenName6a;
292 private boolean __fullyQualifiedMessageDrivenName6aSet = false;
293
294 /**
295 * Returns the fully qualified message driven bean name.
296 * @return (String)handleGetFullyQualifiedMessageDrivenName()
297 */
298 public final String getFullyQualifiedMessageDrivenName()
299 {
300 String fullyQualifiedMessageDrivenName6a = this.__fullyQualifiedMessageDrivenName6a;
301 if (!this.__fullyQualifiedMessageDrivenName6aSet)
302 {
303 // fullyQualifiedMessageDrivenName has no pre constraints
304 fullyQualifiedMessageDrivenName6a = handleGetFullyQualifiedMessageDrivenName();
305 // fullyQualifiedMessageDrivenName has no post constraints
306 this.__fullyQualifiedMessageDrivenName6a = fullyQualifiedMessageDrivenName6a;
307 if (isMetafacadePropertyCachingEnabled())
308 {
309 this.__fullyQualifiedMessageDrivenName6aSet = true;
310 }
311 }
312 return fullyQualifiedMessageDrivenName6a;
313 }
314
315 /**
316 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageDrivenImplementationName()
317 * @return String
318 */
319 protected abstract String handleGetMessageDrivenImplementationName();
320
321 private String __messageDrivenImplementationName7a;
322 private boolean __messageDrivenImplementationName7aSet = false;
323
324 /**
325 * Returns the message driven bean implementation name.
326 * @return (String)handleGetMessageDrivenImplementationName()
327 */
328 public final String getMessageDrivenImplementationName()
329 {
330 String messageDrivenImplementationName7a = this.__messageDrivenImplementationName7a;
331 if (!this.__messageDrivenImplementationName7aSet)
332 {
333 // messageDrivenImplementationName has no pre constraints
334 messageDrivenImplementationName7a = handleGetMessageDrivenImplementationName();
335 // messageDrivenImplementationName has no post constraints
336 this.__messageDrivenImplementationName7a = messageDrivenImplementationName7a;
337 if (isMetafacadePropertyCachingEnabled())
338 {
339 this.__messageDrivenImplementationName7aSet = true;
340 }
341 }
342 return messageDrivenImplementationName7a;
343 }
344
345 /**
346 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageDrivenListenerName()
347 * @return String
348 */
349 protected abstract String handleGetMessageDrivenListenerName();
350
351 private String __messageDrivenListenerName8a;
352 private boolean __messageDrivenListenerName8aSet = false;
353
354 /**
355 * Returns the message driven bean callback listener name.
356 * @return (String)handleGetMessageDrivenListenerName()
357 */
358 public final String getMessageDrivenListenerName()
359 {
360 String messageDrivenListenerName8a = this.__messageDrivenListenerName8a;
361 if (!this.__messageDrivenListenerName8aSet)
362 {
363 // messageDrivenListenerName has no pre constraints
364 messageDrivenListenerName8a = handleGetMessageDrivenListenerName();
365 // messageDrivenListenerName has no post constraints
366 this.__messageDrivenListenerName8a = messageDrivenListenerName8a;
367 if (isMetafacadePropertyCachingEnabled())
368 {
369 this.__messageDrivenListenerName8aSet = true;
370 }
371 }
372 return messageDrivenListenerName8a;
373 }
374
375 /**
376 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageDrivenName()
377 * @return String
378 */
379 protected abstract String handleGetMessageDrivenName();
380
381 private String __messageDrivenName9a;
382 private boolean __messageDrivenName9aSet = false;
383
384 /**
385 * Returns message driven bean name.
386 * @return (String)handleGetMessageDrivenName()
387 */
388 public final String getMessageDrivenName()
389 {
390 String messageDrivenName9a = this.__messageDrivenName9a;
391 if (!this.__messageDrivenName9aSet)
392 {
393 // messageDrivenName has no pre constraints
394 messageDrivenName9a = handleGetMessageDrivenName();
395 // messageDrivenName has no post constraints
396 this.__messageDrivenName9a = messageDrivenName9a;
397 if (isMetafacadePropertyCachingEnabled())
398 {
399 this.__messageDrivenName9aSet = true;
400 }
401 }
402 return messageDrivenName9a;
403 }
404
405 /**
406 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageSelector()
407 * @return String
408 */
409 protected abstract String handleGetMessageSelector();
410
411 private String __messageSelector10a;
412 private boolean __messageSelector10aSet = false;
413
414 /**
415 * Returns the JMS message selector used when determining the messages a message driven bean is
416 * to receive.
417 * @return (String)handleGetMessageSelector()
418 */
419 public final String getMessageSelector()
420 {
421 String messageSelector10a = this.__messageSelector10a;
422 if (!this.__messageSelector10aSet)
423 {
424 // messageSelector has no pre constraints
425 messageSelector10a = handleGetMessageSelector();
426 // messageSelector has no post constraints
427 this.__messageSelector10a = messageSelector10a;
428 if (isMetafacadePropertyCachingEnabled())
429 {
430 this.__messageSelector10aSet = true;
431 }
432 }
433 return messageSelector10a;
434 }
435
436 /**
437 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getRunAs()
438 * @return String
439 */
440 protected abstract String handleGetRunAs();
441
442 private String __runAs11a;
443 private boolean __runAs11aSet = false;
444
445 /**
446 * Returns the run-as identity for the message driven bean which is used to establish the
447 * identity the bean will use when making calls. It does not affect the identity of the
448 * callers.
449 * @return (String)handleGetRunAs()
450 */
451 public final String getRunAs()
452 {
453 String runAs11a = this.__runAs11a;
454 if (!this.__runAs11aSet)
455 {
456 // runAs has no pre constraints
457 runAs11a = handleGetRunAs();
458 // runAs has no post constraints
459 this.__runAs11a = runAs11a;
460 if (isMetafacadePropertyCachingEnabled())
461 {
462 this.__runAs11aSet = true;
463 }
464 }
465 return runAs11a;
466 }
467
468 /**
469 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getSubscriptionDurability()
470 * @return String
471 */
472 protected abstract String handleGetSubscriptionDurability();
473
474 private String __subscriptionDurability12a;
475 private boolean __subscriptionDurability12aSet = false;
476
477 /**
478 * If the message driven bean is associated with a topic, then this will return the subscription
479 * durability. Possible values are Durable or NonDurable. By default, if a topic subscription
480 * is not specified, the non-durable subscription is assumed.
481 * Durable topic subscriptions ensure that messages are not missed, even if the EJB server is
482 * not running.
483 * @return (String)handleGetSubscriptionDurability()
484 */
485 public final String getSubscriptionDurability()
486 {
487 String subscriptionDurability12a = this.__subscriptionDurability12a;
488 if (!this.__subscriptionDurability12aSet)
489 {
490 // subscriptionDurability has no pre constraints
491 subscriptionDurability12a = handleGetSubscriptionDurability();
492 // subscriptionDurability has no post constraints
493 this.__subscriptionDurability12a = subscriptionDurability12a;
494 if (isMetafacadePropertyCachingEnabled())
495 {
496 this.__subscriptionDurability12aSet = true;
497 }
498 }
499 return subscriptionDurability12a;
500 }
501
502 /**
503 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getTransactionManagement()
504 * @return String
505 */
506 protected abstract String handleGetTransactionManagement();
507
508 private String __transactionManagement13a;
509 private boolean __transactionManagement13aSet = false;
510
511 /**
512 * Returns the transaction demarcation strategy for this bean. Typically, this will return BEAN
513 * for non default CONTAINER managed beans. Unless specified, this will return null indicating
514 * CONTAINER transaction demarcation.
515 * @return (String)handleGetTransactionManagement()
516 */
517 public final String getTransactionManagement()
518 {
519 String transactionManagement13a = this.__transactionManagement13a;
520 if (!this.__transactionManagement13aSet)
521 {
522 // transactionManagement has no pre constraints
523 transactionManagement13a = handleGetTransactionManagement();
524 // transactionManagement has no post constraints
525 this.__transactionManagement13a = transactionManagement13a;
526 if (isMetafacadePropertyCachingEnabled())
527 {
528 this.__transactionManagement13aSet = true;
529 }
530 }
531 return transactionManagement13a;
532 }
533
534 /**
535 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isTransactionManagementBean()
536 * @return boolean
537 */
538 protected abstract boolean handleIsTransactionManagementBean();
539
540 private boolean __transactionManagementBean14a;
541 private boolean __transactionManagementBean14aSet = false;
542
543 /**
544 * Returns true if the transaction demarcation strategy is bean managedfor this bean.
545 * @return (boolean)handleIsTransactionManagementBean()
546 */
547 public final boolean isTransactionManagementBean()
548 {
549 boolean transactionManagementBean14a = this.__transactionManagementBean14a;
550 if (!this.__transactionManagementBean14aSet)
551 {
552 // transactionManagementBean has no pre constraints
553 transactionManagementBean14a = handleIsTransactionManagementBean();
554 // transactionManagementBean has no post constraints
555 this.__transactionManagementBean14a = transactionManagementBean14a;
556 if (isMetafacadePropertyCachingEnabled())
557 {
558 this.__transactionManagementBean14aSet = true;
559 }
560 }
561 return transactionManagementBean14a;
562 }
563
564 /**
565 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getTransactionType()
566 * @return String
567 */
568 protected abstract String handleGetTransactionType();
569
570 private String __transactionType15a;
571 private boolean __transactionType15aSet = false;
572
573 /**
574 * Gets the transaction type for this message driven bean. For container managed demarcation,
575 * either the REQUIRED or NOT_SUPPORTED transaction attributes must be used on a message driven
576 * bean.
577 * @return (String)handleGetTransactionType()
578 */
579 public final String getTransactionType()
580 {
581 String transactionType15a = this.__transactionType15a;
582 if (!this.__transactionType15aSet)
583 {
584 // transactionType has no pre constraints
585 transactionType15a = handleGetTransactionType();
586 // transactionType has no post constraints
587 this.__transactionType15a = transactionType15a;
588 if (isMetafacadePropertyCachingEnabled())
589 {
590 this.__transactionType15aSet = true;
591 }
592 }
593 return transactionType15a;
594 }
595
596 /**
597 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isDestinationTypeQueue()
598 * @return boolean
599 */
600 protected abstract boolean handleIsDestinationTypeQueue();
601
602 private boolean __destinationTypeQueue16a;
603 private boolean __destinationTypeQueue16aSet = false;
604
605 /**
606 * Returns true if the destination type if a javax.jms.Queue.
607 * @return (boolean)handleIsDestinationTypeQueue()
608 */
609 public final boolean isDestinationTypeQueue()
610 {
611 boolean destinationTypeQueue16a = this.__destinationTypeQueue16a;
612 if (!this.__destinationTypeQueue16aSet)
613 {
614 // destinationTypeQueue has no pre constraints
615 destinationTypeQueue16a = handleIsDestinationTypeQueue();
616 // destinationTypeQueue has no post constraints
617 this.__destinationTypeQueue16a = destinationTypeQueue16a;
618 if (isMetafacadePropertyCachingEnabled())
619 {
620 this.__destinationTypeQueue16aSet = true;
621 }
622 }
623 return destinationTypeQueue16a;
624 }
625
626 /**
627 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isDestinationTypeTopic()
628 * @return boolean
629 */
630 protected abstract boolean handleIsDestinationTypeTopic();
631
632 private boolean __destinationTypeTopic17a;
633 private boolean __destinationTypeTopic17aSet = false;
634
635 /**
636 * Returns true if the destination type is a javax.jms.Topic.
637 * @return (boolean)handleIsDestinationTypeTopic()
638 */
639 public final boolean isDestinationTypeTopic()
640 {
641 boolean destinationTypeTopic17a = this.__destinationTypeTopic17a;
642 if (!this.__destinationTypeTopic17aSet)
643 {
644 // destinationTypeTopic has no pre constraints
645 destinationTypeTopic17a = handleIsDestinationTypeTopic();
646 // destinationTypeTopic has no post constraints
647 this.__destinationTypeTopic17a = destinationTypeTopic17a;
648 if (isMetafacadePropertyCachingEnabled())
649 {
650 this.__destinationTypeTopic17aSet = true;
651 }
652 }
653 return destinationTypeTopic17a;
654 }
655
656 /**
657 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMinimumPoolSize()
658 * @return int
659 */
660 protected abstract int handleGetMinimumPoolSize();
661
662 private int __minimumPoolSize18a;
663 private boolean __minimumPoolSize18aSet = false;
664
665 /**
666 * Returns the MDB minimum pool size.
667 * @return (int)handleGetMinimumPoolSize()
668 */
669 public final int getMinimumPoolSize()
670 {
671 int minimumPoolSize18a = this.__minimumPoolSize18a;
672 if (!this.__minimumPoolSize18aSet)
673 {
674 // minimumPoolSize has no pre constraints
675 minimumPoolSize18a = handleGetMinimumPoolSize();
676 // minimumPoolSize has no post constraints
677 this.__minimumPoolSize18a = minimumPoolSize18a;
678 if (isMetafacadePropertyCachingEnabled())
679 {
680 this.__minimumPoolSize18aSet = true;
681 }
682 }
683 return minimumPoolSize18a;
684 }
685
686 /**
687 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isListenerEnabled()
688 * @return boolean
689 */
690 protected abstract boolean handleIsListenerEnabled();
691
692 private boolean __listenerEnabled19a;
693 private boolean __listenerEnabled19aSet = false;
694
695 /**
696 * Returns true if this message driven bean has the stereotype Listener. False otherwise.
697 * @return (boolean)handleIsListenerEnabled()
698 */
699 public final boolean isListenerEnabled()
700 {
701 boolean listenerEnabled19a = this.__listenerEnabled19a;
702 if (!this.__listenerEnabled19aSet)
703 {
704 // listenerEnabled has no pre constraints
705 listenerEnabled19a = handleIsListenerEnabled();
706 // listenerEnabled has no post constraints
707 this.__listenerEnabled19a = listenerEnabled19a;
708 if (isMetafacadePropertyCachingEnabled())
709 {
710 this.__listenerEnabled19aSet = true;
711 }
712 }
713 return listenerEnabled19a;
714 }
715
716 /**
717 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getInterceptorReferences()
718 * @return Collection
719 */
720 protected abstract Collection handleGetInterceptorReferences();
721
722 private Collection __interceptorReferences20a;
723 private boolean __interceptorReferences20aSet = false;
724
725 /**
726 * Returns the Collection of target elements from the message-driven bean class where the
727 * target class has a stereotype of Interceptor.
728 * @return (Collection)handleGetInterceptorReferences()
729 */
730 public final Collection getInterceptorReferences()
731 {
732 Collection interceptorReferences20a = this.__interceptorReferences20a;
733 if (!this.__interceptorReferences20aSet)
734 {
735 // interceptorReferences has no pre constraints
736 interceptorReferences20a = handleGetInterceptorReferences();
737 // interceptorReferences has no post constraints
738 this.__interceptorReferences20a = interceptorReferences20a;
739 if (isMetafacadePropertyCachingEnabled())
740 {
741 this.__interceptorReferences20aSet = true;
742 }
743 }
744 return interceptorReferences20a;
745 }
746
747 /**
748 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isExcludeDefaultInterceptors()
749 * @return boolean
750 */
751 protected abstract boolean handleIsExcludeDefaultInterceptors();
752
753 private boolean __excludeDefaultInterceptors21a;
754 private boolean __excludeDefaultInterceptors21aSet = false;
755
756 /**
757 * Determines whether to exclude the invocation of the default interceptors for all business
758 * method in the bean.
759 * @return (boolean)handleIsExcludeDefaultInterceptors()
760 */
761 public final boolean isExcludeDefaultInterceptors()
762 {
763 boolean excludeDefaultInterceptors21a = this.__excludeDefaultInterceptors21a;
764 if (!this.__excludeDefaultInterceptors21aSet)
765 {
766 // excludeDefaultInterceptors has no pre constraints
767 excludeDefaultInterceptors21a = handleIsExcludeDefaultInterceptors();
768 // excludeDefaultInterceptors has no post constraints
769 this.__excludeDefaultInterceptors21a = excludeDefaultInterceptors21a;
770 if (isMetafacadePropertyCachingEnabled())
771 {
772 this.__excludeDefaultInterceptors21aSet = true;
773 }
774 }
775 return excludeDefaultInterceptors21a;
776 }
777
778 /**
779 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMaximumPoolSize()
780 * @return int
781 */
782 protected abstract int handleGetMaximumPoolSize();
783
784 private int __maximumPoolSize22a;
785 private boolean __maximumPoolSize22aSet = false;
786
787 /**
788 * Returns the MDB maximum pool size.
789 * @return (int)handleGetMaximumPoolSize()
790 */
791 public final int getMaximumPoolSize()
792 {
793 int maximumPoolSize22a = this.__maximumPoolSize22a;
794 if (!this.__maximumPoolSize22aSet)
795 {
796 // maximumPoolSize has no pre constraints
797 maximumPoolSize22a = handleGetMaximumPoolSize();
798 // maximumPoolSize has no post constraints
799 this.__maximumPoolSize22a = maximumPoolSize22a;
800 if (isMetafacadePropertyCachingEnabled())
801 {
802 this.__maximumPoolSize22aSet = true;
803 }
804 }
805 return maximumPoolSize22a;
806 }
807
808 /**
809 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getTestPackageName()
810 * @return String
811 */
812 protected abstract String handleGetTestPackageName();
813
814 private String __testPackageName23a;
815 private boolean __testPackageName23aSet = false;
816
817 /**
818 * Returns the message driven test package name. This simply appends .test to the existing class
819 * package.
820 * @return (String)handleGetTestPackageName()
821 */
822 public final String getTestPackageName()
823 {
824 String testPackageName23a = this.__testPackageName23a;
825 if (!this.__testPackageName23aSet)
826 {
827 // testPackageName has no pre constraints
828 testPackageName23a = handleGetTestPackageName();
829 // testPackageName has no post constraints
830 this.__testPackageName23a = testPackageName23a;
831 if (isMetafacadePropertyCachingEnabled())
832 {
833 this.__testPackageName23aSet = true;
834 }
835 }
836 return testPackageName23a;
837 }
838
839 /**
840 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageDrivenTestName()
841 * @return String
842 */
843 protected abstract String handleGetMessageDrivenTestName();
844
845 private String __messageDrivenTestName24a;
846 private boolean __messageDrivenTestName24aSet = false;
847
848 /**
849 * Returns the message driven bean test class name
850 * @return (String)handleGetMessageDrivenTestName()
851 */
852 public final String getMessageDrivenTestName()
853 {
854 String messageDrivenTestName24a = this.__messageDrivenTestName24a;
855 if (!this.__messageDrivenTestName24aSet)
856 {
857 // messageDrivenTestName has no pre constraints
858 messageDrivenTestName24a = handleGetMessageDrivenTestName();
859 // messageDrivenTestName has no post constraints
860 this.__messageDrivenTestName24a = messageDrivenTestName24a;
861 if (isMetafacadePropertyCachingEnabled())
862 {
863 this.__messageDrivenTestName24aSet = true;
864 }
865 }
866 return messageDrivenTestName24a;
867 }
868
869 /**
870 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getFullyQualifiedMessageDrivenTestName()
871 * @return String
872 */
873 protected abstract String handleGetFullyQualifiedMessageDrivenTestName();
874
875 private String __fullyQualifiedMessageDrivenTestName25a;
876 private boolean __fullyQualifiedMessageDrivenTestName25aSet = false;
877
878 /**
879 * Returns the fully qualified message driven test class name
880 * @return (String)handleGetFullyQualifiedMessageDrivenTestName()
881 */
882 public final String getFullyQualifiedMessageDrivenTestName()
883 {
884 String fullyQualifiedMessageDrivenTestName25a = this.__fullyQualifiedMessageDrivenTestName25a;
885 if (!this.__fullyQualifiedMessageDrivenTestName25aSet)
886 {
887 // fullyQualifiedMessageDrivenTestName has no pre constraints
888 fullyQualifiedMessageDrivenTestName25a = handleGetFullyQualifiedMessageDrivenTestName();
889 // fullyQualifiedMessageDrivenTestName has no post constraints
890 this.__fullyQualifiedMessageDrivenTestName25a = fullyQualifiedMessageDrivenTestName25a;
891 if (isMetafacadePropertyCachingEnabled())
892 {
893 this.__fullyQualifiedMessageDrivenTestName25aSet = true;
894 }
895 }
896 return fullyQualifiedMessageDrivenTestName25a;
897 }
898
899 /**
900 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isSubscriptionDurable()
901 * @return boolean
902 */
903 protected abstract boolean handleIsSubscriptionDurable();
904
905 private boolean __subscriptionDurable26a;
906 private boolean __subscriptionDurable26aSet = false;
907
908 /**
909 * Returns true if the topic subscription durability setting is Durable.
910 * @return (boolean)handleIsSubscriptionDurable()
911 */
912 public final boolean isSubscriptionDurable()
913 {
914 boolean subscriptionDurable26a = this.__subscriptionDurable26a;
915 if (!this.__subscriptionDurable26aSet)
916 {
917 // subscriptionDurable has no pre constraints
918 subscriptionDurable26a = handleIsSubscriptionDurable();
919 // subscriptionDurable has no post constraints
920 this.__subscriptionDurable26a = subscriptionDurable26a;
921 if (isMetafacadePropertyCachingEnabled())
922 {
923 this.__subscriptionDurable26aSet = true;
924 }
925 }
926 return subscriptionDurable26a;
927 }
928
929 /**
930 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#isSubscriptionNonDurable()
931 * @return boolean
932 */
933 protected abstract boolean handleIsSubscriptionNonDurable();
934
935 private boolean __subscriptionNonDurable27a;
936 private boolean __subscriptionNonDurable27aSet = false;
937
938 /**
939 * Returns true if the subscription durability setting is NonDurable.
940 * @return (boolean)handleIsSubscriptionNonDurable()
941 */
942 public final boolean isSubscriptionNonDurable()
943 {
944 boolean subscriptionNonDurable27a = this.__subscriptionNonDurable27a;
945 if (!this.__subscriptionNonDurable27aSet)
946 {
947 // subscriptionNonDurable has no pre constraints
948 subscriptionNonDurable27a = handleIsSubscriptionNonDurable();
949 // subscriptionNonDurable has no post constraints
950 this.__subscriptionNonDurable27a = subscriptionNonDurable27a;
951 if (isMetafacadePropertyCachingEnabled())
952 {
953 this.__subscriptionNonDurable27aSet = true;
954 }
955 }
956 return subscriptionNonDurable27a;
957 }
958
959 /**
960 * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getDurableSubscriptionId()
961 * @return String
962 */
963 protected abstract String handleGetDurableSubscriptionId();
964
965 private String __durableSubscriptionId28a;
966 private boolean __durableSubscriptionId28aSet = false;
967
968 /**
969 * This returns a subscription name which is only required for durable subscriptions.
970 * @return (String)handleGetDurableSubscriptionId()
971 */
972 public final String getDurableSubscriptionId()
973 {
974 String durableSubscriptionId28a = this.__durableSubscriptionId28a;
975 if (!this.__durableSubscriptionId28aSet)
976 {
977 // durableSubscriptionId has no pre constraints
978 durableSubscriptionId28a = handleGetDurableSubscriptionId();
979 // durableSubscriptionId has no post constraints
980 this.__durableSubscriptionId28a = durableSubscriptionId28a;
981 if (isMetafacadePropertyCachingEnabled())
982 {
983 this.__durableSubscriptionId28aSet = true;
984 }
985 }
986 return durableSubscriptionId28a;
987 }
988
989 // ---------------- business methods ----------------------
990
991 /**
992 * Method to be implemented in descendants
993 * Returns the comma separated list of attributes.<p/>This method can be used to generate
994 * argument lists for constructors and method calls.
995 * @param attributes
996 * @param includeTypes
997 * @param includeNames
998 * @return String
999 */
1000 protected abstract String handleGetAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames);
1001
1002 /**
1003 * Returns the comma separated list of attributes.<p/>This method can be used to generate
1004 * argument lists for constructors and method calls.
1005 * @param attributes Collection
1006 * a collection of {@link Attribute} objects
1007 * @param includeTypes boolean
1008 * if <code>true</code>, the type names of the attributes are included.
1009 * @param includeNames boolean
1010 * if <code>true</code>, the names of the attributes are included
1011 * @return handleGetAttributesAsList(attributes, includeTypes, includeNames)
1012 */
1013 public String getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames)
1014 {
1015 // getAttributesAsList has no pre constraints
1016 String returnValue = handleGetAttributesAsList(attributes, includeTypes, includeNames);
1017 // getAttributesAsList has no post constraints
1018 return returnValue;
1019 }
1020
1021 /**
1022 * Method to be implemented in descendants
1023 * Gets all constants for this message driven EJB. Constants are defined as static read-only
1024 * attributes which do NOT have the <<EnvEntry>> stereotype. If 'follow' is true, then the
1025 * inheritance hierarchy will be followed and we'll retrieve all constants from any super types
1026 * as well.
1027 * @param follow
1028 * @return Collection
1029 */
1030 protected abstract Collection handleGetConstants(boolean follow);
1031
1032 /**
1033 * Gets all constants for this message driven EJB. Constants are defined as static read-only
1034 * attributes which do NOT have the <<EnvEntry>> stereotype. If 'follow' is true, then the
1035 * inheritance hierarchy will be followed and we'll retrieve all constants from any super types
1036 * as well.
1037 * @param follow boolean
1038 * If true, then the inheritance hierarchy will be followed and we'll retrieve all constants
1039 * from any super types as well.
1040 * @return handleGetConstants(follow)
1041 */
1042 public Collection getConstants(boolean follow)
1043 {
1044 // getConstants has no pre constraints
1045 Collection returnValue = handleGetConstants(follow);
1046 // getConstants has no post constraints
1047 return returnValue;
1048 }
1049
1050 /**
1051 * Method to be implemented in descendants
1052 * Gets all env-entries for the specified session EJB. Env-entries are stored as static
1053 * attributes on the entity and stereotyped as <<EnvEntry>>. If 'follow' is true, then the
1054 * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
1055 * types as well.
1056 * @param follow
1057 * @return Collection
1058 */
1059 protected abstract Collection handleGetEnvironmentEntries(boolean follow);
1060
1061 /**
1062 * Gets all env-entries for the specified session EJB. Env-entries are stored as static
1063 * attributes on the entity and stereotyped as <<EnvEntry>>. If 'follow' is true, then the
1064 * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
1065 * types as well.
1066 * @param follow boolean
1067 * If true, then the inheritance hierarchy will be followed and we'll retrieve all env-entries
1068 * from any super types as well.
1069 * @return handleGetEnvironmentEntries(follow)
1070 */
1071 public Collection getEnvironmentEntries(boolean follow)
1072 {
1073 // getEnvironmentEntries has no pre constraints
1074 Collection returnValue = handleGetEnvironmentEntries(follow);
1075 // getEnvironmentEntries has no post constraints
1076 return returnValue;
1077 }
1078
1079 /**
1080 * @return true
1081 * @see Service
1082 */
1083 public boolean isServiceMetaType()
1084 {
1085 return true;
1086 }
1087
1088 /**
1089 * @return true
1090 * @see ClassifierFacade
1091 */
1092 public boolean isClassifierFacadeMetaType()
1093 {
1094 return true;
1095 }
1096
1097 /**
1098 * @return true
1099 * @see GeneralizableElementFacade
1100 */
1101 public boolean isGeneralizableElementFacadeMetaType()
1102 {
1103 return true;
1104 }
1105
1106 /**
1107 * @return true
1108 * @see ModelElementFacade
1109 */
1110 public boolean isModelElementFacadeMetaType()
1111 {
1112 return true;
1113 }
1114
1115 // ----------- delegates to Service ------------
1116 /**
1117 * Return the attribute which name matches the parameter
1118 * @see ClassifierFacade#findAttribute(String name)
1119 */
1120 public AttributeFacade findAttribute(String name)
1121 {
1122 return this.getSuperService().findAttribute(name);
1123 }
1124
1125 /**
1126 * Those abstraction dependencies for which this classifier is the client.
1127 * @see ClassifierFacade#getAbstractions()
1128 */
1129 public Collection<ClassifierFacade> getAbstractions()
1130 {
1131 return this.getSuperService().getAbstractions();
1132 }
1133
1134 /**
1135 * Lists all classes associated to this one and any ancestor classes (through generalization).
1136 * There will be no duplicates. The order of the elements is predictable.
1137 * @see ClassifierFacade#getAllAssociatedClasses()
1138 */
1139 public Collection<ClassifierFacade> getAllAssociatedClasses()
1140 {
1141 return this.getSuperService().getAllAssociatedClasses();
1142 }
1143
1144 /**
1145 * A collection containing all 'properties' of the classifier and its ancestors. Properties are
1146 * any attributes and navigable connecting association ends.
1147 * @see ClassifierFacade#getAllProperties()
1148 */
1149 public Collection<ModelElementFacade> getAllProperties()
1150 {
1151 return this.getSuperService().getAllProperties();
1152 }
1153
1154 /**
1155 * A collection containing all required and/or read-only 'properties' of the classifier and its
1156 * ancestors. Properties are any attributes and navigable connecting association ends.
1157 * @see ClassifierFacade#getAllRequiredConstructorParameters()
1158 */
1159 public Collection<ModelElementFacade> getAllRequiredConstructorParameters()
1160 {
1161 return this.getSuperService().getAllRequiredConstructorParameters();
1162 }
1163
1164 /**
1165 * Gets the array type for this classifier. If this classifier already represents an array, it
1166 * just returns itself.
1167 * @see ClassifierFacade#getArray()
1168 */
1169 public ClassifierFacade getArray()
1170 {
1171 return this.getSuperService().getArray();
1172 }
1173
1174 /**
1175 * The name of the classifier as an array.
1176 * @see ClassifierFacade#getArrayName()
1177 */
1178 public String getArrayName()
1179 {
1180 return this.getSuperService().getArrayName();
1181 }
1182
1183 /**
1184 * Lists the classes associated to this one, there is no repitition of classes. The order of the
1185 * elements is predictable.
1186 * @see ClassifierFacade#getAssociatedClasses()
1187 */
1188 public Collection<ClassifierFacade> getAssociatedClasses()
1189 {
1190 return this.getSuperService().getAssociatedClasses();
1191 }
1192
1193 /**
1194 * Gets the association ends belonging to a classifier.
1195 * @see ClassifierFacade#getAssociationEnds()
1196 */
1197 public List<AssociationEndFacade> getAssociationEnds()
1198 {
1199 return this.getSuperService().getAssociationEnds();
1200 }
1201
1202 /**
1203 * Gets the attributes that belong to the classifier.
1204 * @see ClassifierFacade#getAttributes()
1205 */
1206 public List<AttributeFacade> getAttributes()
1207 {
1208 return this.getSuperService().getAttributes();
1209 }
1210
1211 /**
1212 * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance
1213 * hierarchy and gets the attributes from the super classes as well.
1214 * @see ClassifierFacade#getAttributes(boolean follow)
1215 */
1216 public List<AttributeFacade> getAttributes(boolean follow)
1217 {
1218 return this.getSuperService().getAttributes(follow);
1219 }
1220
1221 /**
1222 * The fully qualified name of the classifier as an array.
1223 * @see ClassifierFacade#getFullyQualifiedArrayName()
1224 */
1225 public String getFullyQualifiedArrayName()
1226 {
1227 return this.getSuperService().getFullyQualifiedArrayName();
1228 }
1229
1230 /**
1231 * Returns all those operations that could be implemented at this classifier's level. This means
1232 * the operations owned by this classifier as well as any realized interface's operations
1233 * (recursively) in case this classifier itself is not already an interface, or generalized when
1234 * this classifier is an interface.
1235 * @see ClassifierFacade#getImplementationOperations()
1236 */
1237 public Collection<OperationFacade> getImplementationOperations()
1238 {
1239 return this.getSuperService().getImplementationOperations();
1240 }
1241
1242 /**
1243 * A comma separated list of the fully qualified names of all implemented interfaces.
1244 * @see ClassifierFacade#getImplementedInterfaceList()
1245 */
1246 public String getImplementedInterfaceList()
1247 {
1248 return this.getSuperService().getImplementedInterfaceList();
1249 }
1250
1251 /**
1252 * Those attributes that are scoped to an instance of this class.
1253 * @see ClassifierFacade#getInstanceAttributes()
1254 */
1255 public Collection<AttributeFacade> getInstanceAttributes()
1256 {
1257 return this.getSuperService().getInstanceAttributes();
1258 }
1259
1260 /**
1261 * Those operations that are scoped to an instance of this class.
1262 * @see ClassifierFacade#getInstanceOperations()
1263 */
1264 public List<OperationFacade> getInstanceOperations()
1265 {
1266 return this.getSuperService().getInstanceOperations();
1267 }
1268
1269 /**
1270 * Those interfaces that are abstractions of this classifier, this basically means this
1271 * classifier realizes them.
1272 * @see ClassifierFacade#getInterfaceAbstractions()
1273 */
1274 public Collection<ClassifierFacade> getInterfaceAbstractions()
1275 {
1276 return this.getSuperService().getInterfaceAbstractions();
1277 }
1278
1279 /**
1280 * A String representing a new Constructor declaration for this classifier type to be used in a
1281 * Java environment.
1282 * @see ClassifierFacade#getJavaNewString()
1283 */
1284 public String getJavaNewString()
1285 {
1286 return this.getSuperService().getJavaNewString();
1287 }
1288
1289 /**
1290 * A String representing the null-value for this classifier type to be used in a Java
1291 * environment.
1292 * @see ClassifierFacade#getJavaNullString()
1293 */
1294 public String getJavaNullString()
1295 {
1296 return this.getSuperService().getJavaNullString();
1297 }
1298
1299 /**
1300 * The other ends of this classifier's association ends which are navigable.
1301 * @see ClassifierFacade#getNavigableConnectingEnds()
1302 */
1303 public Collection<AssociationEndFacade> getNavigableConnectingEnds()
1304 {
1305 return this.getSuperService().getNavigableConnectingEnds();
1306 }
1307
1308 /**
1309 * Get the other ends of this classifier's association ends which are navigable and if 'follow'
1310 * is true goes up the inheritance hierarchy and gets the super association ends as well.
1311 * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow)
1312 */
1313 public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow)
1314 {
1315 return this.getSuperService().getNavigableConnectingEnds(follow);
1316 }
1317
1318 /**
1319 * Assuming that the classifier is an array, this will return the non array type of the
1320 * classifier from
1321 * the model. If the classifier is NOT an array, it will just return itself.
1322 * @see ClassifierFacade#getNonArray()
1323 */
1324 public ClassifierFacade getNonArray()
1325 {
1326 return this.getSuperService().getNonArray();
1327 }
1328
1329 /**
1330 * The attributes from this classifier in the form of an operation call (this example would be
1331 * in Java): '(String attributeOne, String attributeTwo). If there were no attributes on the
1332 * classifier, the result would be an empty '()'.
1333 * @see ClassifierFacade#getOperationCallFromAttributes()
1334 */
1335 public String getOperationCallFromAttributes()
1336 {
1337 return this.getSuperService().getOperationCallFromAttributes();
1338 }
1339
1340 /**
1341 * The operations owned by this classifier.
1342 * @see ClassifierFacade#getOperations()
1343 */
1344 public List<OperationFacade> getOperations()
1345 {
1346 return this.getSuperService().getOperations();
1347 }
1348
1349 /**
1350 * A collection containing all 'properties' of the classifier. Properties are any attributes
1351 * and navigable connecting association ends.
1352 * @see ClassifierFacade#getProperties()
1353 */
1354 public List<ModelElementFacade> getProperties()
1355 {
1356 return this.getSuperService().getProperties();
1357 }
1358
1359 /**
1360 * Gets all properties (attributes and navigable association ends) for the classifier and if
1361 * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super
1362 * classes as well.
1363 * @see ClassifierFacade#getProperties(boolean follow)
1364 */
1365 public List getProperties(boolean follow)
1366 {
1367 return this.getSuperService().getProperties(follow);
1368 }
1369
1370 /**
1371 * A collection containing all required and/or read-only 'properties' of the classifier.
1372 * Properties are any attributes and navigable connecting association ends.
1373 * @see ClassifierFacade#getRequiredConstructorParameters()
1374 */
1375 public Collection<ModelElementFacade> getRequiredConstructorParameters()
1376 {
1377 return this.getSuperService().getRequiredConstructorParameters();
1378 }
1379
1380 /**
1381 * Returns the serial version UID of the underlying model element.
1382 * @see ClassifierFacade#getSerialVersionUID()
1383 */
1384 public long getSerialVersionUID()
1385 {
1386 return this.getSuperService().getSerialVersionUID();
1387 }
1388
1389 /**
1390 * Those attributes that are scoped to the definition of this class.
1391 * @see ClassifierFacade#getStaticAttributes()
1392 */
1393 public Collection<AttributeFacade> getStaticAttributes()
1394 {
1395 return this.getSuperService().getStaticAttributes();
1396 }
1397
1398 /**
1399 * Those operations that are scoped to the definition of this class.
1400 * @see ClassifierFacade#getStaticOperations()
1401 */
1402 public List<OperationFacade> getStaticOperations()
1403 {
1404 return this.getSuperService().getStaticOperations();
1405 }
1406
1407 /**
1408 * This class' superclass, returns the generalization if it is a ClassifierFacade, null
1409 * otherwise.
1410 * @see ClassifierFacade#getSuperClass()
1411 */
1412 public ClassifierFacade getSuperClass()
1413 {
1414 return this.getSuperService().getSuperClass();
1415 }
1416
1417 /**
1418 * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long'
1419 * maps to 'Long'). If the classifier doesn't have a wrapper defined for it, this method will
1420 * return a null. Note that wrapper mappings must be defined for the namespace by defining the
1421 * 'wrapperMappingsUri', this property must point to the location of the mappings file which
1422 * maps the primitives to wrapper types.
1423 * @see ClassifierFacade#getWrapperName()
1424 */
1425 public String getWrapperName()
1426 {
1427 return this.getSuperService().getWrapperName();
1428 }
1429
1430 /**
1431 * Indicates if this classifier is 'abstract'.
1432 * @see ClassifierFacade#isAbstract()
1433 */
1434 public boolean isAbstract()
1435 {
1436 return this.getSuperService().isAbstract();
1437 }
1438
1439 /**
1440 * True if this classifier represents an array type. False otherwise.
1441 * @see ClassifierFacade#isArrayType()
1442 */
1443 public boolean isArrayType()
1444 {
1445 return this.getSuperService().isArrayType();
1446 }
1447
1448 /**
1449 * True if the ClassifierFacade is an AssociationClass.
1450 * @see ClassifierFacade#isAssociationClass()
1451 */
1452 public boolean isAssociationClass()
1453 {
1454 return this.getSuperService().isAssociationClass();
1455 }
1456
1457 /**
1458 * Returns true if this type represents a Blob type.
1459 * @see ClassifierFacade#isBlobType()
1460 */
1461 public boolean isBlobType()
1462 {
1463 return this.getSuperService().isBlobType();
1464 }
1465
1466 /**
1467 * Indicates if this type represents a boolean type or not.
1468 * @see ClassifierFacade#isBooleanType()
1469 */
1470 public boolean isBooleanType()
1471 {
1472 return this.getSuperService().isBooleanType();
1473 }
1474
1475 /**
1476 * Indicates if this type represents a char, Character, or java.lang.Character type or not.
1477 * @see ClassifierFacade#isCharacterType()
1478 */
1479 public boolean isCharacterType()
1480 {
1481 return this.getSuperService().isCharacterType();
1482 }
1483
1484 /**
1485 * Returns true if this type represents a Clob type.
1486 * @see ClassifierFacade#isClobType()
1487 */
1488 public boolean isClobType()
1489 {
1490 return this.getSuperService().isClobType();
1491 }
1492
1493 /**
1494 * True if this classifier represents a collection type. False otherwise.
1495 * @see ClassifierFacade#isCollectionType()
1496 */
1497 public boolean isCollectionType()
1498 {
1499 return this.getSuperService().isCollectionType();
1500 }
1501
1502 /**
1503 * True/false depending on whether or not this classifier represents a datatype. A data type is
1504 * a type whose instances are identified only by their value. A data type may contain attributes
1505 * to support the modeling of structured data types.
1506 * @see ClassifierFacade#isDataType()
1507 */
1508 public boolean isDataType()
1509 {
1510 return this.getSuperService().isDataType();
1511 }
1512
1513 /**
1514 * True when this classifier is a date type.
1515 * @see ClassifierFacade#isDateType()
1516 */
1517 public boolean isDateType()
1518 {
1519 return this.getSuperService().isDateType();
1520 }
1521
1522 /**
1523 * Indicates if this type represents a Double type or not.
1524 * @see ClassifierFacade#isDoubleType()
1525 */
1526 public boolean isDoubleType()
1527 {
1528 return this.getSuperService().isDoubleType();
1529 }
1530
1531 /**
1532 * Indicates whether or not this classifier represents an "EmbeddedValue'.
1533 * @see ClassifierFacade#isEmbeddedValue()
1534 */
1535 public boolean isEmbeddedValue()
1536 {
1537 return this.getSuperService().isEmbeddedValue();
1538 }
1539
1540 /**
1541 * True if this classifier is in fact marked as an enumeration.
1542 * @see ClassifierFacade#isEnumeration()
1543 */
1544 public boolean isEnumeration()
1545 {
1546 return this.getSuperService().isEnumeration();
1547 }
1548
1549 /**
1550 * Returns true if this type represents a 'file' type.
1551 * @see ClassifierFacade#isFileType()
1552 */
1553 public boolean isFileType()
1554 {
1555 return this.getSuperService().isFileType();
1556 }
1557
1558 /**
1559 * Indicates if this type represents a Float type or not.
1560 * @see ClassifierFacade#isFloatType()
1561 */
1562 public boolean isFloatType()
1563 {
1564 return this.getSuperService().isFloatType();
1565 }
1566
1567 /**
1568 * Indicates if this type represents an int or Integer or java.lang.Integer type or not.
1569 * @see ClassifierFacade#isIntegerType()
1570 */
1571 public boolean isIntegerType()
1572 {
1573 return this.getSuperService().isIntegerType();
1574 }
1575
1576 /**
1577 * True/false depending on whether or not this Classifier represents an interface.
1578 * @see ClassifierFacade#isInterface()
1579 */
1580 public boolean isInterface()
1581 {
1582 return this.getSuperService().isInterface();
1583 }
1584
1585 /**
1586 * True if this classifier cannot be extended and represent a leaf in the inheritance tree.
1587 * @see ClassifierFacade#isLeaf()
1588 */
1589 public boolean isLeaf()
1590 {
1591 return this.getSuperService().isLeaf();
1592 }
1593
1594 /**
1595 * True if this classifier represents a list type. False otherwise.
1596 * @see ClassifierFacade#isListType()
1597 */
1598 public boolean isListType()
1599 {
1600 return this.getSuperService().isListType();
1601 }
1602
1603 /**
1604 * Indicates if this type represents a Long type or not.
1605 * @see ClassifierFacade#isLongType()
1606 */
1607 public boolean isLongType()
1608 {
1609 return this.getSuperService().isLongType();
1610 }
1611
1612 /**
1613 * Indicates whether or not this classifier represents a Map type.
1614 * @see ClassifierFacade#isMapType()
1615 */
1616 public boolean isMapType()
1617 {
1618 return this.getSuperService().isMapType();
1619 }
1620
1621 /**
1622 * Indicates whether or not this classifier represents a primitive type.
1623 * @see ClassifierFacade#isPrimitive()
1624 */
1625 public boolean isPrimitive()
1626 {
1627 return this.getSuperService().isPrimitive();
1628 }
1629
1630 /**
1631 * True if this classifier represents a set type. False otherwise.
1632 * @see ClassifierFacade#isSetType()
1633 */
1634 public boolean isSetType()
1635 {
1636 return this.getSuperService().isSetType();
1637 }
1638
1639 /**
1640 * Indicates whether or not this classifier represents a string type.
1641 * @see ClassifierFacade#isStringType()
1642 */
1643 public boolean isStringType()
1644 {
1645 return this.getSuperService().isStringType();
1646 }
1647
1648 /**
1649 * Indicates whether or not this classifier represents a time type.
1650 * @see ClassifierFacade#isTimeType()
1651 */
1652 public boolean isTimeType()
1653 {
1654 return this.getSuperService().isTimeType();
1655 }
1656
1657 /**
1658 * Returns true if this type is a wrapped primitive type.
1659 * @see ClassifierFacade#isWrappedPrimitive()
1660 */
1661 public boolean isWrappedPrimitive()
1662 {
1663 return this.getSuperService().isWrappedPrimitive();
1664 }
1665
1666 /**
1667 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set
1668 * to true.
1669 * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow)
1670 */
1671 public Object findTaggedValue(String tagName, boolean follow)
1672 {
1673 return this.getSuperService().findTaggedValue(tagName, follow);
1674 }
1675
1676 /**
1677 * All generalizations for this generalizable element, goes up the inheritance tree.
1678 * @see GeneralizableElementFacade#getAllGeneralizations()
1679 */
1680 public Collection<GeneralizableElementFacade> getAllGeneralizations()
1681 {
1682 return this.getSuperService().getAllGeneralizations();
1683 }
1684
1685 /**
1686 * All specializations (travels down the inheritance hierarchy).
1687 * @see GeneralizableElementFacade#getAllSpecializations()
1688 */
1689 public Collection<GeneralizableElementFacade> getAllSpecializations()
1690 {
1691 return this.getSuperService().getAllSpecializations();
1692 }
1693
1694 /**
1695 * Gets the direct generalization for this generalizable element.
1696 * @see GeneralizableElementFacade#getGeneralization()
1697 */
1698 public GeneralizableElementFacade getGeneralization()
1699 {
1700 return this.getSuperService().getGeneralization();
1701 }
1702
1703 /**
1704 * Gets the actual links that this generalization element is part of (it plays either the
1705 * specialization or generalization).
1706 * @see GeneralizableElementFacade#getGeneralizationLinks()
1707 */
1708 public Collection<GeneralizationFacade> getGeneralizationLinks()
1709 {
1710 return this.getSuperService().getGeneralizationLinks();
1711 }
1712
1713 /**
1714 * A comma separated list of the fully qualified names of all generalizations.
1715 * @see GeneralizableElementFacade#getGeneralizationList()
1716 */
1717 public String getGeneralizationList()
1718 {
1719 return this.getSuperService().getGeneralizationList();
1720 }
1721
1722 /**
1723 * The element found when you recursively follow the generalization path up to the root. If an
1724 * element has no generalization itself will be considered the root.
1725 * @see GeneralizableElementFacade#getGeneralizationRoot()
1726 */
1727 public GeneralizableElementFacade getGeneralizationRoot()
1728 {
1729 return this.getSuperService().getGeneralizationRoot();
1730 }
1731
1732 /**
1733 * Return all generalizations (ancestors) from this generalizable element.
1734 * @see GeneralizableElementFacade#getGeneralizations()
1735 */
1736 public Collection<GeneralizableElementFacade> getGeneralizations()
1737 {
1738 return this.getSuperService().getGeneralizations();
1739 }
1740
1741 /**
1742 * Gets the direct specializations (i.e. sub elements) for this generalizatble element.
1743 * @see GeneralizableElementFacade#getSpecializations()
1744 */
1745 public Collection<GeneralizableElementFacade> getSpecializations()
1746 {
1747 return this.getSuperService().getSpecializations();
1748 }
1749
1750 /**
1751 * Copies all tagged values from the given ModelElementFacade to this model element facade.
1752 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element)
1753 */
1754 public void copyTaggedValues(ModelElementFacade element)
1755 {
1756 this.getSuperService().copyTaggedValues(element);
1757 }
1758
1759 /**
1760 * Finds the tagged value with the specified 'tagName'. In case there are more values the first
1761 * one found will be returned.
1762 * @see ModelElementFacade#findTaggedValue(String tagName)
1763 */
1764 public Object findTaggedValue(String tagName)
1765 {
1766 return this.getSuperService().findTaggedValue(tagName);
1767 }
1768
1769 /**
1770 * Returns all the values for the tagged value with the specified name. The returned collection
1771 * will contains only String instances, or will be empty. Never null.
1772 * @see ModelElementFacade#findTaggedValues(String tagName)
1773 */
1774 public Collection<Object> findTaggedValues(String tagName)
1775 {
1776 return this.getSuperService().findTaggedValues(tagName);
1777 }
1778
1779 /**
1780 * Returns the fully qualified name of the model element. The fully qualified name includes
1781 * complete package qualified name of the underlying model element. The templates parameter will
1782 * be replaced by the correct one given the binding relation of the parameter to this element.
1783 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1784 */
1785 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement)
1786 {
1787 return this.getSuperService().getBindedFullyQualifiedName(bindedElement);
1788 }
1789
1790 /**
1791 * Gets all constraints belonging to the model element.
1792 * @see ModelElementFacade#getConstraints()
1793 */
1794 public Collection<ConstraintFacade> getConstraints()
1795 {
1796 return this.getSuperService().getConstraints();
1797 }
1798
1799 /**
1800 * Returns the constraints of the argument kind that have been placed onto this model. Typical
1801 * kinds are "inv", "pre" and "post". Other kinds are possible.
1802 * @see ModelElementFacade#getConstraints(String kind)
1803 */
1804 public Collection<ConstraintFacade> getConstraints(String kind)
1805 {
1806 return this.getSuperService().getConstraints(kind);
1807 }
1808
1809 /**
1810 * Gets the documentation for the model element, The indent argument is prefixed to each line.
1811 * By default this method wraps lines after 64 characters.
1812 * This method is equivalent to <code>getDocumentation(indent, 64)</code>.
1813 * @see ModelElementFacade#getDocumentation(String indent)
1814 */
1815 public String getDocumentation(String indent)
1816 {
1817 return this.getSuperService().getDocumentation(indent);
1818 }
1819
1820 /**
1821 * This method returns the documentation for this model element, with the lines wrapped after
1822 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1823 * required. By default paragraphs are returned as HTML.
1824 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>.
1825 * @see ModelElementFacade#getDocumentation(String indent, int lineLength)
1826 */
1827 public String getDocumentation(String indent, int lineLength)
1828 {
1829 return this.getSuperService().getDocumentation(indent, lineLength);
1830 }
1831
1832 /**
1833 * This method returns the documentation for this model element, with the lines wrapped after
1834 * the specified number of characters, values of less than 1 will indicate no line wrapping is
1835 * required. HTML style determines if HTML Escaping is applied.
1836 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle)
1837 */
1838 public String getDocumentation(String indent, int lineLength, boolean htmlStyle)
1839 {
1840 return this.getSuperService().getDocumentation(indent, lineLength, htmlStyle);
1841 }
1842
1843 /**
1844 * The fully qualified name of this model element.
1845 * @see ModelElementFacade#getFullyQualifiedName()
1846 */
1847 public String getFullyQualifiedName()
1848 {
1849 return this.getSuperService().getFullyQualifiedName();
1850 }
1851
1852 /**
1853 * Returns the fully qualified name of the model element. The fully qualified name includes
1854 * complete package qualified name of the underlying model element. If modelName is true, then
1855 * the original name of the model element (the name contained within the model) will be the name
1856 * returned, otherwise a name from a language mapping will be returned.
1857 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName)
1858 */
1859 public String getFullyQualifiedName(boolean modelName)
1860 {
1861 return this.getSuperService().getFullyQualifiedName(modelName);
1862 }
1863
1864 /**
1865 * Returns the fully qualified name as a path, the returned value always starts with out a slash
1866 * '/'.
1867 * @see ModelElementFacade#getFullyQualifiedNamePath()
1868 */
1869 public String getFullyQualifiedNamePath()
1870 {
1871 return this.getSuperService().getFullyQualifiedNamePath();
1872 }
1873
1874 /**
1875 * Gets the unique identifier of the underlying model element.
1876 * @see ModelElementFacade#getId()
1877 */
1878 public String getId()
1879 {
1880 return this.getSuperService().getId();
1881 }
1882
1883 /**
1884 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which
1885 * are not represented by other properties, i.e. native, transient, volatile, synchronized,
1886 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings:
1887 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require
1888 * JDK5 compiler level.
1889 * @see ModelElementFacade#getKeywords()
1890 */
1891 public Collection<String> getKeywords()
1892 {
1893 return this.getSuperService().getKeywords();
1894 }
1895
1896 /**
1897 * UML2: Retrieves a localized label for this named element.
1898 * @see ModelElementFacade#getLabel()
1899 */
1900 public String getLabel()
1901 {
1902 return this.getSuperService().getLabel();
1903 }
1904
1905 /**
1906 * The language mappings that have been set for this model element.
1907 * @see ModelElementFacade#getLanguageMappings()
1908 */
1909 public TypeMappings getLanguageMappings()
1910 {
1911 return this.getSuperService().getLanguageMappings();
1912 }
1913
1914 /**
1915 * Return the model containing this model element (multiple models may be loaded and processed
1916 * at the same time).
1917 * @see ModelElementFacade#getModel()
1918 */
1919 public ModelFacade getModel()
1920 {
1921 return this.getSuperService().getModel();
1922 }
1923
1924 /**
1925 * The name of the model element.
1926 * @see ModelElementFacade#getName()
1927 */
1928 public String getName()
1929 {
1930 return this.getSuperService().getName();
1931 }
1932
1933 /**
1934 * Gets the package to which this model element belongs.
1935 * @see ModelElementFacade#getPackage()
1936 */
1937 public ModelElementFacade getPackage()
1938 {
1939 return this.getSuperService().getPackage();
1940 }
1941
1942 /**
1943 * The name of this model element's package.
1944 * @see ModelElementFacade#getPackageName()
1945 */
1946 public String getPackageName()
1947 {
1948 return this.getSuperService().getPackageName();
1949 }
1950
1951 /**
1952 * Gets the package name (optionally providing the ability to retrieve the model name and not
1953 * the mapped name).
1954 * @see ModelElementFacade#getPackageName(boolean modelName)
1955 */
1956 public String getPackageName(boolean modelName)
1957 {
1958 return this.getSuperService().getPackageName(modelName);
1959 }
1960
1961 /**
1962 * Returns the package as a path, the returned value always starts with out a slash '/'.
1963 * @see ModelElementFacade#getPackagePath()
1964 */
1965 public String getPackagePath()
1966 {
1967 return this.getSuperService().getPackagePath();
1968 }
1969
1970 /**
1971 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the
1972 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from
1973 * the names of the containing namespaces starting at the root of the hierarchy and ending with
1974 * the name of the NamedElement itself.
1975 * @see ModelElementFacade#getQualifiedName()
1976 */
1977 public String getQualifiedName()
1978 {
1979 return this.getSuperService().getQualifiedName();
1980 }
1981
1982 /**
1983 * Gets the root package for the model element.
1984 * @see ModelElementFacade#getRootPackage()
1985 */
1986 public PackageFacade getRootPackage()
1987 {
1988 return this.getSuperService().getRootPackage();
1989 }
1990
1991 /**
1992 * Gets the dependencies for which this model element is the source.
1993 * @see ModelElementFacade#getSourceDependencies()
1994 */
1995 public Collection<DependencyFacade> getSourceDependencies()
1996 {
1997 return this.getSuperService().getSourceDependencies();
1998 }
1999
2000 /**
2001 * If this model element is the context of an activity graph, this represents that activity
2002 * graph.
2003 * @see ModelElementFacade#getStateMachineContext()
2004 */
2005 public StateMachineFacade getStateMachineContext()
2006 {
2007 return this.getSuperService().getStateMachineContext();
2008 }
2009
2010 /**
2011 * The collection of ALL stereotype names for this model element.
2012 * @see ModelElementFacade#getStereotypeNames()
2013 */
2014 public Collection<String> getStereotypeNames()
2015 {
2016 return this.getSuperService().getStereotypeNames();
2017 }
2018
2019 /**
2020 * Gets all stereotypes for this model element.
2021 * @see ModelElementFacade#getStereotypes()
2022 */
2023 public Collection<StereotypeFacade> getStereotypes()
2024 {
2025 return this.getSuperService().getStereotypes();
2026 }
2027
2028 /**
2029 * Return the TaggedValues associated with this model element, under all stereotypes.
2030 * @see ModelElementFacade#getTaggedValues()
2031 */
2032 public Collection<TaggedValueFacade> getTaggedValues()
2033 {
2034 return this.getSuperService().getTaggedValues();
2035 }
2036
2037 /**
2038 * Gets the dependencies for which this model element is the target.
2039 * @see ModelElementFacade#getTargetDependencies()
2040 */
2041 public Collection<DependencyFacade> getTargetDependencies()
2042 {
2043 return this.getSuperService().getTargetDependencies();
2044 }
2045
2046 /**
2047 * Get the template parameter for this model element having the parameterName
2048 * @see ModelElementFacade#getTemplateParameter(String parameterName)
2049 */
2050 public Object getTemplateParameter(String parameterName)
2051 {
2052 return this.getSuperService().getTemplateParameter(parameterName);
2053 }
2054
2055 /**
2056 * Get the template parameters for this model element
2057 * @see ModelElementFacade#getTemplateParameters()
2058 */
2059 public Collection<TemplateParameterFacade> getTemplateParameters()
2060 {
2061 return this.getSuperService().getTemplateParameters();
2062 }
2063
2064 /**
2065 * The visibility (i.e. public, private, protected or package) of the model element, will
2066 * attempt a lookup for these values in the language mappings (if any).
2067 * @see ModelElementFacade#getVisibility()
2068 */
2069 public String getVisibility()
2070 {
2071 return this.getSuperService().getVisibility();
2072 }
2073
2074 /**
2075 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance
2076 * is taken into account when searching for the stereotype), false otherwise.
2077 * @see ModelElementFacade#hasExactStereotype(String stereotypeName)
2078 */
2079 public boolean hasExactStereotype(String stereotypeName)
2080 {
2081 return this.getSuperService().hasExactStereotype(stereotypeName);
2082 }
2083
2084 /**
2085 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma,
2086 * pipe, semicolon, or << >>
2087 * @see ModelElementFacade#hasKeyword(String keywordName)
2088 */
2089 public boolean hasKeyword(String keywordName)
2090 {
2091 return this.getSuperService().hasKeyword(keywordName);
2092 }
2093
2094 /**
2095 * Returns true if the model element has the specified stereotype. If the stereotype itself
2096 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if
2097 * one of the stereotype's ancestors has a matching name this method will return true, false
2098 * otherwise.
2099 * For example, if we have a certain stereotype called <<exception>> and a model element has a
2100 * stereotype called <<applicationException>> which extends <<exception>>, when calling this
2101 * method with 'stereotypeName' defined as 'exception' the method would return true since
2102 * <<applicationException>> inherits from <<exception>>. If you want to check if the model
2103 * element has the exact stereotype, then use the method 'hasExactStereotype' instead.
2104 * @see ModelElementFacade#hasStereotype(String stereotypeName)
2105 */
2106 public boolean hasStereotype(String stereotypeName)
2107 {
2108 return this.getSuperService().hasStereotype(stereotypeName);
2109 }
2110
2111 /**
2112 * True if there are target dependencies from this element that are instances of BindingFacade.
2113 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies.
2114 * @see ModelElementFacade#isBindingDependenciesPresent()
2115 */
2116 public boolean isBindingDependenciesPresent()
2117 {
2118 return this.getSuperService().isBindingDependenciesPresent();
2119 }
2120
2121 /**
2122 * Indicates if any constraints are present on this model element.
2123 * @see ModelElementFacade#isConstraintsPresent()
2124 */
2125 public boolean isConstraintsPresent()
2126 {
2127 return this.getSuperService().isConstraintsPresent();
2128 }
2129
2130 /**
2131 * Indicates if any documentation is present on this model element.
2132 * @see ModelElementFacade#isDocumentationPresent()
2133 */
2134 public boolean isDocumentationPresent()
2135 {
2136 return this.getSuperService().isDocumentationPresent();
2137 }
2138
2139 /**
2140 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript.
2141 * @see ModelElementFacade#isReservedWord()
2142 */
2143 public boolean isReservedWord()
2144 {
2145 return this.getSuperService().isReservedWord();
2146 }
2147
2148 /**
2149 * True is there are template parameters on this model element. For UML2, applies to Class,
2150 * Operation, Property, and Parameter.
2151 * @see ModelElementFacade#isTemplateParametersPresent()
2152 */
2153 public boolean isTemplateParametersPresent()
2154 {
2155 return this.getSuperService().isTemplateParametersPresent();
2156 }
2157
2158 /**
2159 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++,
2160 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on
2161 * Enumerations and Interfaces, optionally applies on other model elements.
2162 * @see ModelElementFacade#isValidIdentifierName()
2163 */
2164 public boolean isValidIdentifierName()
2165 {
2166 return this.getSuperService().isValidIdentifierName();
2167 }
2168
2169 /**
2170 * Searches for the constraint with the specified 'name' on this model element, and if found
2171 * translates it using the specified 'translation' from a translation library discovered by the
2172 * framework.
2173 * @see ModelElementFacade#translateConstraint(String name, String translation)
2174 */
2175 public String translateConstraint(String name, String translation)
2176 {
2177 return this.getSuperService().translateConstraint(name, translation);
2178 }
2179
2180 /**
2181 * Translates all constraints belonging to this model element with the given 'translation'.
2182 * @see ModelElementFacade#translateConstraints(String translation)
2183 */
2184 public String[] translateConstraints(String translation)
2185 {
2186 return this.getSuperService().translateConstraints(translation);
2187 }
2188
2189 /**
2190 * Translates the constraints of the specified 'kind' belonging to this model element.
2191 * @see ModelElementFacade#translateConstraints(String kind, String translation)
2192 */
2193 public String[] translateConstraints(String kind, String translation)
2194 {
2195 return this.getSuperService().translateConstraints(kind, translation);
2196 }
2197
2198 /**
2199 * Returns a collection of all entities this service and its ancestors have a relation to.
2200 * @see Service#getAllEntityReferences()
2201 */
2202 public Collection<DependencyFacade> getAllEntityReferences()
2203 {
2204 return this.getSuperService().getAllEntityReferences();
2205 }
2206
2207 /**
2208 * All messaging destinations that belong to this service and all decendent services.
2209 * @see Service#getAllMessagingDestinations()
2210 */
2211 public Collection<Destination> getAllMessagingDestinations()
2212 {
2213 return this.getSuperService().getAllMessagingDestinations();
2214 }
2215
2216 /**
2217 * All roles associated with the service, this includes both roles that have access to the
2218 * entire service, and any roles that have access to a single operation.
2219 * @see Service#getAllRoles()
2220 */
2221 public Collection<Role> getAllRoles()
2222 {
2223 return this.getSuperService().getAllRoles();
2224 }
2225
2226 /**
2227 * Returns a collection of all services this service and its ancestors have a relation to.
2228 * @see Service#getAllServiceReferences()
2229 */
2230 public Collection<DependencyFacade> getAllServiceReferences()
2231 {
2232 return this.getSuperService().getAllServiceReferences();
2233 }
2234
2235 /**
2236 * References to all entities to which this service has a dependency.
2237 * @see Service#getEntityReferences()
2238 */
2239 public Collection<DependencyFacade> getEntityReferences()
2240 {
2241 return this.getSuperService().getEntityReferences();
2242 }
2243
2244 /**
2245 * All messaging destinations available to this service.
2246 * @see Service#getMessagingDestinations()
2247 */
2248 public Collection<Destination> getMessagingDestinations()
2249 {
2250 return this.getSuperService().getMessagingDestinations();
2251 }
2252
2253 /**
2254 * The roles of the service, these are the actor's that can access this service.
2255 * @see Service#getRoles()
2256 */
2257 public Collection<Role> getRoles()
2258 {
2259 return this.getSuperService().getRoles();
2260 }
2261
2262 /**
2263 * References to all services to which this service has a dependency.
2264 * @see Service#getServiceReferences()
2265 */
2266 public Collection<DependencyFacade> getServiceReferences()
2267 {
2268 return this.getSuperService().getServiceReferences();
2269 }
2270
2271 /**
2272 * @see org.andromda.core.metafacade.MetafacadeBase#initialize()
2273 */
2274 @Override
2275 public void initialize()
2276 {
2277 this.getSuperService().initialize();
2278 }
2279
2280 /**
2281 * @return Object getSuperService().getValidationOwner()
2282 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner()
2283 */
2284 @Override
2285 public Object getValidationOwner()
2286 {
2287 Object owner = this.getSuperService().getValidationOwner();
2288 return owner;
2289 }
2290
2291 /**
2292 * @return String getSuperService().getValidationName()
2293 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName()
2294 */
2295 @Override
2296 public String getValidationName()
2297 {
2298 String name = this.getSuperService().getValidationName();
2299 return name;
2300 }
2301
2302 /**
2303 * @param validationMessages Collection<ModelValidationMessage>
2304 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages)
2305 */
2306 @Override
2307 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
2308 {
2309 this.getSuperService().validateInvariants(validationMessages);
2310 }
2311
2312 /**
2313 * The property that stores the name of the metafacade.
2314 */
2315 private static final String NAME_PROPERTY = "name";
2316 private static final String FQNAME_PROPERTY = "fullyQualifiedName";
2317
2318 /**
2319 * @see Object#toString()
2320 */
2321 @Override
2322 public String toString()
2323 {
2324 final StringBuilder toString = new StringBuilder(this.getClass().getName());
2325 toString.append("[");
2326 try
2327 {
2328 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY));
2329 }
2330 catch (final Throwable tryAgain)
2331 {
2332 try
2333 {
2334 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY));
2335 }
2336 catch (final Throwable ignore)
2337 {
2338 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property
2339 }
2340 }
2341 toString.append("]");
2342 return toString.toString();
2343 }
2344 }