Changeset 9536 in josm


Ignore:
Timestamp:
2016-01-19T10:52:33+01:00 (9 years ago)
Author:
simon04
Message:

Refactoring (make Tag implement the Tagged interface)

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

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

    r9371 r9536  
    22package org.openstreetmap.josm.data.osm;
    33
     4import java.util.Collection;
     5import java.util.Collections;
     6import java.util.Map;
    47import java.util.Objects;
    58
     
    1114 * be empty, but not null.
    1215 *
     16 * <p/>
     17 * It implements the {@link Tagged} interface. However, since instances of this class are immutable,
     18 * the modifying methods throw an {@link UnsupportedOperationException}.
    1319 */
    14 public class Tag {
     20public class Tag implements Tagged {
    1521
    16     private String key;
    17     private String value;
     22    private final String key;
     23    private final String value;
    1824
    1925    /**
     
    131137        return Utils.strip(s).replaceAll("\\s+", " ");
    132138    }
     139
     140    /**
     141     * Unsupported.
     142     * @param keys ignored
     143     * @throws UnsupportedOperationException
     144     */
     145    @Override
     146    public void setKeys(Map<String, String> keys) {
     147        throw new UnsupportedOperationException();
     148    }
     149
     150    @Override
     151    public Map<String, String> getKeys() {
     152        return Collections.singletonMap(key, value);
     153    }
     154
     155    /**
     156     * Unsupported.
     157     * @param key ignored
     158     * @param value ignored
     159     * @throws UnsupportedOperationException
     160     */
     161    @Override
     162    public void put(String key, String value) {
     163        throw new UnsupportedOperationException();
     164    }
     165
     166    @Override
     167    public String get(String k) {
     168        return key.equals(k) ? value : null;
     169    }
     170
     171    /**
     172     * Unsupported.
     173     * @param key ignored
     174     * @throws UnsupportedOperationException
     175     */
     176    @Override
     177    public void remove(String key) {
     178        throw new UnsupportedOperationException();
     179    }
     180
     181    @Override
     182    public boolean hasKeys() {
     183        return true;
     184    }
     185
     186    @Override
     187    public Collection<String> keySet() {
     188        return Collections.singleton(key);
     189    }
     190
     191    /**
     192     * Unsupported.
     193     * @throws UnsupportedOperationException
     194     */
     195    @Override
     196    public void removeAll() {
     197        throw new UnsupportedOperationException();
     198    }
    133199}
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/SearchBasedRowFilter.java

    r9231 r9536  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.dialogs.properties;
    3 
    4 import java.util.Collection;
    5 import java.util.Collections;
    6 import java.util.Map;
    73
    84import javax.swing.RowFilter;
     
    106
    117import org.openstreetmap.josm.actions.search.SearchCompiler;
    12 import org.openstreetmap.josm.data.osm.Tagged;
     8import org.openstreetmap.josm.data.osm.Tag;
    139
    1410/**
     
    3430        final String key = entry.getStringValue(0);
    3531        final String value = entry.getStringValue(1);
    36         return filter.match(new OneKeyValue(key, value));
     32        return filter.match(new Tag(key, value));
    3733    }
    3834
    39     static class OneKeyValue implements Tagged {
    40         private final String key;
    41         private final String value;
    42 
    43         OneKeyValue(String key, String value) {
    44             this.key = key;
    45             this.value = value;
    46         }
    47 
    48         @Override
    49         public void setKeys(Map<String, String> keys) {
    50             throw new UnsupportedOperationException();
    51         }
    52 
    53         @Override
    54         public Map<String, String> getKeys() {
    55             return Collections.singletonMap(key, value);
    56         }
    57 
    58         @Override
    59         public void put(String key, String value) {
    60             throw new UnsupportedOperationException();
    61         }
    62 
    63         @Override
    64         public String get(String k) {
    65             return key.equals(k) ? value : null;
    66         }
    67 
    68         @Override
    69         public void remove(String key) {
    70             throw new UnsupportedOperationException();
    71         }
    72 
    73         @Override
    74         public boolean hasKeys() {
    75             return true;
    76         }
    77 
    78         @Override
    79         public Collection<String> keySet() {
    80             return Collections.singleton(key);
    81         }
    82 
    83         @Override
    84         public void removeAll() {
    85             throw new UnsupportedOperationException();
    86         }
    87     }
    8835}
Note: See TracChangeset for help on using the changeset viewer.