From 484314f00c8183d7e5bdd79a075a6c96e5e48077 Mon Sep 17 00:00:00 2001 From: Yusuf Turgun Date: Fri, 25 Aug 2023 19:27:08 +0200 Subject: [PATCH 1/4] - Use TLongObjectMap instead of TIntObjectMap in MultiGraph --- README.md | 2 +- pom.xml | 4 +-- .../targomo/client/api/pojo/BaseGraph.java | 34 +++++++++---------- .../targomo/client/api/pojo/MultiGraph.java | 16 ++++----- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index e28e1ec0..446133f3 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ nexus and to the maven repo (last is only possibly from master). ## Release Notes ### 0.33.0 - +- Use TLongObjectMap instead of TIntObjectMap in Multigraph ### 0.32.0 - Remove use of the temporary parameter "multiple" for poi gravitation diff --git a/pom.xml b/pom.xml index dbe7ae03..7119ed39 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.targomo java-client - 0.33.0-SNAPSHOT + 0.33.0-SNAPSHOT-LONG Targomo Java Client Library Java client library for easy usage of Targomo web services. https://github.com/targomo/targomo-java @@ -220,7 +220,7 @@ com.targomo jackson-datatype-trove - 0.0.8 + 0.0.9 org.jetbrains diff --git a/src/main/java/com/targomo/client/api/pojo/BaseGraph.java b/src/main/java/com/targomo/client/api/pojo/BaseGraph.java index 72d8ee42..be62555c 100644 --- a/src/main/java/com/targomo/client/api/pojo/BaseGraph.java +++ b/src/main/java/com/targomo/client/api/pojo/BaseGraph.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import gnu.trove.map.TIntObjectMap; -import gnu.trove.map.hash.TIntObjectHashMap; +import gnu.trove.map.TLongObjectMap; +import gnu.trove.map.hash.TLongObjectHashMap; import java.io.Serializable; @@ -19,29 +19,29 @@ public static BaseGraph getEmptyImmutableBaseGraph() { } private final long networkID; - protected final TIntObjectMap nodes; - protected final TIntObjectMap edges; - protected final TIntObjectMap supportingPoints; + protected final TLongObjectMap nodes; + protected final TLongObjectMap edges; + protected final TLongObjectMap supportingPoints; public BaseGraph(long networkID) { this.networkID = networkID; - this.nodes = new TIntObjectHashMap<>(); - this.edges = new TIntObjectHashMap<>(); - this.supportingPoints = new TIntObjectHashMap<>(); + this.nodes = new TLongObjectHashMap<>(); + this.edges = new TLongObjectHashMap<>(); + this.supportingPoints = new TLongObjectHashMap<>(); } public BaseGraph(BaseGraph source) { this(source.getNetworkID(), - new TIntObjectHashMap<>(source.getNodes()), - new TIntObjectHashMap<>(source.getEdges()), - new TIntObjectHashMap<>(source.getSupportingPoints())); + new TLongObjectHashMap<>(source.getNodes()), + new TLongObjectHashMap<>(source.getEdges()), + new TLongObjectHashMap<>(source.getSupportingPoints())); } @JsonCreator public BaseGraph(@JsonProperty("networkID") long networkID, - @JsonProperty("nodes") TIntObjectMap nodes, - @JsonProperty("edges") TIntObjectMap edges, - @JsonProperty("supportingPoints") TIntObjectMap supportingPoints) { + @JsonProperty("nodes") TLongObjectMap nodes, + @JsonProperty("edges") TLongObjectMap edges, + @JsonProperty("supportingPoints") TLongObjectMap supportingPoints) { this.networkID = networkID; this.nodes = nodes; this.edges = edges; @@ -52,15 +52,15 @@ public long getNetworkID() { return networkID; } - public TIntObjectMap getNodes() { + public TLongObjectMap getNodes() { return nodes; } - public TIntObjectMap getEdges() { + public TLongObjectMap getEdges() { return edges; } - public TIntObjectMap getSupportingPoints() { + public TLongObjectMap getSupportingPoints() { return supportingPoints; } } diff --git a/src/main/java/com/targomo/client/api/pojo/MultiGraph.java b/src/main/java/com/targomo/client/api/pojo/MultiGraph.java index 68ba4b8e..49cbb00f 100644 --- a/src/main/java/com/targomo/client/api/pojo/MultiGraph.java +++ b/src/main/java/com/targomo/client/api/pojo/MultiGraph.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.targomo.client.api.enums.MultiGraphDomainType; -import gnu.trove.map.TIntFloatMap; -import gnu.trove.map.TIntObjectMap; +import gnu.trove.map.TLongFloatMap; +import gnu.trove.map.TLongObjectMap; import java.util.HashMap; import java.util.Map; @@ -16,7 +16,7 @@ */ public class MultiGraph extends BaseGraph { - private final Map layers; + private final Map layers; // the type of the layer: values per vertex or per edge private final MultiGraphDomainType domainType; @@ -29,17 +29,17 @@ public MultiGraph(long networkID, MultiGraphDomainType domainType){ @JsonCreator public MultiGraph(@JsonProperty("networkID") long networkID, - @JsonProperty("nodes") TIntObjectMap nodes, - @JsonProperty("layers") Map layers, - @JsonProperty("edges") TIntObjectMap edges, - @JsonProperty("supportingPoints") TIntObjectMap supportingPoints, + @JsonProperty("nodes") TLongObjectMap nodes, + @JsonProperty("layers") Map layers, + @JsonProperty("edges") TLongObjectMap edges, + @JsonProperty("supportingPoints") TLongObjectMap supportingPoints, @JsonProperty("domainType") MultiGraphDomainType domainType) { super(networkID,nodes,edges,supportingPoints); this.layers = layers; this.domainType = domainType; } - public Map getLayers() { + public Map getLayers() { return layers; } From a7ac2ca99cb49b8d1af103b87fa2e1dd62f7cfdb Mon Sep 17 00:00:00 2001 From: Yusuf Turgun Date: Sat, 26 Aug 2023 22:56:32 +0200 Subject: [PATCH 2/4] Add noEntryKey for long --- src/main/java/com/targomo/client/Constants.java | 1 + .../java/com/targomo/client/api/request/MultiGraphRequest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/com/targomo/client/Constants.java b/src/main/java/com/targomo/client/Constants.java index 91d34ab4..37854d89 100644 --- a/src/main/java/com/targomo/client/Constants.java +++ b/src/main/java/com/targomo/client/Constants.java @@ -6,6 +6,7 @@ public class Constants { public static final float NO_VALUE_ENTRY_FLOAT_TROVE_MAPS = -Float.MAX_VALUE; public static final int NO_VALUE_ENTRY_INT_TROVE_MAPS = Integer.MIN_VALUE; + public static final long NO_VALUE_ENTRY_LONG_TROVE_MAPS = Long.MIN_VALUE; public static final String POLYGON_VALUES = "values"; public static final String POLYGON_INTERSECTION_MODE = "intersectionMode"; diff --git a/src/main/java/com/targomo/client/api/request/MultiGraphRequest.java b/src/main/java/com/targomo/client/api/request/MultiGraphRequest.java index 8a901356..944fddea 100644 --- a/src/main/java/com/targomo/client/api/request/MultiGraphRequest.java +++ b/src/main/java/com/targomo/client/api/request/MultiGraphRequest.java @@ -27,6 +27,7 @@ public class MultiGraphRequest> extends TargomoR static { MAPPER.registerModule(new TroveModule(Constants.NO_VALUE_ENTRY_INT_TROVE_MAPS, + Constants.NO_VALUE_ENTRY_LONG_TROVE_MAPS, Constants.NO_VALUE_ENTRY_FLOAT_TROVE_MAPS)); //required to properly deserialize MultiGraphs } From 934ce447297d34feb4c186ffabf11964d2c8bbfe Mon Sep 17 00:00:00 2001 From: Yusuf Turgun Date: Wed, 30 Aug 2023 13:37:59 +0200 Subject: [PATCH 3/4] Keep nodes and edges as integer. --- .../targomo/client/api/pojo/BaseGraph.java | 34 +++++++++---------- .../targomo/client/api/pojo/MultiGraph.java | 8 ++--- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/targomo/client/api/pojo/BaseGraph.java b/src/main/java/com/targomo/client/api/pojo/BaseGraph.java index be62555c..72d8ee42 100644 --- a/src/main/java/com/targomo/client/api/pojo/BaseGraph.java +++ b/src/main/java/com/targomo/client/api/pojo/BaseGraph.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import gnu.trove.map.TLongObjectMap; -import gnu.trove.map.hash.TLongObjectHashMap; +import gnu.trove.map.TIntObjectMap; +import gnu.trove.map.hash.TIntObjectHashMap; import java.io.Serializable; @@ -19,29 +19,29 @@ public static BaseGraph getEmptyImmutableBaseGraph() { } private final long networkID; - protected final TLongObjectMap nodes; - protected final TLongObjectMap edges; - protected final TLongObjectMap supportingPoints; + protected final TIntObjectMap nodes; + protected final TIntObjectMap edges; + protected final TIntObjectMap supportingPoints; public BaseGraph(long networkID) { this.networkID = networkID; - this.nodes = new TLongObjectHashMap<>(); - this.edges = new TLongObjectHashMap<>(); - this.supportingPoints = new TLongObjectHashMap<>(); + this.nodes = new TIntObjectHashMap<>(); + this.edges = new TIntObjectHashMap<>(); + this.supportingPoints = new TIntObjectHashMap<>(); } public BaseGraph(BaseGraph source) { this(source.getNetworkID(), - new TLongObjectHashMap<>(source.getNodes()), - new TLongObjectHashMap<>(source.getEdges()), - new TLongObjectHashMap<>(source.getSupportingPoints())); + new TIntObjectHashMap<>(source.getNodes()), + new TIntObjectHashMap<>(source.getEdges()), + new TIntObjectHashMap<>(source.getSupportingPoints())); } @JsonCreator public BaseGraph(@JsonProperty("networkID") long networkID, - @JsonProperty("nodes") TLongObjectMap nodes, - @JsonProperty("edges") TLongObjectMap edges, - @JsonProperty("supportingPoints") TLongObjectMap supportingPoints) { + @JsonProperty("nodes") TIntObjectMap nodes, + @JsonProperty("edges") TIntObjectMap edges, + @JsonProperty("supportingPoints") TIntObjectMap supportingPoints) { this.networkID = networkID; this.nodes = nodes; this.edges = edges; @@ -52,15 +52,15 @@ public long getNetworkID() { return networkID; } - public TLongObjectMap getNodes() { + public TIntObjectMap getNodes() { return nodes; } - public TLongObjectMap getEdges() { + public TIntObjectMap getEdges() { return edges; } - public TLongObjectMap getSupportingPoints() { + public TIntObjectMap getSupportingPoints() { return supportingPoints; } } diff --git a/src/main/java/com/targomo/client/api/pojo/MultiGraph.java b/src/main/java/com/targomo/client/api/pojo/MultiGraph.java index 49cbb00f..7629149a 100644 --- a/src/main/java/com/targomo/client/api/pojo/MultiGraph.java +++ b/src/main/java/com/targomo/client/api/pojo/MultiGraph.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.targomo.client.api.enums.MultiGraphDomainType; +import gnu.trove.map.TIntObjectMap; import gnu.trove.map.TLongFloatMap; -import gnu.trove.map.TLongObjectMap; import java.util.HashMap; import java.util.Map; @@ -29,10 +29,10 @@ public MultiGraph(long networkID, MultiGraphDomainType domainType){ @JsonCreator public MultiGraph(@JsonProperty("networkID") long networkID, - @JsonProperty("nodes") TLongObjectMap nodes, + @JsonProperty("nodes") TIntObjectMap nodes, @JsonProperty("layers") Map layers, - @JsonProperty("edges") TLongObjectMap edges, - @JsonProperty("supportingPoints") TLongObjectMap supportingPoints, + @JsonProperty("edges") TIntObjectMap edges, + @JsonProperty("supportingPoints") TIntObjectMap supportingPoints, @JsonProperty("domainType") MultiGraphDomainType domainType) { super(networkID,nodes,edges,supportingPoints); this.layers = layers; From 67bd3c35b2eda2e805c380b14b3ae3b45f892535 Mon Sep 17 00:00:00 2001 From: Yusuf Turgun Date: Fri, 8 Sep 2023 09:24:35 +0200 Subject: [PATCH 4/4] Add h3 fixed zoom level param --- .../com/targomo/client/api/StatisticTravelOptions.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/targomo/client/api/StatisticTravelOptions.java b/src/main/java/com/targomo/client/api/StatisticTravelOptions.java index 02699197..ca90e5f8 100644 --- a/src/main/java/com/targomo/client/api/StatisticTravelOptions.java +++ b/src/main/java/com/targomo/client/api/StatisticTravelOptions.java @@ -97,6 +97,9 @@ public class StatisticTravelOptions extends TravelOptions { @Transient private boolean useStatisticTargets = false; + @Transient + private Integer multiGraphH3FixedZoomLevel; + @Override public boolean equals(Object o) { if (this == o) return true; @@ -107,6 +110,7 @@ public boolean equals(Object o) { return super.equals(o) && Objects.equals(useH3Reachability, that.useH3Reachability) && Objects.equals(useStatisticTargets, that.useStatisticTargets) && + Objects.equals(multiGraphH3FixedZoomLevel, that.multiGraphH3FixedZoomLevel) && Objects.equals(getClosestSources, that.getClosestSources) && Objects.equals(omitIndividualStatistics, that.omitIndividualStatistics) && Objects.equals(inactiveSources, that.inactiveSources) && @@ -135,7 +139,7 @@ public int hashCode() { multiGraphDomainStatisticCollectionId, multiGraphLayerUnboundedStatistics, multiGraphReferencedStatisticIds, multiGraphTravelTimeApproximation, statisticIds, chartInterval, statisticCollectionId, multigraphCalculateGravitationPerReferenceId, returnOriginId, competingRoutingOptions, - routingAggregationType.ordinal(), multiGraphIgnoreRoutingErrorMessages); + routingAggregationType.ordinal(), multiGraphIgnoreRoutingErrorMessages, multiGraphH3FixedZoomLevel); } @Override @@ -182,6 +186,8 @@ public String toString(){ builder.append(useH3Reachability); builder.append("\n\tuseStatisticTargets: "); builder.append(useStatisticTargets); + builder.append("\n\tmultiGraphH3FixedZoomLevel: "); + builder.append(multiGraphH3FixedZoomLevel); builder.append("\n}\n"); return builder.toString(); }