Changeset 159 in josm for src/org/openstreetmap/josm/data
- Timestamp:
- 2006-10-13T13:02:57+02:00 (19 years ago)
- Location:
- src/org/openstreetmap/josm/data/osm
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
r103 r159 88 88 89 89 /** 90 * Return the id as hashcode or supers hashcode if 0. 90 * Return the id plus the class type encoded as hashcode or supers hashcode if id is 0. 91 91 * 92 92 * An primitive has the same hashcode as its incomplete counter part. 93 93 */ 94 94 @Override public final int hashCode() { 95 return id == 0 ? super.hashCode() : (int)id; 95 if (id == 0) 96 return super.hashCode(); 97 final int[] ret = new int[1]; 98 Visitor v = new Visitor(){ 99 public void visit(Node n) { ret[0] = 1; } 100 public void visit(Segment s) { ret[0] = 2; } 101 public void visit(Way w) { ret[0] = 3; } 102 }; 103 visit(v); 104 return id == 0 ? super.hashCode() : (int)(id<<3)+ret[0]; 96 105 } 97 106 -
src/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitor.java
r86 r159 41 41 * Ways have all nodes from their segments. 42 42 */ 43 public void visit(Way t) {44 for (Segment ls : t.segments)43 public void visit(Way w) { 44 for (Segment ls : w.segments) 45 45 visit(ls); 46 46 } -
src/org/openstreetmap/josm/data/osm/visitor/BoundingXYVisitor.java
r146 r159 28 28 } 29 29 30 public void visit(Way t) {31 for (Segment ls : t.segments)30 public void visit(Way w) { 31 for (Segment ls : w.segments) 32 32 visit(ls); 33 33 } -
src/org/openstreetmap/josm/data/osm/visitor/CollectBackReferencesVisitor.java
r100 r159 57 57 } 58 58 public void visit(Segment ls) { 59 for (Way t: ds.ways) {60 if ( t.deleted)59 for (Way w : ds.ways) { 60 if (w.deleted) 61 61 continue; 62 if ( t.segments.contains(ls))63 data.add( t);62 if (w.segments.contains(ls)) 63 data.add(w); 64 64 } 65 65 } 66 public void visit(Way t) {}66 public void visit(Way w) {} 67 67 } -
src/org/openstreetmap/josm/data/osm/visitor/DeleteVisitor.java
r86 r159 29 29 ds.segments.remove(ls); 30 30 } 31 public void visit(Way t) {32 ds.ways.remove( t);31 public void visit(Way w) { 32 ds.ways.remove(w); 33 33 } 34 34 } -
src/org/openstreetmap/josm/data/osm/visitor/MergeVisitor.java
r119 r159 147 147 148 148 Way my = null; 149 for (Way t: ds.ways) {150 if (match(other, t)) {151 my = t;149 for (Way w : ds.ways) { 150 if (match(other, w)) { 151 my = w; 152 152 break; 153 153 } … … 211 211 } 212 212 213 private void fixWay(Way t) {213 private void fixWay(Way w) { 214 214 boolean replacedSomething = false; 215 215 LinkedList<Segment> newSegments = new LinkedList<Segment>(); 216 for (Segment ls : t.segments) {216 for (Segment ls : w.segments) { 217 217 Segment otherLs = mergedSegments.get(ls); 218 218 newSegments.add(otherLs == null ? ls : otherLs); … … 221 221 } 222 222 if (replacedSomething) { 223 t.segments.clear();224 t.segments.addAll(newSegments);223 w.segments.clear(); 224 w.segments.addAll(newSegments); 225 225 } 226 for (Segment ls : t.segments)226 for (Segment ls : w.segments) 227 227 fixSegment(ls); 228 228 } … … 258 258 * @return Whether the ways matches (in sense of "be mergable"). 259 259 */ 260 private boolean match(Way t1, Wayt2) {261 if ( t1.id == 0 ||t2.id == 0) {262 if ( t1.segments.size() !=t2.segments.size())260 private boolean match(Way w1, Way w2) { 261 if (w1.id == 0 || w2.id == 0) { 262 if (w1.segments.size() != w2.segments.size()) 263 263 return false; 264 Iterator<Segment> it = t1.segments.iterator();265 for (Segment ls : t2.segments)264 Iterator<Segment> it = w1.segments.iterator(); 265 for (Segment ls : w2.segments) 266 266 if (!match(ls, it.next())) 267 267 return false; 268 268 return true; 269 269 } 270 return t1.id ==t2.id;270 return w1.id == w2.id; 271 271 } 272 272
Note:
See TracChangeset
for help on using the changeset viewer.