001    /*
002     * Copyright 2004-2005 the original author or authors.
003     */
004    package org.springframework.binding.value.support;
005    
006    import java.util.Map;
007    
008    import org.springframework.binding.value.ValueModel;
009    
010    /**
011     * 
012     * @author HP
013     */
014    public class MapKeyAdapter extends AbstractValueModel {
015    
016        private ValueModel mapValueModel;
017    
018        private Object key;
019    
020        public MapKeyAdapter(ValueModel valueModel, Object key) {
021            super();
022            this.mapValueModel = valueModel;
023            setKey(key);
024        }
025    
026        public void setKey(Object key) {
027            this.key = key;
028        }
029    
030        public Object getValue() {
031            Map map = (Map)mapValueModel.getValue();
032            if (map == null) {
033                return null;
034            }
035            return map.get(key);
036        }
037    
038        public void setValue(Object value) {
039            Map map = (Map)mapValueModel.getValue();
040            if (map == null) {
041                return;
042            }
043            map.put(key, value);
044        }
045    
046    }