Class StringOMDataSource

All Implemented Interfaces:
OMDataSource, OMDataSourceExt

public final class StringOMDataSource extends AbstractPullOMDataSource
OMDataSource implementation backed by a String.
  • 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