/* * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.geo.model; import java.io.Serializable; /** *

* Returns the result of the route calculation. Metadata includes legs and route * summary. *

*/ public class CalculateRouteResult implements Serializable { /** *

* Contains details about each path between a pair of positions included * along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to one fewer * than the total number of positions in the request. *

*

* For example, a route with a departure position and destination position * returns one leg with the positions snapped to a nearby road: *

* *

* A route with a waypoint between the departure and destination position * returns two legs with the positions snapped to a nearby road: *

* */ private java.util.List legs; /** *

* Contains information about the whole route, such as: * RouteBBox, DataSource, Distance, * DistanceUnit, and DurationSeconds. *

*/ private CalculateRouteSummary summary; /** *

* Contains details about each path between a pair of positions included * along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to one fewer * than the total number of positions in the request. *

*

* For example, a route with a departure position and destination position * returns one leg with the positions snapped to a nearby road: *

* *

* A route with a waypoint between the departure and destination position * returns two legs with the positions snapped to a nearby road: *

* * * @return

* Contains details about each path between a pair of positions * included along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to * one fewer than the total number of positions in the request. *

*

* For example, a route with a departure position and destination * position returns one leg with the positions snapped to a nearby road: *

* *

* A route with a waypoint between the departure and destination * position returns two legs with the positions snapped to a nearby * road: *

* */ public java.util.List getLegs() { return legs; } /** *

* Contains details about each path between a pair of positions included * along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to one fewer * than the total number of positions in the request. *

*

* For example, a route with a departure position and destination position * returns one leg with the positions snapped to a nearby road: *

* *

* A route with a waypoint between the departure and destination position * returns two legs with the positions snapped to a nearby road: *

* * * @param legs

* Contains details about each path between a pair of positions * included along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to * one fewer than the total number of positions in the request. *

*

* For example, a route with a departure position and destination * position returns one leg with the positions snapped to a nearby road: *

* *

* A route with a waypoint between the departure and destination * position returns two legs with the positions snapped to a * nearby road: *

* */ public void setLegs(java.util.Collection legs) { if (legs == null) { this.legs = null; return; } this.legs = new java.util.ArrayList(legs); } /** *

* Contains details about each path between a pair of positions included * along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to one fewer * than the total number of positions in the request. *

*

* For example, a route with a departure position and destination position * returns one leg with the positions snapped to a nearby road: *

*
    *
  • *

    * The StartPosition is the departure position. *

    *
  • *
  • *

    * The EndPosition is the destination position. *

    *
  • *
*

* A route with a waypoint between the departure and destination position * returns two legs with the positions snapped to a nearby road: *

*
    *
  • *

    * Leg 1: The StartPosition is the departure position . The * EndPosition is the waypoint positon. *

    *
  • *
  • *

    * Leg 2: The StartPosition is the waypoint position. The * EndPosition is the destination position. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param legs

* Contains details about each path between a pair of positions * included along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to * one fewer than the total number of positions in the request. *

*

* For example, a route with a departure position and destination * position returns one leg with the positions snapped to a nearby road: *

*
    *
  • *

    * The StartPosition is the departure position. *

    *
  • *
  • *

    * The EndPosition is the destination position. *

    *
  • *
*

* A route with a waypoint between the departure and destination * position returns two legs with the positions snapped to a * nearby road: *

*
    *
  • *

    * Leg 1: The StartPosition is the departure * position . The EndPosition is the waypoint * positon. *

    *
  • *
  • *

    * Leg 2: The StartPosition is the waypoint * position. The EndPosition is the destination * position. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteResult withLegs(Leg... legs) { if (getLegs() == null) { this.legs = new java.util.ArrayList(legs.length); } for (Leg value : legs) { this.legs.add(value); } return this; } /** *

* Contains details about each path between a pair of positions included * along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to one fewer * than the total number of positions in the request. *

*

* For example, a route with a departure position and destination position * returns one leg with the positions snapped to a nearby road: *

*
    *
  • *

    * The StartPosition is the departure position. *

    *
  • *
  • *

    * The EndPosition is the destination position. *

    *
  • *
*

* A route with a waypoint between the departure and destination position * returns two legs with the positions snapped to a nearby road: *

*
    *
  • *

    * Leg 1: The StartPosition is the departure position . The * EndPosition is the waypoint positon. *

    *
  • *
  • *

    * Leg 2: The StartPosition is the waypoint position. The * EndPosition is the destination position. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param legs

* Contains details about each path between a pair of positions * included along a route such as: StartPosition, * EndPosition, Distance, * DurationSeconds, Geometry, and * Steps. The number of legs returned corresponds to * one fewer than the total number of positions in the request. *

*

* For example, a route with a departure position and destination * position returns one leg with the positions snapped to a nearby road: *

*
    *
  • *

    * The StartPosition is the departure position. *

    *
  • *
  • *

    * The EndPosition is the destination position. *

    *
  • *
*

* A route with a waypoint between the departure and destination * position returns two legs with the positions snapped to a * nearby road: *

*
    *
  • *

    * Leg 1: The StartPosition is the departure * position . The EndPosition is the waypoint * positon. *

    *
  • *
  • *

    * Leg 2: The StartPosition is the waypoint * position. The EndPosition is the destination * position. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteResult withLegs(java.util.Collection legs) { setLegs(legs); return this; } /** *

* Contains information about the whole route, such as: * RouteBBox, DataSource, Distance, * DistanceUnit, and DurationSeconds. *

* * @return

* Contains information about the whole route, such as: * RouteBBox, DataSource, * Distance, DistanceUnit, and * DurationSeconds. *

*/ public CalculateRouteSummary getSummary() { return summary; } /** *

* Contains information about the whole route, such as: * RouteBBox, DataSource, Distance, * DistanceUnit, and DurationSeconds. *

* * @param summary

* Contains information about the whole route, such as: * RouteBBox, DataSource, * Distance, DistanceUnit, and * DurationSeconds. *

*/ public void setSummary(CalculateRouteSummary summary) { this.summary = summary; } /** *

* Contains information about the whole route, such as: * RouteBBox, DataSource, Distance, * DistanceUnit, and DurationSeconds. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param summary

* Contains information about the whole route, such as: * RouteBBox, DataSource, * Distance, DistanceUnit, and * DurationSeconds. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteResult withSummary(CalculateRouteSummary summary) { this.summary = summary; return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getLegs() != null) sb.append("Legs: " + getLegs() + ","); if (getSummary() != null) sb.append("Summary: " + getSummary()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getLegs() == null) ? 0 : getLegs().hashCode()); hashCode = prime * hashCode + ((getSummary() == null) ? 0 : getSummary().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CalculateRouteResult == false) return false; CalculateRouteResult other = (CalculateRouteResult) obj; if (other.getLegs() == null ^ this.getLegs() == null) return false; if (other.getLegs() != null && other.getLegs().equals(this.getLegs()) == false) return false; if (other.getSummary() == null ^ this.getSummary() == null) return false; if (other.getSummary() != null && other.getSummary().equals(this.getSummary()) == false) return false; return true; } }