Changeset 11058 in josm for trunk


Ignore:
Timestamp:
2016-09-27T09:27:42+02:00 (3 years ago)
Author:
simon04
Message:

fix #13581 - Preferences: migrate old color keys

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/Preferences.java

    r10952 r11058  
    1818import java.lang.reflect.Field;
    1919import java.nio.charset.StandardCharsets;
     20import java.util.AbstractMap;
    2021import java.util.ArrayList;
    2122import java.util.Collection;
     
    3839import java.util.regex.Matcher;
    3940import java.util.regex.Pattern;
     41import java.util.stream.Collectors;
    4042import java.util.stream.Stream;
    4143
     
    15261528                "validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.entries",
    15271529                "resource://data/validator/power.mapcss");
     1530        // drop in March 2017
     1531        if (loadedVersion < 11058) {
     1532            migrateOldColorKeys();
     1533        }
    15281534
    15291535        for (String key : OBSOLETE_PREF_KEYS) {
     
    15331539            }
    15341540        }
     1541    }
     1542
     1543    private void migrateOldColorKeys() {
     1544        settingsMap.keySet().stream()
     1545                .filter(key -> key.startsWith("color."))
     1546                .flatMap(key -> {
     1547                    final String newKey = ColorProperty.getColorKey(key.substring("color.".length()));
     1548                    return key.equals(newKey) || settingsMap.containsKey(newKey)
     1549                            ? Stream.empty()
     1550                            : Stream.of(new AbstractMap.SimpleImmutableEntry<>(key, newKey));
     1551                })
     1552                .collect(Collectors.toList()) // to avoid ConcurrentModificationException
     1553                .forEach(entry -> {
     1554                    final String oldKey = entry.getKey();
     1555                    final String newKey = entry.getValue();
     1556                    Main.info("Migrating old color key {0} => {1}", oldKey, newKey);
     1557                    put(newKey, get(oldKey));
     1558                    put(oldKey, null);
     1559                });
    15351560    }
    15361561
Note: See TracChangeset for help on using the changeset viewer.