View Javadoc
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 }