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 CollectionCollectionHandler<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 return new IteratorEnumerator<T>(((Collection<T>) collection).iterator()); 28 } 29 30 @SuppressWarnings("unchecked") 31 public int size(Object collection) { 32 if (collection == null) 33 return 0; 34 return ((Collection<T>) collection).size(); 35 } 36 37 @SuppressWarnings("unchecked") 38 public Object clear(Object collection) { 39 if (collection != null) 40 ((Collection<T>) collection).clear(); 41 return null; 42 } 43 44 public String toString() { 45 return "Collection"; 46 } 47 48 }