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 ArrayListCollectionHandler<T> implements CollectionHandler<T> { 12 @SuppressWarnings("unchecked") 13 public Object add(Object collection, T object) { 14 if (collection == null) { 15 collection = new ArrayList<T>(); 16 ((Collection<T>) collection).add(object); 17 return collection; 18 } 19 ((Collection<T>) collection).add(object); 20 return null; 21 } 22 23 @SuppressWarnings("unchecked") 24 public Enumeration<T> elements(Object collection) { 25 if (collection == null) { 26 return new CollectionHandlers.EmptyEnumerator<T>(); 27 } 28 return new IteratorEnumerator<T>(((Collection<T>) collection).iterator()); 29 } 30 31 @SuppressWarnings("unchecked") 32 public int size(Object collection) { 33 if (collection == null) { 34 return 0; 35 } 36 return ((Collection<T>) collection).size(); 37 } 38 39 @SuppressWarnings("unchecked") 40 public Object clear(Object collection) { 41 if (collection != null) { 42 ((Collection<T>) collection).clear(); 43 } 44 return null; 45 } 46 47 public String toString() { 48 return "ArrayList"; 49 } 50 51 }