This speeds up loading e.g. 60MB mapping file from 32s to 2s
gitlab #241
Needed for district.
Change-Id: I14a4f6d4998c61f88a7d7798947e70ce041a4f1f
(cherry picked from commit
e5a79f44f9d6ce5f38fb61c5db0d9af0a1db35a9)
for (int i=0; i<len; i++) {
Object key = keys[i];
for (int i=0; i<len; i++) {
Object key = keys[i];
- key = getComparableKey(result, key);
Object value = values[i];
result.put(key, value);
}
Object value = values[i];
result.put(key, value);
}
for (int i=0; i<len; i++) {
Object key = keys.get(i);
for (int i=0; i<len; i++) {
Object key = keys.get(i);
- key = getComparableKey(result, key);
Object value = values.get(i);
result.put(key, value);
}
Object value = values.get(i);
result.put(key, value);
}
for (int i=0; i<len; i++) {
Object key = keys[i];
for (int i=0; i<len; i++) {
Object key = keys[i];
- key = getComparableKey(result, key);
Object value = values[i];
result.put(key, value);
}
Object value = values[i];
result.put(key, value);
}
for (int i=0; i<len; i++) {
Object key = keys.get(i);
for (int i=0; i<len; i++) {
Object key = keys.get(i);
- key = getComparableKey(result, key);
Object value = values.get(i);
result.put(key, value);
}
Object value = values.get(i);
result.put(key, value);
}
-
- @SuppressWarnings("unchecked")
- protected Object getComparableKey(Object map, Object key) {
- // if (keyIsComparable) return key;
-
- Map<Object, Object> m = ((Map<Object, Object>)map);
- Binding kb = getKeyBinding();
- for (Object k : m.keySet())
- {
- if (kb.equals(k, key))
- return k;
- }
- return key;
- }
@SuppressWarnings("unchecked")
@Override
public void put(Object map, Object key, Object value) {
Map<Object, Object> m = ((Map<Object, Object>)map);
@SuppressWarnings("unchecked")
@Override
public void put(Object map, Object key, Object value) {
Map<Object, Object> m = ((Map<Object, Object>)map);
- Object ck = getComparableKey(m, key);
- m.remove(ck);
public <K, V> void putAll(Object map, Map<K, V> src) throws BindingException {
Map<K, V> m = ((Map<K, V> )map);
for (Entry<K, V> e : (Set<Entry<K, V> >) src.entrySet()) {
public <K, V> void putAll(Object map, Map<K, V> src) throws BindingException {
Map<K, V> m = ((Map<K, V> )map);
for (Entry<K, V> e : (Set<Entry<K, V> >) src.entrySet()) {
- Object ck = getComparableKey(map, e.getKey());
- m.remove(ck);
m.put(e.getKey(), e.getValue());
}
}
m.put(e.getKey(), e.getValue());
}
}