// Copyright © 2015 HSL <https://www.hsl.fi>
// This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses.
package fi.hsl.parkandride.core.domain;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import org.joda.time.DateTime;
public class FacilityStatusHistory implements HasInterval {
public Long facilityId;
public DateTime startDate;
public DateTime endDate;
public FacilityStatus status;
public MultilingualString statusDescription;
public FacilityStatusHistory() {
}
public FacilityStatusHistory(Long facilityId, DateTime startDate, DateTime endDate, FacilityStatus status, MultilingualString statusDescription) {
this.facilityId = facilityId;
this.startDate = startDate;
this.endDate = endDate;
this.status = status;
this.statusDescription = statusDescription;
}
@Override
public final boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof FacilityStatusHistory)) {
return false;
}
FacilityStatusHistory that = (FacilityStatusHistory) o;
return Objects.equal(facilityId, that.facilityId) &&
Objects.equal(startDate, that.startDate) &&
Objects.equal(endDate, that.endDate) &&
Objects.equal(status, that.status) &&
Objects.equal(statusDescription, that.statusDescription);
}
@Override
public final int hashCode() {
return Objects.hashCode(facilityId, startDate, endDate, status, statusDescription);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("facilityId", facilityId)
.add("startDate", startDate)
.add("endDate", endDate)
.add("status", status)
.add("statusDescription", statusDescription)
.toString();
}
@Override
public DateTime getStart() {
return startDate;
}
@Override
public DateTime getEnd() {
return endDate;
}
}