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);
return new DetailEntryImpl(childElement.omTarget);
}
/**
* 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);
return new DetailEntryImpl(childElement.omTarget);
}
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);
}
}