EndpointsProperties.java

  1. package org.heigit.ors.api;

  2. import org.heigit.ors.routing.RoutingProfileType;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.context.annotation.Configuration;

  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;

  8. import static com.graphhopper.routing.weighting.Weighting.INFINITE_U_TURN_COSTS;

  9. @Configuration
  10. @ConfigurationProperties(prefix = "ors.endpoints")
  11. public class EndpointsProperties {
  12.     private EndpointDefaultProperties defaults;
  13.     private EndpointRoutingProperties routing;
  14.     private EndpointMatrixProperties matrix;
  15.     private EndpointIsochronesProperties isochrones;
  16.     private EndpointSnapProperties snap;
  17.     private String swaggerDocumentationUrl;

  18.     public void setSwaggerDocumentationUrl(String swaggerDocumentationUrl) {
  19.         this.swaggerDocumentationUrl = swaggerDocumentationUrl;
  20.     }

  21.     public String getSwaggerDocumentationUrl() {
  22.         return swaggerDocumentationUrl;
  23.     }

  24.     public EndpointDefaultProperties getDefaults() {
  25.         return defaults;
  26.     }

  27.     public void setDefaults(EndpointDefaultProperties defaults) {
  28.         this.defaults = defaults;
  29.     }

  30.     public EndpointRoutingProperties getRouting() {
  31.         return routing;
  32.     }

  33.     public void setRouting(EndpointRoutingProperties routing) {
  34.         this.routing = routing;
  35.     }

  36.     public EndpointMatrixProperties getMatrix() {
  37.         return matrix;
  38.     }

  39.     public void setMatrix(EndpointMatrixProperties matrix) {
  40.         this.matrix = matrix;
  41.     }

  42.     public EndpointIsochronesProperties getIsochrones() {
  43.         return isochrones;
  44.     }

  45.     public void setIsochrones(EndpointIsochronesProperties isochrones) {
  46.         this.isochrones = isochrones;
  47.     }

  48.     public EndpointSnapProperties getSnap() {
  49.         return snap;
  50.     }

  51.     public void setSnap(EndpointSnapProperties snap) {
  52.         this.snap = snap;
  53.     }

  54.     public static class EndpointDefaultProperties {
  55.         private String attribution;

  56.         public String getAttribution() {
  57.             return attribution;
  58.         }

  59.         public void setAttribution(String attribution) {
  60.             this.attribution = attribution;
  61.         }
  62.     }

  63.     public static class EndpointRoutingProperties {
  64.         private boolean enabled;
  65.         private String attribution;
  66.         private String gpxName;
  67.         private String gpxDescription;
  68.         private String gpxBaseUrl;
  69.         private String gpxSupportMail;
  70.         private String gpxAuthor;
  71.         private String gpxContentLicence;
  72.         private double maximumAvoidPolygonArea;
  73.         private double maximumAvoidPolygonExtent;
  74.         private int maximumAlternativeRoutes;

  75.         public boolean isEnabled() {
  76.             return enabled;
  77.         }

  78.         public void setEnabled(boolean enabled) {
  79.             this.enabled = enabled;
  80.         }

  81.         public String getAttribution() {
  82.             return attribution;
  83.         }

  84.         public void setAttribution(String attribution) {
  85.             this.attribution = attribution;
  86.         }

  87.         public String getGpxName() {
  88.             return gpxName;
  89.         }

  90.         public void setGpxName(String gpxName) {
  91.             this.gpxName = gpxName;
  92.         }

  93.         public String getGpxDescription() {
  94.             return gpxDescription;
  95.         }

  96.         public void setGpxDescription(String gpxDescription) {
  97.             this.gpxDescription = gpxDescription;
  98.         }

  99.         public String getGpxBaseUrl() {
  100.             return gpxBaseUrl;
  101.         }

  102.         public void setGpxBaseUrl(String gpxBaseUrl) {
  103.             this.gpxBaseUrl = gpxBaseUrl;
  104.         }

  105.         public String getGpxSupportMail() {
  106.             return gpxSupportMail;
  107.         }

  108.         public void setGpxSupportMail(String gpxSupportMail) {
  109.             this.gpxSupportMail = gpxSupportMail;
  110.         }

  111.         public String getGpxAuthor() {
  112.             return gpxAuthor;
  113.         }

  114.         public void setGpxAuthor(String gpxAuthor) {
  115.             this.gpxAuthor = gpxAuthor;
  116.         }

  117.         public String getGpxContentLicence() {
  118.             return gpxContentLicence;
  119.         }

  120.         public void setGpxContentLicence(String gpxContentLicence) {
  121.             this.gpxContentLicence = gpxContentLicence;
  122.         }

  123.         public double getMaximumAvoidPolygonArea() {
  124.             return maximumAvoidPolygonArea;
  125.         }

  126.         public void setMaximumAvoidPolygonArea(double maximumAvoidPolygonArea) {
  127.             this.maximumAvoidPolygonArea = maximumAvoidPolygonArea;
  128.         }

  129.         public double getMaximumAvoidPolygonExtent() {
  130.             return maximumAvoidPolygonExtent;
  131.         }

  132.         public void setMaximumAvoidPolygonExtent(double maximumAvoidPolygonExtent) {
  133.             this.maximumAvoidPolygonExtent = maximumAvoidPolygonExtent;
  134.         }


  135.         public int getMaximumAlternativeRoutes() {
  136.             return maximumAlternativeRoutes;
  137.         }

  138.         public void setMaximumAlternativeRoutes(Integer maximumAlternativeRoutes) {
  139.             this.maximumAlternativeRoutes = maximumAlternativeRoutes;
  140.         }


  141.     }

  142.     public static class EndpointMatrixProperties {
  143.         private boolean enabled;
  144.         private String attribution;
  145.         private int maximumRoutes = 2500;
  146.         private int maximumRoutesFlexible = 25;
  147.         private int maximumVisitedNodes = 100000;
  148.         private double maximumSearchRadius = 2000;
  149.         // TODO: this parameter is only used in a binary check for infinity (==-1);
  150.         //       Can't we reduce it to a boolean "forbid_u_turns"?
  151.         private double uTurnCost = INFINITE_U_TURN_COSTS;


  152.         public boolean isEnabled() {
  153.             return enabled;
  154.         }

  155.         public void setEnabled(boolean enabled) {
  156.             this.enabled = enabled;
  157.         }

  158.         public String getAttribution() {
  159.             return attribution;
  160.         }

  161.         public void setAttribution(String attribution) {
  162.             this.attribution = attribution;
  163.         }

  164.         public int getMaximumRoutes(boolean flexible) {
  165.             return (flexible ? maximumRoutesFlexible : maximumRoutes);
  166.         }

  167.         public void setMaximumRoutes(int maximumRoutes) {
  168.             this.maximumRoutes = maximumRoutes;
  169.         }

  170.         public void setMaximumRoutesFlexible(int maximumRoutesFlexible) {
  171.             this.maximumRoutesFlexible = maximumRoutesFlexible;
  172.         }

  173.         public int getMaximumVisitedNodes() {
  174.             return maximumVisitedNodes;
  175.         }

  176.         public void setMaximumVisitedNodes(int maximumVisitedNodes) {
  177.             this.maximumVisitedNodes = maximumVisitedNodes;
  178.         }

  179.         public double getMaximumSearchRadius() {
  180.             return maximumSearchRadius;
  181.         }

  182.         public void setMaximumSearchRadius(double maximumSearchRadius) {
  183.             this.maximumSearchRadius = maximumSearchRadius;
  184.         }

  185.         public double getUTurnCost() {
  186.             return uTurnCost;
  187.         }

  188.         public void setUTurnCost(double uTurnCosts) {
  189.             this.uTurnCost = uTurnCosts;
  190.         }
  191.     }

  192.     public static class MaximumRangeProperties {
  193.         private int maximumRangeDistanceDefault;
  194.         private List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeDistance;
  195.         private int maximumRangeTimeDefault;
  196.         private List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeTime;

  197.         public int getMaximumRangeDistanceDefault() {
  198.             return maximumRangeDistanceDefault;
  199.         }

  200.         public void setMaximumRangeDistanceDefault(int maximumRangeDistanceDefault) {
  201.             this.maximumRangeDistanceDefault = maximumRangeDistanceDefault;
  202.         }

  203.         public List<MaximumRangeProperties.MaximumRangePropertiesEntry> getMaximumRangeDistance() {
  204.             return maximumRangeDistance;
  205.         }

  206.         public void setMaximumRangeDistance(List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeDistance) {
  207.             this.maximumRangeDistance = maximumRangeDistance;
  208.             for (MaximumRangeProperties.MaximumRangePropertiesEntry maximumRangePropertiesEntry : maximumRangeDistance)
  209.                 for (String profile : maximumRangePropertiesEntry.getProfiles())
  210.                     profileMaxRangeDistances.put(RoutingProfileType.getFromString(profile), maximumRangePropertiesEntry.getValue());
  211.         }

  212.         public int getMaximumRangeTimeDefault() {
  213.             return maximumRangeTimeDefault;
  214.         }

  215.         public void setMaximumRangeTimeDefault(int maximumRangeTimeDefault) {
  216.             this.maximumRangeTimeDefault = maximumRangeTimeDefault;
  217.         }

  218.         public List<MaximumRangeProperties.MaximumRangePropertiesEntry> getMaximumRangeTime() {
  219.             return maximumRangeTime;
  220.         }

  221.         public void setMaximumRangeTime(List<MaximumRangeProperties.MaximumRangePropertiesEntry> maximumRangeTime) {
  222.             this.maximumRangeTime = maximumRangeTime;
  223.             for (MaximumRangeProperties.MaximumRangePropertiesEntry maximumRangePropertiesEntry : maximumRangeTime)
  224.                 for (String profile : maximumRangePropertiesEntry.getProfiles())
  225.                     profileMaxRangeTimes.put(RoutingProfileType.getFromString(profile), maximumRangePropertiesEntry.getValue());
  226.         }

  227.         private final Map<Integer, Integer> profileMaxRangeDistances = new HashMap<>();

  228.         public Map<Integer, Integer> getProfileMaxRangeDistances() {
  229.             return profileMaxRangeDistances;
  230.         }

  231.         private final Map<Integer, Integer> profileMaxRangeTimes = new HashMap<>();

  232.         public Map<Integer, Integer> getProfileMaxRangeTimes() {
  233.             return profileMaxRangeTimes;
  234.         }

  235.         public static class MaximumRangePropertiesEntry {
  236.             private List<String> profiles;
  237.             private int value;

  238.             public List<String> getProfiles() {
  239.                 return profiles;
  240.             }

  241.             public void setProfiles(List<String> profiles) {
  242.                 this.profiles = profiles;
  243.             }

  244.             public int getValue() {
  245.                 return value;
  246.             }

  247.             public void setValue(int value) {
  248.                 this.value = value;
  249.             }
  250.         }
  251.     }

  252.     public static class EndpointIsochronesProperties extends MaximumRangeProperties {
  253.         private boolean enabled;
  254.         private String attribution;
  255.         private int maximumLocations;
  256.         private boolean allowComputeArea = true;
  257.         private int maximumIntervals = 1;
  258.         private MaximumRangeProperties fastisochrones;
  259.         private Map<String, StatisticsProviderProperties> statisticsProviders = new HashMap<>();

  260.         public boolean isEnabled() {
  261.             return enabled;
  262.         }

  263.         public void setEnabled(boolean enabled) {
  264.             this.enabled = enabled;
  265.         }

  266.         public String getAttribution() {
  267.             return attribution;
  268.         }

  269.         public void setAttribution(String attribution) {
  270.             this.attribution = attribution;
  271.         }

  272.         public int getMaximumLocations() {
  273.             return maximumLocations;
  274.         }

  275.         public void setMaximumLocations(int maximumLocations) {
  276.             this.maximumLocations = maximumLocations;
  277.         }

  278.         public boolean isAllowComputeArea() {
  279.             return allowComputeArea;
  280.         }

  281.         public void setAllowComputeArea(boolean allowComputeArea) {
  282.             this.allowComputeArea = allowComputeArea;
  283.         }

  284.         public int getMaximumIntervals() {
  285.             return maximumIntervals;
  286.         }

  287.         public void setMaximumIntervals(int maximumIntervals) {
  288.             this.maximumIntervals = maximumIntervals;
  289.         }

  290.         public MaximumRangeProperties getFastisochrones() {
  291.             return fastisochrones;
  292.         }

  293.         public void setFastisochrones(MaximumRangeProperties fastisochrones) {
  294.             this.fastisochrones = fastisochrones;
  295.         }

  296.         public Map<String, StatisticsProviderProperties> getStatisticsProviders() {
  297.             return statisticsProviders;
  298.         }

  299.         public void setStatisticsProviders(Map<String, StatisticsProviderProperties> statisticsProviders) {
  300.             this.statisticsProviders = statisticsProviders;
  301.         }

  302.         public static class StatisticsProviderProperties {
  303.             private boolean enabled;
  304.             private String providerName;
  305.             private Map<String, Object> providerParameters;
  306.             private Map<String, String> propertyMapping;
  307.             private String attribution;

  308.             public boolean isEnabled() {
  309.                 return enabled;
  310.             }

  311.             public void setEnabled(boolean enabled) {
  312.                 this.enabled = enabled;
  313.             }

  314.             public String getProviderName() {
  315.                 return providerName;
  316.             }

  317.             public void setProviderName(String providerName) {
  318.                 this.providerName = providerName;
  319.             }

  320.             public Map<String, Object> getProviderParameters() {
  321.                 return providerParameters;
  322.             }

  323.             public void setProviderParameters(Map<String, Object> providerParameters) {
  324.                 this.providerParameters = providerParameters;
  325.             }

  326.             public Map<String, String> getPropertyMapping() {
  327.                 return propertyMapping;
  328.             }

  329.             public void setPropertyMapping(Map<String, String> propertyMapping) {
  330.                 this.propertyMapping = propertyMapping;
  331.             }

  332.             public String getAttribution() {
  333.                 return attribution;
  334.             }

  335.             public void setAttribution(String attribution) {
  336.                 this.attribution = attribution;
  337.             }
  338.         }
  339.     }

  340.     public static class EndpointSnapProperties {
  341.         private boolean enabled;
  342.         private String attribution;

  343.         public boolean isEnabled() {
  344.             return enabled;
  345.         }

  346.         public void setEnabled(boolean enabled) {
  347.             this.enabled = enabled;
  348.         }

  349.         public String getAttribution() {
  350.             return attribution;
  351.         }

  352.         public void setAttribution(String attribution) {
  353.             this.attribution = attribution;
  354.         }

  355.     }
  356. }