Class MessageElement

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

public class MessageElement extends NodeImpl implements SOAPElement, Serializable, 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.
See Also:
  • Field Details

    • log

      protected static org.apache.commons.logging.Log log
    • id

      protected String id
    • href

      protected String href
    • _isRoot

      protected boolean _isRoot
    • message

      protected SOAPEnvelope message
    • context

      protected transient DeserializationContext context
    • typeQName

      protected transient QName typeQName
    • qNameAttrs

      protected Vector qNameAttrs
    • recorder

      protected transient SAX2EventRecorder recorder
    • startEventIndex

      protected int startEventIndex
    • startContentsIndex

      protected int startContentsIndex
    • endEventIndex

      protected int endEventIndex
    • namespaces

      public ArrayList namespaces
    • encodingStyle

      protected String encodingStyle
      Our encoding style, if any
    • fixupDeserializer

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

    • MessageElement

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

      public MessageElement(String namespace, String localPart)
      constructor
      Parameters:
      namespace - namespace of element
      localPart - local name
    • 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(Name eltName)
      construct using a Name implementation,
      Parameters:
      eltName -
      See Also:
    • 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(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(Element elem)
      create a node through a deep copy of the passed in element.
      Parameters:
      elem - name to copy from
    • 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(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
  • Method Details

    • getDeserializationContext

      public DeserializationContext getDeserializationContext()
      Retrieve the DeserializationContext associated with this MessageElement
      Returns:
      The DeserializationContext associated with this MessageElement
    • setFixupDeserializer

      public void setFixupDeserializer(Deserializer dser)
    • getFixupDeserializer

      public 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 String getID()
      get a saved ID
      Returns:
      ID or null for no ID
    • getHref

      public String getHref()
      get a saved href
      Returns:
      href or null
    • getAttributesEx

      public Attributes getAttributesEx()
      get the attributes
      Returns:
      attributes. If this equals
      invalid reference
      NullAttributes.singleton
      it is null
    • 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.
      Specified by:
      cloneNode in interface 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.
    • childDeepCloned

      protected void childDeepCloned(NodeImpl oldNode, NodeImpl newNode)
    • 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:
      Throws:
      CloneNotSupportedException
    • setAllAttributes

      public void setAllAttributes(Attributes attrs)
      set all the attributes of this instance
      Parameters:
      attrs - a new attributes list
    • detachAllChildren

      public void detachAllChildren()
      remove all children.
    • getCompleteAttributes

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

      public String getName()
      get the local name of this element
      Returns:
      name
    • setName

      public void setName(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(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 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:
    • 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 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(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:
      IllegalArgumentException - if there was a problem in the encoding style being set.
      SOAPException
      See Also:
    • 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 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(ArrayList namespaces)
      set a new namespace mapping list
      Parameters:
      namespaces -
    • 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
    • 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.
      Throws:
      Exception
    • 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.
      Throws:
      SOAPException
    • getValueAsType

      public Object getValueAsType(QName type) throws Exception
      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(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:
      Exception
    • 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 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 -
    • 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.
    • getAttributeValue

      public String getAttributeValue(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 Document getAsDocument() throws Exception
      get the message element as a document. This serializes the element to a string and then parses it.
      Returns:
      Throws:
      Exception
      See Also:
    • 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.
      Throws:
      Exception - if anything went wrong
    • 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
      Throws:
      Exception
      See Also:
    • publishToHandler

      public void publishToHandler(ContentHandler handler) throws SAXException
      replay the sax events to a handler
      Parameters:
      handler -
      Throws:
      SAXException
    • publishContents

      public void publishContents(ContentHandler handler) throws SAXException
      replay the sax events to a SAX content handles
      Parameters:
      handler -
      Throws:
      SAXException
    • 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 class NodeImpl
      Parameters:
      outputContext - the SerializationContext we will write to.
      Throws:
      Exception
    • outputImpl

      protected void outputImpl(SerializationContext outputContext) throws Exception
      override point -output to a serialization context.
      Parameters:
      outputContext - destination.
      Throws:
      Exception - if something went wrong.
    • 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.
      Overrides:
      toString in class Object
      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:
    • 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:
    • 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:
    • 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:
    • 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:
    • addTextNode

      public SOAPElement addTextNode(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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • getElementName

      public Name getElementName()
      get the full name of the element
      Specified by:
      getElementName in interface SOAPElement
      Returns:
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • getTagName

      public String getTagName()
      Specified by:
      getTagName in interface Element
      Returns:
      the name of the element
      See Also:
    • removeAttribute

      public void removeAttribute(String attrName) throws DOMException
      remove a named attribute.
      Specified by:
      removeAttribute in interface Element
      Parameters:
      attrName - name of the attributes
      Throws:
      DOMException
      See Also:
    • hasAttribute

      public boolean hasAttribute(String attrName)
      test for an attribute existing
      Specified by:
      hasAttribute in interface 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:
    • getAttribute

      public String getAttribute(String attrName)
      get an attribute by name
      Specified by:
      getAttribute in interface Element
      Parameters:
      attrName - of attribute
      Returns:
      the attribute value or null
      See Also:
    • 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.
      Specified by:
      removeAttributeNS in interface Element
      Parameters:
      namespace - namespace of attr
      localName - local name
      Throws:
      DOMException
      See Also:
    • setAttribute

      public void setAttribute(String name, String value) throws DOMException
      set or update an attribute.
      Specified by:
      setAttribute in interface Element
      Parameters:
      name - attribute name
      value - attribute value
      Throws:
      DOMException
      See Also:
    • hasAttributeNS

      public boolean hasAttributeNS(String namespace, String localName)
      Test for an attribute
      Specified by:
      hasAttributeNS in interface Element
      Parameters:
      namespace -
      localName -
      Returns:
      See Also:
    • getAttributeNode

      public Attr getAttributeNode(String attrName)
      Deprecated.
      this is not implemented
      This unimplemented operation is meand to return an attribute as a node
      Specified by:
      getAttributeNode in interface Element
      Parameters:
      attrName -
      Returns:
      null, always.
      See Also:
    • removeAttributeNode

      public Attr removeAttributeNode(Attr oldAttr) throws DOMException
      remove a an attribue
      Specified by:
      removeAttributeNode in interface Element
      Parameters:
      oldAttr -
      Returns:
      oldAttr
      Throws:
      DOMException
    • setAttributeNode

      public Attr setAttributeNode(Attr newAttr) throws DOMException
      Deprecated.
      this is not implemented
      set the attribute node.
      Specified by:
      setAttributeNode in interface Element
      Parameters:
      newAttr -
      Returns:
      newAttr
      Throws:
      DOMException
      See Also:
    • setAttributeNodeNS

      public Attr setAttributeNodeNS(Attr newAttr) throws DOMException
      set an attribute as a node
      Specified by:
      setAttributeNodeNS in interface Element
      Parameters:
      newAttr -
      Returns:
      null
      Throws:
      DOMException
      See Also:
    • getElementsByTagName

      public NodeList getElementsByTagName(String tagName)
      Specified by:
      getElementsByTagName in interface Element
      Parameters:
      tagName - tag to look for.
      Returns:
      a list of elements
      See Also:
    • getAttributeNS

      public String getAttributeNS(String namespaceURI, String localName)
      get the attribute with namespace/local name match.
      Specified by:
      getAttributeNS in interface Element
      Parameters:
      namespaceURI - namespace
      localName - name
      Returns:
      string value or null if not found
      See Also:
    • setAttributeNS

      public void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException
      set an attribute or alter an existing one
      Specified by:
      setAttributeNS in interface Element
      Parameters:
      namespaceURI - namepsace
      qualifiedName - qualified name of the attribue
      value - value
      Throws:
      DOMException
      See Also:
    • getAttributeNodeNS

      public Attr getAttributeNodeNS(String namespace, String localName)
      Deprecated.
      not implemented!
      Specified by:
      getAttributeNodeNS in interface Element
      Parameters:
      namespace - namespace
      localName - local name
      Returns:
      null
      See Also:
    • getElementsByTagNameNS

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

      protected NodeList getElementsNS(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
    • item

      public Node item(int index)
      get a child node
      Specified by:
      item in interface NodeList
      Parameters:
      index - index value
      Returns:
      child or null for out of range value
      See Also:
    • 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 NodeList
      Returns:
      number of children
      Since:
      SAAJ 1.2 : Nodelist Interface
      See Also:
    • findElement

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

      public boolean equals(Object obj)
      equality test. Does a string match of the two message elements, so is fairly brute force.
      Overrides:
      equals in class Object
      Parameters:
      obj -
      Returns:
      See Also:
    • getValue

      public 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:
    • getValueDOM

      protected String getValueDOM()
    • setValue

      public void setValue(String value)
      Description copied from class: NodeImpl
      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 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 Node
      Overrides:
      getOwnerDocument in class NodeImpl