jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderImpl.java
changeset 33547 e4c76ac38b12
parent 28326 2b9860c0d68a
child 43852 93a527059d8a
equal deleted inserted replaced
33390:d131f4b8433a 33547:e4c76ac38b12
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     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.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     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
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    30 
    30 
    31 import javax.xml.namespace.QName;
    31 import javax.xml.namespace.QName;
    32 import javax.xml.soap.*;
    32 import javax.xml.soap.*;
    33 
    33 
    34 import org.w3c.dom.Element;
    34 import org.w3c.dom.Element;
    35 import org.w3c.dom.Node;
       
    36 
    35 
    37 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
    36 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
    38 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
    37 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
    39 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
    38 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
    40 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
    39 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
   114 
   113 
   115     public Iterator extractHeaderElements(String actor) {
   114     public Iterator extractHeaderElements(String actor) {
   116         return getHeaderElementsForActor(actor, true, false);
   115         return getHeaderElementsForActor(actor, true, false);
   117     }
   116     }
   118 
   117 
   119     protected Iterator getHeaderElementsForActor(
   118     protected Iterator<SOAPHeaderElement> getHeaderElementsForActor(
   120         String actor,
   119         String actor,
   121         boolean detach,
   120         boolean detach,
   122         boolean mustUnderstand) {
   121         boolean mustUnderstand) {
   123         if (actor == null || actor.equals("")) {
   122         if (actor == null || actor.equals("")) {
   124             log.severe("SAAJ0132.impl.invalid.value.for.actor.or.role");
   123             log.severe("SAAJ0132.impl.invalid.value.for.actor.or.role");
   125             throw new IllegalArgumentException("Invalid value for actor or role");
   124             throw new IllegalArgumentException("Invalid value for actor or role");
   126         }
   125         }
   127         return getHeaderElements(actor, detach, mustUnderstand);
   126         return getHeaderElements(actor, detach, mustUnderstand);
   128     }
   127     }
   129 
   128 
   130     protected Iterator getHeaderElements(
   129     protected Iterator<SOAPHeaderElement> getHeaderElements(
   131         String actor,
   130         String actor,
   132         boolean detach,
   131         boolean detach,
   133         boolean mustUnderstand) {
   132         boolean mustUnderstand) {
   134         List elementList = new ArrayList();
   133         List<SOAPHeaderElement> elementList = new ArrayList<SOAPHeaderElement>();
   135 
   134 
   136         Iterator eachChild = getChildElements();
   135         Iterator<org.w3c.dom.Node> eachChild = getChildElements();
   137 
   136 
   138         Object currentChild = iterate(eachChild);
   137         org.w3c.dom.Node currentChild = iterate(eachChild);
   139         while (currentChild != null) {
   138         while (currentChild != null) {
   140             if (!(currentChild instanceof SOAPHeaderElement)) {
   139             if (!(currentChild instanceof SOAPHeaderElement)) {
   141                 currentChild = iterate(eachChild);
   140                 currentChild = iterate(eachChild);
   142             } else {
   141             } else {
   143                 HeaderElementImpl currentElement =
   142                 HeaderElementImpl currentElement =
   171         }
   170         }
   172 
   171 
   173         return elementList.listIterator();
   172         return elementList.listIterator();
   174     }
   173     }
   175 
   174 
   176     private Object iterate(Iterator each) {
   175     private <T> T iterate(Iterator<T> each) {
   177         return each.hasNext() ? each.next() : null;
   176         return each.hasNext() ? each.next() : null;
   178     }
   177     }
   179 
   178 
   180     public void setParentElement(SOAPElement element) throws SOAPException {
   179     public void setParentElement(SOAPElement element) throws SOAPException {
   181         if (!(element instanceof SOAPEnvelope)) {
   180         if (!(element instanceof SOAPEnvelope)) {