001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.ejb3.metafacades;
006
007import java.util.Collection;
008import org.andromda.metafacades.uml.Role;
009import org.andromda.metafacades.uml.ServiceOperation;
010
011/**
012 * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade
013 *
014 * Metafacade interface to be used by AndroMDA cartridges.
015 */
016public interface EJB3SessionOperationFacade
017    extends ServiceOperation
018{
019    /**
020     * Indicates the metafacade type (used for metafacade mappings).
021     *
022     * @return boolean always <code>true</code>
023     */
024    public boolean isEJB3SessionOperationFacadeMetaType();
025
026    /**
027     * Return the flush mode to determine when the changes to the database are performed in the
028     * application transaction.  This is typically set on a Stateful session bean where a
029     * transaction span several methods and the database update is only required upon completion of
030     * the final method.
031     * @return String
032     */
033    public String getFlushMode();
034
035    /**
036     * The method call for the implementation operation.
037     * @return String
038     */
039    public String getImplementationCall();
040
041    /**
042     * The name of the operation used within the service implementation that contains the core
043     * logic.
044     * @return String
045     */
046    public String getImplementationName();
047
048    /**
049     * The signature of the implementation operation.
050     * @return String
051     */
052    public String getImplementationSignature();
053
054    /**
055     * Returns the Collection of target elements from the service bean method where  the target
056     * class has a stereotype of Interceptor.
057     * @return Collection
058     */
059    public Collection getInterceptorReferences();
060
061    /**
062     * Return only the Role object that do not have a Dependency stereotype of RunAs specified.
063     * @return Collection<Role>
064     */
065    public Collection<Role> getNonRunAsRoles();
066
067    /**
068     * Returns the comma separated list of roles allowd to execute this operation.  This is defined
069     * by actor dependencies.
070     * @return String
071     */
072    public String getRolesAllowed();
073
074    /**
075     * Returns a parameter string for the org.jboss.seam.annotations.Factory annotation. Supported
076     * parameters:
077     * * value ? specifies the name of the context variable. If the method is a getter method,
078     * default to the JavaBeans property name.
079     * * scope ? specifies the scope that Seam should bind the returned value to. Only meaningful
080     * for factory methods which return a value.
081     * @return String
082     */
083    public String getSeamBijectionFactoryParameters();
084
085    /**
086     * Returns a parameter string for the org.jboss.seam.annotations.Begin annotation. Supported
087     * parameters:
088     * * ifOutcome ? specifies the JSF outcome or outcomes that result in a new long-running
089     * conversation context.
090     * * join ? determines the behavior when a long-running conversation is already in progress. If
091     * true, the context is propagated. If false, an exception is thrown. Default to false. This
092     * setting is ignored when nested=true is specified
093     * * nested ? specifies that a nested conversation should be started if a long-running
094     * conversation is already in progress.
095     * * flushMode ? set the flush mode of any Seam-managed Hibernate sessions or JPA persistence
096     * contexts that are created during this conversation.
097     * * pageflow ? a process definition name of a jBPM process definition deployed via
098     * org.jboss.seam.core.jbpm.pageflowDefinitions.
099     * @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}