# Class StAXSource

java.lang.Object
javax.xml.transform.stax.StAXSource

All Implemented Interfaces:
  `Source`

public class StAXSource extends Object implements Source

Acts as a holder for an XML `Source` in the form of a StAX reader,i.e. `XMLStreamReader` or `XMLEventReader`. `StAXSource` can be used in all cases that accept a `Source`, e.g. `Transformer`, `Validator` which accept `Source` as input.

`StAXSource`s are consumed during processing and are not reusable.

Since:
  1.6
See Also:
  - JSR 173: Streaming API for XML
  - `XMLStreamReader`
  - `XMLEventReader`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`FEATURE`
If `TransformerFactory.getFeature(String name)` returns true when passed this value as an argument, the Transformer supports Source input of this type.

## Constructor Summary

Constructors
Constructor
Description
`StAXSource(XMLEventReader xmlEventReader)`
Creates a new instance of a `StAXSource` by supplying an `XMLEventReader`.
`StAXSource(XMLStreamReader xmlStreamReader)`
Creates a new instance of a `StAXSource` by supplying an `XMLStreamReader`.

## Method Summary

Modifier and Type
Method
Description
`String`
`getSystemId()`
Get the system identifier used by this `StAXSource`.
`XMLEventReader`
`getXMLEventReader()`
Get the `XMLEventReader` used by this `StAXSource`.
`XMLStreamReader`
`getXMLStreamReader()`
Get the `XMLStreamReader` used by this `StAXSource`.
`boolean`
`isEmpty()`
Indicates whether the `StAXSource` object is empty.
`void`
`setSystemId(String systemId)`
In the context of a `StAXSource`, it is not appropriate to explicitly set the system identifier.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Field Details

### FEATURE

public static final String FEATURE
If `TransformerFactory.getFeature(String name)` returns true when passed this value as an argument, the Transformer supports Source input of this type.

See Also:
  - Constant Field Values

## Constructor Details

### StAXSource

public StAXSource(XMLEventReader xmlEventReader) throws XMLStreamException

Creates a new instance of a `StAXSource` by supplying an `XMLEventReader`.

`XMLEventReader` must be a non-`null` reference.

`XMLEventReader` must be in `XMLStreamConstants.START_DOCUMENT` or `XMLStreamConstants.START_ELEMENT` state.

Parameters:
  `xmlEventReader` - `XMLEventReader` used to create this `StAXSource`.
Throws:
  `XMLStreamException` - If `xmlEventReader` access throws an `Exception`.
  `IllegalArgumentException` - If `xmlEventReader` == `null`.
  `IllegalStateException` - If `xmlEventReader` is not in `XMLStreamConstants.START_DOCUMENT` or `XMLStreamConstants.START_ELEMENT` state.

### StAXSource

public StAXSource(XMLStreamReader xmlStreamReader)

Creates a new instance of a `StAXSource` by supplying an `XMLStreamReader`.

`XMLStreamReader` must be a non-`null` reference.

`XMLStreamReader` must be in `XMLStreamConstants.START_DOCUMENT` or `XMLStreamConstants.START_ELEMENT` state.

Parameters:
  `xmlStreamReader` - `XMLStreamReader` used to create this `StAXSource`.
Throws:
  `IllegalArgumentException` - If `xmlStreamReader` == `null`.
  `IllegalStateException` - If `xmlStreamReader` is not in `XMLStreamConstants.START_DOCUMENT` or `XMLStreamConstants.START_ELEMENT` state.

## Method Details

### getXMLEventReader

public XMLEventReader getXMLEventReader()

Get the `XMLEventReader` used by this `StAXSource`.

`XMLEventReader` will be `null`. if this `StAXSource` was created with a `XMLStreamReader`.

Returns:
  `XMLEventReader` used by this `StAXSource`.

### getXMLStreamReader

public XMLStreamReader getXMLStreamReader()

Get the `XMLStreamReader` used by this `StAXSource`.

`XMLStreamReader` will be `null` if this `StAXSource` was created with a `XMLEventReader`.

Returns:
  `XMLStreamReader` used by this `StAXSource`.

### setSystemId

public void setSystemId(String systemId)

In the context of a `StAXSource`, it is not appropriate to explicitly set the system identifier. The `XMLStreamReader` or `XMLEventReader` used to construct this `StAXSource` determines the system identifier of the XML source.

An `UnsupportedOperationException` is always thrown by this method.

Specified by:
  `setSystemId` in interface `Source`
Parameters:
  `systemId` - Ignored.
Throws:
  `UnsupportedOperationException` - Is always thrown by this method.

### getSystemId

public String getSystemId()

Get the system identifier used by this `StAXSource`.

The `XMLStreamReader` or `XMLEventReader` used to construct this `StAXSource` is queried to determine the system identifier of the XML source.

The system identifier may be `null` or an empty `""` `String`.

Specified by:
  `getSystemId` in interface `Source`
Returns:
  System identifier used by this `StAXSource`.

### isEmpty

public boolean isEmpty()
Indicates whether the `StAXSource` object is empty. Since a `StAXSource` object can never be empty, this method always returns false.

Specified by:
  `isEmpty` in interface `Source`
Returns:
  unconditionally false