View Javadoc
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  }