01: //$Id: DynamicMapComponentTuplizer.java 7449 2005-07-11 17:31:50Z steveebersole $
02: package org.hibernate.tuple.component;
03:
04: import java.util.Map;
05:
06: import org.hibernate.mapping.Component;
07: import org.hibernate.mapping.Property;
08: import org.hibernate.property.Getter;
09: import org.hibernate.property.PropertyAccessor;
10: import org.hibernate.property.PropertyAccessorFactory;
11: import org.hibernate.property.Setter;
12: import org.hibernate.tuple.Instantiator;
13: import org.hibernate.tuple.DynamicMapInstantiator;
14:
15: /**
16: * A {@link ComponentTuplizer} specific to the dynamic-map entity mode.
17: *
18: * @author Gavin King
19: * @author Steve Ebersole
20: */
21: public class DynamicMapComponentTuplizer extends
22: AbstractComponentTuplizer {
23:
24: public Class getMappedClass() {
25: return Map.class;
26: }
27:
28: protected Instantiator buildInstantiator(Component component) {
29: return new DynamicMapInstantiator();
30: }
31:
32: public DynamicMapComponentTuplizer(Component component) {
33: super (component);
34: }
35:
36: private PropertyAccessor buildPropertyAccessor(Property property) {
37: return PropertyAccessorFactory.getDynamicMapPropertyAccessor();
38: }
39:
40: protected Getter buildGetter(Component component, Property prop) {
41: return buildPropertyAccessor(prop).getGetter(null,
42: prop.getName());
43: }
44:
45: protected Setter buildSetter(Component component, Property prop) {
46: return buildPropertyAccessor(prop).getSetter(null,
47: prop.getName());
48: }
49:
50: }
|