Skip to content

Commit 8aa1ce0

Browse files
committed
Refactor blocks into methods
1 parent 49954cc commit 8aa1ce0

File tree

1 file changed

+154
-111
lines changed

1 file changed

+154
-111
lines changed

application/src/main/java/org/opentripplanner/apis/gtfs/DefaultValueInjector.java

Lines changed: 154 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@
1717
import java.util.Map;
1818
import javax.annotation.Nullable;
1919
import org.opentripplanner.routing.api.request.RouteRequest;
20+
import org.opentripplanner.routing.api.request.preference.BikePreferences;
21+
import org.opentripplanner.routing.api.request.preference.CarPreferences;
22+
import org.opentripplanner.routing.api.request.preference.ScooterPreferences;
23+
import org.opentripplanner.routing.api.request.preference.TransferPreferences;
24+
import org.opentripplanner.routing.api.request.preference.TransitPreferences;
25+
import org.opentripplanner.routing.api.request.preference.VehicleParkingPreferences;
26+
import org.opentripplanner.routing.api.request.preference.VehicleRentalPreferences;
27+
import org.opentripplanner.routing.api.request.preference.VehicleWalkingPreferences;
28+
import org.opentripplanner.routing.api.request.preference.WalkPreferences;
2029

2130
/**
2231
* GraphQL type visitor that injects default values to input fields and query arguments from code
@@ -75,120 +84,154 @@ private static Map<String, Value> createDefaultMapping(RouteRequest defaultRoute
7584
var builder = new DefaultMappingBuilder()
7685
.intReq("planConnection.first", defaultRouteRequest.numItineraries())
7786
.stringOpt("planConnection.searchWindow", defaultRouteRequest.searchWindow());
78-
{
79-
var bike = defaultRouteRequest.preferences().bike();
80-
builder
81-
.intReq("BicyclePreferencesInput.boardCost", bike.boardCost())
82-
.floatReq("BicyclePreferencesInput.reluctance", bike.reluctance())
83-
.floatReq("BicyclePreferencesInput.speed", bike.speed());
84-
{
85-
var bikeParking = bike.parking();
86-
builder.intReq(
87-
"BicycleParkingPreferencesInput.unpreferredCost",
88-
bikeParking.unpreferredVehicleParkingTagCost().toSeconds()
89-
);
90-
}
91-
{
92-
var bikeRental = bike.rental();
93-
builder
94-
.boolReq(
95-
"DestinationBicyclePolicyInput.allowKeeping",
96-
bikeRental.allowArrivingInRentedVehicleAtDestination()
97-
)
98-
.intReq(
99-
"DestinationBicyclePolicyInput.keepingCost",
100-
bikeRental.arrivingInRentalVehicleAtDestinationCost().toSeconds()
101-
);
102-
}
103-
{
104-
var bikeWalking = bike.walking();
105-
builder
106-
.intReq(
107-
"BicycleWalkPreferencesCostInput.mountDismountCost",
108-
bikeWalking.mountDismountCost().toSeconds()
109-
)
110-
.floatReq("BicycleWalkPreferencesCostInput.reluctance", bikeWalking.reluctance())
111-
.stringReq(
112-
"BicycleWalkPreferencesInput.mountDismountTime",
113-
bikeWalking.mountDismountTime()
114-
)
115-
.floatReq("BicycleWalkPreferencesInput.speed", bikeWalking.speed());
116-
}
117-
}
118-
{
119-
var car = defaultRouteRequest.preferences().car();
120-
builder.floatReq("CarPreferencesInput.reluctance", car.reluctance());
121-
{
122-
var parking = car.parking();
123-
builder.intReq(
124-
"CarParkingPreferencesInput.unpreferredCost",
125-
parking.unpreferredVehicleParkingTagCost().toSeconds()
126-
);
127-
}
128-
}
129-
{
130-
var scooter = defaultRouteRequest.preferences().scooter();
131-
builder
132-
.floatReq("ScooterPreferencesInput.reluctance", scooter.reluctance())
133-
.floatReq("ScooterPreferencesInput.speed", scooter.speed());
134-
{
135-
var rental = scooter.rental();
136-
builder
137-
.boolReq(
138-
"DestinationScooterPolicyInput.allowKeeping",
139-
rental.allowArrivingInRentedVehicleAtDestination()
140-
)
141-
.intReq(
142-
"DestinationScooterPolicyInput.keepingCost",
143-
rental.arrivingInRentalVehicleAtDestinationCost().toSeconds()
144-
);
145-
}
146-
}
147-
{
148-
var transit = defaultRouteRequest.preferences().transit();
149-
builder
150-
.stringReq("AlightPreferencesInput.slack", transit.alightSlack().defaultValue())
151-
.stringReq("BoardPreferencesInput.slack", transit.boardSlack().defaultValue())
152-
.boolReq(
153-
"TimetablePreferencesInput.excludeRealTimeUpdates",
154-
transit.ignoreRealtimeUpdates()
155-
)
156-
.boolReq(
157-
"TimetablePreferencesInput.includePlannedCancellations",
158-
transit.includePlannedCancellations()
159-
)
160-
.boolReq(
161-
"TimetablePreferencesInput.includeRealTimeCancellations",
162-
transit.includeRealtimeCancellations()
163-
);
164-
}
165-
{
166-
var transfer = defaultRouteRequest.preferences().transfer();
167-
builder
168-
.floatReq("BoardPreferencesInput.waitReluctance", transfer.waitReluctance())
169-
.intReq("TransferPreferencesInput.cost", transfer.cost())
170-
.intReq(
171-
"TransferPreferencesInput.maximumAdditionalTransfers",
172-
transfer.maxAdditionalTransfers()
173-
)
174-
// Max transfers are wrong in the internal model but fixed in the API mapping
175-
.intReq("TransferPreferencesInput.maximumTransfers", transfer.maxTransfers() - 1)
176-
.stringReq("TransferPreferencesInput.slack", transfer.slack());
177-
}
178-
{
179-
var walk = defaultRouteRequest.preferences().walk();
180-
builder
181-
.intReq("WalkPreferencesInput.boardCost", walk.boardCost())
182-
.floatReq("WalkPreferencesInput.reluctance", walk.reluctance())
183-
.floatReq("WalkPreferencesInput.safetyFactor", walk.safetyFactor())
184-
.floatReq("WalkPreferencesInput.speed", walk.speed());
185-
}
186-
{
187-
builder.boolReq("WheelchairPreferencesInput.enabled", defaultRouteRequest.wheelchair());
188-
}
87+
setBikeDefaults(defaultRouteRequest.preferences().bike(), builder);
88+
setCarDefaults(defaultRouteRequest.preferences().car(), builder);
89+
setScooterDefaults(defaultRouteRequest.preferences().scooter(), builder);
90+
setTransitDefaults(defaultRouteRequest.preferences().transit(), builder);
91+
setTransferDefaults(defaultRouteRequest.preferences().transfer(), builder);
92+
setWalkDefaults(defaultRouteRequest.preferences().walk(), builder);
93+
setWheelchairDefaults(defaultRouteRequest, builder);
18994
return builder.build();
19095
}
19196

97+
private static void setBikeDefaults(BikePreferences bike, DefaultMappingBuilder builder) {
98+
builder
99+
.intReq("BicyclePreferencesInput.boardCost", bike.boardCost())
100+
.floatReq("BicyclePreferencesInput.reluctance", bike.reluctance())
101+
.floatReq("BicyclePreferencesInput.speed", bike.speed());
102+
setBikeParkingDefaults(bike.parking(), builder);
103+
setBikeRentalDefaults(bike.rental(), builder);
104+
setBikeWalkingDefaults(bike.walking(), builder);
105+
}
106+
107+
private static void setBikeParkingDefaults(
108+
VehicleParkingPreferences parking,
109+
DefaultMappingBuilder builder
110+
) {
111+
builder.intReq(
112+
"BicycleParkingPreferencesInput.unpreferredCost",
113+
parking.unpreferredVehicleParkingTagCost().toSeconds()
114+
);
115+
}
116+
117+
private static void setBikeRentalDefaults(
118+
VehicleRentalPreferences rental,
119+
DefaultMappingBuilder builder
120+
) {
121+
builder
122+
.boolReq(
123+
"DestinationBicyclePolicyInput.allowKeeping",
124+
rental.allowArrivingInRentedVehicleAtDestination()
125+
)
126+
.intReq(
127+
"DestinationBicyclePolicyInput.keepingCost",
128+
rental.arrivingInRentalVehicleAtDestinationCost().toSeconds()
129+
);
130+
}
131+
132+
private static void setBikeWalkingDefaults(
133+
VehicleWalkingPreferences walking,
134+
DefaultMappingBuilder builder
135+
) {
136+
builder
137+
.intReq(
138+
"BicycleWalkPreferencesCostInput.mountDismountCost",
139+
walking.mountDismountCost().toSeconds()
140+
)
141+
.floatReq("BicycleWalkPreferencesCostInput.reluctance", walking.reluctance())
142+
.stringReq("BicycleWalkPreferencesInput.mountDismountTime", walking.mountDismountTime())
143+
.floatReq("BicycleWalkPreferencesInput.speed", walking.speed());
144+
}
145+
146+
private static void setCarDefaults(CarPreferences car, DefaultMappingBuilder builder) {
147+
builder.floatReq("CarPreferencesInput.reluctance", car.reluctance());
148+
setCarParkingDefaults(car.parking(), builder);
149+
}
150+
151+
private static void setCarParkingDefaults(
152+
VehicleParkingPreferences parking,
153+
DefaultMappingBuilder builder
154+
) {
155+
builder.intReq(
156+
"CarParkingPreferencesInput.unpreferredCost",
157+
parking.unpreferredVehicleParkingTagCost().toSeconds()
158+
);
159+
}
160+
161+
private static void setScooterDefaults(
162+
ScooterPreferences scooter,
163+
DefaultMappingBuilder builder
164+
) {
165+
builder
166+
.floatReq("ScooterPreferencesInput.reluctance", scooter.reluctance())
167+
.floatReq("ScooterPreferencesInput.speed", scooter.speed());
168+
setScooterRentalDefaults(scooter.rental(), builder);
169+
}
170+
171+
private static void setScooterRentalDefaults(
172+
VehicleRentalPreferences rental,
173+
DefaultMappingBuilder builder
174+
) {
175+
builder
176+
.boolReq(
177+
"DestinationScooterPolicyInput.allowKeeping",
178+
rental.allowArrivingInRentedVehicleAtDestination()
179+
)
180+
.intReq(
181+
"DestinationScooterPolicyInput.keepingCost",
182+
rental.arrivingInRentalVehicleAtDestinationCost().toSeconds()
183+
);
184+
}
185+
186+
private static void setTransitDefaults(
187+
TransitPreferences transit,
188+
DefaultMappingBuilder builder
189+
) {
190+
builder
191+
.stringReq("AlightPreferencesInput.slack", transit.alightSlack().defaultValue())
192+
.stringReq("BoardPreferencesInput.slack", transit.boardSlack().defaultValue())
193+
.boolReq("TimetablePreferencesInput.excludeRealTimeUpdates", transit.ignoreRealtimeUpdates())
194+
.boolReq(
195+
"TimetablePreferencesInput.includePlannedCancellations",
196+
transit.includePlannedCancellations()
197+
)
198+
.boolReq(
199+
"TimetablePreferencesInput.includeRealTimeCancellations",
200+
transit.includeRealtimeCancellations()
201+
);
202+
}
203+
204+
private static void setTransferDefaults(
205+
TransferPreferences transfer,
206+
DefaultMappingBuilder builder
207+
) {
208+
builder
209+
.floatReq("BoardPreferencesInput.waitReluctance", transfer.waitReluctance())
210+
.intReq("TransferPreferencesInput.cost", transfer.cost())
211+
.intReq(
212+
"TransferPreferencesInput.maximumAdditionalTransfers",
213+
transfer.maxAdditionalTransfers()
214+
)
215+
// Max transfers are wrong in the internal model but fixed in the API mapping
216+
.intReq("TransferPreferencesInput.maximumTransfers", transfer.maxTransfers() - 1)
217+
.stringReq("TransferPreferencesInput.slack", transfer.slack());
218+
}
219+
220+
private static void setWalkDefaults(WalkPreferences walk, DefaultMappingBuilder builder) {
221+
builder
222+
.intReq("WalkPreferencesInput.boardCost", walk.boardCost())
223+
.floatReq("WalkPreferencesInput.reluctance", walk.reluctance())
224+
.floatReq("WalkPreferencesInput.safetyFactor", walk.safetyFactor())
225+
.floatReq("WalkPreferencesInput.speed", walk.speed());
226+
}
227+
228+
private static void setWheelchairDefaults(
229+
RouteRequest defaultRouteRequest,
230+
DefaultMappingBuilder builder
231+
) {
232+
builder.boolReq("WheelchairPreferencesInput.enabled", defaultRouteRequest.wheelchair());
233+
}
234+
192235
private static class DefaultMappingBuilder {
193236

194237
private final Map<String, Value> defaultValueForKey = new HashMap<String, Value>();

0 commit comments

Comments
 (0)