Skip to content

Commit f83d5a8

Browse files
committed
Merge branch 'cache-hashes' into v2
2 parents 914a876 + 08f72f8 commit f83d5a8

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
@@ -38,6 +38,7 @@ public final class RealTimeTripTimes implements TripTimes {
3838
private final I18NString[] stopHeadsigns;
3939
private final OccupancyStatus[] occupancyStatus;
4040
private final Accessibility wheelchairAccessibility;
41+
private final int hash;
4142

4243
RealTimeTripTimes(RealTimeTripTimesBuilder builder) {
4344
scheduledTripTimes = builder.scheduledTripTimes();
@@ -50,6 +51,7 @@ public final class RealTimeTripTimes implements TripTimes {
5051
occupancyStatus = builder.occupancyStatus();
5152
wheelchairAccessibility = builder.wheelchairAccessibility();
5253
validateNonIncreasingTimes();
54+
hash = hash();
5355
}
5456

5557
/**
@@ -65,6 +67,7 @@ private RealTimeTripTimes(RealTimeTripTimes original, ScheduledTripTimes schedul
6567
this.stopHeadsigns = original.stopHeadsigns;
6668
this.occupancyStatus = original.occupancyStatus;
6769
this.wheelchairAccessibility = original.wheelchairAccessibility;
70+
hash = hash();
6871
}
6972

7073
/**
@@ -83,6 +86,7 @@ private RealTimeTripTimes(RealTimeTripTimes original, int timeShift) {
8386
this.stopHeadsigns = original.stopHeadsigns;
8487
this.occupancyStatus = original.occupancyStatus;
8588
this.wheelchairAccessibility = original.wheelchairAccessibility;
89+
hash = hash();
8690
}
8791

8892
ScheduledTripTimes scheduledTripTimes() {
@@ -370,6 +374,10 @@ public boolean equals(Object o) {
370374

371375
@Override
372376
public int hashCode() {
377+
return hash;
378+
}
379+
380+
public int hash() {
373381
return Objects.hash(
374382
scheduledTripTimes,
375383
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)