001    package com.google.gwt.maps.client.services;
002    
003    import com.google.gwt.core.client.JavaScriptObject;
004    import com.google.gwt.core.client.JsArray;
005    import com.google.gwt.maps.client.base.LatLng;
006    
007    /**
008     * A single DirectionsStep in a DirectionsResult. Some fields may be undefined. Note that though this object is "JSON-like," it is not strictly JSON, as it directly includes LatLng objects.
009     * <br><br>
010     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#DirectionsStep">DirectionsStep API Doc</a>
011     */
012    public class DirectionsStep extends JavaScriptObject {
013    
014      /**
015       * use newInstance();
016       */
017      protected DirectionsStep() {}
018      
019      /**
020       * A single DirectionsStep in a DirectionsResult. Some fields may be undefined. Note that though this object is "JSON-like," it is not strictly JSON, as it directly includes LatLng objects.
021       */
022      public static final DirectionsStep newInstance() {
023        return JavaScriptObject.createObject().cast();
024      }
025      
026      /**
027       * The distance covered by this step. This property may be undefined as the distance may be unknown.
028       * @param distance
029       */
030      public final native void setDistance(Distance distance) /*-{
031        this.distance = distance;
032      }-*/;
033      
034      /**
035       * The distance covered by this step. This property may be undefined as the distance may be unknown.
036       */
037      public final native Distance getDistance() /*-{
038        return this.distance;
039      }-*/;
040      
041      /**
042       * The typical time required to perform this step in seconds and in text form. This property may be undefined as the duration may be unknown.
043       * @param duration
044       */
045      public final native void setDuration(Duration duration) /*-{
046        this.duration = duration;
047      }-*/;
048      
049      /**
050       * The typical time required to perform this step in seconds and in text form. This property may be undefined as the duration may be unknown.
051       */
052      public final native Duration getDuration() /*-{
053        return this.duration;
054      }-*/;
055      
056      /**
057       * The ending location of this step.
058       * @param end_location
059       */
060      public final native void setEnd_Location(LatLng end_location) /*-{
061        this.end_location = end_location;
062      }-*/;
063      
064      /**
065       * The ending location of this step.
066       */
067      public final native LatLng getEnd_Location() /*-{
068        return this.end_location;
069      }-*/;
070      
071      /**
072       * Instructions for this step.
073       * @param instructions
074       */
075      public final native void setInstructions(String instructions) /*-{
076        this.instructions = instructions;
077      }-*/;
078      
079      /**
080       * Instructions for this step.
081       */
082      public final native String getInstructions() /*-{
083        return this.instructions;
084      }-*/;
085      
086      /**
087       * A sequence of LatLngs describing the course of this step.
088       * @param path
089       */
090      public final native void setPath(JsArray<LatLng> path) /*-{
091        this.path = path;
092      }-*/;
093      
094      /**
095       * A sequence of LatLngs describing the course of this step.
096       */
097      public final native JsArray<LatLng> getPath() /*-{
098        return this.path;
099      }-*/;
100      
101      /**
102       * The starting location of this step.
103       * @param start_location
104       */
105      public final native void setStart_Location(LatLng start_location) /*-{
106        this.start_location = start_location;
107      }-*/;
108      
109      /**
110       * The starting location of this step.
111       */
112      public final native LatLng getStart_Location() /*-{
113        return this.start_location;
114      }-*/;
115      
116      /**
117       * The mode of travel used in this step.
118       * @param travel_mode
119       */
120      public final void setTravel_Mode(TravelMode travel_mode) {
121        setTravel_ModeImpl(travel_mode.value());
122      }
123    
124      private final native void setTravel_ModeImpl(String travel_mode) /*-{
125        this.travel_mode = travel_mode;
126      }-*/;
127      
128      /**
129       * The mode of travel used in this step.
130       */
131      public final TravelMode getTravelMode() {
132        return TravelMode.fromValue(getTravel_ModeImpl());
133      }
134      
135      private final native String getTravel_ModeImpl() /*-{
136        return this.travel_mode;
137      }-*/;
138      
139    }