I am looking to solve this based on the vehicle used. Each vehicle will have its own max inter-node time
In this case (node1 -> node2 ) is allowed on vehicle two but not on vehicle1.
int[] driveTimeDimensionArr = new int[numberOfVehicles];
LongBinaryOperator[] driveTimeCallbacks = new LongBinaryOperator[numberOfVehicles];
for (int vehicle = 0; vehicle < numberOfVehicles; ++vehicle) {
driveTimeCallbacks[vehicle] = builTimeCallback(manager, solverRequest, vehicle);// return time callback
//drive time is different for different vehicle.
driveTimeDimensionArr[vehicle] = routing.registerTransitCallback(driveTimeCallbacks[vehicle]);
}
routing.addDimensionWithVehicleTransits(driveTimeDimensionArr
, 1000000, 100000, false, "Time");
RoutingDimension driveTimeDimension = model.getMutableDimension("Time");
//Set time limit for vehicle.
for (int vehicle = 0; vehicle < numberOfVehicles; ++vehicle) {
driveTimeDimension.cumulVar(model.end(vehicle)).setMax(solverRequest.maxTravelTimeOfVehicles[vehicle]);
//how to set max inter node time for each vehicle ??
}