21 package org.matsim.core.population;
31 final class LegImpl
implements Leg {
33 private static final double UNDEFINED_TIME = Double.NEGATIVE_INFINITY;
35 private Route route = null;
37 private double depTime = UNDEFINED_TIME;
38 private double travTime = UNDEFINED_TIME;
40 private String routingMode;
42 private Attributes attributes = null;
44 LegImpl(
final String transportMode) {
45 this.mode = transportMode;
49 private static OptionalTime asOptionalTime(
double seconds) {
50 return seconds == UNDEFINED_TIME ? OptionalTime.undefined() : OptionalTime.defined(seconds);
54 public String getMode() {
59 public final void setMode(String transportMode) {
60 this.mode = transportMode == null ? null : transportMode.intern();
61 TripStructureUtils.setRoutingMode(
this, null );
67 public final String getRoutingMode() {
68 return this.routingMode;
72 public final void setRoutingMode(String routingMode) {
73 this.routingMode = routingMode == null ? null : routingMode.intern();
77 public OptionalTime getDepartureTime() {
78 return asOptionalTime(this.depTime);
82 public void setDepartureTime(
final double depTime) {
83 OptionalTime.assertDefined(depTime);
84 this.depTime = depTime;
88 public void setDepartureTimeUndefined() {
89 this.depTime = UNDEFINED_TIME;
93 public OptionalTime getTravelTime() {
94 return asOptionalTime(this.travTime);
98 public void setTravelTime(
final double travTime) {
99 OptionalTime.assertDefined(travTime);
100 this.travTime = travTime;
104 public void setTravelTimeUndefined() {
105 this.travTime = UNDEFINED_TIME;
109 public Route getRoute() {
114 public void setRoute(Route route) {
119 public String toString() {
124 + Time.writeTime(this.getDepartureTime())
127 + Time.writeTime(this.getTravelTime())
130 + (getDepartureTime().isDefined() && getTravelTime().isDefined() ?
131 Time.writeTime(getDepartureTime().seconds() + getTravelTime().seconds()) :
132 Time.writeTime(OptionalTime.undefined()))
141 public Attributes getAttributes() {
142 if (this.attributes != null) {
143 return this.attributes;
145 return new LazyAllocationAttributes(attributes -> this.attributes = attributes, () -> this.attributes);