|
1 /* |
|
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
|
3 * |
|
4 * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved. |
|
5 * |
|
6 * The contents of this file are subject to the terms of either the GNU |
|
7 * General Public License Version 2 only ("GPL") or the Common Development |
|
8 * and Distribution License("CDDL") (collectively, the "License"). You |
|
9 * may not use this file except in compliance with the License. You can |
|
10 * obtain a copy of the License at |
|
11 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html |
|
12 * or packager/legal/LICENSE.txt. See the License for the specific |
|
13 * language governing permissions and limitations under the License. |
|
14 * |
|
15 * When distributing the software, include this License Header Notice in each |
|
16 * file and include the License file at packager/legal/LICENSE.txt. |
|
17 * |
|
18 * GPL Classpath Exception: |
|
19 * Oracle designates this particular file as subject to the "Classpath" |
|
20 * exception as provided by Oracle in the GPL Version 2 section of the License |
|
21 * file that accompanied this code. |
|
22 * |
|
23 * Modifications: |
|
24 * If applicable, add the following below the License Header, with the fields |
|
25 * enclosed by brackets [] replaced by your own identifying information: |
|
26 * "Portions Copyright [year] [name of copyright owner]" |
|
27 * |
|
28 * Contributor(s): |
|
29 * If you wish your version of this file to be governed by only the CDDL or |
|
30 * only the GPL Version 2, indicate your decision by adding "[Contributor] |
|
31 * elects to include this software in this distribution under the [CDDL or GPL |
|
32 * Version 2] license." If you don't indicate a single choice of license, a |
|
33 * recipient has the option to distribute your version of this file under |
|
34 * either the CDDL, the GPL Version 2 or to extend the choice of license to |
|
35 * its licensees as provided above. However, if you add GPL Version 2 code |
|
36 * and therefore, elected the GPL Version 2 license, then the option applies |
|
37 * only if the new code is made subject to such option by the copyright |
|
38 * holder. |
|
39 */ |
|
40 |
|
41 package com.sun.xml.internal.org.jvnet.ws; |
|
42 |
|
43 import java.lang.annotation.Retention; |
|
44 import java.lang.annotation.RetentionPolicy; |
|
45 |
|
46 import javax.xml.ws.http.HTTPBinding; |
|
47 import javax.xml.ws.soap.SOAPBinding; |
|
48 import javax.xml.ws.spi.WebServiceFeatureAnnotation; |
|
49 |
|
50 /** |
|
51 * The EnvelopeStyle annotation is used to specify the message envelope style(s) |
|
52 * for a web service endpoint implementation class. To smooth the migration from |
|
53 * the BindingType annotation to this EnvelopeStyle annotation, each of the |
|
54 * styles is mapped to a binding identifier defined in JAX-WS specification. |
|
55 * Though a binding identifier includes both the envelope style and transport, |
|
56 * an envelope style defined herein does NOT imply or mandate any transport protocol |
|
57 * to be use together; HTTP is the default transport. An implementation may |
|
58 * chose to support other transport with any of the envelope styles. |
|
59 * |
|
60 * This annotation may be overriden programmatically or via deployment |
|
61 * descriptors, depending on the platform in use. |
|
62 * |
|
63 * @author shih-chang.chen@oracle.com |
|
64 */ |
|
65 @WebServiceFeatureAnnotation(id="", bean=com.sun.xml.internal.org.jvnet.ws.EnvelopeStyleFeature.class) |
|
66 @Retention(RetentionPolicy.RUNTIME) |
|
67 public @interface EnvelopeStyle { |
|
68 |
|
69 /** |
|
70 * The envelope styles. If not specified, the default is the SOAP 1.1. |
|
71 * |
|
72 * @return The enveloping styles |
|
73 */ |
|
74 Style[] style() default { Style.SOAP11 }; |
|
75 |
|
76 public enum Style { |
|
77 |
|
78 /** |
|
79 * SOAP1.1. For JAX-WS, this is mapped from: |
|
80 * javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING |
|
81 */ |
|
82 SOAP11(SOAPBinding.SOAP11HTTP_BINDING), |
|
83 |
|
84 /** |
|
85 * SOAP1.2. For JAX-WS, this is mapped from: |
|
86 * javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING |
|
87 */ |
|
88 SOAP12(SOAPBinding.SOAP11HTTP_BINDING), |
|
89 |
|
90 /** |
|
91 * The raw XML. For JAX-WS, this is mapped from: |
|
92 * javax.xml.ws.http.HTTPBinding.HTTP_BINDING |
|
93 */ |
|
94 XML(HTTPBinding.HTTP_BINDING); |
|
95 |
|
96 /** |
|
97 * The BindingID used by the BindingType annotation. |
|
98 */ |
|
99 public final String bindingId; |
|
100 |
|
101 private Style(String id) { |
|
102 bindingId = id; |
|
103 } |
|
104 |
|
105 /** |
|
106 * Checks if the style is SOAP 1.1. |
|
107 * |
|
108 * @return true if the style is SOAP 1.1. |
|
109 */ |
|
110 public boolean isSOAP11() { return this.equals(SOAP11); } |
|
111 |
|
112 /** |
|
113 * Checks if the style is SOAP 1.2. |
|
114 * |
|
115 * @return true if the style is SOAP 1.2. |
|
116 */ |
|
117 public boolean isSOAP12() { return this.equals(SOAP12); } |
|
118 |
|
119 /** |
|
120 * Checks if the style is XML. |
|
121 * |
|
122 * @return true if the style is XML. |
|
123 */ |
|
124 public boolean isXML() { return this.equals(XML); } |
|
125 } |
|
126 } |