com.thoughtworks.xstream.converters.collections
Class AbstractCollectionConverter

java.lang.Object
  extended bycom.thoughtworks.xstream.converters.collections.AbstractCollectionConverter
All Implemented Interfaces:
Converter
Direct Known Subclasses:
ArrayConverter, CollectionConverter, MapConverter

public abstract class AbstractCollectionConverter
extends java.lang.Object
implements Converter

Base helper class for converters that need to handle collections of items (arrays, Lists, Maps, etc).

Typically, subclasses of this will converter the outer structure of the collection, loop through the contents and call readItem() or writeItem() for each item.

Author:
Joe Walnes

Field Summary
protected  java.lang.String classAttributeIdentifier
           
protected  ClassMapper classMapper
           
 
Constructor Summary
AbstractCollectionConverter(ClassMapper classMapper, java.lang.String classAttributeIdentifier)
           
 
Method Summary
abstract  boolean canConvert(java.lang.Class type)
          Called by XStream to determine whether to use this converter instance to marshall a particular type.
protected  java.lang.Object createCollection(java.lang.Class type)
           
abstract  void marshal(java.lang.Object source, HierarchicalStreamWriter writer, MarshallingContext context)
          Convert an object to textual data.
protected  java.lang.Object readItem(HierarchicalStreamReader reader, UnmarshallingContext context, java.lang.Object current)
           
abstract  java.lang.Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context)
          Convert textual data back into an object.
protected  void writeItem(java.lang.Object item, MarshallingContext context, HierarchicalStreamWriter writer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classMapper

protected ClassMapper classMapper

classAttributeIdentifier

protected java.lang.String classAttributeIdentifier
Constructor Detail

AbstractCollectionConverter

public AbstractCollectionConverter(ClassMapper classMapper,
                                   java.lang.String classAttributeIdentifier)
Method Detail

canConvert

public abstract boolean canConvert(java.lang.Class type)
Description copied from interface: Converter
Called by XStream to determine whether to use this converter instance to marshall a particular type.

Specified by:
canConvert in interface Converter

marshal

public abstract void marshal(java.lang.Object source,
                             HierarchicalStreamWriter writer,
                             MarshallingContext context)
Description copied from interface: Converter
Convert an object to textual data.

Specified by:
marshal in interface Converter
Parameters:
source - The object to be marshalled.
writer - A stream to write to.
context - A context that allows nested objects to be processed by XStream.

unmarshal

public abstract java.lang.Object unmarshal(HierarchicalStreamReader reader,
                                           UnmarshallingContext context)
Description copied from interface: Converter
Convert textual data back into an object.

Specified by:
unmarshal in interface Converter
Parameters:
reader - The stream to read the text from.
context -
Returns:
The resulting object.

writeItem

protected void writeItem(java.lang.Object item,
                         MarshallingContext context,
                         HierarchicalStreamWriter writer)

readItem

protected java.lang.Object readItem(HierarchicalStreamReader reader,
                                    UnmarshallingContext context,
                                    java.lang.Object current)

createCollection

protected java.lang.Object createCollection(java.lang.Class type)


Joe Walnes, http://xstream.codehaus.org/