1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.webservice.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.metafacades.uml.Service;
9 import org.andromda.metafacades.uml.TypeMappings;
10
11 /**
12 * Represents a web service.
13 *
14 * Metafacade interface to be used by AndroMDA cartridges.
15 */
16 public interface WebService
17 extends Service
18 {
19 /**
20 * Indicates the metafacade type (used for metafacade mappings).
21 *
22 * @return boolean always <code>true</code>
23 */
24 public boolean isWebServiceMetaType();
25
26 /**
27 * Creates a space delimited string containing a name of ALL allowed methods.
28 * @return String
29 */
30 public String getAllowedMethods();
31
32 /**
33 * The collection of exceptions from all allowed operations present in this webservice.
34 * @return Collection<WSDLType>
35 */
36 public Collection<WSDLType> getAllowedOperationExceptions();
37
38 /**
39 * All operations which are exposed on the web service.
40 * @return Collection<WebServiceOperation>
41 */
42 public Collection<WebServiceOperation> getAllowedOperations();
43
44 /**
45 * The home interface name for an EJB provider.
46 * @return String
47 */
48 public String getEjbHomeInterface();
49
50 /**
51 * The interface name for an EJB provider.
52 * @return String
53 */
54 public String getEjbInterface();
55
56 /**
57 * The JNDI name for the EJB provider (the EJB that provides the functionality behind this web
58 * service).
59 * @return String
60 */
61 public String getEjbJndiName();
62
63 /**
64 * The fully qualified name of the test implementation class for this web service.
65 * @return String
66 */
67 public String getFullyQualifiedTestImplementationName();
68
69 /**
70 * The fully qualified name of a test generated for this web service.
71 * @return String
72 */
73 public String getFullyQualifiedTestName();
74
75 /**
76 * Number of REST JAX-RS service methods in this class. If WebService stereotype rest value is
77 * true, all methods are REST methods, otherwise this is the count of exposed
78 * WebServiceOperations with rest value set to true. This is the only required configuration for
79 * implementing REST services, the rest use intelligent defaults which can be overridden.
80 * @return int
81 */
82 public int getJaxwsCount();
83
84 /**
85 * The name of the namespace to which this web service belongs.
86 * @return String
87 */
88 public String getNamespace();
89
90 /**
91 * The namespace prefix used for types defined within the generated WSDLs.
92 * @return String
93 */
94 public String getNamespacePrefix();
95
96 /**
97 * TODO: Model Documentation for
98 * org.andromda.cartridges.webservice.metafacades.WebService.getPackageReferences
99 * @param packageName String
100 * @param follow boolean
101 * @return Collection
102 */
103 public Collection getPackageReferences(String packageName, boolean follow);
104
105 /**
106 * The provider for this web service. Provider is something like: 'java:RPC', or 'java:EJB' etc.
107 * @return String
108 */
109 public String getProvider();
110
111 /**
112 * The QName for this service. Usually it will be the same name as the model element, however
113 * it is possible to specify a prefix to give to this name.
114 * @return String
115 */
116 public String getQName();
117
118 /**
119 * Specified CacheType (none, always, etc) in @CacheType annotation.
120 * @return String
121 */
122 public String getRestCacheType();
123
124 /**
125 * @Consumes(media type) annotation. i.e. json, atom, plain/text, xml.
126 * @return String
127 */
128 public String getRestConsumes();
129
130 /**
131 * Context used for REST JAX-WS implementation for this service.
132 * @return Collection<String>
133 */
134 public Collection<String> getRestContexts();
135
136 /**
137 * Number of REST JAX-RS service methods in this class. If WebService stereotype rest value is
138 * true, all methods are REST methods, otherwise this is the count of exposed
139 * WebServiceOperations with rest value set to true. This is the only required configuration for
140 * implementing REST services, the rest use intelligent defaults which can be overridden.
141 * @return int
142 */
143 public int getRestCount();
144
145 /**
146 * Customized Http Method implementation.
147 * @return String
148 */
149 public String getRestMethod();
150
151 /**
152 * The URL path for the REST webservice. If unspecified, the lowercase /classname/ is used.
153 * @return String
154 */
155 public String getRestPath();
156
157 /**
158 * @Produces(media type) annotation. i.e. json, atom, plain/text, xml.
159 * @return String
160 */
161 public String getRestProduces();
162
163 /**
164 * Customized REST @Provider annotation, must be implemented in the generated class.
165 * @return String
166 */
167 public String getRestProvider();
168
169 /**
170 * Customized RetentionPolicy (default=RUNTIME).
171 * @return String
172 */
173 public String getRestRetention();
174
175 /**
176 * Customized target ElementType, default=METHOD.
177 * @return String
178 */
179 public String getRestTarget();
180
181 /**
182 * The name of the RPC implementation class.
183 * @return String
184 */
185 public String getRpcClassName();
186
187 /**
188 * TODO: Model Documentation for
189 * org.andromda.cartridges.webservice.metafacades.WebService.getSchemaMappings
190 * @return TypeMappings
191 */
192 public TypeMappings getSchemaMappings();
193
194 /**
195 * The style of binding in the generated WSDL, either DOCUMENT, RPC, or WRAPPED.
196 * @return String
197 */
198 public String getStyle();
199
200 /**
201 * The name for the test implementation class.
202 * @return String
203 */
204 public String getTestImplementationName();
205
206 /**
207 * The name of a the test for this web service.
208 * @return String
209 */
210 public String getTestName();
211
212 /**
213 * The name of the package to which tests are generated.
214 * @return String
215 */
216 public String getTestPackageName();
217
218 /**
219 * Returns a collection of all type mappings used by this WebServiceFacade. This consists of
220 * all complex types that the service may take in as a parameter in an operation or returns and
221 * exceptions that this web service throws.
222 * @return Collection
223 */
224 public Collection getTypeMappingElements();
225
226 /**
227 * The use of items in the binding, either LITERAL or ENCODED.
228 * @return String
229 */
230 public String getUse();
231
232 /**
233 * The location of the WSDL file for this web service.
234 * @return String
235 */
236 public String getWsdlFile();
237
238 /**
239 * Override global default XJC arguments for Jaxb wsdl2java (i.e. add Collection setters,
240 * equals, toString methods).
241 * @return String
242 */
243 public String getXjcArguments();
244
245 /**
246 * Indicates whether or not this service is "document" style.
247 * @return boolean
248 */
249 public boolean isDocumentStyle();
250
251 /**
252 * Indicates whether or not this web service has a "encoded" use defined.
253 * @return boolean
254 */
255 public boolean isEncodedUse();
256
257 /**
258 * Indicates whether or not this web service has a "literal" use defined.
259 * @return boolean
260 */
261 public boolean isLiteralUse();
262
263 /**
264 * If this REST service provides application/atom, or any service operations provide
265 * application/atom
266 * @return boolean
267 */
268 public boolean isRestAtom();
269
270 /**
271 * Indicates whether or not this service is "rpc" style.
272 * @return boolean
273 */
274 public boolean isRpcStyle();
275
276 /**
277 * Validate incoming webservice XML against wsdl/xsd schema
278 * @return boolean
279 */
280 public boolean isSchemaValidation();
281
282 /**
283 * Whether or not this web service is secured (its based on whether or not it has any roles
284 * associated to it).
285 * @return boolean
286 */
287 public boolean isSecured();
288
289 /**
290 * Use Jaxb2 XJC simple binding mode
291 * @return boolean
292 */
293 public boolean isSimpleBindingMode();
294
295 /**
296 * Indicates whether or not this service style is "wrapped".
297 * @return boolean
298 */
299 public boolean isWrappedStyle();
300 }