Skip to content

Commit 293f7ef

Browse files
committed
Merge branch 'cache-hashes' of github.com:HSLdevcom/OpenTripPlanner into v2
2 parents 37c4653 + 08f72f8 commit 293f7ef

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

application/src/main/java/org/opentripplanner/framework/i18n/TranslatedString.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class TranslatedString implements I18NString, Serializable {
2727
private static final HashMap<Map<String, String>, I18NString> translationCache = new HashMap<>();
2828

2929
private final Map<String, String> translations = new HashMap<>();
30+
private final int hashCode;
3031

3132
private TranslatedString(Map<String, String> translations) {
3233
for (Map.Entry<String, String> i : translations.entrySet()) {
@@ -36,6 +37,7 @@ private TranslatedString(Map<String, String> translations) {
3637
this.translations.put(i.getKey().toLowerCase(), i.getValue());
3738
}
3839
}
40+
this.hashCode = Objects.hash(translations);
3941
}
4042

4143
public static I18NString getI18NString(String untranslated, String... translations) {
@@ -98,7 +100,7 @@ public static I18NString getI18NString(
98100

99101
@Override
100102
public int hashCode() {
101-
return Objects.hash(translations);
103+
return hashCode;
102104
}
103105

104106
@Override

application/src/main/java/org/opentripplanner/transit/model/timetable/RealTimeTripTimes.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public final class RealTimeTripTimes implements TripTimes {
3737
private final I18NString[] stopHeadsigns;
3838
private final OccupancyStatus[] occupancyStatus;
3939
private final Accessibility wheelchairAccessibility;
40+
private final int hash;
4041

4142
RealTimeTripTimes(RealTimeTripTimesBuilder builder) {
4243
scheduledTripTimes = builder.scheduledTripTimes();
@@ -49,6 +50,7 @@ public final class RealTimeTripTimes implements TripTimes {
4950
occupancyStatus = builder.occupancyStatus();
5051
wheelchairAccessibility = builder.wheelchairAccessibility();
5152
validateNonIncreasingTimes();
53+
hash = hash();
5254
}
5355

5456
/**
@@ -64,6 +66,7 @@ private RealTimeTripTimes(RealTimeTripTimes original, ScheduledTripTimes schedul
6466
this.stopHeadsigns = original.stopHeadsigns;
6567
this.occupancyStatus = original.occupancyStatus;
6668
this.wheelchairAccessibility = original.wheelchairAccessibility;
69+
hash = hash();
6770
}
6871

6972
/**
@@ -82,6 +85,7 @@ private RealTimeTripTimes(RealTimeTripTimes original, int timeShift) {
8285
this.stopHeadsigns = original.stopHeadsigns;
8386
this.occupancyStatus = original.occupancyStatus;
8487
this.wheelchairAccessibility = original.wheelchairAccessibility;
88+
hash = hash();
8589
}
8690

8791
ScheduledTripTimes scheduledTripTimes() {
@@ -369,6 +373,10 @@ public boolean equals(Object o) {
369373

370374
@Override
371375
public int hashCode() {
376+
return hash;
377+
}
378+
379+
public int hash() {
372380
return Objects.hash(
373381
scheduledTripTimes,
374382
Arrays.hashCode(arrivalTimes),

application/src/main/java/org/opentripplanner/transit/model/timetable/ScheduledTripTimes.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public final class ScheduledTripTimes implements TripTimes {
5353
private final Trip trip;
5454
private final List<BookingInfo> dropOffBookingInfos;
5555
private final List<BookingInfo> pickupBookingInfos;
56+
private final int hash;
5657

5758
/**
5859
* Any number of array elements may point to the same I18NString instance if the headsign remains
@@ -86,6 +87,7 @@ public final class ScheduledTripTimes implements TripTimes {
8687
this.headsignVias = builder.headsignVias();
8788
this.gtfsSequenceOfStopIndex = builder.gtfsSequenceOfStopIndex();
8889
validate();
90+
this.hash = hash();
8991
}
9092

9193
/**
@@ -343,6 +345,10 @@ public boolean equals(Object o) {
343345

344346
@Override
345347
public int hashCode() {
348+
return hash;
349+
}
350+
351+
private int hash() {
346352
return Objects.hash(
347353
timeShift,
348354
serviceCode,

0 commit comments

Comments
 (0)