org.apache.axis.message
Class MessageElement

java.lang.Object
  extended byorg.apache.axis.message.NodeImpl
      extended byorg.apache.axis.message.MessageElement
All Implemented Interfaces:
java.lang.Cloneable, org.w3c.dom.Element, org.w3c.dom.Node, Node, org.w3c.dom.NodeList, java.io.Serializable, SOAPElement
Direct Known Subclasses:
DetailEntry, RPCParam, SOAPBody, SOAPBodyElement, SOAPEnvelope, SOAPFaultElement, SOAPHeader, SOAPHeaderElement

public class MessageElement
extends NodeImpl
implements SOAPElement, java.io.Serializable, org.w3c.dom.NodeList, java.lang.Cloneable

MessageElement is the base type of nodes of the SOAP message parse tree. Note: it was made Serializable to help users of Apache SOAP who had exploited the serializability of the DOM tree to migrate to Axis.

See Also:
Serialized Form

Field Summary
 java.util.ArrayList namespaces
           
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
MessageElement()
          No-arg constructor for building messages?
MessageElement(org.w3c.dom.CharacterData text)
          construct a text element.
MessageElement(org.w3c.dom.Element elem)
          create a node through a deep copy of the passed in element.
MessageElement(Name eltName)
          construct using a Name implementation,
MessageElement(QName name)
          constructor declaring the qualified name of the node
MessageElement(QName name, java.lang.Object value)
          constructor declaring the qualified name of the node and its value
MessageElement(java.lang.String namespace, java.lang.String localPart)
          constructor
MessageElement(java.lang.String namespace, java.lang.String localPart, java.lang.Object value)
          constructor binding the internal object value field to the value parameter
MessageElement(java.lang.String localPart, java.lang.String prefix, java.lang.String namespace)
          constructor.
MessageElement(java.lang.String namespace, java.lang.String localPart, java.lang.String prefix, org.xml.sax.Attributes attributes, org.apache.axis.encoding.DeserializationContext context)
          Advanced constructor used for deserialization.
 
Method Summary
 SOAPElement addAttribute(Name attrName, java.lang.String value)
          add a new attribute
 void addAttribute(java.lang.String namespace, java.lang.String localName, QName value)
          add an attribute to the qname vector.
 void addAttribute(java.lang.String namespace, java.lang.String localName, java.lang.String value)
          add a normal CDATA/text attribute.
 void addAttribute(java.lang.String attrPrefix, java.lang.String namespace, java.lang.String localName, java.lang.String value)
          add an attribute.
 void addChild(MessageElement el)
          Note that this method will log a error and no-op if there is a value (set using setObjectValue) in the MessageElement.
 SOAPElement addChildElement(Name childName)
          add the child element
 SOAPElement addChildElement(SOAPElement element)
          The added child must be an instance of MessageElement rather than an abitrary SOAPElement otherwise a (wrapped) ClassCastException will be thrown.
 SOAPElement addChildElement(java.lang.String localName)
          add a child element in the message element's own namespace
 SOAPElement addChildElement(java.lang.String localName, java.lang.String prefixName)
          add a child element
 SOAPElement addChildElement(java.lang.String localName, java.lang.String childPrefix, java.lang.String uri)
          add a child element
 void addMapping(Mapping map)
          add a new namespace/prefix mapping
 SOAPElement addNamespaceDeclaration(java.lang.String prefix, java.lang.String uri)
          create a Mapping mapping and add to our namespace list.
 SOAPElement addTextNode(java.lang.String s)
          add a text node to the document.
 org.w3c.dom.Node cloneNode(boolean deep)
          Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
 void detachAllChildren()
          remove all children.
 boolean equals(java.lang.Object obj)
          equality test.
 java.util.Iterator getAllAttributes()
          Get an interator to all the attributes of the node.
 org.w3c.dom.Document getAsDocument()
          get the message element as a document.
 org.w3c.dom.Element getAsDOM()
          create a DOM from the message element, by serializing and deserializing the element
 java.lang.String getAsString()
          get the message element as a string.
 java.lang.String getAttribute(java.lang.String attrName)
          get an attribute by name
 org.w3c.dom.Attr getAttributeNode(java.lang.String attrName)
          Deprecated. this is not implemented
 org.w3c.dom.Attr getAttributeNodeNS(java.lang.String namespace, java.lang.String localName)
          Deprecated. not implemented!
 java.lang.String getAttributeNS(java.lang.String namespaceURI, java.lang.String localName)
          get the attribute with namespace/local name match.
 org.xml.sax.Attributes getAttributesEx()
          get the attributes
 java.lang.String getAttributeValue(Name attrName)
          Get the value of an attribute whose namespace and local name are described.
 java.lang.String getAttributeValue(java.lang.String localName)
          get the value of an attribute
 MessageElement getChildElement(QName qname)
          Convenience method to get the first matching child for a given QName.
 java.util.Iterator getChildElements()
          get an iterator over the children This iterator may get confused if changes are made to the children while the iteration is in progress.
 java.util.Iterator getChildElements(Name childName)
          get an iterator over child elements
 java.util.Iterator getChildElements(QName qname)
          get an iterator over child elements
 java.util.List getChildren()
          get a list of children
 org.xml.sax.Attributes getCompleteAttributes()
          Obtain an Attributes collection consisting of all attributes for this MessageElement, including namespace declarations.
 org.apache.axis.encoding.DeserializationContext getDeserializationContext()
          Retrieve the DeserializationContext associated with this MessageElement
 Name getElementName()
          get the full name of the element
 org.w3c.dom.NodeList getElementsByTagName(java.lang.String tagName)
           
 org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String namespace, java.lang.String localName)
           
 java.lang.String getEncodingStyle()
          Get the encoding style.
 SOAPEnvelope getEnvelope()
          get our current envelope
 org.apache.axis.encoding.Deserializer getFixupDeserializer()
           
 java.lang.String getHref()
          get a saved href
 java.lang.String getID()
          get a saved ID
 int getLength()
          The number of nodes in the list.
 java.lang.String getName()
          get the local name of this element
 java.util.Iterator getNamespacePrefixes()
          get an iterator of the prefixes.
 java.lang.String getNamespaceURI(java.lang.String searchPrefix)
          map from a prefix to a namespace.
 java.lang.Object getObjectValue()
          Returns value of the node as an object of registered type.
 java.lang.Object getObjectValue(java.lang.Class cls)
          Returns value of the node as an object of registered type.
 org.w3c.dom.Document getOwnerDocument()
          The Document object associated with this node.
 java.lang.String getPrefix(java.lang.String searchNamespaceURI)
          get the prefix for a given namespace URI
 QName getQName()
          get the fully qualified name of this element
 MessageElement getRealElement()
          get the 'real' element -will follow hrefs.
 SAX2EventRecorder getRecorder()
          get the event recorder
 java.lang.String getTagName()
           
 QName getType()
          get the element's type.
 java.lang.String getValue()
          Get the value of the doc as a string.
 java.lang.Object getValueAsType(QName type)
           
 java.lang.Object getValueAsType(QName type, java.lang.Class cls)
          This is deserialization logic mixed in to our element class.
 java.util.Iterator getVisibleNamespacePrefixes()
          get an iterator over visible prefixes.
 boolean hasAttribute(java.lang.String attrName)
          test for an attribute existing
 boolean hasAttributeNS(java.lang.String namespace, java.lang.String localName)
          Test for an attribute
 boolean isRoot()
          get the is-root flag
 org.w3c.dom.Node item(int index)
          get a child node
 void output(org.apache.axis.encoding.SerializationContext outputContext)
          This is the public output() method, which will always simply use the recorded SAX stream for this element if it is available.
 void publishContents(org.xml.sax.ContentHandler handler)
          replay the sax events to a SAX content handles
 void publishToHandler(org.xml.sax.ContentHandler handler)
          replay the sax events to a handler
 boolean removeAttribute(Name attrName)
          remove an element
 void removeAttribute(java.lang.String attrName)
          remove a named attribute.
 org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr oldAttr)
          remove a an attribue
 void removeAttributeNS(java.lang.String namespace, java.lang.String localName)
          Remove an attribute.
 void removeContents()
          remove all chidlren.
 boolean removeNamespaceDeclaration(java.lang.String namespacePrefix)
          remove a namespace declaration.
 void setAllAttributes(org.xml.sax.Attributes attrs)
          set all the attributes of this instance
 void setAttribute(java.lang.String name, java.lang.String value)
          set or update an attribute.
 void setAttribute(java.lang.String namespace, java.lang.String localName, java.lang.String value)
          Set an attribute, adding the attribute if it isn't already present in this element, and changing the value if it is.
 org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr newAttr)
          Deprecated. this is not implemented
 org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr newAttr)
          set an attribute as a node
 void setAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName, java.lang.String value)
          set an attribute or alter an existing one
 void setContentsIndex(int index)
          set the index point of our content's starting in the event recording
 void setEncodingStyle(java.lang.String encodingStyle)
          Sets the encoding style for this SOAPElement object to one specified.
 void setEndIndex(int endIndex)
          record the end index of the SAX recording.
 void setEnvelope(SOAPEnvelope env)
          bind a a new soap envelope.
 void setFixupDeserializer(org.apache.axis.encoding.Deserializer dser)
           
 void setName(java.lang.String name)
          set the local part of this element's name
 void setNamespaceURI(java.lang.String nsURI)
          set the namespace URI of the element
 void setNSMappings(java.util.ArrayList namespaces)
          set a new namespace mapping list
 void setObjectValue(java.lang.Object newValue)
          Sets value of this node to an Object.
 void setQName(QName qName)
          set the name and namespace of this element
 void setRecorder(SAX2EventRecorder rec)
          set the event recorder
 void setType(QName qname)
          set the element's type
 void setValue(java.lang.String value)
          If this is a Text node then this method will set its value, otherwise it sets the value of the immediate (Text) child of this node.
 java.lang.String toString()
          Generate a string representation by serializing our contents This is not a lightweight operation, and is repeated whenever you call this method.
 
Methods inherited from class org.apache.axis.message.NodeImpl
appendChild, detachNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getParentElement, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isDirty, isSupported, normalize, recycleNode, removeChild, replaceChild, setDirty, setNodeValue, setOwnerDocument, setParentElement, setPrefix
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.xml.soap.Node
detachNode, getParentElement, recycleNode, setParentElement
 
Methods inherited from interface org.w3c.dom.Node
appendChild, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

Field Detail

namespaces

public java.util.ArrayList namespaces
Constructor Detail

MessageElement

public MessageElement()
No-arg constructor for building messages?


MessageElement

public MessageElement(java.lang.String namespace,
                      java.lang.String localPart)
constructor

Parameters:
namespace - namespace of element
localPart - local name

MessageElement

public MessageElement(java.lang.String localPart,
                      java.lang.String prefix,
                      java.lang.String namespace)
constructor. Automatically adds a namespace-prefix mapping to the mapping table

Parameters:
localPart - local name
prefix - prefix
namespace - namespace

MessageElement

public MessageElement(Name eltName)
construct using a Name implementation,

Parameters:
eltName -
See Also:
MessageElement(String, String, String)

MessageElement

public MessageElement(java.lang.String namespace,
                      java.lang.String localPart,
                      java.lang.Object value)
constructor binding the internal object value field to the value parameter

Parameters:
namespace - namespace of the element
localPart - local name
value - value of the node

MessageElement

public MessageElement(QName name)
constructor declaring the qualified name of the node

Parameters:
name - naming information

MessageElement

public MessageElement(QName name,
                      java.lang.Object value)
constructor declaring the qualified name of the node and its value

Parameters:
name - naming information
value - value of the node

MessageElement

public MessageElement(org.w3c.dom.Element elem)
create a node through a deep copy of the passed in element.

Parameters:
elem - name to copy from

MessageElement

public MessageElement(org.w3c.dom.CharacterData text)
construct a text element.

Parameters:
text - text data. This is not copied; it is referred to in the MessageElement.

MessageElement

public MessageElement(java.lang.String namespace,
                      java.lang.String localPart,
                      java.lang.String prefix,
                      org.xml.sax.Attributes attributes,
                      org.apache.axis.encoding.DeserializationContext context)
               throws AxisFault
Advanced constructor used for deserialization.
  1. The context provides the mappings and Sax event recorder
  2. The soap messaging style is determined from the current message context, defaulting to SOAP1.1 if there is no current context.
  3. if there is an id attribute (any namespace), then the ID is registered with DeserializationContext.registerElementByID(String, MessageElement) ;a new recorder is created if needed.
  4. If there is an attribute "root" in the default SOAP namespace, then it is examined to see if it marks the element as root (value=="1" or not)
  5. If there is an arrayType attribute then we assume we are an array and set our #typeQName field appropriately.
  6. The #href field is set if there is a relevant href value

Parameters:
namespace - namespace namespace of element
localPart - local name local name of element
prefix - prefix prefix of element
attributes - attributes to save as our attributes
context - deserialization context for this message element
Throws:
AxisFault - if the encoding style is not recognized/supported
Method Detail

getDeserializationContext

public org.apache.axis.encoding.DeserializationContext getDeserializationContext()
Retrieve the DeserializationContext associated with this MessageElement

Returns:
The DeserializationContext associated with this MessageElement

setFixupDeserializer

public void setFixupDeserializer(org.apache.axis.encoding.Deserializer dser)

getFixupDeserializer

public org.apache.axis.encoding.Deserializer getFixupDeserializer()

setEndIndex

public void setEndIndex(int endIndex)
record the end index of the SAX recording.

Parameters:
endIndex - end value

isRoot

public boolean isRoot()
get the is-root flag

Returns:
true if the element is considered a document root.

getID

public java.lang.String getID()
get a saved ID

Returns:
ID or null for no ID

getHref

public java.lang.String getHref()
get a saved href

Returns:
href or null

getAttributesEx

public org.xml.sax.Attributes getAttributesEx()
get the attributes

Returns:
attributes. If this equals NullAttributes.singleton it is null

cloneNode

public org.w3c.dom.Node cloneNode(boolean deep)
Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent; ( parentNode is null.).
Cloning an Element copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child Text node. Cloning an Attribute directly, as opposed to be cloned as part of an Element cloning operation, returns a specified attribute ( specified is true). Cloning any other type of node simply returns a copy of this node.
Note that cloning an immutable subtree results in a mutable copy, but the children of an EntityReference clone are readonly . In addition, clones of unspecified Attr nodes are specified. And, cloning Document, DocumentType, Entity, and Notation nodes is implementation dependent.

Specified by:
cloneNode in interface org.w3c.dom.Node
Overrides:
cloneNode in class NodeImpl
Parameters:
deep - If true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an Element).
Returns:
The duplicate node.

setAllAttributes

public void setAllAttributes(org.xml.sax.Attributes attrs)
set all the attributes of this instance

Parameters:
attrs - a new attributes list

detachAllChildren

public void detachAllChildren()
remove all children.


getCompleteAttributes

public org.xml.sax.Attributes getCompleteAttributes()
Obtain an Attributes collection consisting of all attributes for this MessageElement, including namespace declarations.

Returns:
Attributes collection

getName

public java.lang.String getName()
get the local name of this element

Returns:
name

setName

public void setName(java.lang.String name)
set the local part of this element's name

Parameters:
name -

getQName

public QName getQName()
get the fully qualified name of this element

Returns:
a QName describing the name of thsi element

setQName

public void setQName(QName qName)
set the name and namespace of this element

Parameters:
qName - qualified name

setNamespaceURI

public void setNamespaceURI(java.lang.String nsURI)
set the namespace URI of the element

Parameters:
nsURI - new namespace URI

getType

public QName getType()
get the element's type. If we are a reference, we look up our target in the context and return (and cache) its type.

Returns:

setType

public void setType(QName qname)
set the element's type

Parameters:
qname -

getRecorder

public SAX2EventRecorder getRecorder()
get the event recorder

Returns:
recorder or null

setRecorder

public void setRecorder(SAX2EventRecorder rec)
set the event recorder

Parameters:
rec -

getEncodingStyle

public java.lang.String getEncodingStyle()
Get the encoding style. If ours is null, walk up the hierarchy and use our parent's. Default if we're the root is "".

Specified by:
getEncodingStyle in interface SOAPElement
Returns:
the currently in-scope encoding style
See Also:
setEncodingStyle(java.lang.String)

removeContents

public void removeContents()
remove all chidlren. All SOAPExceptions which can get thrown in this process are ignored.

Specified by:
removeContents in interface SOAPElement

getVisibleNamespacePrefixes

public java.util.Iterator getVisibleNamespacePrefixes()
get an iterator over visible prefixes. This includes all declared in parent elements

Specified by:
getVisibleNamespacePrefixes in interface SOAPElement
Returns:
an iterator.

setEncodingStyle

public void setEncodingStyle(java.lang.String encodingStyle)
                      throws SOAPException
Sets the encoding style for this SOAPElement object to one specified. The semantics of a null value, as above in getEncodingStyle() are to just use the parent's value, but null here means set to "".

Specified by:
setEncodingStyle in interface SOAPElement
Parameters:
encodingStyle - a String giving the encoding style
Throws:
java.lang.IllegalArgumentException - if there was a problem in the encoding style being set.
SOAPException
See Also:
getEncodingStyle()

addChild

public void addChild(MessageElement el)
              throws SOAPException
Note that this method will log a error and no-op if there is a value (set using setObjectValue) in the MessageElement.

Throws:
SOAPException

getChildren

public java.util.List getChildren()
get a list of children

Returns:
a list, or null if there are no children

setContentsIndex

public void setContentsIndex(int index)
set the index point of our content's starting in the event recording

Parameters:
index - index value of the first event of our recorder.

setNSMappings

public void setNSMappings(java.util.ArrayList namespaces)
set a new namespace mapping list

Parameters:
namespaces -

getPrefix

public java.lang.String getPrefix(java.lang.String searchNamespaceURI)
get the prefix for a given namespace URI

Parameters:
searchNamespaceURI - namespace
Returns:
null for null or emtpy uri, null for no match, and the prefix iff there is a match

getNamespaceURI

public java.lang.String getNamespaceURI(java.lang.String searchPrefix)
map from a prefix to a namespace. Will recurse upward the element tree until we get a match

Specified by:
getNamespaceURI in interface SOAPElement
Parameters:
searchPrefix -
Returns:
the prefix, or null for no match

getObjectValue

public java.lang.Object getObjectValue()
Returns value of the node as an object of registered type.

Returns:
Object of proper type, or null if no mapping could be found.

getObjectValue

public java.lang.Object getObjectValue(java.lang.Class cls)
                                throws java.lang.Exception
Returns value of the node as an object of registered type.

Parameters:
cls - Class that contains top level deserializer metadata
Returns:
Object of proper type, or null if no mapping could be found.
Throws:
java.lang.Exception

setObjectValue

public void setObjectValue(java.lang.Object newValue)
                    throws SOAPException
Sets value of this node to an Object. A serializer needs to be registered for this object class for proper operation.

Note that this method will log an error and no-op if there are any children in the MessageElement or if the MessageElement was constructed from XML.

Parameters:
newValue - node's value or null.
Throws:
SOAPException

getValueAsType

public java.lang.Object getValueAsType(QName type)
                                throws java.lang.Exception
Throws:
java.lang.Exception

getValueAsType

public java.lang.Object getValueAsType(QName type,
                                       java.lang.Class cls)
                                throws java.lang.Exception
This is deserialization logic mixed in to our element class. It is only valid we have a deserializer, which means that we were created using MessageElement(String, String, String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)

Parameters:
type - type to look up a deserializer for.
cls - class to use for looking up the deserializer. This takes precedence over the type field.
Returns:
the value of the deserializer
Throws:
java.lang.Exception

addAttribute

public void addAttribute(java.lang.String namespace,
                         java.lang.String localName,
                         QName value)
add an attribute to the qname vector. This is a separate vector from the main attribute list.

Parameters:
namespace -
localName -
value -

addAttribute

public void addAttribute(java.lang.String namespace,
                         java.lang.String localName,
                         java.lang.String value)
add a normal CDATA/text attribute. There is no check whether or not the attribute already exists.

Parameters:
namespace - namespace URI
localName - local anme
value - value

addAttribute

public void addAttribute(java.lang.String attrPrefix,
                         java.lang.String namespace,
                         java.lang.String localName,
                         java.lang.String value)
add an attribute. Note that the prefix is not added to our mapping list. Also, there is no check whether or not the attribute already exists.

Parameters:
attrPrefix - prefix.
namespace - namespace URI
localName -
value -

setAttribute

public void setAttribute(java.lang.String namespace,
                         java.lang.String localName,
                         java.lang.String value)
Set an attribute, adding the attribute if it isn't already present in this element, and changing the value if it is. Passing null as the value will cause any pre-existing attribute by this name to go away.


getAttributeValue

public java.lang.String getAttributeValue(java.lang.String localName)
get the value of an attribute

Parameters:
localName -
Returns:
the value or null

setEnvelope

public void setEnvelope(SOAPEnvelope env)
bind a a new soap envelope. sets the dirty bit.

Parameters:
env -

getEnvelope

public SOAPEnvelope getEnvelope()
get our current envelope

Returns:
envelope or null.

getRealElement

public MessageElement getRealElement()
get the 'real' element -will follow hrefs.

Returns:
the message element or null if there is a href to something that is not a MessageElemeent.

getAsDocument

public org.w3c.dom.Document getAsDocument()
                                   throws java.lang.Exception
get the message element as a document. This serializes the element to a string and then parses it.

Returns:
Throws:
java.lang.Exception
See Also:
getAsString()

getAsString

public java.lang.String getAsString()
                             throws java.lang.Exception
get the message element as a string. This is not a cheap operation, as we have to serialise the entire message element to the current context, then convert it to a string. Nor is it cached; repeated calls repeat the operation.

Returns:
an XML fragment in a string.
Throws:
java.lang.Exception - if anything went wrong

getAsDOM

public org.w3c.dom.Element getAsDOM()
                             throws java.lang.Exception
create a DOM from the message element, by serializing and deserializing the element

Returns:
the root document element of the element
Throws:
java.lang.Exception
See Also:
getAsString(), getAsDocument()

publishToHandler

public void publishToHandler(org.xml.sax.ContentHandler handler)
                      throws org.xml.sax.SAXException
replay the sax events to a handler

Parameters:
handler -
Throws:
org.xml.sax.SAXException

publishContents

public void publishContents(org.xml.sax.ContentHandler handler)
                     throws org.xml.sax.SAXException
replay the sax events to a SAX content handles

Parameters:
handler -
Throws:
org.xml.sax.SAXException

output

public final void output(org.apache.axis.encoding.SerializationContext outputContext)
                  throws java.lang.Exception
This is the public output() method, which will always simply use the recorded SAX stream for this element if it is available. If not, this method calls outputImpl() to allow subclasses and programmatically created messages to serialize themselves.

Overrides:
output in class NodeImpl
Parameters:
outputContext - the SerializationContext we will write to.
Throws:
java.lang.Exception

toString

public java.lang.String toString()
Generate a string representation by serializing our contents This is not a lightweight operation, and is repeated whenever you call this method. If the serialization fails, an error is logged and the classic Object.toString() operation invoked instead.

Returns:
a string representing the class

addMapping

public void addMapping(Mapping map)
add a new namespace/prefix mapping

Parameters:
map - new mapping to add

addChildElement

public SOAPElement addChildElement(Name childName)
                            throws SOAPException
add the child element

Specified by:
addChildElement in interface SOAPElement
Parameters:
childName - uri, prefix and local name of the element to add
Returns:
the child element
Throws:
SOAPException
See Also:
SOAPElement.addChildElement(javax.xml.soap.Name)

addChildElement

public SOAPElement addChildElement(java.lang.String localName)
                            throws SOAPException
add a child element in the message element's own namespace

Specified by:
addChildElement in interface SOAPElement
Parameters:
localName -
Returns:
the child element
Throws:
SOAPException
See Also:
SOAPElement.addChildElement(String)

addChildElement

public SOAPElement addChildElement(java.lang.String localName,
                                   java.lang.String prefixName)
                            throws SOAPException
add a child element

Specified by:
addChildElement in interface SOAPElement
Parameters:
localName -
prefixName -
Returns:
the child element
Throws:
SOAPException
See Also:
SOAPElement.addChildElement(String, String)

addChildElement

public SOAPElement addChildElement(java.lang.String localName,
                                   java.lang.String childPrefix,
                                   java.lang.String uri)
                            throws SOAPException
add a child element

Specified by:
addChildElement in interface SOAPElement
Parameters:
localName -
childPrefix -
uri -
Returns:
the child element
Throws:
SOAPException
See Also:
SOAPElement.addChildElement(String, String, String)

addChildElement

public SOAPElement addChildElement(SOAPElement element)
                            throws SOAPException
The added child must be an instance of MessageElement rather than an abitrary SOAPElement otherwise a (wrapped) ClassCastException will be thrown.

Specified by:
addChildElement in interface SOAPElement
Parameters:
element - the SOAPElement to be added as a new child
Returns:
an instance representing the new SOAP element that was actually added to the tree.
Throws:
SOAPException - if there was an error in adding this element as a child
See Also:
SOAPElement.addChildElement(javax.xml.soap.SOAPElement)

addTextNode

public SOAPElement addTextNode(java.lang.String s)
                        throws SOAPException
add a text node to the document.

Specified by:
addTextNode in interface SOAPElement
Parameters:
s - a String object with the textual content to be added
Returns:
ourselves
Throws:
SOAPException - if there is an error in creating the new Text object
See Also:
SOAPElement.addTextNode(String)

addAttribute

public SOAPElement addAttribute(Name attrName,
                                java.lang.String value)
                         throws SOAPException
add a new attribute

Specified by:
addAttribute in interface SOAPElement
Parameters:
attrName - name of the attribute
value - a string value
Returns:
ourselves
Throws:
SOAPException
See Also:
SOAPElement.addAttribute(javax.xml.soap.Name, String)

addNamespaceDeclaration

public SOAPElement addNamespaceDeclaration(java.lang.String prefix,
                                           java.lang.String uri)
                                    throws SOAPException
create a Mapping mapping and add to our namespace list.

Specified by:
addNamespaceDeclaration in interface SOAPElement
Parameters:
prefix -
uri -
Returns:
Throws:
SOAPException - for any RuntimeException caught
See Also:
SOAPElement.addNamespaceDeclaration(String, String)

getAttributeValue

public java.lang.String getAttributeValue(Name attrName)
Get the value of an attribute whose namespace and local name are described.

Specified by:
getAttributeValue in interface SOAPElement
Parameters:
attrName - qualified name of the attribute
Returns:
the attribute or null if there was no match
See Also:
SOAPElement.getAttributeValue(javax.xml.soap.Name)

getAllAttributes

public java.util.Iterator getAllAttributes()
Get an interator to all the attributes of the node. The iterator is over a static snapshot of the node names; if attributes are added or deleted during the iteration, this iterator will be not be updated to follow the changes.

Specified by:
getAllAttributes in interface SOAPElement
Returns:
an iterator of the attributes.
See Also:
SOAPElement.getAllAttributes()

getNamespacePrefixes

public java.util.Iterator getNamespacePrefixes()
get an iterator of the prefixes. The iterator does not get updated in response to changes in the namespace list.

Specified by:
getNamespacePrefixes in interface SOAPElement
Returns:
an iterator over a vector of prefixes
See Also:
SOAPElement.getNamespacePrefixes()

getElementName

public Name getElementName()
get the full name of the element

Specified by:
getElementName in interface SOAPElement
Returns:
See Also:
SOAPElement.getElementName()

removeAttribute

public boolean removeAttribute(Name attrName)
remove an element

Specified by:
removeAttribute in interface SOAPElement
Parameters:
attrName - name of the element
Returns:
true if the attribute was found and removed.
See Also:
SOAPElement.removeAttribute(javax.xml.soap.Name)

removeNamespaceDeclaration

public boolean removeNamespaceDeclaration(java.lang.String namespacePrefix)
remove a namespace declaration.

Specified by:
removeNamespaceDeclaration in interface SOAPElement
Parameters:
namespacePrefix -
Returns:
true if the prefix was found and removed.
See Also:
SOAPElement.removeNamespaceDeclaration(String)

getChildElements

public java.util.Iterator getChildElements()
get an iterator over the children This iterator may get confused if changes are made to the children while the iteration is in progress.

Specified by:
getChildElements in interface SOAPElement
Returns:
an iterator over child elements.
See Also:
SOAPElement.getChildElements()

getChildElement

public MessageElement getChildElement(QName qname)
Convenience method to get the first matching child for a given QName.

Parameters:
qname -
Returns:
child element or null
See Also:
SOAPElement.getChildElements()

getChildElements

public java.util.Iterator getChildElements(QName qname)
get an iterator over child elements

Parameters:
qname - namespace/element name of parts to find. This iterator is not (currently) susceptible to change in the element list during its lifetime, though changes in the contents of the elements are picked up.
Returns:
an iterator.

getChildElements

public java.util.Iterator getChildElements(Name childName)
get an iterator over child elements

Specified by:
getChildElements in interface SOAPElement
Parameters:
childName - namespace/element name of parts to find. This iterator is not (currently) susceptible to change in the element list during its lifetime, though changes in the contents of the elements are picked up.
Returns:
an iterator.
See Also:
SOAPElement.getChildElements(javax.xml.soap.Name)

getTagName

public java.lang.String getTagName()
Specified by:
getTagName in interface org.w3c.dom.Element
Returns:
the name of the element
See Also:
Element.getTagName()

removeAttribute

public void removeAttribute(java.lang.String attrName)
                     throws org.w3c.dom.DOMException
remove a named attribute.

Specified by:
removeAttribute in interface org.w3c.dom.Element
Parameters:
attrName - name of the attributes
Throws:
org.w3c.dom.DOMException
See Also:
Element.removeAttribute(String)

hasAttribute

public boolean hasAttribute(java.lang.String attrName)
test for an attribute existing

Specified by:
hasAttribute in interface org.w3c.dom.Element
Parameters:
attrName - name of attribute (or null)
Returns:
true if it exists Note that the behaviour for a null parameter (returns false) is not guaranteed in future
See Also:
Element.hasAttribute(String)

getAttribute

public java.lang.String getAttribute(java.lang.String attrName)
get an attribute by name

Specified by:
getAttribute in interface org.w3c.dom.Element
Parameters:
attrName - of attribute
Returns:
the attribute value or null
See Also:
Element.getAttribute(String)

removeAttributeNS

public void removeAttributeNS(java.lang.String namespace,
                              java.lang.String localName)
                       throws org.w3c.dom.DOMException
Remove an attribute. If the removed attribute has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix. If there is no matching attribute, the operation is a no-op.

Specified by:
removeAttributeNS in interface org.w3c.dom.Element
Parameters:
namespace - namespace of attr
localName - local name
Throws:
org.w3c.dom.DOMException
See Also:
Element.removeAttributeNS(String, String)

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.String value)
                  throws org.w3c.dom.DOMException
set or update an attribute.

Specified by:
setAttribute in interface org.w3c.dom.Element
Parameters:
name - attribute name
value - attribute value
Throws:
org.w3c.dom.DOMException
See Also:
Element.setAttribute(String, String)

hasAttributeNS

public boolean hasAttributeNS(java.lang.String namespace,
                              java.lang.String localName)
Test for an attribute

Specified by:
hasAttributeNS in interface org.w3c.dom.Element
Parameters:
namespace -
localName -
Returns:
See Also:
Element.hasAttributeNS(String, String)

getAttributeNode

public org.w3c.dom.Attr getAttributeNode(java.lang.String attrName)
Deprecated. this is not implemented

This unimplemented operation is meand to return an attribute as a node

Specified by:
getAttributeNode in interface org.w3c.dom.Element
Parameters:
attrName -
Returns:
null, always.
See Also:
Element.getAttributeNode(String)

removeAttributeNode

public org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr oldAttr)
                                     throws org.w3c.dom.DOMException
remove a an attribue

Specified by:
removeAttributeNode in interface org.w3c.dom.Element
Parameters:
oldAttr -
Returns:
oldAttr
Throws:
org.w3c.dom.DOMException

setAttributeNode

public org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr newAttr)
                                  throws org.w3c.dom.DOMException
Deprecated. this is not implemented

set the attribute node.

Specified by:
setAttributeNode in interface org.w3c.dom.Element
Parameters:
newAttr -
Returns:
newAttr
Throws:
org.w3c.dom.DOMException
See Also:
Element.setAttributeNode(org.w3c.dom.Attr)

setAttributeNodeNS

public org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr newAttr)
                                    throws org.w3c.dom.DOMException
set an attribute as a node

Specified by:
setAttributeNodeNS in interface org.w3c.dom.Element
Parameters:
newAttr -
Returns:
null
Throws:
org.w3c.dom.DOMException
See Also:
Element.setAttributeNodeNS(org.w3c.dom.Attr)

getElementsByTagName

public org.w3c.dom.NodeList getElementsByTagName(java.lang.String tagName)
Specified by:
getElementsByTagName in interface org.w3c.dom.Element
Parameters:
tagName - tag to look for.
Returns:
a list of elements
See Also:
Element.getElementsByTagName(String)

getAttributeNS

public java.lang.String getAttributeNS(java.lang.String namespaceURI,
                                       java.lang.String localName)
get the attribute with namespace/local name match.

Specified by:
getAttributeNS in interface org.w3c.dom.Element
Parameters:
namespaceURI - namespace
localName - name
Returns:
string value or null if not found
See Also:
Element.getAttributeNS(String, String)

setAttributeNS

public void setAttributeNS(java.lang.String namespaceURI,
                           java.lang.String qualifiedName,
                           java.lang.String value)
                    throws org.w3c.dom.DOMException
set an attribute or alter an existing one

Specified by:
setAttributeNS in interface org.w3c.dom.Element
Parameters:
namespaceURI - namepsace
qualifiedName - qualified name of the attribue
value - value
Throws:
org.w3c.dom.DOMException
See Also:
Element.setAttributeNS(String, String, String)

getAttributeNodeNS

public org.w3c.dom.Attr getAttributeNodeNS(java.lang.String namespace,
                                           java.lang.String localName)
Deprecated. not implemented!

Specified by:
getAttributeNodeNS in interface org.w3c.dom.Element
Parameters:
namespace - namespace
localName - local name
Returns:
null
See Also:
Element.getAttributeNS(String, String)

getElementsByTagNameNS

public org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String namespace,
                                                   java.lang.String localName)
Specified by:
getElementsByTagNameNS in interface org.w3c.dom.Element
Parameters:
namespace - namespace
localName - local name of element
Returns:
(potentially empty) list of elements that match the (namespace,localname) tuple
See Also:
Element.getElementsByTagNameNS(String, String)

item

public org.w3c.dom.Node item(int index)
get a child node

Specified by:
item in interface org.w3c.dom.NodeList
Parameters:
index - index value
Returns:
child or null for out of range value
See Also:
NodeList.item(int)

getLength

public int getLength()
The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.

Specified by:
getLength in interface org.w3c.dom.NodeList
Returns:
number of children
Since:
SAAJ 1.2 : Nodelist Interface
See Also:
NodeList.getLength()

equals

public boolean equals(java.lang.Object obj)
equality test. Does a string match of the two message elements, so is fairly brute force.

Parameters:
obj -
Returns:
See Also:
toString()

getValue

public java.lang.String getValue()
Get the value of the doc as a string. This uses getAsDOM() so is a heavyweight operation.

Specified by:
getValue in interface Node
Overrides:
getValue in class NodeImpl
Returns:
the value of any child node, or null if there is no node/something went wrong during serialization. If the first child is text, the return value is the text itself.
See Also:
;

setValue

public void setValue(java.lang.String value)
Description copied from interface: Node
If this is a Text node then this method will set its value, otherwise it sets the value of the immediate (Text) child of this node. The value of the immediate child of this node can be set only if, there is one child node and that node is a Text node, or if there are no children in which case a child Text node will be created.

Specified by:
setValue in interface Node
Overrides:
setValue in class NodeImpl
Parameters:
value - the text to set

getOwnerDocument

public org.w3c.dom.Document getOwnerDocument()
Description copied from class: NodeImpl
The Document object associated with this node. This is also the Document object used to create new nodes. When this node is a Document or a DocumentType which is not used with any Document yet, this is null.

Specified by:
getOwnerDocument in interface org.w3c.dom.Node
Overrides:
getOwnerDocument in class NodeImpl


Copyright 2003 Apache Web Services Project. A ll Rights Reserved.