diff --git a/src/main/java/org/opentripplanner/graph_builder/module/FlexDirectTransferGenerator.java b/src/main/java/org/opentripplanner/graph_builder/module/FlexDirectTransferGenerator.java index 1ed281dfa92..28eaedb5de1 100644 --- a/src/main/java/org/opentripplanner/graph_builder/module/FlexDirectTransferGenerator.java +++ b/src/main/java/org/opentripplanner/graph_builder/module/FlexDirectTransferGenerator.java @@ -117,7 +117,7 @@ public void buildGraph(Graph graph, HashMap, Object> extra) { } // for each hop, find nearby stops and hops. create transfers. - if (hop.getContinuousDropoff() > 0 || hop.getContinuousPickup() > 0) { + if (hop.hasFlagStopService()) { if (++nLinkableHops % 1000 == 0) { LOG.info("Linked {} hops, skipped {} hops", nLinkableHops, nSkippedHops); } @@ -194,7 +194,7 @@ public void visitVertex(State state) { if (flexPatternsToIgnore.get(hop.getPattern()).contains(h.getPattern())) { continue; } - if (h.getContinuousPickup() > 0 || h.getContinuousDropoff() > 0) { + if (h.hasFlagStopService()) { TripPattern pattern = h.getPattern(); TransferPointAtDistance pt = new TransferPointAtDistance(hop, state, h, state.getVertex()); closestTransferPointForTripPattern.put(pattern, pt); diff --git a/src/main/java/org/opentripplanner/model/StopPattern.java b/src/main/java/org/opentripplanner/model/StopPattern.java index b24826c7a36..b8f826c190b 100644 --- a/src/main/java/org/opentripplanner/model/StopPattern.java +++ b/src/main/java/org/opentripplanner/model/StopPattern.java @@ -7,7 +7,6 @@ import com.google.common.hash.HashCode; import com.google.common.hash.HashFunction; import com.google.common.hash.Hasher; -import com.google.common.hash.Hashing; import org.onebusaway.gtfs.model.Stop; import org.onebusaway.gtfs.model.StopTime; import org.slf4j.Logger; @@ -52,8 +51,7 @@ public class StopPattern implements Serializable { public final Stop[] stops; public final int[] pickups; public final int[] dropoffs; - public final int[] continuousPickups; - public final int[] continuousDropoffs; + public final int[] continuousStops; public boolean equals(Object other) { if (other instanceof StopPattern) { @@ -61,8 +59,7 @@ public boolean equals(Object other) { return Arrays.equals(this.stops, that.stops) && Arrays.equals(this.pickups, that.pickups) && Arrays.equals(this.dropoffs, that.dropoffs) && - Arrays.equals(this.continuousPickups, that.continuousPickups) && - Arrays.equals(this.continuousDropoffs, that.continuousDropoffs); + Arrays.equals(this.continuousStops, that.continuousStops); } else { return false; } @@ -76,9 +73,7 @@ public int hashCode() { hash *= 31; hash += Arrays.hashCode(this.dropoffs); hash *= 31; - hash += Arrays.hashCode(this.continuousPickups); - hash *= 31; - hash += Arrays.hashCode(this.continuousDropoffs); + hash += Arrays.hashCode(this.continuousStops); return hash; } @@ -96,8 +91,7 @@ private StopPattern (int size) { stops = new Stop[size]; pickups = new int[size]; dropoffs = new int[size]; - continuousPickups = new int[size]; - continuousDropoffs = new int[size]; + continuousStops = new int[size]; } /** Assumes that stopTimes are already sorted by time. */ @@ -112,13 +106,11 @@ public StopPattern (List stopTimes) { pickups[i] = stopTime.getPickupType(); dropoffs[i] = stopTime.getDropOffType(); - // continuous pickup/dropoff can be empty (-1), which means 0 for the first stoptime, and the previous value for subsequent stop times. + // continuous stops can be empty (-1), which means 0 for the first stoptime, and the previous value for subsequent stop times. if (i == 0) { - continuousPickups[i] = stopTime.getContinuousPickup() == -1 ? 0 : stopTime.getContinuousPickup(); - continuousDropoffs[i] = stopTime.getContinuousDropOff() == -1 ? 0 : stopTime.getContinuousDropOff(); + continuousStops[i] = stopTime.getContinuousStops() == -1 ? 0 : stopTime.getContinuousStops(); } else { - continuousPickups[i] = stopTime.getContinuousPickup() == -1 ? continuousPickups[i-1] : stopTime.getContinuousPickup(); - continuousDropoffs[i] = stopTime.getContinuousDropOff() == -1 ? continuousDropoffs[i-1] : stopTime.getContinuousDropOff(); + continuousStops[i] = stopTime.getContinuousStops() == -1 ? continuousStops[i-1] : stopTime.getContinuousStops(); } } /* @@ -163,8 +155,7 @@ public HashCode semanticHash(HashFunction hashFunction) { for (int hop = 0; hop < size - 1; hop++) { hasher.putInt(pickups[hop]); hasher.putInt(dropoffs[hop + 1]); - hasher.putInt(continuousPickups[hop]); - hasher.putInt(continuousDropoffs[hop + 1]); + hasher.putInt(continuousStops[hop]); } return hasher.hash(); } diff --git a/src/main/java/org/opentripplanner/routing/edgetype/PartialPatternHop.java b/src/main/java/org/opentripplanner/routing/edgetype/PartialPatternHop.java index 9e20ea154bb..15b51f7e41f 100644 --- a/src/main/java/org/opentripplanner/routing/edgetype/PartialPatternHop.java +++ b/src/main/java/org/opentripplanner/routing/edgetype/PartialPatternHop.java @@ -34,7 +34,7 @@ public class PartialPatternHop extends PatternHop { private PatternHop originalHop; public PartialPatternHop(PatternHop hop, PatternStopVertex from, PatternStopVertex to, Stop fromStop, Stop toStop, double startIndex, double endIndex) { - super(from, to, fromStop, toStop, hop.getStopIndex(), hop.getContinuousPickup(), hop.getContinuousDropoff(), false); + super(from, to, fromStop, toStop, hop.getStopIndex(), hop.getContinuousStops(), false); LengthIndexedLine line = new LengthIndexedLine(hop.getGeometry()); this.startIndex = startIndex; this.endIndex = endIndex; diff --git a/src/main/java/org/opentripplanner/routing/edgetype/PatternHop.java b/src/main/java/org/opentripplanner/routing/edgetype/PatternHop.java index e9e80fd889b..8ac8b2b98c2 100644 --- a/src/main/java/org/opentripplanner/routing/edgetype/PatternHop.java +++ b/src/main/java/org/opentripplanner/routing/edgetype/PatternHop.java @@ -41,28 +41,27 @@ public class PatternHop extends TablePatternEdge implements OnboardEdge, HopEdge private Stop begin, end; - private int continuousPickup, continuousDropoff; + private int continuousStops; public int stopIndex; private LineString geometry = null; - protected PatternHop(PatternStopVertex from, PatternStopVertex to, Stop begin, Stop end, int stopIndex, int continuousPickup, int continuousDropoff, boolean setInPattern) { + protected PatternHop(PatternStopVertex from, PatternStopVertex to, Stop begin, Stop end, int stopIndex, int continuousStops, boolean setInPattern) { super(from, to); this.begin = begin; this.end = end; this.stopIndex = stopIndex; if (setInPattern) getPattern().setPatternHop(stopIndex, this); - this.continuousPickup = continuousPickup; - this.continuousDropoff = continuousDropoff; + this.continuousStops = continuousStops; } - public PatternHop(PatternStopVertex from, PatternStopVertex to, Stop begin, Stop end, int stopIndex, int continuousPickup, int continuousDropoff) { - this(from, to, begin, end, stopIndex, continuousPickup, continuousDropoff, true); + public PatternHop(PatternStopVertex from, PatternStopVertex to, Stop begin, Stop end, int stopIndex, int continuousStops) { + this(from, to, begin, end, stopIndex, continuousStops, true); } public PatternHop(PatternStopVertex from, PatternStopVertex to, Stop begin, Stop end, int stopIndex) { - this(from, to, begin, end, stopIndex, 0, 0); + this(from, to, begin, end, stopIndex, 0); } // made more accurate @@ -211,16 +210,12 @@ public int getStopIndex() { return stopIndex; } - public int getContinuousPickup() { - return continuousPickup; - } - - public int getContinuousDropoff() { - return continuousDropoff; + public int getContinuousStops() { + return continuousStops; } public boolean hasFlagStopService() { - return continuousPickup > 0 || continuousDropoff > 0; + return continuousStops > 0; } } diff --git a/src/main/java/org/opentripplanner/routing/edgetype/TripPattern.java b/src/main/java/org/opentripplanner/routing/edgetype/TripPattern.java index d148fdcce19..99dba671e0f 100644 --- a/src/main/java/org/opentripplanner/routing/edgetype/TripPattern.java +++ b/src/main/java/org/opentripplanner/routing/edgetype/TripPattern.java @@ -521,7 +521,7 @@ public void makePatternVerticesAndEdges(Graph graph, Map patternHops = graph.index.getHopsForEdge(s.getBackEdge()) .stream() .filter(e -> e.getPattern() == originalTripPattern) - .filter(e -> e.getContinuousDropoff() > 0) + .filter(PatternHop::hasFlagStopService) .collect(Collectors.toList()); for(PatternHop originalPatternHop : patternHops) { @@ -206,7 +206,7 @@ public void visitEnqueue(State state) { List patternHops = graph.index.getHopsForEdge(s.getBackEdge()) .stream() .filter(e -> e.getPattern() == originalTripPattern) - .filter(e -> e.getContinuousPickup() > 0) + .filter(PatternHop::hasFlagStopService) .collect(Collectors.toList()); for(PatternHop originalPatternHop : patternHops) {