1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/share/jaxws_classes/com/oracle/webservices/internal/api/message/ContentType.java Tue Apr 09 14:51:13 2013 +0100 1.3 @@ -0,0 +1,93 @@ 1.4 +/* 1.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 1.6 + * 1.7 + * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved. 1.8 + * 1.9 + * The contents of this file are subject to the terms of either the GNU 1.10 + * General Public License Version 2 only ("GPL") or the Common Development 1.11 + * and Distribution License("CDDL") (collectively, the "License"). You 1.12 + * may not use this file except in compliance with the License. You can 1.13 + * obtain a copy of the License at 1.14 + * http://glassfish.java.net/public/CDDL+GPL_1_1.html 1.15 + * or packager/legal/LICENSE.txt. See the License for the specific 1.16 + * language governing permissions and limitations under the License. 1.17 + * 1.18 + * When distributing the software, include this License Header Notice in each 1.19 + * file and include the License file at packager/legal/LICENSE.txt. 1.20 + * 1.21 + * GPL Classpath Exception: 1.22 + * Oracle designates this particular file as subject to the "Classpath" 1.23 + * exception as provided by Oracle in the GPL Version 2 section of the License 1.24 + * file that accompanied this code. 1.25 + * 1.26 + * Modifications: 1.27 + * If applicable, add the following below the License Header, with the fields 1.28 + * enclosed by brackets [] replaced by your own identifying information: 1.29 + * "Portions Copyright [year] [name of copyright owner]" 1.30 + * 1.31 + * Contributor(s): 1.32 + * If you wish your version of this file to be governed by only the CDDL or 1.33 + * only the GPL Version 2, indicate your decision by adding "[Contributor] 1.34 + * elects to include this software in this distribution under the [CDDL or GPL 1.35 + * Version 2] license." If you don't indicate a single choice of license, a 1.36 + * recipient has the option to distribute your version of this file under 1.37 + * either the CDDL, the GPL Version 2 or to extend the choice of license to 1.38 + * its licensees as provided above. However, if you add GPL Version 2 code 1.39 + * and therefore, elected the GPL Version 2 license, then the option applies 1.40 + * only if the new code is made subject to such option by the copyright 1.41 + * holder. 1.42 + */ 1.43 + 1.44 +package com.oracle.webservices.internal.api.message; 1.45 + 1.46 +//TODO Do we want to remove this implementation dependency? 1.47 +import com.sun.xml.internal.ws.encoding.ContentTypeImpl; 1.48 + 1.49 +/** 1.50 + * A Content-Type transport header that will be returned by {@link MessageContext#write(java.io.OutputStream)}. 1.51 + * It will provide the Content-Type header and also take care of SOAP 1.1 SOAPAction header. 1.52 + * 1.53 + * @author Vivek Pandey 1.54 + */ 1.55 +public interface ContentType { 1.56 + 1.57 + /** 1.58 + * Gives non-null Content-Type header value. 1.59 + */ 1.60 + public String getContentType(); 1.61 + 1.62 + /** 1.63 + * Gives SOAPAction transport header value. It will be non-null only for SOAP 1.1 messages. In other cases 1.64 + * it MUST be null. The SOAPAction transport header should be written out only when its non-null. 1.65 + * 1.66 + * @return It can be null, in that case SOAPAction header should be written. 1.67 + */ 1.68 + public String getSOAPActionHeader(); 1.69 + 1.70 + /** 1.71 + * Controls the Accept transport header, if the transport supports it. 1.72 + * Returning null means the transport need not add any new header. 1.73 + * 1.74 + * <p> 1.75 + * We realize that this is not an elegant abstraction, but 1.76 + * this would do for now. If another person comes and asks for 1.77 + * a similar functionality, we'll define a real abstraction. 1.78 + */ 1.79 + public String getAcceptHeader(); 1.80 + 1.81 + static public class Builder { 1.82 + private String contentType; 1.83 + private String soapAction; 1.84 + private String accept; 1.85 + private String charset; 1.86 + 1.87 + public Builder contentType(String s) {contentType = s; return this; } 1.88 + public Builder soapAction (String s) {soapAction = s; return this; } 1.89 + public Builder accept (String s) {accept = s; return this; } 1.90 + public Builder charset (String s) {charset = s; return this; } 1.91 + public ContentType build() { 1.92 + //TODO Do we want to remove this implementation dependency? 1.93 + return new ContentTypeImpl(contentType, soapAction, accept, charset); 1.94 + } 1.95 + } 1.96 +}