public class P2_Jobs implements Runnable{ private String id; private char jobType; private int pages = 0; private P2_Printer printer; private boolean done = false; public P2_Jobs(String jobDetails, P2_Printer printerToUse) { //Create a new job id = jobDetails.substring(0, 2); jobType = jobDetails.charAt(0); pages = Integer.parseInt(jobDetails.substring(3)); //Assing to printer printer = printerToUse; } public void run() { int head=0; do { //While the job hasn't been started, keep nagging head = printer.requestHead(); }while(!printer.requestPrint(this,head)); //Once we're out of that while loop, we're done. done = true; } public boolean getIsDone() { return done; } public char getJobType() { return jobType; } public int getPages() { return pages; } public String getId() { return id; } }