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 }