src/share/jaxws_classes/com/oracle/webservices/internal/api/message/ContentType.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
child 374
72e03566f0a6
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * Copyright (c) 1997-2012 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  * http://glassfish.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  */
    41 package com.oracle.webservices.internal.api.message;
    43 //TODO Do we want to remove this implementation dependency?
    44 import com.sun.xml.internal.ws.encoding.ContentTypeImpl;
    46 /**
    47  * A Content-Type transport header that will be returned by {@link MessageContext#write(java.io.OutputStream)}.
    48  * It will provide the Content-Type header and also take care of SOAP 1.1 SOAPAction header.
    49  *
    50  * @author Vivek Pandey
    51  */
    52 public interface ContentType {
    54     /**
    55      * Gives non-null Content-Type header value.
    56      */
    57     public String getContentType();
    59     /**
    60      * Gives SOAPAction transport header value. It will be non-null only for SOAP 1.1 messages. In other cases
    61      * it MUST be null. The SOAPAction transport header should be written out only when its non-null.
    62      *
    63      * @return It can be null, in that case SOAPAction header should be written.
    64      */
    65     public String getSOAPActionHeader();
    67     /**
    68      * Controls the Accept transport header, if the transport supports it.
    69      * Returning null means the transport need not add any new header.
    70      *
    71      * <p>
    72      * We realize that this is not an elegant abstraction, but
    73      * this would do for now. If another person comes and asks for
    74      * a similar functionality, we'll define a real abstraction.
    75      */
    76     public String getAcceptHeader();
    78     static public class Builder {
    79         private String contentType;
    80         private String soapAction;
    81         private String accept;
    82         private String charset;
    84         public Builder contentType(String s) {contentType = s; return this; }
    85         public Builder soapAction (String s) {soapAction = s;  return this; }
    86         public Builder accept     (String s) {accept = s;      return this; }
    87         public Builder charset    (String s) {charset = s;     return this; }
    88         public ContentType build() {
    89             //TODO Do we want to remove this implementation dependency?
    90             return new ContentTypeImpl(contentType, soapAction, accept, charset);
    91         }
    92     }
    93 }

mercurial