1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.ejb3.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.metafacades.uml.Role;
9 import org.andromda.metafacades.uml.ServiceOperation;
10
11 /**
12 * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade
13 *
14 * Metafacade interface to be used by AndroMDA cartridges.
15 */
16 public interface EJB3SessionOperationFacade
17 extends ServiceOperation
18 {
19 /**
20 * Indicates the metafacade type (used for metafacade mappings).
21 *
22 * @return boolean always <code>true</code>
23 */
24 public boolean isEJB3SessionOperationFacadeMetaType();
25
26 /**
27 * Return the flush mode to determine when the changes to the database are performed in the
28 * application transaction. This is typically set on a Stateful session bean where a
29 * transaction span several methods and the database update is only required upon completion of
30 * the final method.
31 * @return String
32 */
33 public String getFlushMode();
34
35 /**
36 * The method call for the implementation operation.
37 * @return String
38 */
39 public String getImplementationCall();
40
41 /**
42 * The name of the operation used within the service implementation that contains the core
43 * logic.
44 * @return String
45 */
46 public String getImplementationName();
47
48 /**
49 * The signature of the implementation operation.
50 * @return String
51 */
52 public String getImplementationSignature();
53
54 /**
55 * Returns the Collection of target elements from the service bean method where the target
56 * class has a stereotype of Interceptor.
57 * @return Collection
58 */
59 public Collection getInterceptorReferences();
60
61 /**
62 * Return only the Role object that do not have a Dependency stereotype of RunAs specified.
63 * @return Collection<Role>
64 */
65 public Collection<Role> getNonRunAsRoles();
66
67 /**
68 * Returns the comma separated list of roles allowd to execute this operation. This is defined
69 * by actor dependencies.
70 * @return String
71 */
72 public String getRolesAllowed();
73
74 /**
75 * Returns a parameter string for the org.jboss.seam.annotations.Factory annotation. Supported
76 * parameters:
77 * * value specifies the name of the context variable. If the method is a getter method,
78 * default to the JavaBeans property name.
79 * * scope specifies the scope that Seam should bind the returned value to. Only meaningful
80 * for factory methods which return a value.
81 * @return String
82 */
83 public String getSeamBijectionFactoryParameters();
84
85 /**
86 * Returns a parameter string for the org.jboss.seam.annotations.Begin annotation. Supported
87 * parameters:
88 * * ifOutcome specifies the JSF outcome or outcomes that result in a new long-running
89 * conversation context.
90 * * join determines the behavior when a long-running conversation is already in progress. If
91 * true, the context is propagated. If false, an exception is thrown. Default to false. This
92 * setting is ignored when nested=true is specified
93 * * nested specifies that a nested conversation should be started if a long-running
94 * conversation is already in progress.
95 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
96 * contexts that are created during this conversation.
97 * * pageflow a process definition name of a jBPM process definition deployed via
98 * org.jboss.seam.core.jbpm.pageflowDefinitions.
99 * @return String
100 */
101 public String getSeamConversationBeginParameters();
102
103 /**
104 * Returns a parameter string for the org.jboss.seam.annotations.BeginTask annotation. Supported
105 * parameters:
106 * * taskIdParameter the name of a request parameter which holds the id of the task. Default
107 * to "taskId", which is also the default used by the Seam taskList JSF component.
108 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
109 * contexts that are created during this conversation.
110 * @return String
111 */
112 public String getSeamConversationBeginTaskParameters();
113
114 /**
115 * Returns a parameter string for the org.jboss.seam.annotations.CreateProcess annotation.
116 * Supported parameters:
117 * * definition the name of the jBPM process definition deployed via
118 * org.jboss.seam.core.jbpm.processDefinitions.
119 * @return String
120 */
121 public String getSeamConversationCreateProcessParameters();
122
123 /**
124 * Returns a parameter string for the org.jboss.seam.annotations.End annotation. Supported
125 * parameters:
126 * * ifOutcome specifies the JSF outcome or outcomes that result in the end of the current
127 * long-running conversation.
128 * * beforeRedirect by default, the conversation will not actually be destroyed until after
129 * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should
130 * be destroyed at the end of the current request, and that the redirect will be processed in a
131 * new temporary conversation context.
132 * @return String
133 */
134 public String getSeamConversationEndParameters();
135
136 /**
137 * Returns a parameter string for the org.jboss.seam.annotations.EndTask annotation. Supported
138 * parameters:
139 * * transition the name of the jBPM transition to be triggered when ending the task. Defaults
140 * to the default transition.
141 * * ifOutcome specifies the JSF outcome or outcomes that result in the end of the task.
142 * * beforeRedirect by default, the conversation will not actually be destroyed until after
143 * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should
144 * be destroyed at the end of the current request, and that the redirect will be processed in a
145 * new temporary conversation context.
146 * @return String
147 */
148 public String getSeamConversationEndTaskParameters();
149
150 /**
151 * Returns a parameter string for the org.jboss.seam.annotations.ResumeProcess annotation.
152 * Supported parameters:
153 * * processIdParameter the name a request parameter holding the process id. Default to
154 * "processId".
155 * @return String
156 */
157 public String getSeamConversationResumeProcessParameters();
158
159 /**
160 * Returns a parameter string for the org.jboss.seam.annotations.StartTask annotation. Supported
161 * parameters:
162 * * taskIdParameter the name of a request parameter which holds the id of the task. Default
163 * to "taskId", which is also the default used by the Seam taskList JSF component.
164 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
165 * contexts that are created during this conversation.
166 * @return String
167 */
168 public String getSeamConversationStartTaskParameters();
169
170 /**
171 * Specifies that the method should be called when a component-driven event of the specified
172 * type occurs.
173 * @return String
174 */
175 public String getSeamObserverEventName();
176
177 /**
178 * Returns a parameter string for the org.jboss.seam.annotations.Rollback annotation. Supported
179 * parameters:
180 * * ifOutcome the JSF outcomes that cause a transaction rollback (no outcomes is interpreted
181 * to mean any outcome).
182 * @return String
183 */
184 public String getSeamTransactionRollbackParameters();
185
186 /**
187 * Returns the JSF outcome when validation fails, set using andromda.seam.validation.outcome.
188 * @return String
189 */
190 public String getSeamValidationOutcome();
191
192 /**
193 * Returns a string with parameters for the org.jboss.seam.annotations.WebRemote annotation.
194 * Supported parameters:
195 * exclude - Allows objects to be excluded from the result's object graph. Example:
196 * WebRemote(exclude="path.to.exclude")
197 * @return String
198 */
199 public String getSeamWebRemoteParameters();
200
201 /**
202 * Returns the operation test name
203 * @return String
204 */
205 public String getTestName();
206
207 /**
208 * Returns the session operation test signature used to generate the test method for the
209 * operation in the session bean test class.
210 * @return String
211 */
212 public String getTestSignature();
213
214 /**
215 * Gets the throws clause for this service or null if the operation doesn't have any exceptions.
216 * @return String
217 */
218 public String getThrowsClause();
219
220 /**
221 * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and
222 * appended to the list.
223 * @param initialExceptions String
224 * @return String
225 */
226 public String getThrowsClause(String initialExceptions);
227
228 /**
229 * Gets the transaction type for this attribute (i.e. REQUIRED, etc)
230 * @return String
231 */
232 public String getTransactionType();
233
234 /**
235 * Returns a string representing whether this operation is local, remotely or both local and
236 * remotely accessible. This overrides the default from the session bean view type.
237 * @return String
238 */
239 public String getViewType();
240
241 /**
242 * True/false on whether or not this operation is an EJB session business operation.
243 * @return boolean
244 */
245 public boolean isBusinessOperation();
246
247 /**
248 * Returns true if NO roles are permitted to execute this operation in this bean. This is
249 * specified in the andromda.ejb.security.denyAll tagged value.
250 * @return boolean
251 */
252 public boolean isDenyAll();
253
254 /**
255 * Specifies whether to exclude the invocation of the class interceptors for the applied
256 * business method.
257 * @return boolean
258 */
259 public boolean isExcludeClassInterceptors();
260
261 /**
262 * Determines whether to exclude the invocation of the default interceptors for the applied
263 * business method.
264 * @return boolean
265 */
266 public boolean isExcludeDefaultInterceptors();
267
268 /**
269 * Returns true if this operation is marked with any of the lifecycle callback stereotypes like
270 * PostCostructs, PreDestroy etc.
271 * @return boolean
272 */
273 public boolean isLifecycleCallback();
274
275 /**
276 * Returns true if all roles are permitted to execute this operation. This is specified in the
277 * andromda.ejb.security.permitAll tagged value. It will override the
278 * andromda.ejb.security.rolesAllowed tagged value.
279 * @return boolean
280 */
281 public boolean isPermitAll();
282
283 /**
284 * Returns true if the associated operation has the <<PostActivate>> stereotype.
285 * This is only applicable for operations in a stateful session bean.
286 * NOTE: The method signature must return void and have no args.
287 * @return boolean
288 */
289 public boolean isPostActivate();
290
291 /**
292 * Returns true if the associated operation has the <<PostConstruct>> stereotype.
293 * NOTE: The method signature must return void and have no args.
294 * @return boolean
295 */
296 public boolean isPostConstruct();
297
298 /**
299 * Returns true if the associated operation has the <<PreDestroy>> stereotype.
300 * NOTE: The method signature must return void and have no args.
301 * @return boolean
302 */
303 public boolean isPreDestroy();
304
305 /**
306 * Returns true if the associated operation has the <<PrePassivate>> stereotype.
307 * This is only applicable for operations in a stateful session bean.
308 * NOTE: The method signature must return void and have no args.
309 * @return boolean
310 */
311 public boolean isPrePassivate();
312
313 /**
314 * Stereotype Asynchronous. Specifies that the method call is processed asynchronously.
315 * @return boolean
316 */
317 public boolean isSeamAsynchronous();
318
319 /**
320 * Returns true when stereotype <<Factory>> is set. When it is used on an operation which return
321 * void that operation will be used to initialize the value of the named context variable, when
322 * the context variable has no value.
323 * When it is used on an operation that returns a value then Seam should use that value to
324 * initialize the value of the named context variable, when the context variable has no value.
325 * The context variable is specified by tagged value andromda.seam.bijection.factory.value. If
326 * the method is a getter method, default to the JavaBeans property name.
327 * If no scope is explicitly specified by tagged value andromda.seam.bijection.factory.scope,
328 * the scope of the component with the Factory method is used (unless the component is
329 * stateless, in which case the EVENT context is used).
330 * @return boolean
331 */
332 public boolean isSeamBijectionFactory();
333
334 /**
335 * Returns true if the <<Begin>> stereotype is set. Specifies that a long-running conversation
336 * begins when this method returns a non-null outcome without exception.
337 * @return boolean
338 */
339 public boolean isSeamConversationBegin();
340
341 /**
342 * Returns true if stereotype <<BeginTask>> is set. Resumes work on an incomplete jBPM task.
343 * Specifies that a long-running conversation begins when this method returns a non-null outcome
344 * without exception. This conversation is associated with the jBPM task specified in the named
345 * request parameter. Within the context of this conversation, a business process context is
346 * also defined, for the business process instance of the task instance.
347 * @return boolean
348 */
349 public boolean isSeamConversationBeginTask();
350
351 /**
352 * Returns true if stereotype <<CreateProcess>> is set. Creates a new jBPM process instance when
353 * the method returns a non-null outcome without exception. The ProcessInstance object will be
354 * available in a context variable named processInstance.
355 * @return boolean
356 */
357 public boolean isSeamConversationCreateProcess();
358
359 /**
360 * Returns true if stereotype <<End>> is set. Specifies that a long-running conversation ends
361 * when this method returns a non-null outcome without exception.
362 * @return boolean
363 */
364 public boolean isSeamConversationEnd();
365
366 /**
367 * Returns true if stereotype <<EndTask>> is set and "Ends" a jBPM task. Specifies that a
368 * long-running conversation ends when this method returns a non-null outcome, and that the
369 * current task is complete. Triggers a jBPM transition. The actual transition triggered will be
370 * the default transition unless the application has called Transition.setName() on the built-in
371 * component named transition.
372 * @return boolean
373 */
374 public boolean isSeamConversationEndTask();
375
376 /**
377 * Returns true if stereotype <<ResumeProcess>> is set. Re-enters the scope of an existing jBPM
378 * process instance when the method returns a non-null outcome without exception. The
379 * ProcessInstance object will be available in a context variable named processInstance.
380 * @return boolean
381 */
382 public boolean isSeamConversationResumeProcess();
383
384 /**
385 * Returns true if stereotype <<StartTask>> is set. It "Starts" a jBPM task. Specifies that a
386 * long-running conversation begins when this method returns a non-null outcome without
387 * exception. This conversation is associated with the jBPM task specified in the named request
388 * parameter. Within the context of this conversation, a business process context is also
389 * defined, for the business process instance of the task instance.
390 * The jBPM TaskInstance will be available in a request context variable named taskInstance. The
391 * jPBM ProcessInstance will be available in a request context variable named processInstance.
392 * (Of course, these objects are available for injection via In.)
393 * @return boolean
394 */
395 public boolean isSeamConversationStartTask();
396
397 /**
398 * Returns true if the operation has the <<Create>> stereotype modelled.
399 * @return boolean
400 */
401 public boolean isSeamLifecycleCreate();
402
403 /**
404 * Returns true if the operation has the <<Destroy>> stereotype modelled.
405 * @return boolean
406 */
407 public boolean isSeamLifecycleDestroy();
408
409 /**
410 * True if the annotated method is a seam component-driven event observer.
411 * @return boolean
412 */
413 public boolean isSeamObserver();
414
415 /**
416 * Returns true if stereotype <<Rollback>> is set. If the outcome of the method matches any of
417 * the listed outcomes, or if no outcomes are listed, set the transaction to rollback only when
418 * the method completes.
419 * @return boolean
420 */
421 public boolean isSeamTransactionRollback();
422
423 /**
424 * Specifies that a JavaBean component should have a similar transactional behavior to the
425 * default behavior of a session bean component. ie. method invocations should take place in a
426 * transaction, and if no transaction exists when the method is called, a transaction will be
427 * started just for that method. This annotation may be applied at either class or method level.
428 * @return boolean
429 */
430 public boolean isSeamTransactional();
431
432 /**
433 * Returns true if the andromda.seam.validation.refreshEntities is modelled on the operation as
434 * true to indicate that any invalid entities in the managed state should be refreshed from the
435 * database when validation fails.
436 * @return boolean
437 */
438 public boolean isSeamValidationRefreshEntities();
439
440 /**
441 * Returns true if the <<Validator>> stereotype is modelled on this operation and the session
442 * bean is a Seam component.
443 * @return boolean
444 */
445 public boolean isSeamValidationValidator();
446
447 /**
448 * True if <<WebRemote>> stereotype is set. Indicates that the annotated method may be called
449 * from client-side JavaScript.
450 * @return boolean
451 */
452 public boolean isSeamWebRemote();
453
454 /**
455 * Returns true if the Timeout stereotype is modelled on the session bean operation. This will
456 * associate the operation as a timeout callback with the Timer Service. It does not setup the
457 * timer.
458 * @return boolean
459 */
460 public boolean isTimeoutCallback();
461
462 /**
463 * Return true if the view type of the operation is both after examing all aspects of the owner
464 * and operation. This is used to determine which interface to use in the service delegate.
465 * @return boolean
466 */
467 public boolean isViewTypeAbsoluteBoth();
468
469 /**
470 * Return true if the view type of the operation is local after examing all aspects of the owner
471 * and operation. This is used to determine if operation is included in local interface.
472 * @return boolean
473 */
474 public boolean isViewTypeAbsoluteLocal();
475
476 /**
477 * Return true if the view type of the operation is local after examing all aspects of the owner
478 * and operation. This is used to determine if operation is included in remote interface.
479 * @return boolean
480 */
481 public boolean isViewTypeAbsoluteRemote();
482
483 /**
484 * Returns true if the view type accessability for this operation is both local and remote.
485 * @return boolean
486 */
487 public boolean isViewTypeBoth();
488
489 /**
490 * Return true if the view type accessability for this operation is local.
491 * @return boolean
492 */
493 public boolean isViewTypeLocal();
494
495 /**
496 * Returns true if the view type accessability for the operation is remote.
497 * @return boolean
498 */
499 public boolean isViewTypeRemote();
500
501 /**
502 * Returns true if the operation view type was explicitly set to both using tagged value.
503 * @return boolean
504 */
505 public boolean isViewTypeStrictlyBoth();
506
507 /**
508 * Returns true if the operation view type was explicitly set to local view using tagged value.
509 * @return boolean
510 */
511 public boolean isViewTypeStrictlyLocal();
512
513 /**
514 * Returns true if the operation view type was explicitly set to remote view using tagged value.
515 * @return boolean
516 */
517 public boolean isViewTypeStrictlyRemote();
518 }