76 lines
1.7 KiB
Java
76 lines
1.7 KiB
Java
package org.insa.graph;
|
|
|
|
/**
|
|
* Class containing information for road that may be shared by multiple arcs.
|
|
*
|
|
*/
|
|
public class RoadInformation {
|
|
|
|
/**
|
|
* Road type.
|
|
*/
|
|
public enum RoadType {
|
|
MOTORWAY, TRUNK, PRIMARY, SECONDARY, MOTORWAY_LINK, TRUNK_LINK, PRIMARY_LINK, SECONDARY_LINK, TERTIARY, RESIDENTIAL, UNCLASSIFIED, ROAD, LIVING_STREET, SERVICE, ROUNDABOUT, COASTLINE
|
|
}
|
|
|
|
// Type of the road (see above).
|
|
private final RoadType type;
|
|
|
|
// One way road?
|
|
private final boolean oneway;
|
|
|
|
// Max speed in kilometers per hour.
|
|
private final int maxSpeed;
|
|
|
|
// Name of the road.
|
|
private final String name;
|
|
|
|
public RoadInformation(RoadType roadType, boolean isOneWay, int maxSpeed, String name) {
|
|
this.type = roadType;
|
|
this.oneway = isOneWay;
|
|
this.maxSpeed = maxSpeed;
|
|
this.name = name;
|
|
}
|
|
|
|
/**
|
|
* @return Type of the road.
|
|
*/
|
|
public RoadType getType() {
|
|
return type;
|
|
}
|
|
|
|
/**
|
|
* @return true if this is a one-way road.
|
|
*/
|
|
public boolean isOneWay() {
|
|
return oneway;
|
|
}
|
|
|
|
/**
|
|
* @return Maximum speed for this road (in km/h).
|
|
*/
|
|
public int getMaximumSpeed() {
|
|
return maxSpeed;
|
|
}
|
|
|
|
/**
|
|
* @return Name of the road.
|
|
*/
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
String typeAsString = "road";
|
|
if (getType() == RoadType.COASTLINE) {
|
|
typeAsString = "coast";
|
|
}
|
|
if (getType() == RoadType.MOTORWAY) {
|
|
typeAsString = "highway";
|
|
}
|
|
return typeAsString + " : " + getName() + " " + (isOneWay() ? " (oneway) " : "") + maxSpeed + " km/h (max.)";
|
|
}
|
|
|
|
}
|