View Javadoc
1   package org.exolab.castor.mapping.loader.collection.handler;
2   
3   import java.util.Enumeration;
4   import java.util.HashSet;
5   import java.util.Set;
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 SetCollectionHandler<T> implements CollectionHandler<T> {
12    @SuppressWarnings("unchecked")
13    public Object add(Object collection, T object) {
14      if (collection == null) {
15        collection = new HashSet<T>();
16        ((Set<T>) collection).add(object);
17        return collection;
18      }
19      // if ( ! ( (Set) collection ).contains( object ) )
20      ((Set<T>) collection).add(object);
21      return null;
22    }
23  
24    @SuppressWarnings("unchecked")
25    public Enumeration<T> elements(Object collection) {
26      if (collection == null)
27        return new CollectionHandlers.EmptyEnumerator<T>();
28      return new IteratorEnumerator<T>(((Set<T>) collection).iterator());
29    }
30  
31    @SuppressWarnings("unchecked")
32    public int size(Object collection) {
33      if (collection == null)
34        return 0;
35      return ((Set<T>) collection).size();
36    }
37  
38    @SuppressWarnings("unchecked")
39    public Object clear(Object collection) {
40      if (collection != null)
41        ((Set<T>) collection).clear();
42      return null;
43    }
44  
45    public String toString() {
46      return "Set";
47    }
48  
49  }