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 }