
org.opentripplanner.standalone.config.sandbox.VehicleRentalServiceDirectoryFetcherConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
The newest version!
package org.opentripplanner.standalone.config.sandbox;
import static org.opentripplanner.standalone.config.framework.json.OtpVersion.V2_0;
import static org.opentripplanner.standalone.config.framework.json.OtpVersion.V2_1;
import static org.opentripplanner.standalone.config.framework.json.OtpVersion.V2_4;
import static org.opentripplanner.standalone.config.framework.json.OtpVersion.V2_5;
import java.util.List;
import org.opentripplanner.ext.vehiclerentalservicedirectory.api.NetworkParameters;
import org.opentripplanner.ext.vehiclerentalservicedirectory.api.VehicleRentalServiceDirectoryFetcherParameters;
import org.opentripplanner.standalone.config.framework.json.NodeAdapter;
import org.opentripplanner.standalone.config.routerconfig.updaters.HttpHeadersConfig;
public class VehicleRentalServiceDirectoryFetcherConfig {
public static VehicleRentalServiceDirectoryFetcherParameters create(
String parameterName,
NodeAdapter root
) {
var c = root
.of(parameterName)
.since(V2_0)
.summary("Configuration for the vehicle rental service directory.")
.asObject();
if (c.isEmpty()) {
return null;
}
return new VehicleRentalServiceDirectoryFetcherParameters(
c.of("url").since(V2_1).summary("Endpoint for the VehicleRentalServiceDirectory").asUri(),
c
.of("sourcesName")
.since(V2_1)
.summary("Json tag name for updater sources.")
.asString("systems"),
c
.of("updaterUrlName")
.since(V2_1)
.summary("Json tag name for endpoint urls for each source.")
.asString("url"),
c
.of("updaterNetworkName")
.since(V2_1)
.summary("Json tag name for the network name for each source.")
.asString("id"),
c.of("language").since(V2_1).summary("Language code.").asString(null),
HttpHeadersConfig.headers(c, V2_1),
mapNetworkParameters("networks", c)
);
}
private static List mapNetworkParameters(
String parameterName,
NodeAdapter root
) {
return root
.of(parameterName)
.since(V2_4)
.summary(
"List all networks to include. Use \"network\": \"" +
VehicleRentalServiceDirectoryFetcherParameters.DEFAULT_NETWORK_NAME +
"\" to set defaults."
)
.description(
"""
If no default network exists only the listed networks are used. Configure a network with
name "{{default-network}}" to include all unlisted networks. If not present, all unlisted
networks are dropped. Note! The values in the "{{default-network}}" are not used to set
missing field values in networks listed.
""".replace(
"{{default-network}}",
VehicleRentalServiceDirectoryFetcherParameters.DEFAULT_NETWORK_NAME
)
)
.asObjects(c ->
new NetworkParameters(
c.of("network").since(V2_4).summary("The network name").asString(),
c
.of("geofencingZones")
.since(V2_4)
.summary("Enables geofencingZones for the given network")
.description(
"See the regular [GBFS documentation](../UpdaterConfig.md#gbfs-vehicle-rental-systems) for more information."
)
.asBoolean(false),
c
.of("allowKeepingVehicleAtDestination")
.since(V2_5)
.summary("Enables `allowKeepingVehicleAtDestination` for the given network.")
.description(
"""
Configures if a vehicle rented from a station must be returned to another one or can
be kept at the end of the trip.
See the regular [GBFS documentation](../UpdaterConfig.md#gbfs-vehicle-rental-systems) for more information.
"""
)
.asBoolean(false)
)
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy