/Prototipo/Servlet/lib/xstream-distribution-1.4.1-bin/xstream-1.4.1/docs/converters.html
http://prototipomemoria.googlecode.com/ · HTML · 819 lines · 758 code · 34 blank · 27 comment · 0 complexity · 15d8a6c523fac6d0a8f1553133cee893 MD5 · raw file
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <!--
- Copyright (C) 2005, 2006 Joe Walnes.
- Copyright (C) 2006, 2007, 2008 XStream committers.
- All rights reserved.
-
- The software in this package is published under the terms of the BSD
- style license a copy of which has been included with this distribution in
- the LICENSE.txt file.
-
- Created on 29. January 2005 by Joe Walnes
- -->
- <head>
- <title>XStream - Converters</title>
- <link rel="stylesheet" type="text/css" href="style.css"/>
-
-
- <style type="text/css">
- .example { font-family: courier; font-size: 8pt; }
- #content td { border-top: thin solid #5c5 ;}
- #content .headerRow { background-color: white; }
- </style>
-
- <!-- Google analytics -->
- <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
- </script>
- <script type="text/javascript">
- _uacct = "UA-110973-2";
- urchinTracker();
- </script>
- </head>
- <body>
- <div id="banner">
- <a href="index.html"><img id="logo" src="logo.gif" alt="XStream"/></a>
- </div>
- <div id="center" class="Content2Column"> <!-- Content3Column for index -->
- <div id="content">
- <h1 class="FirstChild">Converters</h1>
-
- <p>The core of XStream consists of a registry of
- <a href="javadoc/com/thoughtworks/xstream/converters/Converter.html"><b>Converters</b></a>. The responsibility of a Converter is to
- provide a strategy for converting particular types of objects found in the object graph, to and from XML.</p>
- <p>XStream is provided with Converters for common types such as primitives, String, File, Collections, arrays,
- and Dates.</p>
-
- <table class="examplesTable" summary="Overview over all Converters delivered with XStream">
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.lang">java.lang (and core special types)</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/NullConverter.html">NullConverter</a></td>
- <td>null values</td>
- <td class="example"><null/></td>
- <td>Usually, null fields are left out of the XML, however when used in arrays or the root object they
- have to be explicitly marked.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/ArrayConverter.html">ArrayConverter</a></td>
- <td>Any kind of array</td>
- <td class="example">
- <string-array><br/>
- <string>apple</string><br/>
- <string>banana</string><br/>
- <string>cabbage</string><br/>
- </string-array>
- </td>
- <td>This supports arrays of primitives as well as objects. It also supports multi-dimensional arrays, even if
- they are non-rectangular.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BooleanConverter.html">BooleanConverter</a></td>
- <td>boolean<br/>java.lang.Boolean</td>
- <td class="example"><boolean>true</boolean></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/ByteConverter.html">ByteConverter</a></td>
- <td>byte<br/>java.lang.Byte</td>
- <td class="example"><byte>22</byte></td>
- <td>The byte is represented as an integer.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/EncodedByteArrayConverter.html">EncodedByteArrayConverter</a></td>
- <td>byte[]</td>
- <td class="example"><byte-array>AHiEFiEABQ==</byte-array></td>
- <td>Uses Base64 encoding to store binary data in XML. Converter is not automatically registered.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/CharConverter.html">CharConverter</a></td>
- <td>char<br/>java.lang.Character</td>
- <td class="example"><char>X</char></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/CharArrayConverter.html">CharArrayConverter</a></td>
- <td>char[]</td>
- <td class="example">
- <char-array>hello<char-array>
- </td>
- <td>Joins all characters into a single String.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/DoubleConverter.html">DoubleConverter</a></td>
- <td>double<br/>java.lang.Double</td>
- <td class="example"><double>456774543443.4553435</double></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/FloatConverter.html">FloatConverter</a></td>
- <td>float<br/>java.lang.Float</td>
- <td class="example"><float>4563443.435</float></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/IntConverter.html">IntConverter</a></td>
- <td>int<br/>java.lang.Integer</td>
- <td class="example"><int>12345678</int></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/LongConverter.html">LongConverter</a></td>
- <td>long<br/>java.lang.Long</td>
- <td class="example"><long>2344556678888786</long></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/ShortConverter.html">ShortConverter</a></td>
- <td>short<br/>java.lang.Short</td>
- <td class="example"><short>1445</short></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringConverter.html">StringConverter</a></td>
- <td>java.lang.String</td>
- <td class="example"><string>hello world</string></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringBufferConverter.html">StringBufferConverter</a></td>
- <td>java.lang.StringBuffer</td>
- <td class="example"><string-buffer>hello world</string-buffer></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/StringBuildererConverter.html">StringBuilderConverter</a></td>
- <td>java.lang.StringBuilder</td>
- <td class="example"><string-builder>hello world</string-builder></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ThrowableConverter.html">ThrowableConverter</a></td>
- <td>java.lang.Throwable<br/>java.lang.Exception<br/>java.lang.RuntimeException<br/>java.lang.Error<br/>...and all subclasses
- of these.</td>
- <td class="example">
- <java.io.IOException><br/>
- <detailMessage>No file</detailMessage><br/>
- <stack-trace><br/>
- <trace>com.x.Foo.stuff(Foo.java:22)</trace><br/>
- <trace>com.x.Foo.blah(Foo.java:31)</trace><br/>
- <trace>com.x.Foo.main(Foo.java:43)</trace><br/>
- </stack-trace><br/>
- </java.io.IOException>
- </td>
- <td>This is only available under Java 1.4 or greater. It retains the full stack trace, including that of any
- nested exceptions. The stack trace elements are handled by the
- <a href="javadoc/com/thoughtworks/xstream/converters/extended/StackTraceElementConverter.html">StackTraceElementConverter</a>.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumConverter.html">EnumConverter</a></td>
- <td>java.lang.Enum</td>
- <td class="example"><java.lang.annotation.RetentionPolicy><br/>CLASS<br/></java.lang.annotation.RetentionPolicy></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.util">java.util</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/CollectionConverter.html">CollectionConverter</a></td>
- <td>java.util.ArrayList<br/>java.util.LinkedList<br/>java.util.HashSet<br/>java.util.Vector<br/>java.util.LinkedHashSet</td>
- <td class="example">
- <linked-list><br/>
- <string>apple</string><br/>
- <string>banana</string><br/>
- <big-decimal>12345.4555</big-decimal><br/>
- </linked-list>
- </td>
- <td>The objects inside the collection can be any type of objects, including nested collections.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/MapConverter.html">MapConverter</a></td>
- <td>java.util.HashMap<br/>java.util.Hashtable<br/>java.util.LinkedHashMap</td>
- <td class="example">
- <map><br/>
- <entry><br/>
- <string>apple</string><br/>
- <float>123.553</float><br/>
- </entry><br/>
- <entry><br/>
- <string>orange</string><br/>
- <float>55.4</float><br/>
- </entry><br/>
- </map>
- </td>
- <td>Both key and values can be any type of objects.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/PropertiesConverter.html">PropertiesConverter</a></td>
- <td>java.util.Properties</td>
- <td class="example">
- <properties><br/>
- <property name="host" value="localhost"/><br/>
- <property name="port" value="888"/><br/>
- </properties>
- </td>
- <td>Because the Properties class only accepts Strings for keys and values, the XML can be more concise.
- If the Properties instance includes a set of default Properties, these are serialized in a nested <code><defaults></code> element.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/TreeMapConverter.html">TreeMapConverter</a></td>
- <td>java.util.TreeMap</td>
- <td class="example">
- <tree-map><br/>
- <comparator class="com.blah.MyComparator"/><br/>
- <entry><br/>
- <string>apple</string><br/>
- <float>123.553</float><br/>
- </entry><br/>
- <entry><br/>
- <string>orange</string><br/>
- <float>55.4</float><br/>
- </entry><br/>
- </tree-map>
- </td>
- <td>This is similar to MapConverter with an additional field for storing the java.util.Comparator associated with the TreeMap.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/TreeSetConverter.html">TreeSetConverter</a></td>
- <td>java.util.TreeSet</td>
- <td class="example">
- <tree-set><br/>
- <comparator class="com.blah.MyComparator"/><br/>
- <string>apple</string><br/>
- <string>banana</string><br/>
- <string>cabbage</string><br/>
- </tree-set>
- </td>
- <td>This is similar to CollectionConverter with an additional field for storing the java.util.Comparator associated with the TreeSet.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/collections/BitSetConverter.html">BitSetConverter</a></td>
- <td>java.util.BitSet</td>
- <td class="example">
- <bit-set>0,1,3,5,6,8,10</bit-set>
- </td>
- <td>Stores a comma separated list of which bits are set. Designed to be readable without taking up too much space.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/DateConverter.html">DateConverter</a></td>
- <td>java.util.Date</td>
- <td class="example"><date>2004-02-22 15:16:04.0 EST</date></td>
- <td></td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/GregorianCalendarConverter.html">GregorianCalendarConverter</a></td>
- <td>java.util.Calendar<br/>java.util.GregorianCalendar</td>
- <td class="example">
- <gregorian-calendar><br/>
- <time>555454646</time><br/>
- </gregorian-calendar>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601DateConverter.html">ISO8601DateConverter</a></td>
- <td>java.util.Date</td>
- <td class="example"><date>2006-07-28T12:06:17.654-03:00</date></td>
- <td>Not automatically registered, needs joda-time</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601GregorianCalendarConverter.html">ISO8601GregorianCalendarConverter</a></td>
- <td>java.util.GregorianCalendar</td>
- <td class="example">
- <gregorian-calendar><br/>
- 2006-07-28T12:07:02.788-03:00<br/>
- </gregorian-calendar>
- </td>
- <td>Not automatically registered, needs joda-time</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/LocaleConverter.html">LocaleConverter</a></td>
- <td>java.util.Locale</td>
- <td class="example"><locale>en_GB</locale></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/CurrencyConverter.html">CurrencyConverter</a></td>
- <td>java.util.Currency</td>
- <td class="example"><currency>USD</currency></td>
- <td>Available under Java 1.4 or greater.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/UUIDConverter.html">UUIDConverter</a></td>
- <td>java.util.UUID</td>
- <td class="example"><uuid>ca05f023-e07f-4956-a6ef-14ddd23df47b</uuid></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumMapConverter.html">EnumMapConverter</a></td>
- <td>java.util.EnumMap</td>
- <td class="example">
- <enum-map enum-type="simple"><br/>
- <entry><br/>
- <simple>GREEN</simple><br/>
- <string>grass</string><br/>
- </entry><br/>
- <entry><br/>
- <simple>BLUE</simple><br/>
- <string>sky</string><br/>
- </entry><br/>
- </enum-map></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/enums/EnumSetConverter.html">EnumSetConverter</a></td>
- <td>java.util.EnumSet</td>
- <td class="example">
- <enum-set enum-type="simple"><br/>
- GREEN,BLUE<br/>
- </enum-set></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/RegexPatternConverter.html">RegexPatternConverter</a></td>
- <td>java.util.regex.Pattern</td>
- <td class="example">
- <java.util.regex.Pattern><br/>
- <pattern>.*</pattern><br/>
- <flags>0</flags><br/>
- </java.util.regex.Pattern>
- </td>
- <td>Available under Java 1.4 or greater.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.sql">java.sql</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlDateConverter.html">SqlDateConverter</a></td>
- <td>java.sql.Date</td>
- <td class="example"><sql-date>1978-08-25</sql-date></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlTimeConverter.html">SqlTimeConverter</a></td>
- <td>java.sql.Time</td>
- <td class="example"><sql-time>14:07:33</sql-time></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SqlTimestampConverter.html">SqlTimestampConverter</a></td>
- <td>java.sql.Timestamp</td>
- <td class="example"><sql-timestamp>1970-01-01 00:00:01.234</sql-timestamp></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ISO8601SqlTimestampConverter.html">ISO8601SqlTimestampConverter</a></td>
- <td>java.sql.Timestamp</td>
- <td class="example"><sql-timestamp>2006-07-28T12:06:17.654000000-03:00</sql-timestamp></td>
- <td>Not automatically registered, needs joda-time</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.math">java.math</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BigDecimalConverter.html">BigDecimalConverter</a></td>
- <td>java.math.BigDecimal</td>
- <td class="example"><big-decimal>342346.445332</big-decimal></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/BigIntegerConverter.html">BigIntegerConverter</a></td>
- <td>java.math.BigInteger</td>
- <td class="example"><big-int>23434224556</big-int></td>
- <td> </td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.net">java.net</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/basic/URLConverter.html">URLConverter</a></td>
- <td>java.net.Url</td>
- <td class="example"><url>http://codehaus.org/blah</url></td>
- <td> </td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.io">java.io</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/FileConverter.html">FileConverter</a></td>
- <td>java.io.File</td>
- <td class="example"><file>/stuff/hello.txt</file></td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/SerializableConverter.html">SerializableConverter</a></td>
- <td>java.io.Serializable</td>
- <td> </td>
- <td>See description at Generalized Converters</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ExternalizableConverter.html">ExternalizableConverter</a></td>
- <td>java.io.Externalizable</td>
- <td> </td>
- <td>See description at Generalized Converters</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.lang.reflect">java.lang.reflect</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaClassConverter.html">JavaClassConverter</a></td>
- <td>java.lang.Class</td>
- <td class="example"><class>com.foo.MyThing</class></td>
- <td>This converter will look for the class in the ClassLoader of the current XStream instance. It is possible
- to use another ClassLoader by re-registering a new instance of this converter that is wrapped around another
- ClassLoader.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaFieldConverter.html">JavaFieldConverter</a></td>
- <td>java.lang.reflect.Field</td>
- <td class="example">
- <field><br/>
- <name>myField</name><br/>
- <class>com.foo.MyThing</class><br/>
- </field>
- </td>
- <td>As with the JavaClassConverter, the converter will use the ClassLoader of the XStream instance to resolve classes
- by default. This can be changed by specifying another ClassLoader when constructing this Converter.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/JavaMethodConverter.html">JavaMethodConverter</a></td>
- <td>java.lang.reflect.Method<br/>java.lang.reflect.Constructor</td>
- <td class="example">
- <method><br/>
- <class>com.foo.MyThing</class><br/>
- <name>doStuff</name><br/>
- <parameter-types><br/>
- <class>java.lang.String</class><br/>
- <class>java.util.Iterator</class><br/>
- </parameter-types><br/>
- </method>
- </td>
- <td>The enclosing element for this tag will either by <method> or <constructor>. As with the JavaClassConverter, the converter
- will use the ClassLoader of the XStream instance to resolve classes by default. This can be changed by specifying another ClassLoader when
- constructing this Converter.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/DynamicProxyConverter.html">DynamicProxyConverter</a></td>
- <td>Any dynamic proxy generated by java.lang.reflect.Proxy</td>
- <td class="example">
- <dynamic-proxy><br/>
- <interface>com.foo.Blah</interface><br/>
- <interface>com.foo.Woo</interface><br/>
- <handler class="com.foo.MyHandler"><br/>
- <something>blah</something><br/>
- </handler><br/>
- </dynamic-proxy>
- </td>
- <td>The dynamic proxy itself is not serialized, however the interfaces it implements and the actual InvocationHandler
- instance are serialized. This allows the proxy to be reconstructed after deserialization.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.awt">java.awt</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ColorConverter.html">ColorConverter</a></td>
- <td>java.awt.Color</td>
- <td class="example">
- <awt-color><br/>
- <red>255</red><br/>
- <green>255</green><br/>
- <blue>255</blue><br/>
- <alpha>255</alpha><br/>
- </awt-color>
- </td>
- <td><b>Warning:</b> The AWT toolkit is initialized when a Color is deserialized due to the internals of the Color class.
- This should only be an issue if deserializing a Color on a headless server process.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/FontConverter.html">FontConverter</a></td>
- <td>java.awt.Font</td>
- <td class="example"> </td>
- <td><b>Warning:</b> The AWT toolkit is initialized when a Font is deserialized due to the internals of the Font class.
- This should only be an issue if deserializing a Font on a headless server process.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.awt.font">java.awt.font</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/TextAttributeConverter.html">TextAttributeConverter</a></td>
- <td>java.awt.font.TextAttribute</td>
- <td class="example">
- <awt-text-attribute>family</awt-text-attribute>
- </td>
- <td><b>Warning:</b> The AWT toolkit is initialized when a TextAttribute is deserialized due to the internals of the TextAttribute class.
- This should only be an issue if deserializing a TextAttribute on a headless server process.</td>
- </tr>
-
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="javax.swing">javax.swing</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/LookAndFeelConverter.html">LookAndFeelConverter</a></td>
- <td>javax.swing.LookAndFeel implementations</td>
- <td class="example"> </td>
- <td>Explicit mapping to the ReflectionConverter. Although the implementations of the LookAndFeel classes are serializable, they will
- throw an exception executing writeObject(), therefore the SerializableConverter is not used.</td>
- </tr>
-
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="javax.security.auth">javax.security.auth</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/SubjectConverter.html">SubjectConverter</a></td>
- <td>javax.security.auth.Subject</td>
- <td class="example">
- <auth-subject><br/>
- <principals><br/>
- <com.thoughtworks.xstream.Admin/><br/>
- </principals><br/>
- <readOnly>false</readOnly><br/>
- </auth-subject><br/>
- </td>
- <td>Available under Java 1.4 or greater. This converter does not serialize any credentials but only the principals.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="java.nio">java.nio</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/CharsetConverter.html">CharsetConverter</a></td>
- <td>java.nio.charset.Charset</td>
- <td class="example"><charset>US-ASCII</charset></td>
- <td>Available under Java 1.4 or greater.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="javax.xml.datatype">javax.xml.datatype</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Example</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/DurationConverter.html">DurationConverter</a></td>
- <td>javax.xml.datatype.Duration</td>
- <td class="example"><duration>PT1H2M</duration></td>
- <td>Available under Java 1.5 or greater.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="generic">Generalized Converters</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Explanation</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ReflectionConverter.html">ReflectionConverter</a></td>
- <td>Any type</td>
- <td>The Converter is used as fallback. It uses reflection to examine the class and will serialize its fields.</td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/annotations/AnnotationReflectionConverter.html">AnnotationReflectionConverter</a></td>
- <td>Any type</td>
- <td>The Converter is used as fallback. It uses reflection to examine the class and will serialize its fields and supports annotations for
- local converters.</td>
- <td>Needs JDK 1.5, default for JDK 1.5. Deprecated since XStream 1.3 and must be registered now explicitly.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/SerializableConverter.html">SerializableConverter</a></td>
- <td>java.io.Serializable or types with one of the serializable methods readObject or writeObject</td>
- <td>The Converter is used for any JDK-serializable types, if not handled by a specialized Converter.</td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/ExternalizableConverter.html">ExternalizableConverter</a></td>
- <td>java.io.Externalizable</td>
- <td>The Converter is used for any JDK-externalizable types, if not handled by a specialized Converter.</td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ToAttributesValueConverter.html">ToAttributesValueConverter</a></td>
- <td>Any type with all but one fields to be represented by a single string</td>
- <td>The Converter is used to write all but one fields of the type as attributes. The left over field is then used as current value.</td>
- <td>Must be registered explicitly for the appropriate type</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/ToStringConverter.html">ToStringConverter</a></td>
- <td>Any type with natural String representation</td>
- <td>The Converter must be initialized with a type, that provides a complete String representation with its toString() method
- and is able to be recreated by a constructor taking a single String argument.</td>
- <td>Must be registered explicitly for the appropriate type</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/javabean/JavaBeanConverter.html">JavaBeanConverter</a></td>
- <td>Java beans</td>
- <td>The Converter handles any type as Java bean. It expects the type to convert to have a public default constructor and
- appropriate getter and setters.</td>
- <td>Must be registered explicitly. Should be used as fallback.</td>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/extended/PropertyEditorCapableConverter.html">PropertyEditorCapableConverter</a></td>
- <td>Any type with a PropertyEditor implementation</td>
- <td>The Converter can handles any type that provides a PropertyEditor implementation. The PropertyEditor's methods getAsText() and
- setAsText() are used to convert between object and string representation.</td>
- <td>Must be registered explicitly for the appropriate type.</td>
- </tr>
- <!-- .................................................................................................. -->
- <tr>
- <td colspan="4" class="headerRow"><h1 id="3rdParty">Converters for 3rd party classes</h1></td>
- </tr>
- <tr>
- <th>Converter</th>
- <th>Supported types</th>
- <th>Explanation</th>
- <th>Notes</th>
- </tr>
- <tr>
- <td><a href="javadoc/com/thoughtworks/xstream/converters/reflection/CGLIBEnhancedConverter.html">CGLIBEnhancedConverter</a></td>
- <td>Proxies generated by the CGLIB Enhancer</td>
- <td>The Converter handles proxies generated by the CGLIB Enhancer, if there were not multiple callbacks registered.
- A proxy with multiple callbacks can currently not be handled at all.</td>
- <td>Must be registered explicitly in combination with the CGLIBMapper. See <a href="faq.html#Serialization_CGLIB">FAQ</a>.</td>
- </tr>
- </table>
-
- <br/>
- </div>
- </div>
- <div class="SidePanel" id="left">
- <div class="MenuGroup">
- <h1>Software</h1>
- <ul>
- <li><a href="index.html">About XStream</a></li>
- <li><a href="news.html">News</a></li>
- <li><a href="changes.html">Change History</a></li>
- <li><a href="versioning.html">About Versioning</a></li>
- </ul>
- </div>
- <div class="MenuGroup">
- <h1>Evaluating XStream</h1>
- <ul>
- <li><a href="tutorial.html">Two Minute Tutorial</a></li>
- <li><a href="graphs.html">Object references</a></li>
- <li><a href="manual-tweaking-output.html">Tweaking the Output</a></li>
- <li><a href="license.html">License</a></li>
- <li><a href="download.html">Download</a></li>
- <li><a href="references.html">References</a></li>
- <li><a href="parser-benchmarks.html">Parser Benchmarks</a></li>
- <li><a href="http://www.ohloh.net/projects/3459">Code Statistics</a></li>
- </ul>
- </div>
- <div class="MenuGroup">
- <h1>Using XStream</h1>
- <ul>
- <li><a href="architecture.html">Architecture Overview</a></li>
- <li class="currentLink">Converters</li>
- <li><a href="faq.html">Frequently Asked Questions</a></li>
- <li><a href="list-user.html">Users' Mailing List</a></li>
- <li><a href="issues.html">Reporting Issues</a></li>
- </ul>
- </div>
- <div class="MenuGroup">
- <h1>Javadoc</h1>
- <ul>
- <li><a href="javadoc/index.html">XStream Core</a></li>
- <li><a href="hibernate-javadoc/index.html">Hibernate Extensions</a></li>
- <li><a href="benchmark-javadoc/index.html">Benchmark Module</a></li>
- </ul>
- </div>
- <div class="MenuGroup">
- <h1>Tutorials</h1>
- <ul>
- <li><a href="tutorial.html">Two Minute Tutorial</a></li>
- <li><a href="alias-tutorial.html">Alias Tutorial</a></li>
- <li><a href="annotations-tutorial.html">Annotations Tutorial</a></li>
- <li><a href="converter-tutorial.html">Converter Tutorial</a></li>
- <li><a href="objectstream.html">Object Streams Tutorial</a></li>
- <li><a href="persistence-tutorial.html">Persistence API Tutorial</a></li>
- <li><a href="json-tutorial.html">JSON Tutorial</a></li>
- </ul>
- </div>
- <div class="MenuGroup">
- <h1>Developing XStream</h1>
- <ul>
- <li><a href="how-to-contribute.html">How to Contribute</a></li>
- <li><a href="list-dev.html">Developers' Mailing List</a></li>
- <li><a href="team.html">Development Team</a></li>
- <li><a href="repository.html">Source Repository</a></li>
- <li><a href="http://bamboo.ci.codehaus.org/browse/XSTREAM">Continuous Integration</a></li>
- </ul>
- </div>
- </div>
- </body>
- </html>