325N/A/*
325N/A * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
325N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
325N/A *
325N/A * This code is free software; you can redistribute it and/or modify it
325N/A * under the terms of the GNU General Public License version 2 only, as
325N/A * published by the Free Software Foundation. Oracle designates this
325N/A * particular file as subject to the "Classpath" exception as provided
325N/A * by Oracle in the LICENSE file that accompanied this code.
325N/A *
325N/A * This code is distributed in the hope that it will be useful, but WITHOUT
325N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
325N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
325N/A * version 2 for more details (a copy is included in the LICENSE file that
325N/A * accompanied this code).
325N/A *
325N/A * You should have received a copy of the GNU General Public License version
325N/A * 2 along with this work; if not, write to the Free Software Foundation,
325N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
325N/A *
325N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
325N/A * or visit www.oracle.com if you need additional information or have any
325N/A * questions.
325N/A */
325N/A
325N/Apackage com.sun.tools.internal.ws.wsdl.document.soap;
325N/A
325N/Aimport com.sun.tools.internal.ws.wsdl.framework.*;
325N/Aimport org.xml.sax.Locator;
325N/A
325N/Aimport javax.xml.namespace.QName;
325N/Aimport java.util.ArrayList;
325N/Aimport java.util.Iterator;
325N/Aimport java.util.List;
325N/A
325N/A/**
325N/A * A SOAP header extension.
325N/A *
325N/A * @author WS Development Team
325N/A */
325N/Apublic class SOAPHeader extends ExtensionImpl {
325N/A
325N/A public SOAPHeader(Locator locator) {
325N/A super(locator);
325N/A _faults = new ArrayList();
325N/A }
325N/A
325N/A public void add(SOAPHeaderFault fault) {
325N/A _faults.add(fault);
325N/A }
325N/A
325N/A public Iterator faults() {
325N/A return _faults.iterator();
325N/A }
325N/A
325N/A public QName getElementName() {
325N/A return SOAPConstants.QNAME_HEADER;
325N/A }
325N/A
325N/A public String getNamespace() {
325N/A return _namespace;
325N/A }
325N/A
325N/A public void setNamespace(String s) {
325N/A _namespace = s;
325N/A }
325N/A
325N/A public SOAPUse getUse() {
325N/A return _use;
325N/A }
325N/A
325N/A public void setUse(SOAPUse u) {
325N/A _use = u;
325N/A }
325N/A
325N/A public boolean isEncoded() {
325N/A return _use == SOAPUse.ENCODED;
325N/A }
325N/A
325N/A public boolean isLiteral() {
325N/A return _use == SOAPUse.LITERAL;
325N/A }
325N/A
325N/A public String getEncodingStyle() {
325N/A return _encodingStyle;
325N/A }
325N/A
325N/A public void setEncodingStyle(String s) {
325N/A _encodingStyle = s;
325N/A }
325N/A
325N/A public String getPart() {
325N/A return _part;
325N/A }
325N/A
325N/A public void setMessage(QName message) {
325N/A _message = message;
325N/A }
325N/A
325N/A public QName getMessage() {
325N/A return _message;
325N/A }
325N/A
325N/A public void setPart(String s) {
325N/A _part = s;
325N/A }
325N/A
325N/A public void withAllSubEntitiesDo(EntityAction action) {
325N/A super.withAllSubEntitiesDo(action);
325N/A
325N/A for (Iterator iter = _faults.iterator(); iter.hasNext();) {
325N/A action.perform((Entity) iter.next());
325N/A }
325N/A }
325N/A
325N/A public void withAllQNamesDo(QNameAction action) {
325N/A super.withAllQNamesDo(action);
325N/A
325N/A if (_message != null) {
325N/A action.perform(_message);
325N/A }
325N/A }
325N/A
325N/A public void accept(ExtensionVisitor visitor) throws Exception {
325N/A visitor.preVisit(this);
325N/A for (Iterator iter = _faults.iterator(); iter.hasNext();) {
325N/A ((SOAPHeaderFault) iter.next()).accept(visitor);
325N/A }
325N/A visitor.postVisit(this);
325N/A }
325N/A
325N/A public void validateThis() {
325N/A if (_message == null) {
325N/A failValidation("validation.missingRequiredAttribute", "message");
325N/A }
325N/A if (_part == null) {
325N/A failValidation("validation.missingRequiredAttribute", "part");
325N/A }
325N/A // Fix for bug 4851427
325N/A // if (_use == null) {
325N/A // failValidation("validation.missingRequiredAttribute", "use");
325N/A // }
325N/A
325N/A if(_use == SOAPUse.ENCODED) {
325N/A throw new ValidationException("validation.unsupportedUse.encoded", getLocator().getLineNumber(),getLocator().getSystemId());
325N/A }
325N/A }
325N/A
325N/A private String _encodingStyle;
325N/A private String _namespace;
325N/A private String _part;
325N/A private QName _message;
325N/A private SOAPUse _use=SOAPUse.LITERAL;
325N/A private List _faults;
325N/A}