01: //$Id: Map.java 7714 2005-08-01 16:29:33Z oneovthafew $
02: package org.hibernate.mapping;
03:
04: import org.hibernate.MappingException;
05: import org.hibernate.type.CollectionType;
06: import org.hibernate.type.TypeFactory;
07:
08: /**
09: * A map has a primary key consisting of
10: * the key columns + index columns.
11: */
12: public class Map extends IndexedCollection {
13:
14: public Map(PersistentClass owner) {
15: super (owner);
16: }
17:
18: public boolean isMap() {
19: return true;
20: }
21:
22: public CollectionType getDefaultCollectionType() {
23: if (isSorted()) {
24: return TypeFactory.sortedMap(getRole(),
25: getReferencedPropertyName(), isEmbedded(),
26: getComparator());
27: } else if (hasOrder()) {
28: return TypeFactory.orderedMap(getRole(),
29: getReferencedPropertyName(), isEmbedded());
30: } else {
31: return TypeFactory.map(getRole(),
32: getReferencedPropertyName(), isEmbedded());
33: }
34: }
35:
36: public void createAllKeys() throws MappingException {
37: super .createAllKeys();
38: if (!isInverse())
39: getIndex().createForeignKey();
40: }
41:
42: public Object accept(ValueVisitor visitor) {
43: return visitor.accept(this);
44: }
45: }
|