Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.mapbox.api.directions.v5;

import androidx.annotation.FloatRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.google.auto.value.AutoValue;
Expand Down Expand Up @@ -80,6 +81,17 @@ public final String toJson() {
return gson.toJson(this, WalkingOptions.class);
}

/**
* Convert the current {@link WalkingOptions} to its builder holding the currently assigned
* values. This allows you to modify a single property and then rebuild the object resulting in
* an updated and modified {@link WalkingOptions}.
*
* @return a {@link WalkingOptions.Builder} with the same values set to match the ones defined
* in this {@link WalkingOptions}
*/
@NonNull
public abstract Builder toBuilder();

/**
* Gson type adapter for parsing Gson to this class.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,17 @@ public static RouteOptions fromJson(String json) {
return gson.create().fromJson(json, RouteOptions.class);
}

/**
* Convert the current {@link RouteOptions} to its builder holding the currently assigned
* values. This allows you to modify a single property and then rebuild the object resulting in
* an updated and modified {@link RouteOptions}.
*
* @return a {@link RouteOptions.Builder} with the same values set to match the ones defined
* in this {@link RouteOptions}
*/
@NonNull
public abstract Builder toBuilder();

/**
* This builder can be used to set the values describing the {@link RouteOptions}.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.mapbox.api.directions.v5.models;

import com.mapbox.geojson.Point;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.assertEquals;

public class RouteOptionsTest {

@Test
public void toBuilder() {
RouteOptions routeOptions = routeOptions();

String language = "ru";
String url = "new_base_url";

RouteOptions updatedOptions = routeOptions.toBuilder()
.language(language)
.baseUrl(url)
.build();

assertEquals(language, updatedOptions.language());
assertEquals(url, updatedOptions.baseUrl());
assertEquals(routeOptions.accessToken(), updatedOptions.accessToken());
assertEquals(routeOptions.coordinates(), updatedOptions.coordinates());
assertEquals(routeOptions.user(), updatedOptions.user());
assertEquals(routeOptions.profile(), updatedOptions.profile());
assertEquals(routeOptions.geometries(), updatedOptions.geometries());
assertEquals(routeOptions.requestUuid(), updatedOptions.requestUuid());
}

private RouteOptions routeOptions() {
List<Point> coordinates = new ArrayList<>();
coordinates.add(Point.fromLngLat(1.0, 2.0));
coordinates.add(Point.fromLngLat(3.0, 4.0));

return RouteOptions.builder()
.accessToken("token")
.baseUrl("base_url")
.language("en")
.coordinates(coordinates)
.user("user")
.profile("profile")
.geometries("geometries")
.requestUuid("requestUuid")
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ public void fromJson() {
assertEquals(Double.valueOf(0.7), walkingOptions.alleyBias());
}

@Test
public void toBuilder() {
WalkingOptions walkingOptions = walkingOptions();

double delta = 0;
double newSpeed = 2.0;

WalkingOptions updatedOptions = walkingOptions.toBuilder()
.walkingSpeed(newSpeed)
.build();

assertEquals(newSpeed, updatedOptions.walkingSpeed(), delta);
assertEquals(walkingOptions.walkwayBias(), updatedOptions.walkwayBias(), delta);
assertEquals(walkingOptions.alleyBias(), updatedOptions.alleyBias(), delta);
}

private WalkingOptions walkingOptions() {
return WalkingOptions.builder()
.walkingSpeed(1.0)
Expand Down