Package org.apache.cxf.databinding

## Interface DataReader<T>

- Type Parameters:
    `T` - The type of the source. Each data binding defines the set of source types that it supports.
  All Known Implementing Classes:
    `NodeDataReader`, `StaxDataBinding.XMLStreamDataReader`, `XMLStreamDataReader`

      public interface DataReader<T>

  The 'read' side of the data binding abstraction of CXF. A DataReader<T> reads objects from a source of type T.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `ENDPOINT` |
    `static String` | `FAULT` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `read​(QName elementQName, T input, Class<?> type)` | Read an object from the input.
    `Object` | `read​(MessagePartInfo part, T input)` | Read an object from the input, applying additional conventions based on the WSDL message part.
    `Object` | `read​(T input)` | Read an object from the input.
    `void` | `setAttachments​(Collection<Attachment> attachments)` | Attach a collection of attachments to a binding.
    `void` | `setProperty​(String prop, Object value)` | Set an arbitrary property on the reader.
    `void` | `setSchema​(Schema s)` | Supply a schema to validate the input.

- - ### Field Detail

    - #### FAULT

          static final String FAULT

    - #### ENDPOINT

          static final String ENDPOINT

  - ### Method Detail

    - #### setSchema

          void setSchema​(Schema s)

      Supply a schema to validate the input. Bindings silently ignore this parameter if they do not support schema validation, or the particular form of validation implied by a particular form of Schema.
      Parameters:
        `s` -

    - #### setAttachments

          void setAttachments​(Collection<Attachment> attachments)

      Attach a collection of attachments to a binding. This permits a binding to process the contents of one or more attachments as part of reading from this reader.
      Parameters:
        `attachments` - attachments.

    - #### setProperty

          void setProperty​(String prop,
                           Object value)

      Set an arbitrary property on the reader. `FAULT` and `ENDPOINT` specify two common properties: the Fault object being read and the `Endpoint`.
      Parameters:
        `prop` - Name of the property.
        `value` - Value of the property.

    - #### read

          Object read​(T input)

      Read an object from the input.
      Parameters:
        `input` - input source object.
      Returns:
        item read.

    - #### read

          Object read​(MessagePartInfo part,
                      T input)

      Read an object from the input, applying additional conventions based on the WSDL message part.
      Parameters:
        `part` - The message part for this item. If null, this API is equivalent to `read(Object)`.
        `input` - input source object.
      Returns:
        item read.

    - #### read

          Object read​(QName elementQName,
                      T input,
                      Class<?> type)

      Read an object from the input. In the current version of CXF, not all binding support this API, and those that do ignore the element QName parameter.
      Parameters:
        `elementQName` - expected element. Generally ignored.
        `input` - input source object.
        `type` - the type of object required/requested. This is generally used when the caller wants to receive a raw source object and avoid any binding processing. For example, passing javax.xml.transform.Source. The bindings do not necessarily throw if they cannot provide an object of the requested type, and will apply their normal mapping processing, instead.
      Returns:
        item read.