- Timestamp:
- 2009-12-14T19:19:16+01:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/User.java
r2512 r2638 2 2 package org.openstreetmap.josm.data.osm; 3 3 4 import static org.openstreetmap.josm.tools.I18n.tr;5 6 4 import java.util.ArrayList; 7 5 import java.util.HashMap; 6 import java.util.HashSet; 8 7 import java.util.List; 9 8 import java.util.concurrent.atomic.AtomicLong; … … 56 55 userMap.put(user.getId(), user); 57 56 } 58 if (!user.getName().equals(name)) 59 throw new DataIntegrityProblemException(tr("User with the same uid but different name found")); 57 user.addName(name); 60 58 return user; 61 59 } … … 93 91 List<User> ret = new ArrayList<User>(); 94 92 for (User user: userMap.values()) { 95 if (user. getName().equals(name)) {93 if (user.hasName(name)) { 96 94 ret.add(user); 97 95 } … … 101 99 102 100 /** the user name */ 103 private final String name;101 private final HashSet<String> names = new HashSet<String>(); 104 102 /** the user id */ 105 103 private final long uid; … … 111 109 */ 112 110 public String getName() { 113 return name; 111 StringBuilder sb = new StringBuilder(); 112 for (String name: names) { 113 sb.append(name); 114 sb.append('/'); 115 } 116 sb.deleteCharAt(sb.length() - 1); 117 return sb.toString(); 118 } 119 120 /* 121 * Returns the list of user names 122 * 123 * @returns list of names 124 */ 125 public ArrayList<String> getNames() { 126 return new ArrayList<String>(names); 127 } 128 129 /* 130 * Adds a user name to the list if it is not there, yet. 131 * 132 * @param name 133 */ 134 public void addName(String name) { 135 names.add(name); 136 } 137 138 /* 139 * Returns true if the name is in the names list 140 * 141 * @param name 142 */ 143 public boolean hasName(String name) { 144 return names.contains(name); 114 145 } 115 146 … … 130 161 private User(long uid, String name) { 131 162 this.uid = uid; 132 if (name == null) { 133 this.name = ""; 134 } else { 135 this.name = name; 163 if (name != null) { 164 addName(name); 136 165 } 137 166 } … … 149 178 final int prime = 31; 150 179 int result = 1; 151 result = prime * result + name.hashCode();180 result = prime * result + getName().hashCode(); 152 181 result = prime * result + (int) (uid ^ (uid >>> 32)); 153 182 return result; … … 156 185 @Override 157 186 public boolean equals(Object obj) { 158 if (obj instanceof User) { 159 User other = (User) obj; 160 if (!name.equals(other.name)) 161 return false; 162 if (uid != other.uid) 163 return false; 164 return true; 165 } else 187 if (! (obj instanceof User)) 166 188 return false; 189 User other = (User) obj; 190 if (uid != other.uid) 191 return false; 192 return true; 167 193 } 168 194 }
Note:
See TracChangeset
for help on using the changeset viewer.