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.Service;
009
010/**
011 * Represents a message driven EJB.
012 *
013 * Metafacade interface to be used by AndroMDA cartridges.
014 */
015public interface EJB3MessageDrivenFacade
016    extends Service
017{
018    /**
019     * Indicates the metafacade type (used for metafacade mappings).
020     *
021     * @return boolean always <code>true</code>
022     */
023    public boolean isEJB3MessageDrivenFacadeMetaType();
024
025    /**
026     * Returns the acknowledge mode for this JMS message driven bean.  This is automatically handled
027     * by the container.  EJB 3.0 spec states:
028     * For container managed transaction demarcation, message acknowledgment is automatically
029     * handled as part of transaction commit.  If bean-managed transaction demarcation is used, the
030     * message receipt cannot be part of the bean-managed transaction, therefore the receipt is
031     * acknowledged by the container.  If this property is not specified, AUTO_ACKNOWLEDGE semantics
032     * is assumed.
033     * Possible values are AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE.
034     * @return String
035     */
036    public String getAcknowledgeMode();
037
038    /**
039     * Returns the comma separated list of attributes.<p/>This method can be used to generate
040     * argument lists for constructors and method calls.
041     * @param attributes Collection
042     * @param includeTypes boolean
043     * @param includeNames boolean
044     * @return String
045     */
046    public String getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames);
047
048    /**
049     * Gets all constants for this message driven EJB. Constants are defined as static read-only
050     * attributes which do NOT have the <<EnvEntry>> stereotype.  If 'follow' is true, then the
051     * inheritance hierarchy will be followed and we'll retrieve all constants from any super types
052     * as well.
053     * @param follow boolean
054     * @return Collection
055     */
056    public Collection getConstants(boolean follow);
057
058    /**
059     * Returns the destination queue or topic JNDI name this message driven bean is associated with.
060     * @return String
061     */
062    public String getDestination();
063
064    /**
065     * Returns the destination type of the message driven bean.  Possible values are javax.jms.Queue
066     * or javax.jms.Topic.
067     * Queues ensure that messages are not missed, even if the EJB server is not running.  Same
068     * applis to durable topic subscriptions.
069     * @return String
070     */
071    public String getDestinationType();
072
073    /**
074     * This returns a subscription name which is only required for durable subscriptions.
075     * @return String
076     */
077    public String getDurableSubscriptionId();
078
079    /**
080     * Gets all env-entries for the specified session EJB. Env-entries are stored as static
081     * attributes on the entity and stereotyped as <<EnvEntry>>.  If 'follow' is true, then the
082     * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super
083     * types as well.
084     * @param follow boolean
085     * @return Collection
086     */
087    public Collection getEnvironmentEntries(boolean follow);
088
089    /**
090     * Returns the fully qualified message driven bean implementation name.
091     * @return String
092     */
093    public String getFullyQualifiedMessageDrivenImplementationName();
094
095    /**
096     * Returns the fully qualified message driven bean listener name.
097     * @return String
098     */
099    public String getFullyQualifiedMessageDrivenListenerName();
100
101    /**
102     * Returns the fully qualified message driven bean name.
103     * @return String
104     */
105    public String getFullyQualifiedMessageDrivenName();
106
107    /**
108     * Returns the fully qualified message driven test class name
109     * @return String
110     */
111    public String getFullyQualifiedMessageDrivenTestName();
112
113    /**
114     * Returns the Collection of target elements from the message-driven bean class where  the
115     * target class has a stereotype of Interceptor.
116     * @return Collection
117     */
118    public Collection getInterceptorReferences();
119
120    /**
121     * Returns the MDB maximum pool size.
122     * @return int
123     */
124    public int getMaximumPoolSize();
125
126    /**
127     * Returns the message driven bean implementation name.
128     * @return String
129     */
130    public String getMessageDrivenImplementationName();
131
132    /**
133     * Returns the message driven bean callback listener name.
134     * @return String
135     */
136    public String getMessageDrivenListenerName();
137
138    /**
139     * Returns message driven bean name.
140     * @return String
141     */
142    public String getMessageDrivenName();
143
144    /**
145     * Returns the message driven bean test class name
146     * @return String
147     */
148    public String getMessageDrivenTestName();
149
150    /**
151     * Returns the JMS message selector used when determining the messages a message driven bean is
152     * to receive.
153     * @return String
154     */
155    public String getMessageSelector();
156
157    /**
158     * Returns the MDB minimum pool size.
159     * @return int
160     */
161    public int getMinimumPoolSize();
162
163    /**
164     * Returns the run-as identity for the message driven bean which is used to establish the
165     * identity the bean will use when making calls.  It does not affect the identity of the
166     * callers.
167     * @return String
168     */
169    public String getRunAs();
170
171    /**
172     * If the message driven bean is associated with a topic, then this will return the subscription
173     * durability.  Possible values are Durable or NonDurable.  By default, if a topic subscription
174     * is not specified, the non-durable subscription is assumed.
175     * Durable topic subscriptions ensure that messages are not missed, even if the EJB server is
176     * not running.
177     * @return String
178     */
179    public String getSubscriptionDurability();
180
181    /**
182     * Returns the message driven test package name. This simply appends .test to the existing class
183     * package.
184     * @return String
185     */
186    public String getTestPackageName();
187
188    /**
189     * Returns the transaction demarcation strategy for this bean.  Typically, this will return BEAN
190     * for non default CONTAINER managed beans.  Unless specified, this will return null indicating
191     * CONTAINER transaction demarcation.
192     * @return String
193     */
194    public String getTransactionManagement();
195
196    /**
197     * Gets the transaction type for this message driven bean.  For container managed demarcation,
198     * either the REQUIRED or NOT_SUPPORTED transaction attributes must be used on a message driven
199     * bean.
200     * @return String
201     */
202    public String getTransactionType();
203
204    /**
205     * Returns true if the destination type if a javax.jms.Queue.
206     * @return boolean
207     */
208    public boolean isDestinationTypeQueue();
209
210    /**
211     * Returns true if the destination type is a javax.jms.Topic.
212     * @return boolean
213     */
214    public boolean isDestinationTypeTopic();
215
216    /**
217     * Determines whether to exclude the invocation of the default interceptors for all business
218     * method in the bean.
219     * @return boolean
220     */
221    public boolean isExcludeDefaultInterceptors();
222
223    /**
224     * Returns true if this message driven bean has the stereotype Listener.  False otherwise.
225     * @return boolean
226     */
227    public boolean isListenerEnabled();
228
229    /**
230     * Returns true if the topic subscription durability setting is Durable.
231     * @return boolean
232     */
233    public boolean isSubscriptionDurable();
234
235    /**
236     * Returns true if the subscription durability setting is NonDurable.
237     * @return boolean
238     */
239    public boolean isSubscriptionNonDurable();
240
241    /**
242     * Returns true if the transaction demarcation strategy is bean managedfor this bean.
243     * @return boolean
244     */
245    public boolean isTransactionManagementBean();
246}