View Javadoc
1   /*
2    * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package com.sun.xml.internal.ws.api.databinding;
27  
28  import java.io.IOException;
29  import java.io.InputStream;
30  import java.io.OutputStream;
31  import java.lang.reflect.Method;
32  
33  import com.sun.xml.internal.ws.api.message.MessageContextFactory;
34  import com.sun.xml.internal.ws.api.message.Packet;
35  import com.sun.xml.internal.ws.api.pipe.ContentType;
36  import com.sun.xml.internal.ws.wsdl.DispatchException;
37  
38  /**
39   * {@code Databinding} is the entry point for all the WebService databinding
40   * runtime functionality. Primarily, a Databinding is to serialize/deserialize an
41   * XML(SOAP) message to/from a JAVA method invocation and return value which
42   * are represented as <code>JavaCallInfo</code> instances.
43   * <p>
44   * </p>
45   * Each Databinding is associated with a <code>MessageFactory</code> instance
46   * which can be used to create <code>Message</code> instances that can be
47   * deserialized by the Databinding. The <code>MessageFactory</code> also supports
48   * the conversion of Oracle Fabric Normalized messages.
49   * <p>
50   * </p>
51   * <blockquote> Following is an example that creates a {@code Databinding} which
52   * provides the operations to serialize/deserialize a JavaCallInfo to/from a
53   * SOAP message:<br />
54   *
55   * <pre>
56   * DatabindingFactory wsfac = DatabindingFactory();
57   * Databinding rt = wsfac.createDatabinding(DatabindingConfig);
58   * </pre>
59   *
60   * </blockquote>
61   *
62   * @author shih-chang.chen@oracle.com
63   */
64  public interface Databinding extends com.oracle.webservices.internal.api.databinding.Databinding {
65  
66          /**
67           * Gets the MessageFactory instance associated with this WsRuntime
68           *
69           * @return the MessageFactory instance associated with this WsRuntime
70           */
71  //      MessageFactory getMessageFactory();
72  
73          /**
74           * Deserializes a request XML(SOAP) message to a JavaCallInfo instance
75           * representing a JAVA method call.
76           *
77           * @param soap
78           *            the request message
79           *
80           * @return the JavaCallInfo representing a method call
81           */
82  //      JavaCallInfo deserializeRequest(Packet req);
83  
84          EndpointCallBridge getEndpointBridge(Packet soap) throws DispatchException;
85  
86          ClientCallBridge getClientBridge(Method method);
87  
88          /**
89           * Serializes a JavaCallInfo instance representing a JAVA method call to a
90           * request XML(SOAP) message.
91           *
92           * @param call
93           *            the JavaCallInfo representing a method call
94           *
95           * @return the request XML(SOAP) message
96           */
97  //      Packet serializeRequest(JavaCallInfo call);
98  
99          /**
100          * Serializes a JavaCallInfo instance representing the return value or
101          * exception of a JAVA method call to a response XML(SOAP) message.
102          *
103          * @param call
104          *            the JavaCallInfo representing the return value or exception of
105          *            a JAVA method call
106          *
107          * @return the response XML(SOAP) message
108          */
109 //      Packet serializeResponse(JavaCallInfo call);
110 
111         /**
112          * Deserializes a response XML(SOAP) message to a JavaCallInfo instance
113          * representing the return value or exception of a JAVA method call.
114          *
115          * @param soap
116          *            the response message
117          *
118          * @param call
119          *            the JavaCallInfo instance to be updated
120          *
121          * @return the JavaCallInfo updated with the return value or exception of a
122          *         JAVA method call
123          */
124 //      JavaCallInfo deserializeResponse(Packet res, JavaCallInfo call);
125 
126         /**
127          * Gets the WSDL operation metadata of the specified JAVA method.
128          *
129          * @param method
130          *            the JAVA method
131          * @return the operationMetadata
132          */
133 //      OperationMetadata getOperationMetadata(java.lang.reflect.Method method);
134 
135         /**
136          * Gets the WebServiceFeatures of this webservice endpoint.
137          *
138          * @return the features
139          */
140 //      WebServiceFeature[] getFeatures();
141 
142         void generateWSDL(WSDLGenInfo info);
143 
144         /**
145          * @deprecated use MessageContextFactory
146          */
147         public ContentType encode( Packet packet, OutputStream out ) throws IOException ;
148 
149     /**
150      * @deprecated use MessageContextFactory
151      */
152         public void decode( InputStream in, String ct, Packet packet ) throws IOException;
153 
154         public MessageContextFactory getMessageContextFactory();
155 }