org.apache.xml.serializer.dom3

## Class LSSerializerImpl

- java.lang.Object
- - org.apache.xml.serializer.dom3.LSSerializerImpl

All Implemented Interfaces:
  DOMConfiguration, LSSerializer

    public final class LSSerializerImpl
    extends java.lang.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
Usage:
  **For internal use only**

### Constructor Summary

Constructors
Constructor and Description
`LSSerializerImpl()` Constructor: Creates a LSSerializerImpl object.

### Method Summary

Methods
`boolean` `canSetParameter(java.lang.String name, java.lang.Object value)` Checks if setting a parameter to a specific value is supported.
`DOMConfiguration` `getDomConfig()` Returns the DOMConfiguration of the LSSerializer.
`DOMErrorHandler` `getErrorHandler()` This method returns the LSSerializer's error handler.
`LSSerializerFilter` `getFilter()` Returns the DOMConfiguration of the LSSerializer.
`java.lang.String` `getNewLine()` Returns the End-Of-Line sequence of characters to be used in the XML being serialized.
`java.lang.Object` `getParameter(java.lang.String name)` This method returns the value of a parameter if known.
`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
`void` `initializeSerializerProps()` Initializes the underlying serializer's configuration depending on the default DOMConfiguration parameters.
`void` `setFilter(LSSerializerFilter filter)` Set a LSSerilizerFilter on the LSSerializer.
`void` `setNewLine(java.lang.String newLine)` Sets the End-Of-Line sequence of characters to be used in the XML being serialized.
`void` `setParameter(java.lang.String name, java.lang.Object value)` This method sets the value of the named parameter.
`boolean` `write(Node nodeArg, LSOutput destination)` Serializes the specified node to the specified LSOutput and returns true if the Node was successfully serialized.
`java.lang.String` `writeToString(Node nodeArg)` Serializes the specified node and returns a String with the serialized data to the caller.
`boolean` `writeToURI(Node nodeArg, java.lang.String uri)` Serializes the specified node to the specified URI and returns true if the Node was successfully serialized.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### 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 Detail

#### 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.

Usage:
  **For internal use only**

#### canSetParameter

    public boolean canSetParameter(java.lang.String name,
                          java.lang.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 java.lang.Object getParameter(java.lang.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(java.lang.String name,
                    java.lang.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 java.lang.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(java.lang.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 java.lang.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,
                     java.lang.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)`

#### getErrorHandler

    public DOMErrorHandler getErrorHandler()

This method returns the LSSerializer's error handler.

Returns:
  Returns the fDOMErrorHandler.