// License: GPL. For details, see LICENSE file.
package public_transport;
import static org.openstreetmap.josm.tools.I18n.tr;
import org.openstreetmap.josm.data.osm.Relation;
public class RouteReference implements Comparable<RouteReference> {
Relation route;
public RouteReference(Relation route) {
this.route = route;
}
@Override
public int compareTo(RouteReference rr) {
if (route.get("route") != null) {
if (rr.route.get("route") == null)
return -1;
int result = route.get("route").compareTo(rr.route.get("route"));
if (result != 0)
return result;
} else if (rr.route.get("route") != null)
return 1;
if (route.get("ref") != null) {
if (rr.route.get("ref") == null)
return -1;
int result = route.get("ref").compareTo(rr.route.get("ref"));
if (result != 0)
return result;
} else if (rr.route.get("ref") != null)
return 1;
if (route.get("to") != null) {
if (rr.route.get("to") == null)
return -1;
int result = route.get("to").compareTo(rr.route.get("to"));
if (result != 0)
return result;
} else if (rr.route.get("to") != null)
return 1;
if (route.get("direction") != null) {
if (rr.route.get("direction") == null)
return -1;
int result = route.get("direction").compareTo(rr.route.get("direction"));
if (result != 0)
return result;
} else if (rr.route.get("direction") != null)
return 1;
if (route.getId() < rr.route.getId())
return -1;
else if (route.getId() > rr.route.getId())
return 1;
return 0;
}
@Override
public String toString() {
String buf = route.get("route");
if ((route.get("ref") != null) && (route.get("ref") != "")) {
buf += " " + route.get("ref");
}
if ((route.get("loc_ref") != null) && (route.get("loc_ref") != "")) {
buf += " [" + route.get("loc_ref") + "]";
}
if ((route.get("to") != null) && (route.get("to") != "")) {
buf += ": " + route.get("to");
} else if ((route.get("direction") != null) && (route.get("direction") != "")) {
buf += " " + route.get("ref") + ": " + route.get("direction");
} else {
buf += " " + route.get("ref");
}
buf += tr(" [ID] {0}", Long.toString(route.getId()));
return buf;
}
}