Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.thoughtworks.xstream.io.xml
Class TraxSource

    java.lang.Object
      javax.xml.transform.sax.SAXSource
          com.thoughtworks.xstream.io.xml.TraxSource

All Implemented Interfaces:
  Source

    public class TraxSource

extends SAXSource

A `JAXP TrAX Source` that enables using XStream object serialization as direct input for XSLT processors without resorting to an intermediate representation such as text XML, DOM or DOM4J.

The following example shows how to apply an XSL Transformation to a set of Java objects gathered into a List (`source`):

     public static String transform(List source, String stylesheet) {
         try {
             Transformer transformer = TransformerFactory.newInstance().newTransformer(
                 new StreamSource(stylesheet));
             TraxSource in = new TraxSource(source);
             Writer out = new StringWriter();
             transformer.transform(in, new StreamResult(out));
             return out.toString();
         } catch (TransformerException e) {
             throw new RuntimeException("XSLT Transformation failed", e);
         }
     }

Author:
  Laurent Bihanic

Field Summary
`static String` | `XSTREAM_FEATURE` If `TransformerFactory.getFeature(java.lang.String)` returns `true` when passed this value as an argument, the Transformer natively supports XStream.

Fields inherited from class javax.xml.transform.sax.SAXSource
`FEATURE`

Constructor Summary
`TraxSource()` Creates a XStream TrAX source.
`TraxSource(List source)` Creates a XStream TrAX source, setting the objects to marshal.
`TraxSource(List source, XStream xstream)` Creates a XStream TrAX source, setting the objects to marshal and a configured (with aliases) XStream facade.
`TraxSource(Object source)` Creates a XStream TrAX source, specifying the object to marshal.
`TraxSource(Object source, XStream xstream)` Creates a XStream TrAX source, specifying the object to marshal and a configured (with aliases) XStream facade.

Method Summary
`XMLReader` | `getXMLReader()` Returns the XMLReader to be used for the Source.
`void` | `setInputSource(InputSource inputSource)` Sets the SAX InputSource to be used for the Source.
`void` | `setSource(Object obj)` Sets the object to marshal.
`void` | `setSourceAsList(List list)` Sets the list of objects to marshal.
`void` | `setXMLReader(XMLReader reader)` Set the XMLReader to be used for the Source.
`void` | `setXStream(XStream xstream)` Sets the XStream facade to use when marshalling objects.

Methods inherited from class javax.xml.transform.sax.SAXSource
`getInputSource, getSystemId, setSystemId, sourceToInputSource`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### XSTREAM_FEATURE

    public static final String XSTREAM_FEATURE

  If `TransformerFactory.getFeature(java.lang.String)` returns `true` when passed this value as an argument, the Transformer natively supports XStream.

  Note: This implementation does not override the `SAXSource.FEATURE` value defined by its superclass to be considered as a SAXSource by Transformer implementations not natively supporting this XStream-specific source

  See Also:
    Constant Field Values

Constructor Detail

### TraxSource

    public TraxSource()

  Creates a XStream TrAX source.

### TraxSource

    public TraxSource(Object source)

  Creates a XStream TrAX source, specifying the object to marshal.

  Parameters:
    `source` - the object to marshal.
  Throws:
    `IllegalArgumentException` - if `source` is `null`.
  See Also:
    `setSource(java.lang.Object)`

### TraxSource

    public TraxSource(Object source,
                      XStream xstream)

  Creates a XStream TrAX source, specifying the object to marshal and a configured (with aliases) XStream facade.

  Parameters:
    `source` - the object to marshal.
    `xstream` - a configured XStream facade.
  Throws:
    `IllegalArgumentException` - if `source` or `xstream` is `null`.
  See Also:
    `setSource(java.lang.Object)`, `setXStream(com.thoughtworks.xstream.XStream)`

### TraxSource

    public TraxSource(List source)

  Creates a XStream TrAX source, setting the objects to marshal.

  Parameters:
    `source` - the list of objects to marshal.
  Throws:
    `IllegalArgumentException` - if `source` is `null` or empty.
  See Also:
    `setSourceAsList(java.util.List)`

### TraxSource

    public TraxSource(List source,
                      XStream xstream)

  Creates a XStream TrAX source, setting the objects to marshal and a configured (with aliases) XStream facade.

  Parameters:
    `source` - the list of objects to marshal.
    `xstream` - a configured XStream facade.
  Throws:
    `IllegalArgumentException` - if `source` or `xstream` is `null` or `source` is empty.
  See Also:
    `setSourceAsList(java.util.List)`, `setXStream(com.thoughtworks.xstream.XStream)`

Method Detail

### setInputSource

    public void setInputSource(InputSource inputSource)

  Sets the SAX InputSource to be used for the Source.

  As this implementation only supports object lists as data source, this method always throws an `UnsupportedOperationException`.

  Overrides:
    `setInputSource` in class `SAXSource`
  Parameters:
    `inputSource` - a valid InputSource reference.
  Throws:
    `UnsupportedOperationException` - always!

### setXMLReader

    public void setXMLReader(XMLReader reader)

  Set the XMLReader to be used for the Source.

  As this implementation only supports object lists as data source, this method throws an `UnsupportedOperationException` if the provided reader object does not implement the SAX `XMLFilter` interface. Otherwise, a `SaxWriter` instance will be attached as parent of the filter chain.

  Overrides:
    `setXMLReader` in class `SAXSource`
  Parameters:
    `reader` - a valid XMLReader or XMLFilter reference.
  Throws:
    `UnsupportedOperationException` - if `reader` is not a SAX `XMLFilter`.
  See Also:
    `getXMLReader()`

### getXMLReader

    public XMLReader getXMLReader()

  Returns the XMLReader to be used for the Source.

  This implementation returns a specific XMLReader (`SaxWriter`) generating the XML from a list of input objects.

  Overrides:
    `getXMLReader` in class `SAXSource`
  Returns:
    an XMLReader generating the XML from a list of input objects.

### setXStream

    public void setXStream(XStream xstream)

  Sets the XStream facade to use when marshalling objects.

  Parameters:
    `xstream` - a configured XStream facade.
  Throws:
    `IllegalArgumentException` - if `xstream` is `null`.

### setSource

    public void setSource(Object obj)

  Sets the object to marshal.

  Parameters:
    `obj` - the object to marshal.
  Throws:
    `IllegalArgumentException` - if `source` is `null`.

### setSourceAsList

    public void setSourceAsList(List list)

  Sets the list of objects to marshal.

  When dealing with non-text input (such as SAX or DOM), XSLT processors support multiple root node children for the source tree (see section 3.1 of the "XSL Transformations (XSLT) Version 1.0" specification. Using a list of objects as source makes use of this feature and allows creating XML documents merging the XML serialization of several Java objects.

  Parameters:
    `list` - the list of objects to marshal.
  Throws:
    `IllegalArgumentException` - if `source` is `null` or empty.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2008 XStream. All Rights Reserved.