source: josm/trunk/src/org/openstreetmap/josm/data/preferences/ParametrizedEnumProperty.java@ 9798

Last change on this file since 9798 was 9743, checked in by bastiK, 8 years ago

applied #12438 - hide items from list of recently added tags (patch by kolesar; minor changes)

  • Property svn:eol-style set to native
File size: 927 bytes
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.preferences;
3
4import org.openstreetmap.josm.Main;
5
6public abstract class ParametrizedEnumProperty<T extends Enum<T>> {
7
8 protected final T defaultValue;
9 protected final Class<T> enumClass;
10
11 public ParametrizedEnumProperty(Class<T> enumClass, T defaultValue) {
12 this.defaultValue = defaultValue;
13 this.enumClass = enumClass;
14 }
15
16 protected abstract String getKey(String... params);
17
18 public T get(String... params) {
19 return parse(Main.pref.get(getKey(params), defaultValue.name()));
20 }
21
22 public boolean put(T value, String... params) {
23 return Main.pref.put(getKey(params), value.name());
24 }
25
26 protected T parse(String s) {
27 try {
28 return Enum.valueOf(enumClass, s);
29 } catch (IllegalArgumentException e) {
30 return defaultValue;
31 }
32 }
33}
Note: See TracBrowser for help on using the repository browser.