org.apache.axis2.saaj.DetailImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of axis2-saaj Show documentation
Show all versions of axis2-saaj Show documentation
Axis2 SAAJ implementation
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.axis2.saaj;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPFaultDetail;
import javax.xml.namespace.QName;
import javax.xml.soap.Detail;
import javax.xml.soap.DetailEntry;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* A container for DetailEntry objects. DetailEntry objects give detailed
* error information that is application-specific and related to the SOAPBody object
* that contains it.
*
* A Detail object, which is part of a SOAPFault object, can be retrieved
* using the method SOAPFault.getDetail. The Detail interface provides two
* methods. One creates a new DetailEntry object and also automatically adds it to the
* Detail object. The second method gets a list of the DetailEntry objects
* contained in a Detail object.
*
* The following code fragment, in which sf is a SOAPFault object, gets its
* Detail object (d), adds a new DetailEntry object to d,
* and then gets a list of all the DetailEntry objects in d. The code also
* creates a Name object to pass to the method addDetailEntry. The
* variable se, used to create the Name object, is a SOAPEnvelope
* object. Detail d = sf.getDetail(); Name name = se.createName("GetLastTradePrice", "WOMBAT",
* "http://www.wombat.org/trader"); d.addDetailEntry(name); Iterator it = d.getDetailEntries();
*
*/
public class DetailImpl extends SOAPFaultElementImpl implements Detail {
/** @param element */
public DetailImpl(SOAPFaultDetail element) {
super(element);
}
/**
* Creates a new DetailEntry object with the given name and adds it to this
* Detail object.
*
* @param name a Name object identifying the new DetailEntry object
* @return DetailEntry.
* @throws SOAPException thrown when there is a problem in adding a DetailEntry object to this
* Detail object.
*/
public DetailEntry addDetailEntry(Name name) throws SOAPException {
SOAPElementImpl> childElement = (SOAPElementImpl>)addChildElement(name);
DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
return detailEntry;
}
/**
* Gets a list of the detail entries in this Detail object.
*
* @return an Iterator object over the DetailEntry objects in this
* Detail object
*/
public Iterator getDetailEntries() {
final Iterator detailEntriesIter = omTarget.getChildElements();
Collection details = new ArrayList();
while (detailEntriesIter.hasNext()) {
details.add(new DetailEntryImpl((OMElement)detailEntriesIter.next()));
}
return details.iterator();
}
/**
* Creates a new DetailEntry object with the given name and adds it to this Detail object.
*
* @param name - a Name object identifying the new DetailEntry object
* @throws SOAPException - thrown when there is a problem in adding a DetailEntry object to this
* Detail object.
*/
public DetailEntry addDetailEntry(QName qname) throws SOAPException {
SOAPElementImpl> childElement = (SOAPElementImpl>)addChildElement(qname);
DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
return detailEntry;
}
public SOAPElement addAttribute(QName qname, String value) throws SOAPException {
return super.addAttribute(qname, value);
}
public SOAPElement addChildElement(QName qname) throws SOAPException {
return super.addChildElement(qname);
}
public QName createQName(String localName, String prefix) throws SOAPException {
return super.createQName(localName, prefix);
}
public Iterator getAllAttributesAsQNames() {
return super.getAllAttributesAsQNames();
}
public String getAttributeValue(QName qname) {
return super.getAttributeValue(qname);
}
public Iterator getChildElements(QName qname) {
return super.getChildElements(qname);
}
public QName getElementQName() {
return super.getElementQName();
}
public boolean removeAttribute(QName qname) {
return super.removeAttribute(qname);
}
public SOAPElement setElementQName(QName newName) throws SOAPException {
return super.setElementQName(newName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy