001    package ps2;
002    
003    import java.util.*;
004    import java.text.*;
005    
006    
007    /**
008     * <p>
009     * A WalkingRouteFormatter class knows how to create a textual
010     * description of directions from one location to another suitable for
011     * a pedestrian.
012     * </p>
013     *
014     * <p>
015     * Calling <tt>computeDirections</tt> should produce directions in the
016     * following form:
017     * </p>
018     *
019     * <p>
020     * <pre>
021     * Turn right onto Baker Street and walk for 20 minutes.
022     * Turn slight left onto MacGregor Street and walk for 8 minutes.
023     * Turn sharp right onto Burton street and walk for 3 minutes.
024     * Continue onto Connor Street and walk for 12 minutes.
025     * </pre>
026     * </p>
027     *
028     * <p>
029     * Each line should correspond to a single geographic feature of the
030     * route.  In the first line, "Baker Street" is the name of the first
031     * geographical feature of the route, and "20 minutes" is the length
032     * of time that it would take to walk along the geographic feature,
033     * assuming a walking speed of 20 minutes per mile.  The time in
034     * minutes should be reported to the nearest minute. Each line should
035     * be terminated by a newline and should include no extra spaces other
036     * than those shown above.
037     * </p>
038     **/
039    public class WalkingRouteFormatter extends RouteFormatter {
040    
041        /**
042         * <p>
043         * Computes a single line of a multi-line directions String that
044         * represents the instructions for walking along a single
045         * geographical feature.
046         * </p>
047         *
048         * <p>
049         * Calling <tt>computeLine</tt> with a GeoFeature instance and an
050         * initial heading should produce a newline-terminated String in
051         * the following form:
052         * </p>
053         *
054         * <p>
055         * <pre>
056         * Turn sharp left onto MacGregor Street and walk for 18 minutes.
057         * </pre>
058         * </p>
059         *
060         * <p>
061         * In the output above, "MacGregor Street" represents the name of
062         * the geographical feature, and "18 minutes" is the length of
063         * time that it would take to walk along the geographic feature,
064         * assuming a walking speed of 20 minutes per mile.  The time in
065         * minutes should be reported to the nearest minute.  Each line
066         * should be terminated by a newline and should include no extra
067         * spaces other than those shown above.
068         * </p>
069         *
070         * @requires 0 &lt;= origHeading &lt; 360
071         * @param geoFeature The geographical feature to traverse.
072         * @param origHeading The initial heading
073         * @return A newline-terminated <tt>String</tt> that gives
074         * directions on how to walk along this geographical feature.
075         **/
076        public String computeLine(GeoFeature geoFeature, double origHeading) {
077            throw new RuntimeException("Not yet implemented");
078        }
079    }