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

Last change on this file since 8390 was 7937, checked in by bastiK, 9 years ago

add subversion property svn:eol=native

  • Property svn:eol-style set to native
File size: 818 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
9 private final T defaultValue;
10 private final Class<T> enumClass;
11
12 public ParametrizedEnumProperty(Class<T> enumClass, T defaultValue) {
13 this.defaultValue = defaultValue;
14 this.enumClass = enumClass;
15 }
16
17 protected abstract String getKey(String... params);
18
19 public T get(String... params) {
20 return parse(Main.pref.get(getKey(params), defaultValue.name()));
21 }
22
23 public boolean put(T value, String... params) {
24 return Main.pref.put(getKey(params), value.name());
25 }
26
27 protected T parse(String s) {
28 return Enum.valueOf(enumClass, s);
29 }
30
31
32}
Note: See TracBrowser for help on using the repository browser.