1 package org.exolab.castor.mapping.loader.collection.handler; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Enumeration; 6 7 import org.exolab.castor.mapping.CollectionHandler; 8 import org.exolab.castor.mapping.loader.CollectionHandlers; 9 import org.exolab.castor.mapping.loader.J2CollectionHandlers.IteratorEnumerator; 10 11 public final class ListCollectionHandler<T> implements CollectionHandler<T> { 12 13 @SuppressWarnings("unchecked") 14 public Object add(Object collection, final T object) { 15 if (collection == null) { 16 collection = new ArrayList<T>(); 17 ((Collection<T>) collection).add(object); 18 return collection; 19 } 20 ((Collection<T>) collection).add(object); 21 return null; 22 } 23 24 @SuppressWarnings("unchecked") 25 public Enumeration<T> elements(final Object collection) { 26 if (collection == null) { 27 return new CollectionHandlers.EmptyEnumerator<T>(); 28 } 29 return new IteratorEnumerator<T>(((Collection<T>) collection).iterator()); 30 } 31 32 @SuppressWarnings("unchecked") 33 public int size(final Object collection) { 34 if (collection == null) { 35 return 0; 36 } 37 return ((Collection<T>) collection).size(); 38 } 39 40 @SuppressWarnings("unchecked") 41 public Object clear(final Object collection) { 42 if (collection != null) { 43 ((Collection<T>) collection).clear(); 44 } 45 return null; 46 } 47 48 public String toString() { 49 return "List"; 50 } 51 }