udpserver.Task.java Source code

Java tutorial

Introduction

Here is the source code for udpserver.Task.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package udpserver;

import java.sql.Time;
import java.util.Comparator;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.joda.time.DateTime;
import org.joda.time.Interval;

/**
 * @brief Klasa reprezentujaca zadanie. Ma przechowywa dane startowe i wynik
 * zadania. Ma za zadanie rowniez przechowywac dane statystyczne (czas poczatku
 * i konca zadania)
 * @author kangur
 */
class Task {

    public class TaskComparator implements Comparator<Task> {

        @Override
        public int compare(Task t1, Task t2) {
            if (t2.getId() == t1.getId()) {
                return 0;
            } else if (t1.getId() > t2.getId()) {
                return 1;
            } else {
                return -1;
            }
        }
    }

    @Override
    public String toString() {
        //  return "Task{" + "startTime=" + startTime + ", endTime=" + endTime + ", inData=" + inData + ", outData=" + outData + ", id=" + id + ", taskType=" + taskType + '}';
        return "Task{" + "id=" + id + ", taskType=" + taskType + ", duration=" + getDurationString()
                + " ms, startTime=" + startTime + ", endTime=" + endTime + '}';
    }

    public Task(byte[] inData, UUID taskType) {
        Task.objectCounter++;
        this.inData = inData;
        this.id = Task.objectCounter;
        this.taskType = taskType;
    }

    private static final Logger LOG = Logger.getLogger(Server.class.getName());

    public DateTime getStartTime() {
        return startTime;
    }

    public void setStartTime(DateTime startTime) {
        this.startTime = startTime;
    }

    public void setStartTime() {
        this.startTime = DateTime.now();
    }

    public void setEndTime() {
        this.endTime = DateTime.now();
    }

    public DateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(DateTime endTime) {
        this.endTime = endTime;
    }

    public long getDuration() {
        try {

            Interval interval;
            if (endTime == null) {
                interval = new Interval(startTime, DateTime.now());
            } else {
                interval = new Interval(startTime, endTime);
            }
            return interval.toDurationMillis();
        } catch (IllegalArgumentException ex) {
            LOG.log(Level.WARNING, "Error : " + ex.getLocalizedMessage());
            return 0;
        }

    }

    public String getDurationString() {
        Interval interval;
        if (endTime == null) {
            interval = new Interval(startTime, DateTime.now());
        } else {
            interval = new Interval(startTime, endTime);
        }
        return Long.toString(interval.toDurationMillis());
    }

    public byte[] getInData() {
        return inData;
    }

    public void setInData(byte[] inData) {
        this.inData = inData;
    }

    public byte[] getOutData() {
        return outData;
    }

    public void setOutData(byte[] outData) {
        this.outData = outData;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public UUID getTaskType() {
        return taskType;
    }

    public void setTaskType(UUID taskType) {
        this.taskType = taskType;
    }

    private UUID clientId;
    private UUID taskType;
    private byte[] inData;
    private byte[] outData;
    private int id;
    private DateTime startTime;
    private DateTime endTime;
    private static int objectCounter = 0;
}