Changeset 30725 in osm for applications/editors/josm/plugins/junctionchecking/src/org/openstreetmap/josm/plugins/JunctionChecker/datastructure/BasicChannel.java
- Timestamp:
- 2014-10-16T02:11:23+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/junctionchecking/src/org/openstreetmap/josm/plugins/JunctionChecker/datastructure/BasicChannel.java
r25501 r30725 9 9 public class BasicChannel { 10 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 11 private OSMNode toNode; 12 private OSMNode fromNode; 13 private ArrayList<LeadsTo> leadsTo = new ArrayList<LeadsTo>(); 14 private final ArrayList<OSMWay> ways = new ArrayList<OSMWay>(); 15 private int newid; 16 //gibt es nur, wenn ein Channelobjekt aus einer Nichteinbahnstraße erzeugt wurde (backchannelID ist dann die ID des anderen Channels) 17 private int backChannelID = -100; 18 private final ArrayList<Channel> predChannels = new ArrayList<Channel>(); 19 20 //werden für den Tarjan-Algorithmus gebraucht 21 private int lowlink = -1; 22 private int index = -1; 23 24 /** 25 * fügt einen Vorgängerchannel hinzu 26 * @param channel der voherige Channel 27 */ 28 public void addPredChannel(Channel channel) { 29 predChannels.add(channel); 30 } 31 32 /** 33 * setzt den ToNode 34 * @param toNode 35 */ 36 public void setToNode(OSMNode toNode) { 37 this.toNode = toNode; 38 } 39 40 /** 41 * gbit den ToNode zurück 42 */ 43 public OSMNode getToNode() { 44 return toNode; 45 } 46 47 /** 48 * setzt den FromNode 49 */ 50 public void setFromNode(OSMNode fromNode) { 51 this.fromNode = fromNode; 52 } 53 54 /** 55 * gibt den FromNode zurück 56 */ 57 public OSMNode getFromNode() { 58 return fromNode; 59 } 60 61 /** 62 * fügt eine LeadsTo-Beziehung hinzu 63 * @param leadsTo 64 */ 65 public void addLeadsTo(LeadsTo leadsTo) { 66 this.leadsTo.add(leadsTo); 67 } 68 69 /** 70 * setzt alle leadsTo-Beziehungen (löscht alle voherigen) 71 */ 72 public void setLeadsTo(ArrayList<LeadsTo> leadsTo) { 73 this.leadsTo = leadsTo; 74 } 75 76 /** 77 * löscht alle LeadsTo des Channels 78 */ 79 public void removeLeadsTo() { 80 this.leadsTo.clear(); 81 } 82 83 /** 84 * gibt alle leadsTo zurück 85 * @return 86 */ 87 public ArrayList<LeadsTo> getLeadsTo() { 88 return leadsTo; 89 } 90 91 /** 92 * fügt einen Way hinzu, aus dem der Channel enstanden ist 93 * es gibt immer mind. einen Way, es können aber auch mehr sein 94 * @param way 95 */ 96 public void addWay(OSMWay way) { 97 this.ways.add(way); 98 } 99 100 /** 101 * gibt alle Ways zurück 102 * @return 103 */ 104 public ArrayList<OSMWay> getWays() { 105 return ways; 106 } 107 108 /** 109 * gibt nur den ersten Way der ArrayList zurück! wird bei der 110 * XML-datei-Erzeugung benutzt, um den Way, der aus dem Channel entsteht, 111 * mit Werten zu füllen dabei gehen Informationen verloren, da ein Channel 112 * aus mehr als einem Way bestehen kann 113 * 114 * @return 115 */ 116 public OSMWay getWay() { 117 return ways.get(0); 118 } 119 120 /** 121 * setzt die ID des Channels. es kann nicht die ID des Ways übernommen werden, da aus einem Way oftmals mehrere Channels entstehen (z.B. bei jeder Nichteinbahnstraße mind. 2) 122 */ 123 public void setNewid(int newid) { 124 this.newid = newid; 125 } 126 127 /** 128 * gbit die NewID zurück 129 */ 130 public int getNewid() { 131 return newid; 132 } 133 134 /** 135 * gibt alle VorgängerChannels zurück 136 * @return 137 */ 138 public ArrayList<Channel> getPredChannels() { 139 return predChannels; 140 } 141 142 /** 143 * ToString Methode 144 */ 145 @Override 146 public String toString() { 147 String lt =""; 148 for (int i = 0; i < leadsTo.size(); i++) { 149 lt += leadsTo.get(i).getToChannel().getNewid() + ", "; 150 } 151 String predch = ""; 152 for (int i = 0; i < predChannels.size(); i++) { 153 predch += predChannels.get(i).getNewid() + ", "; 154 } 155 return "[ChannelID: "+ newid + ":AnzahlPredCH: " + predChannels.size() + ":PredCh: " + predch + ":AnzahlSuccCH: " + leadsTo.size() +":LeadsTo: " + lt+ ":backCHID: " + backChannelID + "]"; 156 } 157 158 public void setBackChannelID(int backChannelID) { 159 this.backChannelID = backChannelID; 160 } 161 162 public int getBackChannelID() { 163 return backChannelID; 164 } 165 166 /** 167 * wandelt den Channel in einen OSMWay um 168 * dabie werden die Werte des 1. Way, der im Channel ist, übernommen, wenn ein 169 * 1. Channel existiert 170 */ 171 public OSMWay ToOSMWay() { 172 OSMWay way = new OSMWay(); 173 way.addNode(this.fromNode); 174 way.addNode(this.toNode); 175 way.setId((long)this.newid); 176 if (this.getWay() != null) { 177 way.setHashmap(this.getWay().getHashmap()); 178 } 179 return way; 180 } 181 182 public void ereasePredChannel(Channel rchannel) { 183 predChannels.remove(rchannel); 184 } 185 186 public int getLowlink() { 187 return lowlink; 188 } 189 190 public void setLowlink(int lowlink) { 191 this.lowlink = lowlink; 192 } 193 194 public int getIndex() { 195 return index; 196 } 197 198 public void setIndex(int index) { 199 this.index = index; 200 } 201 202 public void removeLeadsTo(LeadsTo leadsTo) { 203 this.leadsTo.remove(leadsTo); 204 } 205 205 }
Note:
See TracChangeset
for help on using the changeset viewer.