1/* 2 * Copyright (c) 1997, 2013, 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 26package com.sun.xml.internal.ws.message.stream; 27 28import com.sun.istack.internal.FinalArrayList; 29import com.sun.xml.internal.stream.buffer.XMLStreamBuffer; 30import com.sun.xml.internal.ws.message.Util; 31 32import javax.xml.soap.SOAPConstants; 33import javax.xml.stream.XMLStreamException; 34import javax.xml.stream.XMLStreamReader; 35 36/** 37 * {@link StreamHeader} for SOAP 1.1. 38 * 39 * @author Paul.Sandoz@Sun.Com 40 */ 41@SuppressWarnings({"StringEquality"}) 42public class StreamHeader11 extends StreamHeader { 43 protected static final String SOAP_1_1_MUST_UNDERSTAND = "mustUnderstand"; 44 45 protected static final String SOAP_1_1_ROLE = "actor"; 46 47 public StreamHeader11(XMLStreamReader reader, XMLStreamBuffer mark) { 48 super(reader, mark); 49 } 50 51 public StreamHeader11(XMLStreamReader reader) throws XMLStreamException { 52 super(reader); 53 } 54 55 protected final FinalArrayList<Attribute> processHeaderAttributes(XMLStreamReader reader) { 56 FinalArrayList<Attribute> atts = null; 57 58 _role = SOAPConstants.URI_SOAP_ACTOR_NEXT; 59 60 for (int i = 0; i < reader.getAttributeCount(); i++) { 61 final String localName = reader.getAttributeLocalName(i); 62 final String namespaceURI = reader.getAttributeNamespace(i); 63 final String value = reader.getAttributeValue(i); 64 65 if (SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE.equals(namespaceURI)) { 66 if (SOAP_1_1_MUST_UNDERSTAND.equals(localName)) { 67 _isMustUnderstand = Util.parseBool(value); 68 } else if (SOAP_1_1_ROLE.equals(localName)) { 69 if (value != null && value.length() > 0) { 70 _role = value; 71 } 72 } 73 } 74 75 if(atts==null) { 76 atts = new FinalArrayList<Attribute>(); 77 } 78 atts.add(new Attribute(namespaceURI,localName,value)); 79 } 80 81 return atts; 82 } 83} 84