org.apache.axiom.om.ds

## Class CharArrayDataSource

- java.lang.Object
- - org.apache.axiom.om.ds.OMDataSourceExtBase
  - - org.apache.axiom.om.ds.CharArrayDataSource

- All Implemented Interfaces:
    OMDataSource, OMDataSourceExt

      public class CharArrayDataSource
      extends OMDataSourceExtBase

  CharArrayDataSource is an example implementation of OMDataSourceExt. Use it to insert a char[] into an OM Tree. This data source is useful for placing characters into an OM tree, instead of having a deeply nested tree.

- - ### Field Summary

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

      `LOSSY_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CharArrayDataSource(char[] chars)` Constructor

  - ### 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.
    `javax.xml.stream.XMLStreamReader` | `getReader()` Get parser for element data.
    `byte[]` | `getXMLBytes(String encoding)` Returns a byte[] representing the xml data
    `boolean` | `isDestructiveRead()` Returns true if reading the backing object is destructive.
    `boolean` | `isDestructiveWrite()` Returns true if writing the backing object is destructive.
    `void` | `serialize(Writer writer, OMOutputFormat format)` Serializes element data directly to writer.

    - ### Methods inherited from class org.apache.axiom.om.ds.OMDataSourceExtBase

      `getProperty, getXMLInputStream, hasProperty, serialize, serialize, setProperty`

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

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

- - ### Constructor Detail

    - #### CharArrayDataSource

          public CharArrayDataSource(char[] chars)

      Constructor
      Parameters:
        `chars` -

  - ### Method Detail

    - #### serialize

          public 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`
      Overrides:
        `serialize` in class `OMDataSourceExtBase`
      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`

    - #### getReader

          public javax.xml.stream.XMLStreamReader getReader()
                                                     throws javax.xml.stream.XMLStreamException

      Description copied from interface: `OMDataSource`
      Get parser for element data. In the general case this may require the data source to serialize data as XML text and then parse that text.

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

      `OMSourcedElement` implementations are expected to call `XMLStreamReader.close()` on the returned reader as soon as the element is completely built.

      Returns:
        element parser
      Throws:
        `javax.xml.stream.XMLStreamException`

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

      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

    - #### isDestructiveRead

          public boolean isDestructiveRead()

      Description copied from interface: `OMDataSourceExt`
      Returns true if reading the backing object is destructive. An example of an object with a destructive read is an InputSteam. The owning OMSourcedElement uses this information to detemine if OM tree expansion is needed when reading the OMDataSourceExt.
      Returns:
        boolean

    - #### isDestructiveWrite

          public boolean isDestructiveWrite()

      Description copied from interface: `OMDataSourceExt`
      Returns true if writing the backing object is destructive. An example of an object with a destructive write is an InputStream. The owning OMSourcedElement uses this information to detemine if OM tree expansion is needed when writing the OMDataSourceExt.
      Returns:
        boolean

    - #### getXMLBytes

          public byte[] getXMLBytes(String encoding)
                             throws UnsupportedEncodingException

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

    - #### close

          public void close()

      Description copied from interface: `OMDataSourceExt`
      Close the DataSource and free its resources.

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