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
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