KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hibernate > type > SortedSetType


1 //$Id: SortedSetType.java,v 1.10 2005/04/18 22:33:26 oneovthafew Exp $
2
package org.hibernate.type;
3
4 import java.io.Serializable JavaDoc;
5 import java.util.Comparator JavaDoc;
6 import java.util.TreeSet JavaDoc;
7
8 import org.dom4j.Element;
9 import org.hibernate.EntityMode;
10 import org.hibernate.collection.PersistentCollection;
11 import org.hibernate.collection.PersistentElementHolder;
12 import org.hibernate.collection.PersistentSortedSet;
13 import org.hibernate.engine.SessionImplementor;
14 import org.hibernate.persister.collection.CollectionPersister;
15
16 public class SortedSetType extends SetType {
17
18     private final Comparator JavaDoc comparator;
19
20     public SortedSetType(String JavaDoc role, String JavaDoc propertyRef, Comparator JavaDoc comparator, boolean isEmbeddedInXML) {
21         super(role, propertyRef, isEmbeddedInXML);
22         this.comparator = comparator;
23     }
24
25     public PersistentCollection instantiate(SessionImplementor session, CollectionPersister persister, Serializable JavaDoc key) {
26         if ( session.getEntityMode()==EntityMode.DOM4J ) {
27             return new PersistentElementHolder(session, persister, key);
28         }
29         else {
30             PersistentSortedSet set = new PersistentSortedSet(session);
31             set.setComparator(comparator);
32             return set;
33         }
34     }
35
36     public Class JavaDoc getReturnedClass() {
37         return java.util.SortedSet JavaDoc.class;
38     }
39
40     public Object JavaDoc instantiate(Object JavaDoc original) {
41         return new TreeSet JavaDoc(comparator);
42     }
43     
44     public PersistentCollection wrap(SessionImplementor session, Object JavaDoc collection) {
45         if ( session.getEntityMode()==EntityMode.DOM4J ) {
46             return new PersistentElementHolder( session, (Element) collection );
47         }
48         else {
49             return new PersistentSortedSet( session, (java.util.SortedSet JavaDoc) collection );
50         }
51     }
52 }
53
54
55
56
57
58
59
Popular Tags