package ControllerWorker; import java.util.Vector; import org.gearman.client.GearmanJob; import org.json.simple.JSONObject; public class Client { private int id; private String ip; private String mac; private ClientState state; private Vector times; private Vector jobs; private String error; private Boolean finished; public Client(JSONObject clientJsonObj, String initialStateText) { id = Integer.parseInt(clientJsonObj.get("id").toString()); ip = clientJsonObj.get("ip").toString(); mac = clientJsonObj.get("mac").toString(); finished = false; error = ""; setState(ClientState.CLIENT_UNKNOWN); times = new Vector(); jobs = new Vector(); } public GearmanJob getJob(int jobType) { for (ClientJob job : jobs) { if (job.getJobType() == jobType) { return job.getGearmanJob(); } } return null; } public void addJob(int jobType, GearmanJob gearmanJob) { jobs.add(new ClientJob(jobType, gearmanJob)); } public void removeJob(GearmanJob gearmanJob) { for (ClientJob job : jobs) { if (job.getGearmanJob().equals(gearmanJob)) { jobs.remove(job); break; } } } public long getPingTime(int timeType) { for (ClientPingTime time : times) { if (time.getType() == timeType) { return time.getTime(); } } return 0; } public void addPingTime(int timeType, long time) { times.add(new ClientPingTime(timeType, time)); } public int getId() { return id; } public String getStateText() { return state.toString(); } public String getError() { return error; } public String getIp() { return ip; } public String getMac() { return mac; } public ClientState getState() { return state; } public void setState(ClientState state_) { state = state_; } public void setError(String error) { this.error = error; } public Boolean isFinished() { return finished; } public void finish() { this.finished = true; } @Override public String toString() { return "Client [error=" + error + ", finished=" + finished + ", id=" + id + ", ip=" + ip + ", jobs=" + jobs + ", mac=" + mac + ", state=" + state + ", times=" + times + "]"; } }