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