Package org.apache.axiom.om.ds

# Class StringOMDataSource

java.lang.Object
org.apache.axiom.om.ds.AbstractOMDataSource
org.apache.axiom.om.ds.AbstractPullOMDataSource
org.apache.axiom.om.ds.StringOMDataSource

All Implemented Interfaces:
  `OMDataSource`, `OMDataSourceExt`

public final class StringOMDataSource extends AbstractPullOMDataSource
`OMDataSource` implementation backed by a `String`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringOMDataSource(String data)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close the DataSource and free its resources.
  `StringOMDataSource`
  `copy()`
  Create a copy of the data source.
  `String`
  `getObject()`
  Get the object that backs this data source.
  `XMLStreamReader`
  `getReader()`
  Get parser for element data.
  `boolean`
  `isDestructiveRead()`
  Returns true if reading the backing object is destructive.

  ### Methods inherited from class org.apache.axiom.om.ds.AbstractPullOMDataSource

  `isDestructiveWrite, serialize`

  ### Methods inherited from class org.apache.axiom.om.ds.AbstractOMDataSource

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

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

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

- ## Constructor Details

  - ### StringOMDataSource

    public StringOMDataSource(String data)

- ## Method Details

  - ### getObject

    public String 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`
    Overrides:
      `getObject` in class `AbstractOMDataSource`
    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

  - ### copy

    public StringOMDataSource 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`
    Overrides:
      `copy` in class `AbstractOMDataSource`
    Returns:
      the copy of the data source, or `null` if the data source can't be copied (e.g. because it is destructive)

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

  - ### getReader

    public XMLStreamReader getReader() throws 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:
      `XMLStreamException`

  - ### close

    public void close()
    Description copied from interface: `OMDataSourceExt`
    Close the DataSource and free its resources.
    Specified by:
      `close` in interface `OMDataSourceExt`
    Overrides:
      `close` in class `AbstractOMDataSource`