org.apache.axis.message

Class MessageElement

Implemented Interfaces:
Cloneable, org.w3c.dom.Element, Node, org.w3c.dom.NodeList, Serializable, SOAPElement
Known Direct Subclasses:
DetailEntry, RPCParam, SOAPBody, SOAPBodyElement, SOAPEnvelope, SOAPFaultElement, SOAPHeader, SOAPHeaderElement

public class MessageElement
extends NodeImpl
implements SOAPElement, Serializable, org.w3c.dom.NodeList, 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.

Nested Class Summary

protected static class
MessageElement.QNameAttr
class that represents a qname in a the qNameAttrs vector.

Field Summary

protected boolean
_isRoot
protected DeserializationContext
context
protected String
encodingStyle
Our encoding style, if any
protected int
endEventIndex
protected Deserializer
fixupDeserializer
!!! TODO : Make sure this handles multiple targets
protected String
href
protected String
id
protected static Log
log
protected SOAPEnvelope
message
ArrayList
namespaces
protected Vector
qNameAttrs
protected SAX2EventRecorder
recorder
protected int
startContentsIndex
protected int
startEventIndex
protected QName
typeQName

Fields inherited from class org.apache.axis.message.NodeImpl

_isDirty, attributes, children, document, log, name, namespaceURI, parent, prefix, textRep

Constructor Summary

MessageElement()
No-arg constructor for building messages?
MessageElement(CharacterData text)
construct a text element.
MessageElement(Element elem)
create a node through a deep copy of the passed in element.
MessageElement(String namespace, String localPart)
constructor
MessageElement(String namespace, String localPart, Object value)
constructor binding the internal object value field to the value parameter
MessageElement(String localPart, String prefix, String namespace)
constructor.
MessageElement(String namespace, String localPart, String prefix, Attributes attributes, DeserializationContext context)
Advanced constructor used for deserialization.
MessageElement(QName name)
constructor declaring the qualified name of the node
MessageElement(QName name, Object value)
constructor declaring the qualified name of the node and its value
MessageElement(Name eltName)
construct using a Name implementation,

Method Summary

void
addAttribute(String namespace, String localName, String value)
add a normal CDATA/text attribute.
void
addAttribute(String attrPrefix, String namespace, String localName, String value)
add an attribute.
void
addAttribute(String namespace, String localName, QName value)
add an attribute to the qname vector.
SOAPElement
addAttribute(Name attrName, String value)
add a new 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(String localName)
add a child element in the message element's own namespace
SOAPElement
addChildElement(String localName, String prefixName)
add a child element
SOAPElement
addChildElement(String localName, String childPrefix, String uri)
add a child element
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.
void
addMapping(Mapping map)
add a new namespace/prefix mapping
SOAPElement
addNamespaceDeclaration(String prefix, String uri)
create a Mapping mapping and add to our namespace list.
SOAPElement
addTextNode(String s)
add a text node to the document.
protected void
childDeepCloned(NodeImpl oldNode, NodeImpl newNode)
Node
cloneNode(boolean deep)
Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
protected Object
cloning()
protected clone method (not public) copied status ------------------- protected String name ; Y protected String prefix ; Y protected String namespaceURI ; Y protected transient Attributes attributes Y protected String id; Y? protected String href; Y? protected boolean _isRoot = true; Y? protected SOAPEnvelope message = null; N? protected transient DeserializationContext context; Y? protected transient QName typeQName = null; Y? protected Vector qNameAttrs = null; Y? protected transient SAX2EventRecorder recorder = null; N? protected int startEventIndex = 0; N? protected int startContentsIndex = 0; N? protected int endEventIndex = -1; N? protected CharacterData textRep = null; Y? protected MessageElement parent = null; N public ArrayList namespaces = null; Y protected String encodingStyle = null; N? private Object objectValue = null; N?
void
detachAllChildren()
remove all children.
boolean
equals(Object obj)
equality test.
protected MessageElement
findElement(Vector vec, String namespace, String localPart)
Iterator
getAllAttributes()
Get an interator to all the attributes of the node.
Element
getAsDOM()
create a DOM from the message element, by serializing and deserializing the element
Document
getAsDocument()
get the message element as a document.
String
getAsString()
get the message element as a string.
String
getAttribute(String attrName)
get an attribute by name
String
getAttributeNS(String namespaceURI, String localName)
get the attribute with namespace/local name match.
Attr
getAttributeNode(String attrName)
Deprecated. this is not implemented
Attr
getAttributeNodeNS(String namespace, String localName)
Deprecated. not implemented!
String
getAttributeValue(String localName)
get the value of an attribute
String
getAttributeValue(Name attrName)
Get the value of an attribute whose namespace and local name are described.
Attributes
getAttributesEx()
get the attributes
MessageElement
getChildElement(QName qname)
Convenience method to get the first matching child for a given QName.
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.
Iterator
getChildElements(QName qname)
get an iterator over child elements
Iterator
getChildElements(Name childName)
get an iterator over child elements
List
getChildren()
get a list of children
Attributes
getCompleteAttributes()
Obtain an Attributes collection consisting of all attributes for this MessageElement, including namespace declarations.
DeserializationContext
getDeserializationContext()
Retrieve the DeserializationContext associated with this MessageElement
Name
getElementName()
get the full name of the element
NodeList
getElementsByTagName(String tagName)
NodeList
getElementsByTagNameNS(String namespace, String localName)
protected NodeList
getElementsNS(org.w3c.dom.Element parentElement, String namespace, String localName)
helper method for recusively getting the element that has namespace URI and localname
String
getEncodingStyle()
Get the encoding style.
SOAPEnvelope
getEnvelope()
get our current envelope
Deserializer
getFixupDeserializer()
String
getHref()
get a saved href
String
getID()
get a saved ID
int
getLength()
The number of nodes in the list.
String
getName()
get the local name of this element
Iterator
getNamespacePrefixes()
get an iterator of the prefixes.
String
getNamespaceURI(String searchPrefix)
map from a prefix to a namespace.
Object
getObjectValue()
Returns value of the node as an object of registered type.
Object
getObjectValue(Class cls)
Returns value of the node as an object of registered type.
Document
getOwnerDocument()
String
getPrefix(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
String
getTagName()
QName
getType()
get the element's type.
String
getValue()
Get the value of the doc as a string.
Object
getValueAsType(QName type)
Object
getValueAsType(QName type, Class cls)
This is deserialization logic mixed in to our element class.
protected String
getValueDOM()
Iterator
getVisibleNamespacePrefixes()
get an iterator over visible prefixes.
boolean
hasAttribute(String attrName)
test for an attribute existing
boolean
hasAttributeNS(String namespace, String localName)
Test for an attribute
boolean
isRoot()
get the is-root flag
Node
item(int index)
get a child node
void
output(SerializationContext outputContext)
This is the public output() method, which will always simply use the recorded SAX stream for this element if it is available.
protected void
outputImpl(SerializationContext outputContext)
override point -output to a serialization context.
void
publishContents(ContentHandler handler)
replay the sax events to a SAX content handles
void
publishToHandler(ContentHandler handler)
replay the sax events to a handler
void
removeAttribute(String attrName)
remove a named attribute.
boolean
removeAttribute(Name attrName)
remove an element
void
removeAttributeNS(String namespace, String localName)
Remove an attribute.
Attr
removeAttributeNode(Attr oldAttr)
remove a an attribue
void
removeContents()
remove all chidlren.
boolean
removeNamespaceDeclaration(String namespacePrefix)
remove a namespace declaration.
void
setAllAttributes(Attributes attrs)
set all the attributes of this instance
void
setAttribute(String name, String value)
set or update an attribute.
void
setAttribute(String namespace, String localName, String value)
Set an attribute, adding the attribute if it isn't already present in this element, and changing the value if it is.
void
setAttributeNS(String namespaceURI, String qualifiedName, String value)
set an attribute or alter an existing one
Attr
setAttributeNode(Attr newAttr)
Deprecated. this is not implemented
Attr
setAttributeNodeNS(Attr newAttr)
set an attribute as a node
void
setContentsIndex(int index)
set the index point of our content's starting in the event recording
void
setEncodingStyle(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(Deserializer dser)
void
setNSMappings(ArrayList namespaces)
set a new namespace mapping list
void
setName(String name)
set the local part of this element's name
void
setNamespaceURI(String nsURI)
set the namespace URI of the element
void
setObjectValue(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(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.
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, cloneNode, compareDocumentPosition, convertAttrSAXtoDOM, detachNode, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParent, getParentElement, getParentNode, getPrefix, getPreviousSibling, getSchemaTypeInfo, getTextContent, getUserData, getValue, hasAttributes, hasChildNodes, initializeChildren, insertBefore, isDefaultNamespace, isDirty, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, makeAttributesEditable, normalize, output, recycleNode, removeChild, replaceChild, setDirty, setIdAttribute, setIdAttributeNS, setIdAttributeNode, setNodeValue, setOwnerDocument, setParent, setParentElement, setPrefix, setTextContent, setUserData, setValue

Field Details

_isRoot

protected boolean _isRoot


context

protected DeserializationContext context


encodingStyle

protected String encodingStyle
Our encoding style, if any


endEventIndex

protected int endEventIndex


fixupDeserializer

protected Deserializer fixupDeserializer
!!! TODO : Make sure this handles multiple targets


href

protected String href


id

protected String id


log

protected static Log log


message

protected SOAPEnvelope message


namespaces

public ArrayList namespaces


qNameAttrs

protected Vector qNameAttrs


recorder

protected SAX2EventRecorder recorder


startContentsIndex

protected int startContentsIndex


startEventIndex

protected int startEventIndex


typeQName

protected QName typeQName

Constructor Details

MessageElement

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


MessageElement

public MessageElement(CharacterData text)
construct a text element.

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


MessageElement

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

Parameters:
elem - name to copy from


MessageElement

public MessageElement(String namespace,
                      String localPart)
constructor

Parameters:
namespace - namespace of element
localPart - local name


MessageElement

public MessageElement(String namespace,
                      String localPart,
                      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(String localPart,
                      String prefix,
                      String namespace)
constructor. Automatically adds a namespace-prefix mapping to the mapping table

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


MessageElement

public MessageElement(String namespace,
                      String localPart,
                      String prefix,
                      Attributes attributes,
                      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


MessageElement

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

Parameters:
name - naming information


MessageElement

public MessageElement(QName name,
                      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(Name eltName)
construct using a Name implementation,

Parameters:
eltName -

See Also:
MessageElement(String,String,String)

Method Details

addAttribute

public void addAttribute(String namespace,
                         String localName,
                         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(String attrPrefix,
                         String namespace,
                         String localName,
                         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 -


addAttribute

public void addAttribute(String namespace,
                         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 SOAPElement addAttribute(Name attrName,
                                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(Name,String)


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.


addChildElement

public SOAPElement addChildElement(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(String localName,
                                   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(String localName,
                                   String childPrefix,
                                   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(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(Name)


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

See Also:
SOAPElement.addChildElement(SOAPElement)


addMapping

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

Parameters:
map - new mapping to add


addNamespaceDeclaration

public SOAPElement addNamespaceDeclaration(String prefix,
                                           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)


addTextNode

public SOAPElement addTextNode(String s)
            throws SOAPException
add a text node to the document.
Specified by:
addTextNode in interface SOAPElement

Returns:
ourselves

See Also:
SOAPElement.addTextNode(String)


childDeepCloned

protected void childDeepCloned(NodeImpl oldNode,
                               NodeImpl newNode)


cloneNode

public 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.
Overrides:
cloneNode in interface 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.


cloning

protected Object cloning()
            throws CloneNotSupportedException
protected clone method (not public) copied status ------------------- protected String name ; Y protected String prefix ; Y protected String namespaceURI ; Y protected transient Attributes attributes Y protected String id; Y? protected String href; Y? protected boolean _isRoot = true; Y? protected SOAPEnvelope message = null; N? protected transient DeserializationContext context; Y? protected transient QName typeQName = null; Y? protected Vector qNameAttrs = null; Y? protected transient SAX2EventRecorder recorder = null; N? protected int startEventIndex = 0; N? protected int startContentsIndex = 0; N? protected int endEventIndex = -1; N? protected CharacterData textRep = null; Y? protected MessageElement parent = null; N public ArrayList namespaces = null; Y protected String encodingStyle = null; N? private Object objectValue = null; N?

Returns:


detachAllChildren

public void detachAllChildren()
remove all children.


equals

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

Parameters:
obj -

Returns:

See Also:
toString()


findElement

protected MessageElement findElement(Vector vec,
                                     String namespace,
                                     String localPart)


getAllAttributes

public 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()


getAsDOM

public Element getAsDOM()
            throws Exception
create a DOM from the message element, by serializing and deserializing the element

Returns:
the root document element of the element

See Also:
getAsString(), getAsDocument()


getAsDocument

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

Returns:

See Also:
getAsString()


getAsString

public String getAsString()
            throws 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.


getAttribute

public String getAttribute(String attrName)
get an attribute by name

Parameters:
attrName - of attribute

Returns:
the attribute value or null

See Also:
org.w3c.dom.Element.getAttribute(String)


getAttributeNS

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

Parameters:
namespaceURI - namespace
localName - name

Returns:
string value or null if not found

See Also:
org.w3c.dom.Element.getAttributeNS(String, String)


getAttributeNode

public Attr getAttributeNode(String attrName)

Deprecated. this is not implemented

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

Parameters:
attrName -

Returns:
null, always.

See Also:
org.w3c.dom.Element.getAttributeNode(String)


getAttributeNodeNS

public Attr getAttributeNodeNS(String namespace,
                               String localName)

Deprecated. not implemented!

Parameters:
namespace - namespace
localName - local name

Returns:
null

See Also:
org.w3c.dom.Element.getAttributeNS(String, String)


getAttributeValue

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

Parameters:
localName -

Returns:
the value or null


getAttributeValue

public 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(Name)


getAttributesEx

public Attributes getAttributesEx()
get the attributes

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


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


getChildElements

public 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 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(Name)


getChildren

public List getChildren()
get a list of children

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


getCompleteAttributes

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

Returns:
Attributes collection


getDeserializationContext

public DeserializationContext getDeserializationContext()
Retrieve the DeserializationContext associated with this MessageElement

Returns:
The DeserializationContext associated with this MessageElement


getElementName

public Name getElementName()
get the full name of the element
Specified by:
getElementName in interface SOAPElement

Returns:

See Also:
SOAPElement.getElementName()


getElementsByTagName

public NodeList getElementsByTagName(String tagName)

Parameters:
tagName - tag to look for.

Returns:
a list of elements

See Also:
org.w3c.dom.Element.getElementsByTagName(String)


getElementsByTagNameNS

public NodeList getElementsByTagNameNS(String namespace,
                                       String localName)

Parameters:
namespace - namespace
localName - local name of element

Returns:
(potentially empty) list of elements that match the (namespace,localname) tuple

See Also:
org.w3c.dom.Element.getElementsByTagNameNS(String, String)


getElementsNS

protected NodeList getElementsNS(org.w3c.dom.Element parentElement,
                                 String namespace,
                                 String localName)
helper method for recusively getting the element that has namespace URI and localname

Parameters:
parentElement - parent element
namespace - namespace
localName - local name of element

Returns:
(potentially empty) list of elements that match the (namespace,localname) tuple


getEncodingStyle

public 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


getEnvelope

public SOAPEnvelope getEnvelope()
get our current envelope

Returns:
envelope or null.


getFixupDeserializer

public Deserializer getFixupDeserializer()


getHref

public String getHref()
get a saved href

Returns:
href or null


getID

public String getID()
get a saved ID

Returns:
ID or null for no ID


getLength

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

Returns:
number of children

Since:
SAAJ 1.2 : Nodelist Interface

See Also:
org.w3c.dom.NodeList.getLength()


getName

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

Returns:
name


getNamespacePrefixes

public 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()


getNamespaceURI

public String getNamespaceURI(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 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 Object getObjectValue(Class cls)
            throws 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.


getOwnerDocument

public Document getOwnerDocument()
Overrides:
getOwnerDocument in interface NodeImpl


getPrefix

public String getPrefix(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


getQName

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

Returns:
a QName describing the name of thsi element


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.


getRecorder

public SAX2EventRecorder getRecorder()
get the event recorder

Returns:
recorder or null


getTagName

public String getTagName()

Returns:
the name of the element

See Also:
org.w3c.dom.Element.getTagName()


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:


getValue

public String getValue()
Specified by:
getValue in interface Node
Overrides:
getValue in interface 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:
javax.xml.soap.Node.getValue() ;


getValueAsType

public Object getValueAsType(QName type)
            throws Exception


getValueAsType

public Object getValueAsType(QName type,
                             Class cls)
            throws 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.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


getValueDOM

protected String getValueDOM()


getVisibleNamespacePrefixes

public Iterator getVisibleNamespacePrefixes()
get an iterator over visible prefixes. This includes all declared in parent elements
Specified by:
getVisibleNamespacePrefixes in interface SOAPElement

Returns:
an iterator.


hasAttribute

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

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:
org.w3c.dom.Element.hasAttribute(String)


hasAttributeNS

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

Parameters:
namespace -
localName -

Returns:

See Also:
org.w3c.dom.Element.hasAttributeNS(String, String)


isRoot

public boolean isRoot()
get the is-root flag

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


item

public Node item(int index)
get a child node

Parameters:
index - index value

Returns:
child or null for out of range value

See Also:
org.w3c.dom.NodeList.item(int)


output

public final void output(SerializationContext outputContext)
            throws 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 interface NodeImpl

Parameters:
outputContext - the SerializationContext we will write to.


outputImpl

protected void outputImpl(SerializationContext outputContext)
            throws Exception
override point -output to a serialization context.

Parameters:
outputContext - destination.


publishContents

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

Parameters:
handler -


publishToHandler

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

Parameters:
handler -


removeAttribute

public void removeAttribute(String attrName)
            throws DOMException
remove a named attribute.

Parameters:
attrName - name of the attributes

See Also:
org.w3c.dom.Element.removeAttribute(String)


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(Name)


removeAttributeNS

public void removeAttributeNS(String namespace,
                              String localName)
            throws 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.

Parameters:
namespace - namespace of attr
localName - local name

See Also:
org.w3c.dom.Element.removeAttributeNS(String, String)


removeAttributeNode

public Attr removeAttributeNode(Attr oldAttr)
            throws DOMException
remove a an attribue

Parameters:
oldAttr -

Returns:
oldAttr


removeContents

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


removeNamespaceDeclaration

public boolean removeNamespaceDeclaration(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)


setAllAttributes

public void setAllAttributes(Attributes attrs)
set all the attributes of this instance

Parameters:
attrs - a new attributes list


setAttribute

public void setAttribute(String name,
                         String value)
            throws DOMException
set or update an attribute.

Parameters:
name - attribute name
value - attribute value

See Also:
org.w3c.dom.Element.setAttribute(String, String)


setAttribute

public void setAttribute(String namespace,
                         String localName,
                         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.


setAttributeNS

public void setAttributeNS(String namespaceURI,
                           String qualifiedName,
                           String value)
            throws DOMException
set an attribute or alter an existing one

Parameters:
namespaceURI - namepsace
qualifiedName - qualified name of the attribue
value - value

See Also:
org.w3c.dom.Element.setAttributeNS(String, String, String)


setAttributeNode

public Attr setAttributeNode(Attr newAttr)
            throws DOMException

Deprecated. this is not implemented

set the attribute node.

Parameters:
newAttr -

Returns:
newAttr

See Also:
org.w3c.dom.Element.setAttributeNode(org.w3c.dom.Attr)


setAttributeNodeNS

public Attr setAttributeNodeNS(Attr newAttr)
            throws DOMException
set an attribute as a node

Parameters:
newAttr -

Returns:
null

See Also:
org.w3c.dom.Element.setAttributeNodeNS(org.w3c.dom.Attr)


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.


setEncodingStyle

public void setEncodingStyle(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

See Also:
getEncodingStyle()


setEndIndex

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

Parameters:
endIndex - end value


setEnvelope

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

Parameters:
env -


setFixupDeserializer

public void setFixupDeserializer(Deserializer dser)


setNSMappings

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

Parameters:
namespaces -


setName

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

Parameters:
name -


setNamespaceURI

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

Parameters:
nsURI - new namespace URI


setObjectValue

public void setObjectValue(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.


setQName

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

Parameters:
qName - qualified name


setRecorder

public void setRecorder(SAX2EventRecorder rec)
set the event recorder

Parameters:
rec -


setType

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

Parameters:
qname -


setValue

public void setValue(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. 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 interface NodeImpl

Parameters:
value - the text to set


toString

public 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


Copyright B) 2005 Apache Web Services Project. All Rights Reserved.