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 }