src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/ContentType.java

Fri, 14 Feb 2014 11:13:45 +0100

author
mkos
date
Fri, 14 Feb 2014 11:13:45 +0100
changeset 515
6cd506508147
parent 368
0989ad8c0860
child 637
9c07ef4934dd
permissions
-rw-r--r--

8026188: Enhance envelope factory
Summary: Avoiding caching data initialized via TCCL in static context; fix also reviewed by Alexander Fomin
Reviewed-by: ahgross, mgrebac, skoivu

ohair@286 1 /*
alanb@368 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
ohair@286 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ohair@286 4 *
ohair@286 5 * This code is free software; you can redistribute it and/or modify it
ohair@286 6 * under the terms of the GNU General Public License version 2 only, as
ohair@286 7 * published by the Free Software Foundation. Oracle designates this
ohair@286 8 * particular file as subject to the "Classpath" exception as provided
ohair@286 9 * by Oracle in the LICENSE file that accompanied this code.
ohair@286 10 *
ohair@286 11 * This code is distributed in the hope that it will be useful, but WITHOUT
ohair@286 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ohair@286 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ohair@286 14 * version 2 for more details (a copy is included in the LICENSE file that
ohair@286 15 * accompanied this code).
ohair@286 16 *
ohair@286 17 * You should have received a copy of the GNU General Public License version
ohair@286 18 * 2 along with this work; if not, write to the Free Software Foundation,
ohair@286 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ohair@286 20 *
ohair@286 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@286 22 * or visit www.oracle.com if you need additional information or have any
ohair@286 23 * questions.
ohair@286 24 */
ohair@286 25
ohair@286 26 /*
ohair@286 27 * @(#)ContentType.java 1.7 02/03/27
ohair@286 28 */
ohair@286 29
ohair@286 30
ohair@286 31
ohair@286 32 package com.sun.xml.internal.ws.encoding;
ohair@286 33
ohair@286 34 import javax.xml.ws.WebServiceException;
ohair@286 35
ohair@286 36 /**
ohair@286 37 * This class represents a MIME ContentType value. It provides
ohair@286 38 * methods to parse a ContentType string into individual components
ohair@286 39 * and to generate a MIME style ContentType string.
ohair@286 40 *
ohair@286 41 * @version 1.7, 02/03/27
ohair@286 42 * @author John Mani
ohair@286 43 */
ohair@286 44 public final class ContentType {
ohair@286 45
ohair@286 46 private String primaryType; // primary type
ohair@286 47 private String subType; // subtype
ohair@286 48 private ParameterList list; // parameter list
ohair@286 49
ohair@286 50 /**
ohair@286 51 * Constructor that takes a Content-Type string. The String
ohair@286 52 * is parsed into its constituents: primaryType, subType
ohair@286 53 * and parameters. A ParseException is thrown if the parse fails.
ohair@286 54 *
ohair@286 55 * @param s the Content-Type string.
ohair@286 56 * @exception WebServiceException if the parse fails.
ohair@286 57 */
ohair@286 58 public ContentType(String s) throws WebServiceException {
ohair@286 59 HeaderTokenizer h = new HeaderTokenizer(s, HeaderTokenizer.MIME);
ohair@286 60 HeaderTokenizer.Token tk;
ohair@286 61
ohair@286 62 // First "type" ..
ohair@286 63 tk = h.next();
ohair@286 64 if (tk.getType() != HeaderTokenizer.Token.ATOM)
ohair@286 65 throw new WebServiceException();
ohair@286 66 primaryType = tk.getValue();
ohair@286 67
ohair@286 68 // The '/' separator ..
ohair@286 69 tk = h.next();
ohair@286 70 if ((char)tk.getType() != '/')
ohair@286 71 throw new WebServiceException();
ohair@286 72
ohair@286 73 // Then "subType" ..
ohair@286 74 tk = h.next();
ohair@286 75 if (tk.getType() != HeaderTokenizer.Token.ATOM)
ohair@286 76 throw new WebServiceException();
ohair@286 77 subType = tk.getValue();
ohair@286 78
ohair@286 79 // Finally parameters ..
ohair@286 80 String rem = h.getRemainder();
ohair@286 81 if (rem != null)
ohair@286 82 list = new ParameterList(rem);
ohair@286 83 }
ohair@286 84
ohair@286 85
ohair@286 86 /**
ohair@286 87 * Return the primary type.
ohair@286 88 * @return the primary type
ohair@286 89 */
ohair@286 90 public String getPrimaryType() {
ohair@286 91 return primaryType;
ohair@286 92 }
ohair@286 93
ohair@286 94 /**
ohair@286 95 * Return the subType.
ohair@286 96 * @return the subType
ohair@286 97 */
ohair@286 98 public String getSubType() {
ohair@286 99 return subType;
ohair@286 100 }
ohair@286 101
ohair@286 102 /**
ohair@286 103 * Return the MIME type string, without the parameters.
ohair@286 104 * The returned value is basically the concatenation of
ohair@286 105 * the primaryType, the '/' character and the secondaryType.
ohair@286 106 *
ohair@286 107 * @return the type
ohair@286 108 */
ohair@286 109 public String getBaseType() {
ohair@286 110 return primaryType + '/' + subType;
ohair@286 111 }
ohair@286 112
ohair@286 113 /**
ohair@286 114 * Return the specified parameter value. Returns <code>null</code>
ohair@286 115 * if this parameter is absent.
ohair@286 116 *
ohair@286 117 * @param name parameter name
ohair@286 118 * @return parameter value
ohair@286 119 */
ohair@286 120 public String getParameter(String name) {
ohair@286 121 if (list == null)
ohair@286 122 return null;
ohair@286 123
ohair@286 124 return list.get(name);
ohair@286 125 }
ohair@286 126
ohair@286 127 /**
ohair@286 128 * Return a ParameterList object that holds all the available
ohair@286 129 * parameters. Returns null if no parameters are available.
ohair@286 130 *
ohair@286 131 * @return ParameterList
ohair@286 132 */
ohair@286 133 public ParameterList getParameterList() {
ohair@286 134 return list;
ohair@286 135 }
ohair@286 136
ohair@286 137 }

mercurial