package com.constellio.app.modules.es.model.connectors.structures; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import com.constellio.model.entities.schemas.ModifiableStructure; public class TraversalSchedule implements ModifiableStructure { int weekDay; String startTime; // startTime and endTime would be in format "HH:mm", should be easy enough to use later. String endTime; boolean dirty; public TraversalSchedule() { } public TraversalSchedule(int weekDay, String startTime, String endTime) { this.weekDay = weekDay; this.startTime = startTime; this.endTime = endTime; } public int getWeekDay() { return weekDay; } public void setWeekDay(int weekDay) { dirty = true; this.weekDay = weekDay; } public String getStartTime() { return startTime; } public void setStartTime(String startTime) { dirty = true; this.startTime = startTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { dirty = true; this.endTime = endTime; } public boolean isValidated() { return endTime != null; } public boolean isValid() { return endTime != null && startTime != null; } @Override public boolean isDirty() { return dirty; } @Override public String toString() { return "TraversalSchedule {" + "weekDay='" + weekDay + '\'' + ", startTime=" + startTime + ", endTime=" + endTime + ", dirty=" + dirty + '}'; } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this, "dirty"); } @Override public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj, "dirty"); } public boolean hasValuesInAllFields() { return weekDay != 0 && StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime); } public boolean isEmpty() { return weekDay == 0 && StringUtils.isBlank(startTime) && StringUtils.isBlank(endTime); } }