001    package com.google.gwt.maps.client.services;
002    
003    import com.google.gwt.core.client.JavaScriptObject;
004    
005    /**
006     * A single element of a response to a DistanceMatrixService request, which contains the duration and distance from one origin to one destination.
007     * <br><br>
008     * See <a href="https://developers.google.com/maps/documentation/javascript/reference#DistanceMatrixResponseElement">DistanceMatrixResponseElement API Doc</a>
009     */
010    public class DistanceMatrixResponseElement extends JavaScriptObject {
011      
012      /**
013       * use newInstance();
014       */
015      protected DistanceMatrixResponseElement() {}
016      
017      /**
018       * A single element of a response to a DistanceMatrixService request, which contains the duration and distance from one origin to one destination.
019       */
020      public static final DistanceMatrixResponseElement newInstance() {
021        return JavaScriptObject.createObject().cast();
022      }
023      
024      /**
025       * The distance for this origin-destination pairing. This property may be undefined as the distance may be unknown.
026       * @param distance
027       */
028      public final native void setDistance(Distance distance) /*-{
029        this.distance = distance;
030      }-*/;
031    
032      /**
033       * The distance for this origin-destination pairing. This property may be undefined as the distance may be unknown.
034       */
035      public final native Distance getDistance() /*-{
036        return this.distance;
037      }-*/;
038      
039      /**
040       * The duration for this origin-destination pairing. This property may be undefined as the duration may be unknown.
041       * @param duration
042       */
043      public final native void setDuration(Duration duration) /*-{
044        this.duration = duration;
045      }-*/;
046      
047      /**
048       * The duration for this origin-destination pairing. This property may be undefined as the duration may be unknown.
049       */
050      public final native Duration getDuration() /*-{
051        return this.duration;
052      }-*/;
053      
054      /**
055       * The status of this particular origin-destination pairing.
056       * @param status
057       */
058      public final void setStatus(DistanceMatrixElementStatus status) {
059        setStatusImpl(status.value());
060      }
061      
062      private final native void setStatusImpl(String status) /*-{
063        this.status = status;
064      }-*/;
065      
066      /**
067       * The status of this particular origin-destination pairing.
068       */
069      public final DistanceMatrixElementStatus getStatus() {
070        return DistanceMatrixElementStatus.fromValue(getStatusImpl());
071      }
072    
073      private final native String getStatusImpl() /*-{
074        return this.status;
075      }-*/;
076      
077    }