I am trying to store data that I'm receiving from a client to a LinkedLsit of Jobs, but everytime i add multiple jobs the list overwrites itself to display the latest value added into the list.
The classes below are the ones I'm calling to store the data from my main server in which I'm calling them using the code below in public class Server. Server itself is an additional class of my program that's why it doesn't contain "public static void main(String[] args)".
In this program I'm not allowed to use the static function.
public class Jobs {
private String jobNumber = "";
private String jobTime = "";
public Jobs() {
}
public void setJobNumber(String number) {
jobNumber = number;
}
public String getJobNumber() {
return jobNumber;
}
public void setJobTime(String time) {
jobTime = time;
}
public String getJobTime() {
return jobTime;
}
}
public class JobsManager {
private LinkedList<Jobs> jobsList = new LinkedList<Jobs>();
public JobsManager() {
}
public void addJob(Jobs job) {
jobsList.add(job);
}
public void showAll() {
for (Jobs j : jobsList) {
System.out.println("Job Number: " + j.getJobNumber() + ", Processing Time: " + j.getJobTime());
}
}
}
public class ServerSystem extends Thread {
Jobs jobStore = new Jobs();
JobsManager jobManager = new JobsManager();
@Override
public void run() {
Nodes nodeClass = new Nodes();
NodesManager nodeManager = new NodesManager();
try {
boolean repeat = true;
while (repeat) {
byte[] packetData = new byte[1024];
DatagramPacket packet = new DatagramPacket(packetData, packetData.length);
socket.receive(packet);
String message = new String(packetData);
String[] elements = message.trim().split(",");
switch (elements[0]) {
case "JOB":
// this is a job
System.out.println("---> got a JOB instruction");
String jobTime = elements[1];
String jobNumber = elements[2];
if (Integer.parseInt(jobNumber) >= 11) {
System.out.println("-----> Maximum job numbers reached");
break;
}
System.out.println("-----> Job Time = " + jobTime + ", Job Number = " + jobNumber);
jobStore.setJobNumber(jobNumber);
jobStore.setJobTime(jobTime);
jobManager.addJob(jobStore);
break;
}
System.out.println("Blocking incoming traffic...");
} catch (Exception error) {
}
}
}