001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.webservice.metafacades;
006
007import org.andromda.metafacades.uml.ServiceOperation;
008
009/**
010 * Represents an operation on a web service.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface WebServiceOperation
015    extends ServiceOperation
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isWebServiceOperationMetaType();
023
024    /**
025     * Returns the customized operation name. Defaults to operation.name, can be overridden with
026     * WebServiceOperation stereotype operationName attribute. Prevents duplicate operation names in
027     * wsdl for overloaded operations.
028     * @return String
029     */
030    public String getOperationName();
031
032    /**
033     * WebService parameter style: bare or wrapped
034     * @return String
035     */
036    public String getParameterStyle();
037
038    /**
039     * TODO: Model Documentation for
040     * org.andromda.cartridges.webservice.metafacades.WebServiceOperation.restCacheType
041     * @return String
042     */
043    public String getRestCacheType();
044
045    /**
046     * @Consumes(media type) annotation. i.e. json, atom, plain/text, xml.
047     * @return String
048     */
049    public String getRestConsumes();
050
051    /**
052     * Multipart/xml type for this returned part.
053     * @return String
054     */
055    public String getRestPartType();
056
057    /**
058     * The URL path for the REST webservice. If unspecified, the lowercase
059     * /operation/parametername/{parametername}/ is used.
060     * @return String
061     */
062    public String getRestPath();
063
064    /**
065     * @Produces(media type) annotation. i.e. json, atom, plain/text, xml.
066     * @return String
067     */
068    public String getRestProduces();
069
070    /**
071     * Customized REST @Provider annotation, must be implemented in the  generated class.
072     * @return String
073     */
074    public String getRestProvider();
075
076    /**
077     * HTML request type for this REST service (GET, PUT, POST, QUERY, DELETE), used for method
078     * annotations.
079     * @return String
080     */
081    public String getRestRequestType();
082
083    /**
084     * Asynchronous service implementation, suspend execution for X ms. Adds @Suspend annotation to
085     * the operation. default=synchronous (suspend=0=wait forever).
086     * @return int
087     */
088    public int getRestSuspend();
089
090    /**
091     * The URL path to test the REST webservice. Substitutes test values for {parametername} parts
092     * of the service URL.
093     * @return String
094     */
095    public String getRestTestPath();
096
097    /**
098     * REST security roles allowed. default=All.
099     * @return String
100     */
101    public String getRolesAllowed();
102
103    /**
104     * The call for the test that tests this operation.
105     * @return String
106     */
107    public String getTestCall();
108
109    /**
110     * The method call for the test implementation operation.
111     * @return String
112     */
113    public String getTestImplementationCall();
114
115    /**
116     * The name of the the operation used within the test implementation.
117     * @return String
118     */
119    public String getTestImplementationName();
120
121    /**
122     * The signature for the test implementation operation.
123     * @return String
124     */
125    public String getTestImplementationSignature();
126
127    /**
128     * The name for the test that tests this operation.
129     * @return String
130     */
131    public String getTestName();
132
133    /**
134     * The signature for the test that tests this operation.
135     * @return String
136     */
137    public String getTestSignature();
138
139    /**
140     * TODO: Model Documentation for
141     * WebServicePackage
142     * @return WebServicePackage
143     */
144    public WebServicePackage getWebServicePackage();
145
146    /**
147     * Returns true/false depending on whether or not this web service operation is exposed.
148     * @return boolean
149     */
150    public boolean isExposed();
151
152    /**
153     * Is this operation a JAX-RS REST operation? JAX-WS and JAX-RS can be mixed in the same service
154     * class. If false, all rest attributes and methods are ignored.
155     * @return boolean
156     */
157    public boolean isRest();
158
159    /**
160     * If this REST service provides application/atom, or any service operations provide
161     * application/atom
162     * @return boolean
163     */
164    public boolean isRestAtom();
165
166    /**
167     * @Encoded T/F. default=false.
168     * @return boolean
169     */
170    public boolean isRestEncoded();
171
172    /**
173     * Checks is each service exception reference is some Exception type and has stereotype
174     * WebFault, if CXF.
175     * @return boolean
176     */
177    public boolean isWebFaultOnAllExceptions();
178}