001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.spring.metafacades;
006
007import java.util.Collection;
008import org.andromda.metafacades.uml.Service;
009
010/**
011 * Represents a Spring service (which can include regular java objects, and/or session EJBs).
012 *
013 * Metafacade interface to be used by AndroMDA cartridges.
014 */
015public interface SpringService
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 isSpringServiceMetaType();
024
025    /**
026     * The service base class name.
027     * @return String
028     */
029    public String getBaseName();
030
031    /**
032     * The bean name of this service.
033     * @return String
034     */
035    public String getBeanName();
036
037    /**
038     * Gets the Spring bean name, and optionally adds a target suffix, if 'targetSuffix' is set to
039     * true.
040     * @param targetSuffix boolean
041     * @return String
042     */
043    public String getBeanName(boolean targetSuffix);
044
045    /**
046     * The name of the default exception to be generated for this service.
047     * @return String
048     */
049    public String getDefaultExceptionName();
050
051    /**
052     * This is a name of the destroy-method of this service, or is empty if doesn't exists.
053     * @return String
054     */
055    public String getDestroyMethodName();
056
057    /**
058     * The EJB implementation class name.
059     * @return String
060     */
061    public String getEjbImplementationName();
062
063    /**
064     * The JNDI name to which a Spring remote Session EJB will be bound.
065     * @return String
066     */
067    public String getEjbJndiName();
068
069    /**
070     * The JNDI name to which a Spring local Session EJB will be bound.
071     * @return String
072     */
073    public String getEjbLocalJndiName();
074
075    /**
076     * This can be either the package name the model element exists within OR it can be the package
077     * with a prefix or suffix (i.e. the package could have '.ejb') appended to it. This option is
078     * available if the EJB is just used a wrapper around a POJO Spring Service.
079     * @return String
080     */
081    public String getEjbPackageName();
082
083    /**
084     * The EJB package name as a path (i.e. '.' are replaced with '/').
085     * @return String
086     */
087    public String getEjbPackageNamePath();
088
089    /**
090     * The EJB transaction type (Bean or Container).
091     * @return String
092     */
093    public String getEjbTransactionType();
094
095    /**
096     * The fully qualified service base class name.
097     * @return String
098     */
099    public String getFullyQualifiedBaseName();
100
101    /**
102     * The fully qualified class name of the default exception.
103     * @return String
104     */
105    public String getFullyQualifiedDefaultExceptionName();
106
107    /**
108     * The fully qualified name of the implementation class name.
109     * @return String
110     */
111    public String getFullyQualifiedEjbImplementationName();
112
113    /**
114     * TODO: Model Documentation for
115     * org.andromda.cartridges.spring.metafacades.SpringService.fullyQualifiedEjbName
116     * @return String
117     */
118    public String getFullyQualifiedEjbName();
119
120    /**
121     * The fully qualified name of the implementation class.
122     * @return String
123     */
124    public String getFullyQualifiedImplementationName();
125
126    /**
127     * TODO: Model Documentation for
128     * org.andromda.cartridges.spring.metafacades.SpringService.fullyQualifiedLocalEjbName
129     * @return String
130     */
131    public String getFullyQualifiedLocalEjbName();
132
133    /**
134     * The fully qualified web service delegator class name.
135     * @return String
136     */
137    public String getFullyQualifiedWebServiceDelegatorName();
138
139    /**
140     * The implementation name of the service
141     * @return String
142     */
143    public String getImplementationName();
144
145    /**
146     * This can be either the package name the model element exists within OR it can be the package
147     * with a prefix or suffix (i.e. the package could have '.impl') appended to it.
148     * @return String
149     */
150    public String getImplementationPackageName();
151
152    /**
153     * The service implementation package name as a path (i.e. '.' are replaced with '/').
154     * @return String
155     */
156    public String getImplementationPackagePath();
157
158    /**
159     * This is a name of the init-method of this service, or is empty if doesn't exists.
160     * @return String
161     */
162    public String getInitMethodName();
163
164    /**
165     * TODO: Model Documentation for
166     * org.andromda.cartridges.spring.metafacades.SpringService.interceptors
167     * @return Collection<String>
168     */
169    public Collection<String> getInterceptors();
170
171    /**
172     * Returns the remote context for this service.
173     * @return String
174     */
175    public String getRemoteContext();
176
177    /**
178     * Determines which port this service will be published on at the server side.
179     * @return String
180     */
181    public String getRemotePort();
182
183    /**
184     * Returns the name of the remote server for this service.
185     * @return String
186     */
187    public String getRemoteServer();
188
189    /**
190     * The URL this servie will be run on at the server side.
191     * @return String
192     */
193    public String getRemoteUrl();
194
195    /**
196     * The name of the web service delegator class.
197     * @return String
198     */
199    public String getWebServiceDelegatorName();
200
201    /**
202     * The call to the incoming web service attachment call.
203     * @return String
204     */
205    public String getWebServiceIncomingAttachmentHandlerCall();
206
207    /**
208     * The operations that can be exposed in a webservice.
209     * @return Collection<SpringServiceOperation>
210     */
211    public Collection<SpringServiceOperation> getWebServiceOperations();
212
213    /**
214     * The call to the outgoing web service attachment call.
215     * @return String
216     */
217    public String getWebServiceOutgoingAttachmentHandlerCall();
218
219    /**
220     * Indicates whether or not a default service exception should be allowed.
221     * @return boolean
222     */
223    public boolean isAllowDefaultServiceException();
224
225    /**
226     * Defines whether this service will only be listed in the config, but note be generated as a
227     * Spring bean.
228     * @return boolean
229     */
230    public boolean isConfigonly();
231
232    /**
233     * TODO: Model Documentation for
234     * org.andromda.cartridges.spring.metafacades.SpringService.ejbLocalView
235     * @return boolean
236     */
237    public boolean isEjbLocalView();
238
239    /**
240     * Indicates if the view type of this service is remote.
241     * @return boolean
242     */
243    public boolean isEjbRemoteView();
244
245    /**
246     * Indicates whether or not the hibernate intercetor is enabled for this service.
247     * @return boolean
248     */
249    public boolean isHibernateInterceptorEnabled();
250
251    /**
252     * Returns true if the service is considered as private. Private services are not available
253     * through the ServiceLocator, are not exposed via remoting and their methods are not
254     * intercepted by transaction manager.
255     * @return boolean
256     */
257    public boolean isPrivate();
258
259    /**
260     * Returns true if this service is remotable. Derived from remotingType.
261     * @return boolean
262     */
263    public boolean isRemotable();
264
265    /**
266     * Indicates if the remoting type is "burlap".
267     * @return boolean
268     */
269    public boolean isRemotingTypeBurlap();
270
271    /**
272     * Indicates if the remoting type is "hessian".
273     * @return boolean
274     */
275    public boolean isRemotingTypeHessian();
276
277    /**
278     * Indicates if the remoting type is "httpinvoker".
279     * @return boolean
280     */
281    public boolean isRemotingTypeHttpInvoker();
282
283    /**
284     * Indicates whether this service can be talked to using Lingo remoting.
285     * @return boolean
286     */
287    public boolean isRemotingTypeLingo();
288
289    /**
290     * Indicates if the remoting type for this service is "none".
291     * @return boolean
292     */
293    public boolean isRemotingTypeNone();
294
295    /**
296     * Indicates if the remoting type is RMI.
297     * @return boolean
298     */
299    public boolean isRemotingTypeRmi();
300
301    /**
302     * Returns true if this service is meant to take part in a richt client application.
303     * @return boolean
304     */
305    public boolean isRichClient();
306
307    /**
308     * Returns true/false depending on whether or not this SpringService represents a web service.
309     * @return boolean
310     */
311    public boolean isWebService();
312}