Changeset 2070 in josm for trunk/src/org/openstreetmap/josm/data/osm/Relation.java
- Timestamp:
- 2009-09-06T23:07:33+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/Relation.java
r2017 r2070 2 2 3 3 import java.util.ArrayList; 4 import java.util.HashSet; 4 5 import java.util.List; 6 import java.util.Set; 5 7 6 8 import org.openstreetmap.josm.data.osm.visitor.Visitor; … … 17 19 * All members of this relation. Note that after changing this, 18 20 * makeBackReferences and/or removeBackReferences should be called. 19 */ 21 * 22 * @deprecated use the improved API instead of accessing this list directly 23 */ 24 @Deprecated 20 25 public final List<RelationMember> members = new ArrayList<RelationMember>(); 21 26 … … 104 109 105 110 /** 111 * Create a new relation with id 0 112 */ 113 public Relation() { 114 115 } 116 117 /** 106 118 * Create an identical clone of the argument (including the id) 107 119 */ 108 120 public Relation(Relation clone) { 121 super(clone.getId()); 109 122 cloneFrom(clone); 110 123 } 111 124 112 125 /** 113 * Create an incomplete Relation. 114 */ 115 public Relation(long id) { 116 this.id = id; 117 incomplete = true; 118 } 119 120 /** 121 * Create an empty Relation. Use this only if you set meaningful values 122 * afterwards. 123 */ 124 public Relation() { 125 } 126 * Creates a new relation for the given id. If the id > 0, the way is marked 127 * as incomplete. 128 * 129 * @param id the id. > 0 required 130 * @throws IllegalArgumentException thrown if id < 0 131 */ 132 public Relation(long id) throws IllegalArgumentException { 133 super(id); 134 } 135 126 136 127 137 @Override public void cloneFrom(OsmPrimitive osm) { … … 138 148 // return "{Relation id="+id+" version="+version+" members="+Arrays.toString(members.toArray())+"}"; 139 149 // adding members in string increases memory usage a lot and overflows for looped relations 140 return "{Relation id="+ id+" version="+version+"}";150 return "{Relation id="+getId()+" version="+getVersion()+"}"; 141 151 } 142 152 … … 152 162 153 163 public int compareTo(OsmPrimitive o) { 154 return o instanceof Relation ? Long.valueOf( id).compareTo(o.id) : -1;164 return o instanceof Relation ? Long.valueOf(getId()).compareTo(o.getId()) : -1; 155 165 } 156 166 … … 158 168 public boolean isIncomplete() { 159 169 for (RelationMember m : members) 160 if (m. member== null)170 if (m.getMember() == null) 161 171 return true; 162 172 return false; … … 183 193 ArrayList<RelationMember> todelete = new ArrayList<RelationMember>(); 184 194 for (RelationMember member: members) { 185 if (member. member== primitive) {195 if (member.getMember() == primitive) { 186 196 todelete.add(member); 187 197 } … … 194 204 return formatter.format(this); 195 205 } 206 207 /** 208 * Replies the set of {@see OsmPrimitive}s referred to by at least one 209 * member of this relation 210 * 211 * @return the set of {@see OsmPrimitive}s referred to by at least one 212 * member of this relation 213 */ 214 public Set<OsmPrimitive> getMemberPrimitives() { 215 HashSet<OsmPrimitive> ret = new HashSet<OsmPrimitive>(); 216 for (RelationMember m: members) { 217 if (m.getMember() != null) { 218 ret.add(m.getMember()); 219 } 220 } 221 return ret; 222 } 196 223 }
Note:
See TracChangeset
for help on using the changeset viewer.