1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.spring.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.metafacades.uml.Service;
9
10 /**
11 * Represents a Spring service (which can include regular java objects, and/or session EJBs).
12 *
13 * Metafacade interface to be used by AndroMDA cartridges.
14 */
15 public interface SpringService
16 extends Service
17 {
18 /**
19 * Indicates the metafacade type (used for metafacade mappings).
20 *
21 * @return boolean always <code>true</code>
22 */
23 public boolean isSpringServiceMetaType();
24
25 /**
26 * The service base class name.
27 * @return String
28 */
29 public String getBaseName();
30
31 /**
32 * The bean name of this service.
33 * @return String
34 */
35 public String getBeanName();
36
37 /**
38 * Gets the Spring bean name, and optionally adds a target suffix, if 'targetSuffix' is set to
39 * true.
40 * @param targetSuffix boolean
41 * @return String
42 */
43 public String getBeanName(boolean targetSuffix);
44
45 /**
46 * The name of the default exception to be generated for this service.
47 * @return String
48 */
49 public String getDefaultExceptionName();
50
51 /**
52 * This is a name of the destroy-method of this service, or is empty if doesn't exists.
53 * @return String
54 */
55 public String getDestroyMethodName();
56
57 /**
58 * The EJB implementation class name.
59 * @return String
60 */
61 public String getEjbImplementationName();
62
63 /**
64 * The JNDI name to which a Spring remote Session EJB will be bound.
65 * @return String
66 */
67 public String getEjbJndiName();
68
69 /**
70 * The JNDI name to which a Spring local Session EJB will be bound.
71 * @return String
72 */
73 public String getEjbLocalJndiName();
74
75 /**
76 * This can be either the package name the model element exists within OR it can be the package
77 * with a prefix or suffix (i.e. the package could have '.ejb') appended to it. This option is
78 * available if the EJB is just used a wrapper around a POJO Spring Service.
79 * @return String
80 */
81 public String getEjbPackageName();
82
83 /**
84 * The EJB package name as a path (i.e. '.' are replaced with '/').
85 * @return String
86 */
87 public String getEjbPackageNamePath();
88
89 /**
90 * The EJB transaction type (Bean or Container).
91 * @return String
92 */
93 public String getEjbTransactionType();
94
95 /**
96 * The fully qualified service base class name.
97 * @return String
98 */
99 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 }