source: josm/trunk/src/org/openstreetmap/josm/tools/TaggingPresetNameTemplateList.java@ 5155

Last change on this file since 5155 was 5155, checked in by simon04, 12 years ago

fix #5933 - tagging presets: allow to change the matching process (match=none|key|key!|keyvalue), remove delete_if_empty, default defaults to "", adapted comments in defaultpresets.xml, refactoring of the matching process (removes some duplicate code and some magical arithmetic)

File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import java.util.EnumSet;
5import java.util.LinkedList;
6import java.util.List;
7
8import org.openstreetmap.josm.data.osm.OsmPrimitive;
9import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
10import org.openstreetmap.josm.gui.tagging.TaggingPreset;
11import org.openstreetmap.josm.gui.tagging.TaggingPreset.PresetType;
12
13/**
14 * List of tagging presets with name templates, allows to find appropriate template based on existing primitive
15 */
16public class TaggingPresetNameTemplateList {
17
18 private static TaggingPresetNameTemplateList instance;
19
20 public static TaggingPresetNameTemplateList getInstance() {
21 if (instance == null) {
22 instance = new TaggingPresetNameTemplateList();
23 }
24 return instance;
25 }
26 private final List<TaggingPreset> presetsWithPattern = new LinkedList<TaggingPreset>();
27
28 private TaggingPresetNameTemplateList() {
29 if (TaggingPresetPreference.taggingPresets != null) {
30 for (TaggingPreset tp : TaggingPresetPreference.taggingPresets) {
31 if (tp.nameTemplate != null) {
32 presetsWithPattern.add(tp);
33 }
34 }
35 }
36 }
37
38 public TaggingPreset findPresetTemplate(OsmPrimitive primitive) {
39
40 for (TaggingPreset t : presetsWithPattern) {
41 if (t.matches(EnumSet.of(PresetType.forPrimitive(primitive)), primitive.getKeys())) {
42 return t;
43 }
44 }
45 return null;
46 }
47}
Note: See TracBrowser for help on using the repository browser.