Fix Arc and add @deprecated javadoc for students to implement.
This commit is contained in:
parent
440dc48c6a
commit
e0268c80af
@ -16,35 +16,51 @@ import java.util.List;
|
|||||||
* @see ArcBackward
|
* @see ArcBackward
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface Arc {
|
public abstract class Arc {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Origin node of this arc.
|
* @return Origin node of this arc.
|
||||||
*/
|
*/
|
||||||
public Node getOrigin();
|
public abstract Node getOrigin();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Destination node of this arc.
|
* @return Destination node of this arc.
|
||||||
*/
|
*/
|
||||||
public Node getDestination();
|
public abstract Node getDestination();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Length of this arc, in meters.
|
* @return Length of this arc, in meters.
|
||||||
*/
|
*/
|
||||||
public float getLength();
|
public abstract double getLength();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compute the time required to travel this arc if moving at the given speed.
|
||||||
|
*
|
||||||
|
* @param speed Speed to compute the travel time.
|
||||||
|
*
|
||||||
|
* @return Time (in seconds) required to travel this arc at the given speed (in
|
||||||
|
* kilometers-per-hour).
|
||||||
|
*/
|
||||||
|
public double getTravelTime(double speed) {
|
||||||
|
return getLength() * 3600.0 / (speed * 1000.0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Minimum time required to travel this arc, in seconds.
|
* @return Minimum time required to travel this arc, in seconds.
|
||||||
|
*
|
||||||
|
* @see Arc#getTravelTime(double)
|
||||||
*/
|
*/
|
||||||
public double getMinimumTravelTime();
|
public double getMinimumTravelTime() {
|
||||||
|
return getTravelTime(getRoadInformation().getMaximumSpeed());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Road information for this arc.
|
* @return Road information for this arc.
|
||||||
*/
|
*/
|
||||||
public RoadInformation getRoadInformation();
|
public abstract RoadInformation getRoadInformation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Points representing segments of this arc.
|
* @return Points representing segments of this arc.
|
||||||
*/
|
*/
|
||||||
public List<Point> getPoints();
|
public abstract List<Point> getPoints();
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
* the original arc.
|
* the original arc.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class ArcBackward implements Arc {
|
class ArcBackward extends Arc {
|
||||||
|
|
||||||
// Original arc
|
// Original arc
|
||||||
private final ArcForward originalArc;
|
private final ArcForward originalArc;
|
||||||
@ -37,15 +37,10 @@ class ArcBackward implements Arc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getLength() {
|
public double getLength() {
|
||||||
return this.originalArc.getLength();
|
return this.originalArc.getLength();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getMinimumTravelTime() {
|
|
||||||
return this.originalArc.getMinimumTravelTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RoadInformation getRoadInformation() {
|
public RoadInformation getRoadInformation() {
|
||||||
return this.originalArc.getRoadInformation();
|
return this.originalArc.getRoadInformation();
|
||||||
|
@ -9,7 +9,7 @@ import java.util.List;
|
|||||||
* arc implementation that stores data relative to the arc.
|
* arc implementation that stores data relative to the arc.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class ArcForward implements Arc {
|
class ArcForward extends Arc {
|
||||||
|
|
||||||
// Destination node.
|
// Destination node.
|
||||||
private final Node origin, destination;
|
private final Node origin, destination;
|
||||||
@ -52,15 +52,10 @@ class ArcForward implements Arc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getLength() {
|
public double getLength() {
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getMinimumTravelTime() {
|
|
||||||
return getLength() * 3600.0 / (info.getMaximumSpeed() * 1000.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RoadInformation getRoadInformation() {
|
public RoadInformation getRoadInformation() {
|
||||||
return info;
|
return info;
|
||||||
|
Loading…
Reference in New Issue
Block a user