EndpointsProperties.java
package org.heigit.ors.api;
import org.heigit.ors.routing.RoutingProfileType;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.graphhopper.routing.weighting.Weighting.INFINITE_U_TURN_COSTS;
@Configuration
@ConfigurationProperties(prefix = "ors.endpoints")
public class EndpointsProperties {
private EndpointDefaultProperties defaults;
private EndpointRoutingProperties routing;
private EndpointMatrixProperties matrix;
private EndpointIsochronesProperties isochrones;
private EndpointSnapProperties snap;
private String swaggerDocumentationUrl;
public void setSwaggerDocumentationUrl(String swaggerDocumentationUrl) {
this.swaggerDocumentationUrl = swaggerDocumentationUrl;
}
public String getSwaggerDocumentationUrl() {
return swaggerDocumentationUrl;
}
public EndpointDefaultProperties getDefaults() {
return defaults;
}
public void setDefaults(EndpointDefaultProperties defaults) {
this.defaults = defaults;
}
public EndpointRoutingProperties getRouting() {
return routing;
}
public void setRouting(EndpointRoutingProperties routing) {
this.routing = routing;
}
public EndpointMatrixProperties getMatrix() {
return matrix;
}
public void setMatrix(EndpointMatrixProperties matrix) {
this.matrix = matrix;
}
public EndpointIsochronesProperties getIsochrones() {
return isochrones;
}
public void setIsochrones(EndpointIsochronesProperties isochrones) {
this.isochrones = isochrones;
}
public EndpointSnapProperties getSnap() {
return snap;
}
public void setSnap(EndpointSnapProperties snap) {
this.snap = snap;
}
public static class EndpointDefaultProperties {
private String attribution;
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
}
public static class EndpointRoutingProperties {
private boolean enabled;
private String attribution;
private String gpxName;
private String gpxDescription;
private String gpxBaseUrl;
private String gpxSupportMail;
private String gpxAuthor;
private String gpxContentLicence;
private double maximumAvoidPolygonArea;
private double maximumAvoidPolygonExtent;
private int maximumAlternativeRoutes;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
public String getGpxName() {
return gpxName;
}
public void setGpxName(String gpxName) {
this.gpxName = gpxName;
}
public String getGpxDescription() {
return gpxDescription;
}
public void setGpxDescription(String gpxDescription) {
this.gpxDescription = gpxDescription;
}
public String getGpxBaseUrl() {
return gpxBaseUrl;
}
public void setGpxBaseUrl(String gpxBaseUrl) {
this.gpxBaseUrl = gpxBaseUrl;
}
public String getGpxSupportMail() {
return gpxSupportMail;
}
public void setGpxSupportMail(String gpxSupportMail) {
this.gpxSupportMail = gpxSupportMail;
}
public String getGpxAuthor() {
return gpxAuthor;
}
public void setGpxAuthor(String gpxAuthor) {
this.gpxAuthor = gpxAuthor;
}
public String getGpxContentLicence() {
return gpxContentLicence;
}
public void setGpxContentLicence(String gpxContentLicence) {
this.gpxContentLicence = gpxContentLicence;
}
public double getMaximumAvoidPolygonArea() {
return maximumAvoidPolygonArea;
}
public void setMaximumAvoidPolygonArea(double maximumAvoidPolygonArea) {
this.maximumAvoidPolygonArea = maximumAvoidPolygonArea;
}
public double getMaximumAvoidPolygonExtent() {
return maximumAvoidPolygonExtent;
}
public void setMaximumAvoidPolygonExtent(double maximumAvoidPolygonExtent) {
this.maximumAvoidPolygonExtent = maximumAvoidPolygonExtent;
}
public int getMaximumAlternativeRoutes() {
return maximumAlternativeRoutes;
}
public void setMaximumAlternativeRoutes(Integer maximumAlternativeRoutes) {
this.maximumAlternativeRoutes = maximumAlternativeRoutes;
}
}
public static class EndpointMatrixProperties {
private boolean enabled;
private String attribution;
private int maximumRoutes = 2500;
private int maximumRoutesFlexible = 25;
private int maximumVisitedNodes = 100000;
private double maximumSearchRadius = 2000;
// TODO: this parameter is only used in a binary check for infinity (==-1);
// Can't we reduce it to a boolean "forbid_u_turns"?
private double uTurnCost = INFINITE_U_TURN_COSTS;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
public int getMaximumRoutes(boolean flexible) {
return (flexible ? maximumRoutesFlexible : maximumRoutes);
}
public void setMaximumRoutes(int maximumRoutes) {
this.maximumRoutes = maximumRoutes;
}
public void setMaximumRoutesFlexible(int maximumRoutesFlexible) {
this.maximumRoutesFlexible = maximumRoutesFlexible;
}
public int getMaximumVisitedNodes() {
return maximumVisitedNodes;
}
public void setMaximumVisitedNodes(int maximumVisitedNodes) {
this.maximumVisitedNodes = maximumVisitedNodes;
}
public double getMaximumSearchRadius() {
return maximumSearchRadius;
}
public void setMaximumSearchRadius(double maximumSearchRadius) {
this.maximumSearchRadius = maximumSearchRadius;
}
public double getUTurnCost() {
return uTurnCost;
}
public void setUTurnCost(double uTurnCosts) {
this.uTurnCost = uTurnCosts;
}
}
public static class MaximumRangeProperties {
private int maximumRangeDistanceDefault;
private List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeDistance;
private int maximumRangeTimeDefault;
private List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeTime;
public int getMaximumRangeDistanceDefault() {
return maximumRangeDistanceDefault;
}
public void setMaximumRangeDistanceDefault(int maximumRangeDistanceDefault) {
this.maximumRangeDistanceDefault = maximumRangeDistanceDefault;
}
public List<MaximumRangeProperties.MaximumRangePropertiesEntry> getMaximumRangeDistance() {
return maximumRangeDistance;
}
public void setMaximumRangeDistance(List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeDistance) {
this.maximumRangeDistance = maximumRangeDistance;
for (MaximumRangeProperties.MaximumRangePropertiesEntry maximumRangePropertiesEntry : maximumRangeDistance)
for (String profile : maximumRangePropertiesEntry.getProfiles())
profileMaxRangeDistances.put(RoutingProfileType.getFromString(profile), maximumRangePropertiesEntry.getValue());
}
public int getMaximumRangeTimeDefault() {
return maximumRangeTimeDefault;
}
public void setMaximumRangeTimeDefault(int maximumRangeTimeDefault) {
this.maximumRangeTimeDefault = maximumRangeTimeDefault;
}
public List<MaximumRangeProperties.MaximumRangePropertiesEntry> getMaximumRangeTime() {
return maximumRangeTime;
}
public void setMaximumRangeTime(List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeTime) {
this.maximumRangeTime = maximumRangeTime;
for (MaximumRangeProperties.MaximumRangePropertiesEntry maximumRangePropertiesEntry : maximumRangeTime)
for (String profile : maximumRangePropertiesEntry.getProfiles())
profileMaxRangeTimes.put(RoutingProfileType.getFromString(profile), maximumRangePropertiesEntry.getValue());
}
private final Map<Integer, Integer> profileMaxRangeDistances = new HashMap<>();
public Map<Integer, Integer> getProfileMaxRangeDistances() {
return profileMaxRangeDistances;
}
private final Map<Integer, Integer> profileMaxRangeTimes = new HashMap<>();
public Map<Integer, Integer> getProfileMaxRangeTimes() {
return profileMaxRangeTimes;
}
public static class MaximumRangePropertiesEntry {
private List<String> profiles;
private int value;
public List<String> getProfiles() {
return profiles;
}
public void setProfiles(List<String> profiles) {
this.profiles = profiles;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
}
public static class EndpointIsochronesProperties extends MaximumRangeProperties {
private boolean enabled;
private String attribution;
private int maximumLocations;
private boolean allowComputeArea = true;
private int maximumIntervals = 1;
private MaximumRangeProperties fastisochrones;
private Map<String, StatisticsProviderProperties> statisticsProviders = new HashMap<>();
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
public int getMaximumLocations() {
return maximumLocations;
}
public void setMaximumLocations(int maximumLocations) {
this.maximumLocations = maximumLocations;
}
public boolean isAllowComputeArea() {
return allowComputeArea;
}
public void setAllowComputeArea(boolean allowComputeArea) {
this.allowComputeArea = allowComputeArea;
}
public int getMaximumIntervals() {
return maximumIntervals;
}
public void setMaximumIntervals(int maximumIntervals) {
this.maximumIntervals = maximumIntervals;
}
public MaximumRangeProperties getFastisochrones() {
return fastisochrones;
}
public void setFastisochrones(MaximumRangeProperties fastisochrones) {
this.fastisochrones = fastisochrones;
}
public Map<String, StatisticsProviderProperties> getStatisticsProviders() {
return statisticsProviders;
}
public void setStatisticsProviders(Map<String, StatisticsProviderProperties> statisticsProviders) {
this.statisticsProviders = statisticsProviders;
}
public static class StatisticsProviderProperties {
private boolean enabled;
private String providerName;
private Map<String, Object> providerParameters;
private Map<String, String> propertyMapping;
private String attribution;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getProviderName() {
return providerName;
}
public void setProviderName(String providerName) {
this.providerName = providerName;
}
public Map<String, Object> getProviderParameters() {
return providerParameters;
}
public void setProviderParameters(Map<String, Object> providerParameters) {
this.providerParameters = providerParameters;
}
public Map<String, String> getPropertyMapping() {
return propertyMapping;
}
public void setPropertyMapping(Map<String, String> propertyMapping) {
this.propertyMapping = propertyMapping;
}
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
}
}
public static class EndpointSnapProperties {
private boolean enabled;
private String attribution;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getAttribution() {
return attribution;
}
public void setAttribution(String attribution) {
this.attribution = attribution;
}
}
}