Revision 44455 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/ExtendedPropertiesHelper.java

View differences:

ExtendedPropertiesHelper.java
25 25

  
26 26
import java.util.HashMap;
27 27
import java.util.Map;
28
import java.util.Map.Entry;
29
import java.util.Set;
28
import org.gvsig.tools.ToolsLocator;
29
import org.gvsig.tools.dynobject.DynStruct;
30
import org.gvsig.tools.persistence.PersistenceManager;
30 31

  
31 32
import org.slf4j.Logger;
32 33
import org.slf4j.LoggerFactory;
33 34

  
34
import org.gvsig.tools.ToolsLocator;
35
import org.gvsig.tools.dynobject.DynStruct;
36
import org.gvsig.tools.persistence.PersistenceManager;
37 35
import org.gvsig.tools.persistence.Persistent;
38
import org.gvsig.tools.persistence.PersistentState;
39
import org.gvsig.tools.persistence.exception.PersistenceException;
40 36
import org.gvsig.tools.util.Callable;
37
import org.gvsig.tools.util.PropertiesSupportHelper;
41 38

  
42
public class ExtendedPropertiesHelper implements ExtendedPropertiesSupport, Persistent {
39
public class ExtendedPropertiesHelper extends PropertiesSupportHelper implements ExtendedPropertiesSupport, Persistent {
43 40

  
44 41
    private static final Logger logger = LoggerFactory.getLogger(ExtendedPropertiesHelper.class);
45 42

  
......
75 72

  
76 73
        state.set("propertiesHelper",propertiesHelper);
77 74

  
78
    */
79
    private Map properties = new HashMap();
80

  
81
	@Override
75
     */
76
    @Override
82 77
    public Object getProperty(Object key) {
83
        return properties.get(key);
78
        return this.getProperty((String) key);
84 79
    }
85 80

  
86
	@Override
81
    @Override
87 82
    public void setProperty(Object key, Object val) {
88
        properties.put(key, val);
83
        this.setProperty((String) key, val);
89 84
    }
90 85

  
91
	@Override
86
    @Override
92 87
    public Map getExtendedProperties() {
93
        return properties;
88
        return this.getProperties();
94 89
    }
95 90

  
96 91
    public void setExtendedProperties(Map properties) {
97
        this.properties = new HashMap();
98
		if( properties!=null ) {
99
			// this.properties.putAll(properties);
100
			this.copyFrom(properties);
101
		}
92
        this.setProperties(properties);
102 93
    }
103 94

  
104
	private void copyFrom(Map properties) {
105
		for(Entry entry : (Set<Entry>)properties.entrySet() ) {
106
			Object key = entry.getKey();
107
			if( key == null ) {
108
				continue;
109
			}
110
			Object value;
111
			try {
112
				value = entry.getValue();
113
			} catch(Throwable th) {
114
                if( logger.isDebugEnabled() ) {
115
                    logger.warn("Can't get property "+key.toString()+".",th);
116
                } else {
117
                    logger.warn("Can't get property "+key.toString()+".");
118
                }
119
				value = null;
120
			}
121
			this.properties.put(key, value);
122
		}
123
	}
124
	
125
	@Override
126
    public void saveToState(PersistentState state) throws PersistenceException {
127
        state.set("properties", properties);
128
    }
129

  
130
	@Override
131
    public void loadFromState(PersistentState state) throws PersistenceException {
132
        this.properties = new HashMap();
133
        Map props = (Map) state.get("properties");
134
		if( props != null) {
135
			copyFrom(props);
136
		}
137
    }
138

  
139 95
    public static class RegisterPersistence implements Callable {
140 96

  
141
		@Override
97
        @Override
142 98
        public Object call() {
143 99
            PersistenceManager manager = ToolsLocator.getPersistenceManager();
144 100
            DynStruct definition = manager.addDefinition(

Also available in: Unified diff