com.sun.xml.bind.v2.runtime.reflect
Class Lister<BeanT,PropT,ItemT,PackT>

java.lang.Object
  extended by com.sun.xml.bind.v2.runtime.reflect.Lister<BeanT,PropT,ItemT,PackT>
Direct Known Subclasses:
AdaptedLister, Lister.CollectionLister, PrimitiveArrayListerByte

public abstract class Lister<BeanT,PropT,ItemT,PackT>
extends Object

Used to list individual values of a multi-value property, and to pack individual values into a multi-value property.


Nested Class Summary
static class Lister.CollectionLister<BeanT,T extends Collection>
          Lister for a collection
static class Lister.IDREFSIterator
          Iterator for IDREFS lister.
static class Lister.Pack<ItemT>
           
 
Field Summary
static Lister ERROR
           
(package private) static Map<Class,Lister> primitiveArrayListers
          Listers for the primitive type arrays, keyed by their primitive Class object.
 
Constructor Summary
protected Lister()
           
 
Method Summary
abstract  void addToPack(PackT pack, ItemT newValue)
          Once the startPacking(BeanT, com.sun.xml.bind.v2.runtime.reflect.Accessor) is called, you can add values to the pack by using this method.
static
<BeanT,PropT,ItemT,PackT>
Lister<BeanT,PropT,ItemT,PackT>
create(Type fieldType, ID idness, Adapter<Type,Class> adapter)
          Gets a reference to the appropriate Lister object if the field is a multi-value field.
abstract  void endPacking(PackT pack, BeanT bean, Accessor<BeanT,PropT> acc)
          Finally, call this method to wraps up the pack.
static
<A,B,C,D> Lister<A,B,C,D>
getErrorInstance()
          Gets the special Lister used to recover from an error.
abstract  ListIterator<ItemT> iterator(PropT multiValueProp, XMLSerializer context)
          Iterates values of a multi-value property.
abstract  void reset(BeanT o, Accessor<BeanT,PropT> acc)
          Clears the values of the property.
abstract  PackT startPacking(BeanT bean, Accessor<BeanT,PropT> acc)
          Setting values to a multi-value property starts by creating a transient object called "pack" from the current field.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

primitiveArrayListers

static final Map<Class,Lister> primitiveArrayListers
Listers for the primitive type arrays, keyed by their primitive Class object.


ERROR

public static final Lister ERROR
Constructor Detail

Lister

protected Lister()
Method Detail

iterator

public abstract ListIterator<ItemT> iterator(PropT multiValueProp,
                                             XMLSerializer context)
Iterates values of a multi-value property.

Parameters:
context - This parameter is used to support ID/IDREF handling.

startPacking

public abstract PackT startPacking(BeanT bean,
                                   Accessor<BeanT,PropT> acc)
                            throws AccessorException
Setting values to a multi-value property starts by creating a transient object called "pack" from the current field.

Throws:
AccessorException

addToPack

public abstract void addToPack(PackT pack,
                               ItemT newValue)
                        throws AccessorException
Once the startPacking(BeanT, com.sun.xml.bind.v2.runtime.reflect.Accessor) is called, you can add values to the pack by using this method.

Throws:
AccessorException

endPacking

public abstract void endPacking(PackT pack,
                                BeanT bean,
                                Accessor<BeanT,PropT> acc)
                         throws AccessorException
Finally, call this method to wraps up the pack. This method may update the field of the given bean.

Throws:
AccessorException

reset

public abstract void reset(BeanT o,
                           Accessor<BeanT,PropT> acc)
                    throws AccessorException
Clears the values of the property.

Throws:
AccessorException

create

public static <BeanT,PropT,ItemT,PackT> Lister<BeanT,PropT,ItemT,PackT> create(Type fieldType,
                                                                               ID idness,
                                                                               Adapter<Type,Class> adapter)
Gets a reference to the appropriate Lister object if the field is a multi-value field. Otherwise null.

Parameters:
fieldType - the type of the field that stores the collection
idness - ID-ness of the property.
adapter - adapter to be used for individual items. can be null.

getErrorInstance

public static <A,B,C,D> Lister<A,B,C,D> getErrorInstance()
Gets the special Lister used to recover from an error.