package org.jvalue.ods.api.processors; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Objects; import java.util.concurrent.TimeUnit; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; public class ExecutionInterval { @Min(1) private final long period; @NotNull private final TimeUnit unit; @JsonCreator public ExecutionInterval( @JsonProperty("period") long period, @JsonProperty("unit") TimeUnit unit) { this.period = period; this.unit = unit; } public long getPeriod() { return period; } public TimeUnit getUnit() { return unit; } @Override public boolean equals(Object other) { if (other == null || !(other instanceof ExecutionInterval)) return false; if (other == this) return true; ExecutionInterval interval = (ExecutionInterval) other; return Objects.equal(period, interval.period) && Objects.equal(unit, interval.unit); } @Override public int hashCode() { return Objects.hashCode(period, unit); } }