Class LSSerializerImpl

java.lang.Object
org.apache.xml.serializer.dom3.LSSerializerImpl
All Implemented Interfaces:
DOMConfiguration, LSSerializer

public final class LSSerializerImpl
extends Object
implements DOMConfiguration, LSSerializer
Implemenatation of DOM Level 3 org.w3c.ls.LSSerializer and org.w3c.dom.ls.DOMConfiguration. Serialization is achieved by delegating serialization calls to org.apache.xml.serializer.ToStream or one of its derived classes depending on the serialization method, while walking the DOM in DOM3TreeWalker.
Version:
$Id:
See Also:
org.w3c.dom.ls.LSSerializer, org.w3c.dom.DOMConfiguration
  • Field Details

    • fFeatures

      protected int fFeatures
  • Constructor Details

    • LSSerializerImpl

      public LSSerializerImpl()
      Constructor: Creates a LSSerializerImpl object. The underlying XML 1.0 or XML 1.1 org.apache.xml.serializer.Serializer object is created and initialized the first time any of the write methods are invoked to serialize the Node. Subsequent write methods on the same LSSerializerImpl object will use the previously created Serializer object.
  • Method Details

    • initializeSerializerProps

      public void initializeSerializerProps()
      Initializes the underlying serializer's configuration depending on the default DOMConfiguration parameters. This method must be called before a node is to be serialized.
    • canSetParameter

      public boolean canSetParameter​(String name, Object value)
      Checks if setting a parameter to a specific value is supported.
      Specified by:
      canSetParameter in interface DOMConfiguration
      Parameters:
      name - A String containing the DOMConfiguration parameter name.
      value - An Object specifying the value of the corresponding parameter.
      Returns:
      true if the parameter could be successfully set to the specified value, or false if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.
      Since:
      DOM Level 3
      See Also:
      DOMConfiguration.canSetParameter(java.lang.String, java.lang.Object)
    • getParameter

      public Object getParameter​(String name) throws DOMException
      This method returns the value of a parameter if known.
      Specified by:
      getParameter in interface DOMConfiguration
      Parameters:
      name - A String containing the DOMConfiguration parameter name whose value is to be returned.
      Returns:
      Object The value of the parameter if known.
      Throws:
      DOMException - NOT_FOUND_ERR: Raised when the parameter name is not recognized.
      See Also:
      DOMConfiguration.getParameter(java.lang.String)
    • getParameterNames

      public DOMStringList getParameterNames()
      This method returns a of the parameters supported by this DOMConfiguration object and for which at least one value can be set by the application
      Specified by:
      getParameterNames in interface DOMConfiguration
      Returns:
      DOMStringList A list of DOMConfiguration parameters recognized by the serializer
      See Also:
      DOMConfiguration.getParameterNames()
    • setParameter

      public void setParameter​(String name, Object value) throws DOMException
      This method sets the value of the named parameter.
      Specified by:
      setParameter in interface DOMConfiguration
      Parameters:
      name - A String containing the DOMConfiguration parameter name.
      value - An Object contaiing the parameters value to set.
      Throws:
      DOMException - NOT_FOUND_ERR: Raised when the parameter name is not recognized.
      NOT_SUPPORTED_ERR: Raised when the parameter name is recognized but the requested value cannot be set.
      TYPE_MISMATCH_ERR: Raised if the value type for this parameter name is incompatible with the expected value type.
      See Also:
      DOMConfiguration.setParameter(java.lang.String, java.lang.Object)
    • getDomConfig

      public DOMConfiguration getDomConfig()
      Returns the DOMConfiguration of the LSSerializer.
      Specified by:
      getDomConfig in interface LSSerializer
      Returns:
      A DOMConfiguration object.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.getDomConfig()
    • getFilter

      public LSSerializerFilter getFilter()
      Returns the DOMConfiguration of the LSSerializer.
      Specified by:
      getFilter in interface LSSerializer
      Returns:
      A LSSerializerFilter object.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.getFilter()
    • getNewLine

      public String getNewLine()
      Returns the End-Of-Line sequence of characters to be used in the XML being serialized. If none is set a default "\n" is returned.
      Specified by:
      getNewLine in interface LSSerializer
      Returns:
      A String containing the end-of-line character sequence used in serialization.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.getNewLine()
    • setFilter

      public void setFilter​(LSSerializerFilter filter)
      Set a LSSerilizerFilter on the LSSerializer. When set, the filter is called before each node is serialized which depending on its implemention determines if the node is to be serialized or not.
      Specified by:
      setFilter in interface LSSerializer
      Parameters:
      filter - A LSSerializerFilter to be applied to the stream to serialize.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.setFilter(org.w3c.dom.ls.LSSerializerFilter)
    • setNewLine

      public void setNewLine​(String newLine)
      Sets the End-Of-Line sequence of characters to be used in the XML being serialized. Setting this attribute to null will reset its value to the default value i.e. "\n".
      Specified by:
      setNewLine in interface LSSerializer
      Parameters:
      newLine - a String that is the end-of-line character sequence to be used in serialization.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.setNewLine(java.lang.String)
    • write

      public boolean write​(Node nodeArg, LSOutput destination) throws LSException
      Serializes the specified node to the specified LSOutput and returns true if the Node was successfully serialized.
      Specified by:
      write in interface LSSerializer
      Parameters:
      nodeArg - The Node to serialize.
      destination - The destination for the serialized DOM.
      Returns:
      Returns true if node was successfully serialized. Return false in case the normal processing stopped but the implementation kept serializing the document; the result of the serialization being implementation dependent then.
      Throws:
      LSException - SERIALIZE_ERR: Raised if the LSSerializer was unable to serialize the node.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.write(org.w3c.dom.Node, org.w3c.dom.ls.LSOutput)
    • writeToString

      public String writeToString​(Node nodeArg) throws DOMException, LSException
      Serializes the specified node and returns a String with the serialized data to the caller.
      Specified by:
      writeToString in interface LSSerializer
      Parameters:
      nodeArg - The Node to serialize.
      Returns:
      Returns the serialized data.
      Throws:
      LSException - SERIALIZE_ERR: Raised if the LSSerializer was unable to serialize the node.
      DOMException - DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to fit in a DOMString.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.writeToString(org.w3c.dom.Node)
    • writeToURI

      public boolean writeToURI​(Node nodeArg, String uri) throws LSException
      Serializes the specified node to the specified URI and returns true if the Node was successfully serialized.
      Specified by:
      writeToURI in interface LSSerializer
      Parameters:
      nodeArg - The Node to serialize.
      uri - The URI to write to.
      Returns:
      Returns true if node was successfully serialized. Return false in case the normal processing stopped but the implementation kept serializing the document; the result of the serialization being implementation dependent then.
      Throws:
      LSException - SERIALIZE_ERR: Raised if the LSSerializer was unable to serialize the node.
      Since:
      DOM Level 3
      See Also:
      LSSerializer.writeToURI(org.w3c.dom.Node, String)
    • getXMLVersion

      protected String getXMLVersion​(Node nodeArg)
      Determines the XML Version of the Document Node to serialize. If the Document Node is not a DOM Level 3 Node, then the default version returned is 1.0.
      Parameters:
      nodeArg - The Node to serialize
      Returns:
      A String containing the version pseudo-attribute of the XMLDecl.
      Throws:
      Throwable - if the DOM implementation does not implement Document.getXmlVersion()
    • getXMLEncoding

      protected String getXMLEncoding​(Node nodeArg)
      Determines the XML Encoding of the Document Node to serialize. If the Document Node is not a DOM Level 3 Node, then the default encoding "UTF-8" is returned.
      Parameters:
      nodeArg - The Node to serialize
      Returns:
      A String containing the encoding pseudo-attribute of the XMLDecl.
      Throws:
      Throwable - if the DOM implementation does not implement Document.getXmlEncoding()
    • getInputEncoding

      protected String getInputEncoding​(Node nodeArg)
      Determines the Input Encoding of the Document Node to serialize. If the Document Node is not a DOM Level 3 Node, then null is returned.
      Parameters:
      nodeArg - The Node to serialize
      Returns:
      A String containing the input encoding.
    • getErrorHandler

      public DOMErrorHandler getErrorHandler()
      This method returns the LSSerializer's error handler.
      Returns:
      Returns the fDOMErrorHandler.