package test.rewolucja.reservation; import java.util.List; import org.joda.time.DateTime; import schedframe.resources.ResourceDescription; import schedframe.scheduling.ReservedHost; import schedframe.scheduling.TimeResourceAllocation; import schedframe.scheduling.utils.ResourceParameterName; public class ReservationNew extends TimeResourceAllocation { private static final long serialVersionUID = 7837525861926610754L; protected Status status; protected DateTime creationTime; protected String resourceName; protected List reservedHosts; protected String jobId; protected String taskId; protected String userId; public ReservationNew(ResourceDescription allocatedResource, DateTime startTime, DateTime endTime, DateTime creationTime) { super(allocatedResource, startTime, endTime); this.creationTime = creationTime; } public ReservationNew(ReservationNew r){ super(r); this.status = r.getStatus(); this.creationTime = new DateTime(r.getCreationTime()); this.resourceName = r.getResourceName(); } public Status getStatus(){ return this.status; } public synchronized void setStatus(Status status){ this.status = status; } public String getResourceName(){ return this.resourceName; } public void setResourceName(String resourceName){ this.resourceName = resourceName; } public DateTime getCreationTime(){ return this.creationTime; } public boolean equals(Object obj){ if(obj instanceof ReservationNew == false) return false; if(! super.equals(obj)) return false; ReservationNew r = (ReservationNew) obj; if(creationTime != null && ! creationTime.equals(r.getCreationTime())) return false; if(resourceName != null && ! resourceName.equals(r.resourceName)) return false; if(status != r.getStatus()) throw new RuntimeException("Two objects, representing reservation "+ this.id + " have different status."); return true; } public String toString(){ String s = null; try { s = "reservation id/jobId/taskId/start/end: " + id + "/" + jobId + "/" + taskId + "/" + getStart() + "/" + getEnd() + " res amount: " + allocatedResource.getResourceUnit(ResourceParameterName.CPUCOUNT).getUsedAmount(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return s; } public String getJobId() { return jobId; } public void setJobId(String jobId) { this.jobId = jobId; } public String getTaskId() { return taskId; } public void setTaskId(String taskId) { this.taskId = taskId; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public List getReservedHosts(){ return this.reservedHosts; } public void setReservedHosts(List list){ this.reservedHosts = list; } public enum Status{ INITIAL(), COMMITTED(), ACTIVE(), EXPIRED(), CANCELED(), FINISHED(); } }