package eu.europeana.cloud.common.model.dps; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; public class TaskInfo { private final long id; private final String topologyName; private int containsElements; private TaskState state; private String info; private Date finishDate; private Date startDate; private Date sentDate; private List<SubTaskInfo> subtasks = new ArrayList<>(); public TaskState getState() { return state; } public void setState(TaskState state) { this.state = state; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public TaskInfo(long id, String topologyName, TaskState state, String info, Date sentDate, Date startDate, Date finishDate) { this.id = id; this.topologyName = topologyName; this.state = state; this.info = info; this.sentDate = sentDate; this.startDate = startDate; this.finishDate = finishDate; } public long getId() { return id; } public String getTopologyName() { return topologyName; } public int getContainsElements() { return containsElements; } public void setContainsElements(int containsElements) { this.containsElements = containsElements; } public List<SubTaskInfo> getSubtasks() { return Collections.unmodifiableList(subtasks); } public void addSubtask(SubTaskInfo subtask) { subtasks.add(subtask); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof TaskInfo)) return false; TaskInfo taskInfo = (TaskInfo) o; if (containsElements != taskInfo.containsElements) return false; if (id != taskInfo.id) return false; if (subtasks != null ? !subtasks.equals(taskInfo.subtasks) : taskInfo.subtasks != null) return false; if (topologyName != null ? !topologyName.equals(taskInfo.topologyName) : taskInfo.topologyName != null) return false; if (state != taskInfo.state) return false; if (startDate == null) if (taskInfo.startDate != null) return false; if (startDate != null && taskInfo.startDate != null) if (startDate.getTime() != taskInfo.startDate.getTime()) return false; if (sentDate == null) if (taskInfo.sentDate != null) return false; if (sentDate != null && taskInfo.sentDate != null) if (sentDate.getTime() != taskInfo.sentDate.getTime()) return false; if (finishDate == null) if (taskInfo.finishDate != null) return false; if (finishDate != null && taskInfo.finishDate != null) if (finishDate.getTime() != taskInfo.finishDate.getTime()) return false; return true; } @Override public int hashCode() { int result = (int) (id ^ (id >>> 32)); result = 31 * result + (topologyName != null ? topologyName.hashCode() : 0); result = 31 * result + containsElements; result = 31 * result + (subtasks != null ? subtasks.hashCode() : 0); result = 31 * result + (state != null ? state.hashCode() : 0); result = 31 * result + (startDate != null ? startDate.hashCode() : 0); result = 31 * result + (sentDate != null ? sentDate.hashCode() : 0); return result; } }