Ticket #10922: 10922-draft.patch

File 10922-draft.patch, 2.2 KB (added by simon04, 10 years ago)
  • src/org/openstreetmap/josm/data/osm/User.java

    diff --git a/src/org/openstreetmap/josm/data/osm/User.java b/src/org/openstreetmap/josm/data/osm/User.java
    index 738c62e..0d6bcc0 100644
    a b  
    55
    66import java.util.ArrayList;
    77import java.util.HashMap;
    8 import java.util.HashSet;
     8import java.util.LinkedHashSet;
    99import java.util.List;
    1010import java.util.Map;
    1111import java.util.Objects;
    12 import java.util.Set;
    13 
    14 import org.openstreetmap.josm.tools.Utils;
    1512
    1613/**
    1714 * A simple class to keep a list of user names.
    public static User getAnonymous() {  
    134126    }
    135127
    136128    /** the user name */
    137     private final Set<String> names = new HashSet<>();
     129    private final LinkedHashSet<String> names = new LinkedHashSet<>();
    138130    /** the user id */
    139131    private final long uid;
    140132
    public static User getAnonymous() {  
    144136     * @return the user name. Never <code>null</code>, but may be the empty string
    145137     */
    146138    public String getName() {
    147         return Utils.join("/", names);
     139        return names.isEmpty() ? "" : names.iterator().next();
    148140    }
    149141
    150142    /**
    public void addName(String name) {  
    165157        names.add(name);
    166158    }
    167159
     160    public void setPreferredName(String name) {
     161        if (names.size() == 1 && names.contains(name)) {
     162            return;
     163        }
     164        final LinkedHashSet<String> allNames = new LinkedHashSet<>(names);
     165        names.clear();
     166        names.add(name);
     167        names.addAll(allNames);
     168    }
     169
    168170    /**
    169171     * Returns true if the name is in the names list
    170172     *
  • src/org/openstreetmap/josm/io/AbstractParser.java

    diff --git a/src/org/openstreetmap/josm/io/AbstractParser.java b/src/org/openstreetmap/josm/io/AbstractParser.java
    index e947d40..6d0d796 100644
    a b protected final HistoryOsmPrimitive createPrimitive(Attributes atts, OsmPrimitiv  
    116116        if (userStr != null) {
    117117            if (uid != null) {
    118118                user = User.createOsmUser(uid, userStr);
     119                user.setPreferredName(userStr);
    119120            } else {
    120121                user = User.createLocalUser(userStr);
    121122            }