org.apache.axiom.om.ds

## Class AbstractOMDataSource

- java.lang.Object
- - org.apache.axiom.om.ds.AbstractOMDataSource

- All Implemented Interfaces:
    OMDataSource, OMDataSourceExt
  Direct Known Subclasses:
    AbstractPullOMDataSource, AbstractPushOMDataSource

      public abstract class AbstractOMDataSource
      extends Object
      implements OMDataSourceExt

  Base class for `OMDataSourceExt` implementations. This class should only be used by data sources that can equally well produce an `XMLStreamReader` and have a meaningful implementation of `OMDataSource.serialize(XMLStreamWriter)`. Most implementations should actually use `AbstractPullOMDataSource` or `AbstractPushOMDataSource`.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.axiom.om.OMDataSourceExt

      `LOSSY_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractOMDataSource()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the DataSource and free its resources.
    `OMDataSourceExt` | `copy()` Create a copy of the data source.
    `Object` | `getObject()` Get the object that backs this data source.
    `Object` | `getProperty(String key)` Query a property stored on the OMDataSource
    `byte[]` | `getXMLBytes(String encoding)` Returns a byte[] representing the xml data
    `InputStream` | `getXMLInputStream(String encoding)` Returns a InputStream representing the xml data
    `boolean` | `hasProperty(String key)` Returns true if property is set
    `void` | `serialize(OutputStream out, OMOutputFormat format)` Serializes element data directly to stream.
    `void` | `serialize(Writer writer, OMOutputFormat format)` Serializes element data directly to writer.
    `Object` | `setProperty(String key, Object value)` Set a property on the OMDataSource

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

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

    - ### Methods inherited from interface org.apache.axiom.om.OMDataSourceExt

      `isDestructiveRead, isDestructiveWrite`

    - ### Methods inherited from interface org.apache.axiom.om.OMDataSource

      `getReader, serialize`

- - ### Constructor Detail

    - #### AbstractOMDataSource

          public AbstractOMDataSource()

  - ### Method Detail

    - #### getProperty

          public final Object getProperty(String key)

      Description copied from interface: `OMDataSourceExt`
      Query a property stored on the OMDataSource
      Specified by:
        `getProperty` in interface `OMDataSourceExt`
      Returns:
        value or null

    - #### hasProperty

          public final boolean hasProperty(String key)

      Description copied from interface: `OMDataSourceExt`
      Returns true if property is set
      Specified by:
        `hasProperty` in interface `OMDataSourceExt`
      Returns:
        TODO

    - #### setProperty

          public final Object setProperty(String key,
                                          Object value)

      Description copied from interface: `OMDataSourceExt`
      Set a property on the OMDataSource
      Specified by:
        `setProperty` in interface `OMDataSourceExt`
      Returns:
        old property object or null

    - #### serialize

          public final void serialize(OutputStream out,
                                      OMOutputFormat format)
                               throws javax.xml.stream.XMLStreamException

      Description copied from interface: `OMDataSource`
      Serializes element data directly to stream.

      It is assumed that this method consumes the content (i.e. destroys the backing object) unless the data source also implements `OMDataSourceExt` and `OMDataSourceExt.isDestructiveWrite()` returns `false`.

      Specified by:
        `serialize` in interface `OMDataSource`
      Parameters:
        `out` - destination stream for element XML text
        `format` - Output format information. The implementation must use this information to choose the correct character set encoding when writing to the output stream. This parameter must not be null.
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### serialize

          public final void serialize(Writer writer,
                                      OMOutputFormat format)
                               throws javax.xml.stream.XMLStreamException

      Description copied from interface: `OMDataSource`
      Serializes element data directly to writer.

      It is assumed that this method consumes the content (i.e. destroys the backing object) unless the data source also implements `OMDataSourceExt` and `OMDataSourceExt.isDestructiveWrite()` returns `false`.

      Specified by:
        `serialize` in interface `OMDataSource`
      Parameters:
        `writer` - destination writer for element XML text
        `format` - output format information (`null` if none; may be ignored if not supported by data binding even if supplied)
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### getXMLBytes

          public final byte[] getXMLBytes(String encoding)
                                   throws UnsupportedEncodingException

      Description copied from interface: `OMDataSourceExt`
      Returns a byte[] representing the xml data
      Specified by:
        `getXMLBytes` in interface `OMDataSourceExt`
      Parameters:
        `encoding` - String encoding of InputStream
      Returns:
        byte[]
      Throws:
        `UnsupportedEncodingException`
      See Also:
        `OMDataSourceExt.getXMLInputStream(String)`

    - #### getXMLInputStream

          public final InputStream getXMLInputStream(String encoding)
                                              throws UnsupportedEncodingException

      Description copied from interface: `OMDataSourceExt`
      Returns a InputStream representing the xml data
      Specified by:
        `getXMLInputStream` in interface `OMDataSourceExt`
      Parameters:
        `encoding` - String encoding of InputStream
      Returns:
        InputStream
      Throws:
        `UnsupportedEncodingException`

    - #### getObject

          public Object getObject()

      Description copied from interface: `OMDataSourceExt`
      Get the object that backs this data source. Application code should in general not call this method directly, but use `OMSourcedElement.getObject(Class)` instead.

      Data sources that support non destructive read/write should return the object from which the XML is produced. Data sources with destructive read/write should return a non null value only if the backing object has not been consumed yet (even partially).

      Specified by:
        `getObject` in interface `OMDataSourceExt`
      Returns:
        the backing object, or `null` if the data source has no backing object or if the backing object can't be accessed in a safe way

    - #### close

          public void close()

      Description copied from interface: `OMDataSourceExt`
      Close the DataSource and free its resources.
      Specified by:
        `close` in interface `OMDataSourceExt`

    - #### copy

          public OMDataSourceExt copy()

      Description copied from interface: `OMDataSourceExt`
      Create a copy of the data source. This method is used by `OMInformationItem.clone(OMCloneOptions)` when the `OMCloneOptions.isCopyOMDataSources()` option is enabled. If the data source is immutable and stateless, then it may return a reference to itself instead of creating a new data source instance.
      Specified by:
        `copy` in interface `OMDataSourceExt`
      Returns:
        the copy of the data source, or `null` if the data source can't be copied (e.g. because it is destructive)

Copyright © The Apache Software Foundation. All Rights Reserved.