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)) { |