private double calcLegScore(double departureTime, double arrivalTime, Leg leg) { double tmpScore = 0.0D; double travelTime = arrivalTime - departureTime; double dist = 0.0D; if (leg.getMode().equals("freefloating")) { Stats s = new Stats(); s.startTime = departureTime; s.endTime = arrivalTime; s.distance = leg.getRoute().getDistance(); freefloatingRentals.add(s); } else if (leg.getMode().equals("onewaycarsharing")) { Stats s = new Stats(); s.startTime = departureTime; s.endTime = arrivalTime; s.distance = leg.getRoute().getDistance(); owcsRentals.add(s); } else if (leg.getMode().equals("twowaycarsharing")) { distancetw += leg.getRoute().getDistance(); } else if (leg.getMode().equals("walk_rb")) { Id<Link> startLinkId = leg.getRoute().getStartLinkId(); Id<Link> endLinkId = leg.getRoute().getEndLinkId(); if (twMap.containsKey(endLinkId)) { twMap.get(endLinkId).endTime = departureTime; twcsRentals.add(twMap.remove(endLinkId)); } else { Stats s = new Stats(); s.startTime = arrivalTime; s.endTime = arrivalTime; twMap.put(startLinkId, s); } } if (("onewaycarsharing").equals(leg.getMode())) { travelTime = arrivalTime - departureTime; tmpScore += Double.parseDouble( this.config .getModule("OneWayCarsharing") .getParams() .get("constantOneWayCarsharing")); tmpScore += travelTime * Double.parseDouble( this.config .getModule("OneWayCarsharing") .getParams() .get("travelingOneWayCarsharing")) / 3600.0; } else if (("freefloating").equals(leg.getMode())) { travelTime = arrivalTime - departureTime; tmpScore += Double.parseDouble( this.config.getModule("FreeFloating").getParams().get("constantFreeFloating")); tmpScore += travelTime * Double.parseDouble( this.config.getModule("FreeFloating").getParams().get("travelingFreeFloating")) / 3600.0; } else if (leg.getMode().equals("walk_ff")) { tmpScore += getWalkScore(dist, travelTime); } else if (leg.getMode().equals("walk_ow_sb")) { tmpScore += getWalkScore(dist, travelTime); } else if (("twowaycarsharing").equals(leg.getMode())) { travelTime = arrivalTime - departureTime; tmpScore += Double.parseDouble( this.config .getModule("TwoWayCarsharing") .getParams() .get("constantTwoWayCarsharing")); tmpScore += travelTime * Double.parseDouble( this.config .getModule("TwoWayCarsharing") .getParams() .get("travelingTwoWayCarsharing")) / 3600.0; } else if (leg.getMode().equals("walk_rb")) { tmpScore += getWalkScore(dist, travelTime); } return tmpScore; }