Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 7026)
+++ /trunk/build.xml	(revision 7027)
@@ -269,10 +269,10 @@
     <target name="test-compile" depends="test-init,dist">
         <javac srcdir="${test.dir}/unit" classpathref="test.classpath" destdir="${test.dir}/build" target="1.7" source="1.7" debug="on" includeantruntime="false" encoding="UTF-8">
-            <compilerarg value="-Xlint:deprecation"/>
-            <compilerarg value="-Xlint:unchecked"/>
+            <compilerarg value="-Xlint:all"/>
+            <compilerarg value="-Xlint:-serial"/>
         </javac>
         <javac srcdir="${test.dir}/functional" classpathref="test.classpath" destdir="${test.dir}/build" target="1.7" source="1.7" debug="on" includeantruntime="false" encoding="UTF-8">
-            <compilerarg value="-Xlint:deprecation"/>
-            <compilerarg value="-Xlint:unchecked"/>
+            <compilerarg value="-Xlint:all"/>
+            <compilerarg value="-Xlint:-serial"/>
         </javac>
     </target>
Index: /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 7027)
@@ -86,5 +86,5 @@
         text.append("\n");
         if (Main.platform.getClass() == PlatformHookUnixoid.class) {
-            // Add Java package details for Debian/Ubuntu 
+            // Add Java package details for Debian/Ubuntu
             String packageDetails = ((PlatformHookUnixoid) Main.platform).getJavaPackageDetails();
             if (packageDetails != null) {
@@ -93,5 +93,5 @@
                 text.append("\n");
             }
-            // Add WebStart package details for Debian/Ubuntu, if run from JNLP 
+            // Add WebStart package details for Debian/Ubuntu, if run from JNLP
             if (Package.getPackage("javax.jnlp") != null) {
                 String webStartDetails = ((PlatformHookUnixoid) Main.platform).getWebStartPackageDetails();
@@ -159,5 +159,5 @@
         text.append(reportHeader);
         try {
-            Map<String, Setting> settings = Main.pref.getAllSettings();
+            Map<String, Setting<?>> settings = Main.pref.getAllSettings();
             settings.remove("osm-server.username");
             settings.remove("osm-server.password");
@@ -170,5 +170,5 @@
                 }
             }
-            for (Entry<String, Setting> entry : settings.entrySet()) {
+            for (Entry<String, Setting<?>> entry : settings.entrySet()) {
                 text.append(entry.getKey()).append("=").append(entry.getValue().getValue().toString()).append("\n");
             }
Index: /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 7027)
@@ -60,9 +60,9 @@
  */
 public final class CustomConfigurator {
-    
+
     private CustomConfigurator() {
         // Hide default constructor for utils classes
     }
-    
+
     private static StringBuilder summary = new StringBuilder();
 
@@ -216,5 +216,5 @@
     public static void exportPreferencesKeysByPatternToFile(String fileName, boolean append, String pattern) {
         List<String> keySet = new ArrayList<>();
-        Map<String, Setting> allSettings = Main.pref.getAllSettings();
+        Map<String, Setting<?>> allSettings = Main.pref.getAllSettings();
         for (String key: allSettings.keySet()) {
             if (key.matches(pattern)) keySet.add(key);
@@ -751,5 +751,5 @@
 
         private static void replacePreferences(Preferences fragment, Preferences mainpref) {
-            for (Entry<String, Setting> entry: fragment.settingsMap.entrySet()) {
+            for (Entry<String, Setting<?>> entry: fragment.settingsMap.entrySet()) {
                 mainpref.putSetting(entry.getKey(), entry.getValue());
             }
@@ -757,5 +757,5 @@
 
         private static void appendPreferences(Preferences fragment, Preferences mainpref) {
-            for (Entry<String, Setting> entry: fragment.settingsMap.entrySet()) {
+            for (Entry<String, Setting<?>> entry: fragment.settingsMap.entrySet()) {
                 String key = entry.getKey();
                 if (entry.getValue() instanceof StringSetting) {
@@ -807,5 +807,5 @@
         private static void deletePreferenceValues(Preferences fragment, Preferences mainpref) {
 
-            for (Entry<String, Setting> entry : fragment.settingsMap.entrySet()) {
+            for (Entry<String, Setting<?>> entry : fragment.settingsMap.entrySet()) {
                 String key = entry.getKey();
                 if (entry.getValue() instanceof StringSetting) {
@@ -867,6 +867,6 @@
 
     private static void deletePreferenceKeyByPattern(String pattern, Preferences pref) {
-        Map<String, Setting> allSettings = pref.getAllSettings();
-        for (Entry<String, Setting> entry : allSettings.entrySet()) {
+        Map<String, Setting<?>> allSettings = pref.getAllSettings();
+        for (Entry<String, Setting<?>> entry : allSettings.entrySet()) {
             String key = entry.getKey();
             if (key.matches(pattern)) {
@@ -878,5 +878,5 @@
 
     private static void deletePreferenceKey(String key, Preferences pref) {
-        Map<String, Setting> allSettings = pref.getAllSettings();
+        Map<String, Setting<?>> allSettings = pref.getAllSettings();
         if (allSettings.containsKey(key)) {
             log("Deleting preferences: deleting key from preferences: " + key);
@@ -1008,5 +1008,5 @@
         tmpPref.settingsMap.clear();
 
-        Map<String, Setting> tmp = new HashMap<>();
+        Map<String, Setting<?>> tmp = new HashMap<>();
         for (Entry<String, String> e : stringMap.entrySet()) {
             tmp.put(e.getKey(), new StringSetting(e.getValue()));
@@ -1017,5 +1017,6 @@
 
         for (Entry<String, List<Collection<String>>> e : listlistMap.entrySet()) {
-            @SuppressWarnings("unchecked") List<List<String>> value = (List)e.getValue();
+            @SuppressWarnings("unchecked")
+            List<List<String>> value = (List)e.getValue();
             tmp.put(e.getKey(), new ListListSetting(value));
         }
@@ -1023,5 +1024,5 @@
             tmp.put(e.getKey(), new MapListSetting(e.getValue()));
         }
-        for (Entry<String, Setting> e : tmp.entrySet()) {
+        for (Entry<String, Setting<?>> e : tmp.entrySet()) {
             if (e.getValue().equals(tmpPref.defaultsMap.get(e.getKey()))) continue;
             tmpPref.settingsMap.put(e.getKey(), e.getValue());
@@ -1044,6 +1045,6 @@
 
         if (includeDefaults) {
-            for (Map.Entry<String, Setting> e: tmpPref.defaultsMap.entrySet()) {
-                Setting setting = e.getValue();
+            for (Map.Entry<String, Setting<?>> e: tmpPref.defaultsMap.entrySet()) {
+                Setting<?> setting = e.getValue();
                 if (setting instanceof StringSetting) {
                     stringMap.put(e.getKey(), ((StringSetting) setting).getValue());
@@ -1057,7 +1058,7 @@
             }
         }
-        Iterator<Map.Entry<String, Setting>> it = tmpPref.settingsMap.entrySet().iterator();
+        Iterator<Map.Entry<String, Setting<?>>> it = tmpPref.settingsMap.entrySet().iterator();
         while (it.hasNext()) {
-            Map.Entry<String, Setting> e = it.next();
+            Map.Entry<String, Setting<?>> e = it.next();
             if (e.getValue().getValue() == null) {
                 it.remove();
@@ -1065,6 +1066,6 @@
         }
 
-        for (Map.Entry<String, Setting> e: tmpPref.settingsMap.entrySet()) {
-            Setting setting = e.getValue();
+        for (Map.Entry<String, Setting<?>> e: tmpPref.settingsMap.entrySet()) {
+            Setting<?> setting = e.getValue();
             if (setting instanceof StringSetting) {
                 stringMap.put(e.getKey(), ((StringSetting) setting).getValue());
Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7027)
@@ -89,16 +89,20 @@
 
     /**
-     * Map the setting name to the current value of the setting.
+     * Maps the setting name to the current value of the setting.
      * The map must not contain null as key or value. The mapped setting objects
      * must not have a null value.
      */
-    protected final SortedMap<String, Setting> settingsMap = new TreeMap<>();
-    /**
-     * Map the setting name to the default value of the setting.
+    protected final SortedMap<String, Setting<?>> settingsMap = new TreeMap<>();
+
+    /**
+     * Maps the setting name to the default value of the setting.
      * The map must not contain null as key or value. The value of the mapped
      * setting objects can be null.
      */
-    protected final SortedMap<String, Setting> defaultsMap = new TreeMap<>();
-    // maps color keys to human readable color name
+    protected final SortedMap<String, Setting<?>> defaultsMap = new TreeMap<>();
+
+    /**
+     * Maps color keys to human readable color name
+     */
     protected final SortedMap<String, String> colornames = new TreeMap<>();
 
@@ -261,4 +265,5 @@
      */
     public static class ListListSetting extends AbstractSetting<List<List<String>>> {
+
         /**
          * Constructs a new {@code ListListSetting} with the given value
@@ -269,4 +274,5 @@
             consistencyTest();
         }
+
         /**
          * Convenience factory method.
@@ -284,5 +290,7 @@
             return new ListListSetting(null);
         }
-        @Override public boolean equalVal(List<List<String>> otherVal) {
+
+        @Override
+        public boolean equalVal(List<List<String>> otherVal) {
             if (value == null) return otherVal == null;
             if (otherVal == null) return false;
@@ -295,5 +303,7 @@
             return true;
         }
-        @Override public ListListSetting copy() {
+
+        @Override
+        public ListListSetting copy() {
             if (value == null) return new ListListSetting(null);
 
@@ -305,4 +315,5 @@
             return new ListListSetting(Collections.unmodifiableList(copy));
         }
+
         private void consistencyTest() {
             if (value == null) return;
@@ -312,10 +323,15 @@
             }
         }
-        @Override public void visit(SettingVisitor visitor) {
+
+        @Override
+        public void visit(SettingVisitor visitor) {
             visitor.visit(this);
         }
-        @Override public ListListSetting getNullInstance() {
+
+        @Override
+        public ListListSetting getNullInstance() {
             return new ListListSetting(null);
         }
+
         @Override
         public boolean equals(Object other) {
@@ -329,4 +345,5 @@
      */
     public static class MapListSetting extends AbstractSetting<List<Map<String, String>>> {
+
         /**
          * Constructs a new {@code MapListSetting} with the given value
@@ -337,5 +354,7 @@
             consistencyTest();
         }
-        @Override public boolean equalVal(List<Map<String, String>> otherVal) {
+
+        @Override
+        public boolean equalVal(List<Map<String, String>> otherVal) {
             if (value == null) return otherVal == null;
             if (otherVal == null) return false;
@@ -348,4 +367,5 @@
             return true;
         }
+
         private static boolean equalMap(Map<String, String> a, Map<String, String> b) {
             if (a == null) return b == null;
@@ -357,5 +377,7 @@
             return true;
         }
-        @Override public MapListSetting copy() {
+
+        @Override
+        public MapListSetting copy() {
             if (value == null) return new MapListSetting(null);
             List<Map<String, String>> copy = new ArrayList<>(value.size());
@@ -366,4 +388,5 @@
             return new MapListSetting(Collections.unmodifiableList(copy));
         }
+
         private void consistencyTest() {
             if (value == null) return;
@@ -374,10 +397,15 @@
             }
         }
-        @Override public void visit(SettingVisitor visitor) {
+
+        @Override
+        public void visit(SettingVisitor visitor) {
             visitor.visit(this);
         }
-        @Override public MapListSetting getNullInstance() {
+
+        @Override
+        public MapListSetting getNullInstance() {
             return new MapListSetting(null);
         }
+
         @Override
         public boolean equals(Object other) {
@@ -396,6 +424,6 @@
     public interface PreferenceChangeEvent {
         String getKey();
-        Setting getOldValue();
-        Setting getNewValue();
+        Setting<?> getOldValue();
+        Setting<?> getNewValue();
     }
 
@@ -406,8 +434,8 @@
     private static class DefaultPreferenceChangeEvent implements PreferenceChangeEvent {
         private final String key;
-        private final Setting oldValue;
-        private final Setting newValue;
-
-        public DefaultPreferenceChangeEvent(String key, Setting oldValue, Setting newValue) {
+        private final Setting<?> oldValue;
+        private final Setting<?> newValue;
+
+        public DefaultPreferenceChangeEvent(String key, Setting<?> oldValue, Setting<?> newValue) {
             this.key = key;
             this.oldValue = oldValue;
@@ -419,10 +447,12 @@
             return key;
         }
-        @Override
-        public Setting getOldValue() {
+
+        @Override
+        public Setting<?> getOldValue() {
             return oldValue;
         }
-        @Override
-        public Setting getNewValue() {
+
+        @Override
+        public Setting<?> getNewValue() {
             return newValue;
         }
@@ -437,4 +467,8 @@
     private final CopyOnWriteArrayList<PreferenceChangedListener> listeners = new CopyOnWriteArrayList<>();
 
+    /**
+     * Adds a new preferences listener.
+     * @param listener The listener to add
+     */
     public void addPreferenceChangeListener(PreferenceChangedListener listener) {
         if (listener != null) {
@@ -443,9 +477,13 @@
     }
 
+    /**
+     * Removes a preferences listener.
+     * @param listener The listener to remove
+     */
     public void removePreferenceChangeListener(PreferenceChangedListener listener) {
         listeners.remove(listener);
     }
 
-    protected void firePreferenceChanged(String key, Setting oldValue, Setting newValue) {
+    protected void firePreferenceChanged(String key, Setting<?> oldValue, Setting<?> newValue) {
         PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue);
         for (PreferenceChangedListener l : listeners) {
@@ -595,5 +633,5 @@
     public synchronized Map<String, String> getAllPrefix(final String prefix) {
         final Map<String,String> all = new TreeMap<>();
-        for (final Entry<String,Setting> e : settingsMap.entrySet()) {
+        for (final Entry<String,Setting<?>> e : settingsMap.entrySet()) {
             if (e.getKey().startsWith(prefix) && (e.getValue() instanceof StringSetting)) {
                 all.put(e.getKey(), ((StringSetting) e.getValue()).getValue());
@@ -605,5 +643,5 @@
     public synchronized List<String> getAllPrefixCollectionKeys(final String prefix) {
         final List<String> all = new LinkedList<>();
-        for (Map.Entry<String, Setting> entry : settingsMap.entrySet()) {
+        for (Map.Entry<String, Setting<?>> entry : settingsMap.entrySet()) {
             if (entry.getKey().startsWith(prefix) && entry.getValue() instanceof ListSetting) {
                 all.add(entry.getKey());
@@ -615,5 +653,5 @@
     public synchronized Map<String, String> getAllColors() {
         final Map<String,String> all = new TreeMap<>();
-        for (final Entry<String,Setting> e : defaultsMap.entrySet()) {
+        for (final Entry<String,Setting<?>> e : defaultsMap.entrySet()) {
             if (e.getKey().startsWith("color.") && e.getValue() instanceof StringSetting) {
                 StringSetting d = (StringSetting) e.getValue();
@@ -623,5 +661,5 @@
             }
         }
-        for (final Entry<String,Setting> e : settingsMap.entrySet()) {
+        for (final Entry<String,Setting<?>> e : settingsMap.entrySet()) {
             if (e.getKey().startsWith("color.") && (e.getValue() instanceof StringSetting)) {
                 all.put(e.getKey().substring(6), ((StringSetting) e.getValue()).getValue());
@@ -643,5 +681,5 @@
         boolean generic = getBoolean(key, def);
         String skey = key+"."+specName;
-        Setting prop = settingsMap.get(skey);
+        Setting<?> prop = settingsMap.get(skey);
         if (prop instanceof StringSetting)
             return Boolean.parseBoolean(((StringSetting)prop).getValue());
@@ -980,10 +1018,10 @@
      * @return true, if something has changed (i.e. value is different than before)
      */
-    public boolean putSetting(final String key, Setting setting) {
+    public boolean putSetting(final String key, Setting<?> setting) {
         CheckParameterUtil.ensureParameterNotNull(key);
         if (setting != null && setting.getValue() == null)
             throw new IllegalArgumentException("setting argument must not have null value");
-        Setting settingOld;
-        Setting settingCopy = null;
+        Setting<?> settingOld;
+        Setting<?> settingCopy = null;
         synchronized (this) {
             if (setting == null) {
@@ -1011,5 +1049,5 @@
     }
 
-    public synchronized Setting getSetting(String key, Setting def) {
+    public synchronized Setting<?> getSetting(String key, Setting<?> def) {
         return getSetting(key, def, Setting.class);
     }
@@ -1027,8 +1065,8 @@
      */
     @SuppressWarnings("unchecked")
-    public synchronized <T extends Setting> T getSetting(String key, T def, Class<T> klass) {
+    public synchronized <T extends Setting<?>> T getSetting(String key, T def, Class<T> klass) {
         CheckParameterUtil.ensureParameterNotNull(key);
         CheckParameterUtil.ensureParameterNotNull(def);
-        Setting oldDef = defaultsMap.get(key);
+        Setting<?> oldDef = defaultsMap.get(key);
         if (oldDef != null && oldDef.getValue() != null && def.getValue() != null && !def.equals(oldDef)) {
             Main.info("Defaults for " + key + " differ: " + def + " != " + defaultsMap.get(key));
@@ -1037,5 +1075,5 @@
             defaultsMap.put(key, def.copy());
         }
-        Setting prop = settingsMap.get(key);
+        Setting<?> prop = settingsMap.get(key);
         if (klass.isInstance(prop)) {
             return (T) prop;
@@ -1237,9 +1275,9 @@
     }
 
-    public Map<String, Setting> getAllSettings() {
+    public Map<String, Setting<?>> getAllSettings() {
         return new TreeMap<>(settingsMap);
     }
 
-    public Map<String, Setting> getAllDefaults() {
+    public Map<String, Setting<?>> getAllDefaults() {
         return new TreeMap<>(defaultsMap);
     }
@@ -1556,5 +1594,5 @@
                 Version.getInstance().getVersion() + "\">\n");
         SettingToXml toXml = new SettingToXml(b, nopass);
-        for (Entry<String, Setting> e : settingsMap.entrySet()) {
+        for (Entry<String, Setting<?>> e : settingsMap.entrySet()) {
             toXml.setKey(e.getKey());
             e.getValue().visit(toXml);
@@ -1584,11 +1622,11 @@
                 "gpxLayer.downloadAlongTrack.area",            // 07/2013 - can be removed mid-2014. Replaced by downloadAlongTrack.area
                 "gpxLayer.downloadAlongTrack.near",            // 07/2013 - can be removed mid-2014. Replaced by downloadAlongTrack.near
-                "validator.tests",                             // 01/2014 - can be removed mid-2014. Replaced by validator.skip
-                "validator.testsBeforeUpload",                 // 01/2014 - can be removed mid-2014. Replaced by validator.skipBeforeUpload
-                "validator.TagChecker.sources",                // 01/2014 - can be removed mid-2014. Replaced by validator.TagChecker.source
-                "validator.TagChecker.usedatafile",            // 01/2014 - can be removed mid-2014. Replaced by validator.TagChecker.source
-                "validator.TagChecker.useignorefile",          // 01/2014 - can be removed mid-2014. Replaced by validator.TagChecker.source
-                "validator.TagChecker.usespellfile",           // 01/2014 - can be removed mid-2014. Replaced by validator.TagChecker.source
-                "validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.sources" // 01/2014 - can be removed mid-2014. Replaced by validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.entries
+                "validator.tests",                             // 01/2014 - can be removed end-2014. Replaced by validator.skip
+                "validator.testsBeforeUpload",                 // 01/2014 - can be removed end-2014. Replaced by validator.skipBeforeUpload
+                "validator.TagChecker.sources",                // 01/2014 - can be removed end-2014. Replaced by validator.TagChecker.source
+                "validator.TagChecker.usedatafile",            // 01/2014 - can be removed end-2014. Replaced by validator.TagChecker.source
+                "validator.TagChecker.useignorefile",          // 01/2014 - can be removed end-2014. Replaced by validator.TagChecker.source
+                "validator.TagChecker.usespellfile",           // 01/2014 - can be removed end-2014. Replaced by validator.TagChecker.source
+                "validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.sources" // 01/2014 - can be removed end-2014. Replaced by validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.entries
         };
         for (String key : obsolete) {
@@ -1600,8 +1638,7 @@
     }
 
-    public static boolean isEqual(Setting a, Setting b) {
+    public static boolean isEqual(Setting<?> a, Setting<?> b) {
         if (a == null) return b == null;
         return a.equals(b);
     }
-
 }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 7027)
@@ -205,16 +205,5 @@
         @Override
         public boolean evaluate(OsmPrimitive primitive) {
-            return matchesPrimitive(primitive);
-        }
-
-        /**
-         * Tests whether the {@link OsmPrimitive} contains a deprecated tag which is represented by this {@code MapCSSTagChecker}.
-         *
-         * @param primitive the primitive to test
-         * @return true when the primitive contains a deprecated tag
-         * @deprecated since it does not handle MapCSS-classes
-         */
-        @Deprecated
-        boolean matchesPrimitive(OsmPrimitive primitive) {
+            // Tests whether the primitive contains a deprecated tag which is represented by this MapCSSTagChecker.
             return whichSelectorMatchesPrimitive(primitive) != null;
         }
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTable.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverTable.java	(revision 7027)
@@ -40,5 +40,5 @@
         getActionMap().put("selectPreviousColumnCell", selectPreviousColumnCellAction);
 
-        setRowHeight((int)new JosmComboBox().getPreferredSize().getHeight());
+        setRowHeight((int)new JosmComboBox<String>().getPreferredSize().getHeight());
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java	(revision 7027)
@@ -5,9 +5,4 @@
 
 import java.awt.Component;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -16,6 +11,4 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.swing.DefaultListModel;
@@ -23,5 +16,4 @@
 import javax.swing.JLabel;
 import javax.swing.JList;
-import javax.swing.JOptionPane;
 import javax.swing.ListCellRenderer;
 import javax.swing.UIManager;
@@ -30,5 +22,4 @@
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -84,5 +75,5 @@
             return name.toLowerCase().compareTo(b.name.toLowerCase());
         }
-        
+
         @Override
         public int hashCode() {
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/AdvancedPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/AdvancedPreference.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/AdvancedPreference.java	(revision 7027)
@@ -166,7 +166,7 @@
 
     private void readPreferences(Preferences tmpPrefs) {
-        Map<String, Setting> loaded;
-        Map<String, Setting> orig = Main.pref.getAllSettings();
-        Map<String, Setting> defaults = tmpPrefs.getAllDefaults();
+        Map<String, Setting<?>> loaded;
+        Map<String, Setting<?>> orig = Main.pref.getAllSettings();
+        Map<String, Setting<?>> defaults = tmpPrefs.getAllDefaults();
         orig.remove("osm-server.password");
         defaults.remove("osm-server.password");
@@ -175,5 +175,5 @@
             // plugins preference keys may be changed directly later, after plugins are downloaded
             // so we do not want to show it in the table as "changed" now
-            Setting pluginSetting = orig.get("plugins");
+            Setting<?> pluginSetting = orig.get("plugins");
             if (pluginSetting!=null) {
                 loaded.put("plugins", pluginSetting);
@@ -276,10 +276,10 @@
     };
 
-    private List<PrefEntry> prepareData(Map<String, Setting> loaded, Map<String, Setting> orig, Map<String, Setting> defaults) {
+    private List<PrefEntry> prepareData(Map<String, Setting<?>> loaded, Map<String, Setting<?>> orig, Map<String, Setting<?>> defaults) {
         List<PrefEntry> data = new ArrayList<>();
-        for (Entry<String, Setting> e : loaded.entrySet()) {
-            Setting value = e.getValue();
-            Setting old = orig.get(e.getKey());
-            Setting def = defaults.get(e.getKey());
+        for (Entry<String, Setting<?>> e : loaded.entrySet()) {
+            Setting<?> value = e.getValue();
+            Setting<?> old = orig.get(e.getKey());
+            Setting<?> def = defaults.get(e.getKey());
             if (def == null) {
                 def = value.getNullInstance();
@@ -292,10 +292,10 @@
             data.add(en);
         }
-        for (Entry<String, Setting> e : defaults.entrySet()) {
+        for (Entry<String, Setting<?>> e : defaults.entrySet()) {
             if (!loaded.containsKey(e.getKey())) {
                 PrefEntry en = new PrefEntry(e.getKey(), e.getValue(), e.getValue(), true);
                 // after changes we have default value. So, value is changed if old value is not default
-                Setting old = orig.get(e.getKey());
-                if ( old!=null ) {
+                Setting<?> old = orig.get(e.getKey());
+                if (old != null) {
                     en.markAsChanged();
                 }
@@ -326,5 +326,6 @@
         menu.addSeparator();
         menu.add(new AbstractAction(tr("Reset preferences")) {
-            @Override public void actionPerformed(ActionEvent ae) {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
                 if (!GuiHelper.warnUser(tr("Reset preferences"),
                         "<html>"+
@@ -412,5 +413,5 @@
         for (PrefEntry e : allData) {
             String prefKey = e.getKey();
-            Setting valueSetting = e.getValue();
+            Setting<?> valueSetting = e.getValue();
             String prefValue = valueSetting.getValue() == null ? "" : valueSetting.getValue().toString();
 
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/ExportProfileAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/ExportProfileAction.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/ExportProfileAction.java	(revision 7027)
@@ -42,5 +42,5 @@
     public void actionPerformed(ActionEvent ae) {
         List<String> keys = new ArrayList<>();
-        Map<String, Setting> all = prefs.getAllSettings();
+        Map<String, Setting<?>> all = prefs.getAllSettings();
         for (String key: all.keySet()) {
             if (key.matches(prefPattern)) {
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java	(revision 7027)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.gui.preferences.advanced;
 
-import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.Preferences.Setting;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
@@ -11,6 +11,6 @@
 public class PrefEntry implements Comparable<PrefEntry> {
     private String key;
-    private Preferences.Setting value;
-    private Preferences.Setting defaultValue;
+    private Setting<?> value;
+    private Setting<?> defaultValue;
     private boolean isDefault;
     private boolean changed;
@@ -23,5 +23,5 @@
      * @param isDefault determines if the current value is the default value
      */
-    public PrefEntry(String key, Preferences.Setting value, Preferences.Setting defaultValue, boolean isDefault) {
+    public PrefEntry(String key, Setting<?> value, Setting<?> defaultValue, boolean isDefault) {
         CheckParameterUtil.ensureParameterNotNull(key);
         CheckParameterUtil.ensureParameterNotNull(value);
@@ -45,5 +45,5 @@
      * @return the preference value
      */
-    public Preferences.Setting getValue() {
+    public Setting<?> getValue() {
         return value;
     }
@@ -53,5 +53,5 @@
      * @return the preference default value
      */
-    public Preferences.Setting getDefaultValue() {
+    public Setting<?> getDefaultValue() {
         return defaultValue;
     }
@@ -61,5 +61,5 @@
      * @param value the preference value
      */
-    public void setValue(Preferences.Setting value) {
+    public void setValue(Setting<?> value) {
         this.value = value;
         changed = true;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java	(revision 7026)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java	(revision 7027)
@@ -27,5 +27,9 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.Preferences.ListListSetting;
+import org.openstreetmap.josm.data.Preferences.ListSetting;
+import org.openstreetmap.josm.data.Preferences.MapListSetting;
+import org.openstreetmap.josm.data.Preferences.Setting;
+import org.openstreetmap.josm.data.Preferences.StringSetting;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
@@ -98,6 +102,6 @@
         }
         final PrefEntry e = (PrefEntry) model.getValueAt(getSelectedRow(), 1);
-        Preferences.Setting stg = e.getValue();
-        if (stg instanceof Preferences.StringSetting) {
+        Setting<?> stg = e.getValue();
+        if (stg instanceof StringSetting) {
             editCellAt(getSelectedRow(), 1);
             Component editor = getEditorComponent();
@@ -105,6 +109,6 @@
                 editor.requestFocus();
             }
-        } else if (stg instanceof Preferences.ListSetting) {
-            Preferences.ListSetting lSetting = (Preferences.ListSetting) stg;
+        } else if (stg instanceof ListSetting) {
+            ListSetting lSetting = (ListSetting) stg;
             ListEditor lEditor = new ListEditor(gui, e, lSetting);
             lEditor.showDialog();
@@ -112,10 +116,10 @@
                 List<String> data = lEditor.getData();
                 if (!lSetting.equalVal(data)) {
-                    e.setValue(new Preferences.ListSetting(data));
+                    e.setValue(new ListSetting(data));
                     return true;
                 }
             }
-        } else if (stg instanceof Preferences.ListListSetting) {
-            Preferences.ListListSetting llSetting = (Preferences.ListListSetting) stg;
+        } else if (stg instanceof ListListSetting) {
+            ListListSetting llSetting = (ListListSetting) stg;
             ListListEditor llEditor = new ListListEditor(gui, e, llSetting);
             llEditor.showDialog();
@@ -123,10 +127,10 @@
                 List<List<String>> data = llEditor.getData();
                 if (!llSetting.equalVal(data)) {
-                    e.setValue(new Preferences.ListListSetting(data));
+                    e.setValue(new ListListSetting(data));
                     return true;
                 }
             }
-        } else if (stg instanceof Preferences.MapListSetting) {
-            Preferences.MapListSetting mlSetting = (Preferences.MapListSetting) stg;
+        } else if (stg instanceof MapListSetting) {
+            MapListSetting mlSetting = (MapListSetting) stg;
             MapListEditor mlEditor = new MapListEditor(gui, e, mlSetting);
             mlEditor.showDialog();
@@ -134,5 +138,5 @@
                 List<Map<String, String>> data = mlEditor.getData();
                 if (!mlSetting.equalVal(data)) {
-                    e.setValue(new Preferences.MapListSetting(data));
+                    e.setValue(new MapListSetting(data));
                     return true;
                 }
@@ -182,5 +186,5 @@
         if (dlg.getValue() == 1) {
             if (rbString.isSelected()) {
-                Preferences.StringSetting sSetting = new Preferences.StringSetting(null);
+                StringSetting sSetting = new StringSetting(null);
                 pe = new PrefEntry(tkey.getText(), sSetting, sSetting, false);
                 StringEditor sEditor = new StringEditor(gui, pe, sSetting);
@@ -189,10 +193,10 @@
                     String data = sEditor.getData();
                     if (!Utils.equal(sSetting.getValue(), data)) {
-                        pe.setValue(new Preferences.StringSetting(data));
+                        pe.setValue(new StringSetting(data));
                         ok = true;
                     }
                 }
             } else if (rbList.isSelected()) {
-                Preferences.ListSetting lSetting = new Preferences.ListSetting(null);
+                ListSetting lSetting = new ListSetting(null);
                 pe = new PrefEntry(tkey.getText(), lSetting, lSetting, false);
                 ListEditor lEditor = new ListEditor(gui, pe, lSetting);
@@ -201,10 +205,10 @@
                     List<String> data = lEditor.getData();
                     if (!lSetting.equalVal(data)) {
-                        pe.setValue(new Preferences.ListSetting(data));
+                        pe.setValue(new ListSetting(data));
                         ok = true;
                     }
                 }
             } else if (rbListList.isSelected()) {
-                Preferences.ListListSetting llSetting = new Preferences.ListListSetting(null);
+                ListListSetting llSetting = new ListListSetting(null);
                 pe = new PrefEntry(tkey.getText(), llSetting, llSetting, false);
                 ListListEditor llEditor = new ListListEditor(gui, pe, llSetting);
@@ -213,10 +217,10 @@
                     List<List<String>> data = llEditor.getData();
                     if (!llSetting.equalVal(data)) {
-                        pe.setValue(new Preferences.ListListSetting(data));
+                        pe.setValue(new ListListSetting(data));
                         ok = true;
                     }
                 }
             } else if (rbMapList.isSelected()) {
-                Preferences.MapListSetting mlSetting = new Preferences.MapListSetting(null);
+                MapListSetting mlSetting = new MapListSetting(null);
                 pe = new PrefEntry(tkey.getText(), mlSetting, mlSetting, false);
                 MapListEditor mlEditor = new MapListEditor(gui, pe, mlSetting);
@@ -225,5 +229,5 @@
                     List<Map<String, String>> data = mlEditor.getData();
                     if (!mlSetting.equalVal(data)) {
-                        pe.setValue(new Preferences.MapListSetting(data));
+                        pe.setValue(new MapListSetting(data));
                         ok = true;
                     }
@@ -266,5 +270,5 @@
         @Override
         public boolean isCellEditable(int row, int column) {
-            return column == 1 && (displayData.get(row).getValue() instanceof Preferences.StringSetting);
+            return column == 1 && (displayData.get(row).getValue() instanceof StringSetting);
         }
 
@@ -287,5 +291,5 @@
             String s = (String) o;
             if (!s.equals(pe.getValue().getValue())) {
-                pe.setValue(new Preferences.StringSetting(s));
+                pe.setValue(new StringSetting(s));
                 fireTableCellUpdated(row, column);
             }
@@ -308,5 +312,5 @@
                 return this;
             PrefEntry pe = (PrefEntry) value;
-            Preferences.Setting setting = pe.getValue();
+            Setting<?> setting = pe.getValue();
             Object val = setting.getValue();
             String display = val != null ? val.toString() : "<html><i>&lt;"+tr("unset")+"&gt;</i></html>";
@@ -351,5 +355,5 @@
         public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
             PrefEntry pe = (PrefEntry) value;
-            Preferences.StringSetting stg = (Preferences.StringSetting) pe.getValue();
+            StringSetting stg = (StringSetting) pe.getValue();
             String s = stg.getValue() == null ? "" : stg.getValue();
             return super.getTableCellEditorComponent(table, s, isSelected, row, column);
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java	(revision 7026)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/MapCSSTagCheckerTest.java	(revision 7027)
@@ -55,5 +55,5 @@
         final Node n1 = new Node();
         n1.put("natural", "marsh");
-        assertTrue(check.matchesPrimitive(n1));
+        assertTrue(check.evaluate(n1));
         assertThat(check.getErrorForPrimitive(n1).getMessage(), is("natural=marsh is deprecated"));
         assertThat(check.getErrorForPrimitive(n1).getSeverity(), is(Severity.WARNING));
@@ -63,5 +63,5 @@
         final Node n2 = new Node();
         n2.put("natural", "wood");
-        assertFalse(check.matchesPrimitive(n2));
+        assertFalse(check.evaluate(n2));
         assertThat(MapCSSTagChecker.TagCheck.insertArguments(check.rule.selectors.get(0), "The key is {0.key} and the value is {0.value}"),
                 is("The key is natural and the value is marsh"));
