// 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.prediction; import com.google.common.base.MoreObjects; import fi.hsl.parkandride.core.domain.UtilizationKey; import org.joda.time.DateTime; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; import java.util.Objects; public class PredictionBatch { @NotNull @Valid public UtilizationKey utilizationKey = new UtilizationKey(); @NotNull public DateTime sourceTimestamp; @NotNull @Valid public List<Prediction> predictions = new ArrayList<>(); @Override public boolean equals(Object obj) { if (!(obj instanceof PredictionBatch)) { return false; } PredictionBatch that = (PredictionBatch) obj; return Objects.equals(this.utilizationKey, that.utilizationKey) && Objects.equals(this.sourceTimestamp, that.sourceTimestamp) && Objects.equals(this.predictions, that.predictions); } @Override public int hashCode() { return Objects.hash(utilizationKey, sourceTimestamp, predictions); } @Override public String toString() { return MoreObjects.toStringHelper(this) .addValue(utilizationKey) .add("sourceTimestamp", sourceTimestamp) .add("predictions", predictions) .toString(); } }