Question
Please use JAVA only Write a Printer device, which also derives from generic devices, but this time includes the notion of jobs to be printed.
Please use JAVA only
Write a Printer device, which also derives from generic devices, but this time includes the notion of jobs to be printed. Like Disk, a Printer should extend from Device. Additionally, a Printer should have an intwhich represents the number of jobs currently in the printer's print queue. We can add or complete print jobs, or check the number currently in the queue, but for this assignment that is the extent of what we expect (we will not be passing full-fledged print jobs to the class, we will just keep track of the number of jobs).
The class should implement the following public methods:
- public Printer(String name, int id) Initializes the device with name and ID as before. Make sure to use the parent's constructor, otherwise the parent's fields will not be set. Additionally, the number of print jobs should initially be set to zero.
- @Override public String getCategory() This should return the value "printer".
- @Override public void disable() Whenever a printer device is disabled, the number of active print jobs should be reset to zero, in addition to anything that the disable() method was already doing in the parent class.
- public void submitJob() Increase the number of print jobs by one, but only if the printer device is currently enabled.
- public int numJobs() Report the number of currently active print jobs.
- public void completeJob() Complete one of the currently active print jobs (i.e. reduce the number of jobs by one if there are more than zero jobs to print).
Example:
Below is a sample run demonstrating how the class would function using the following input: 1 abc 2.0 3 def 4.0 6 7 xyz 5.5
> Device dev = new Device("controller", 0); > System.out.println(dev); generic 0, controller > dev.isEnabled() false > dev.enable(); > dev.isEnabled() true > Disk disk = new Disk("HDD", 1, 123456789); > System.out.println(disk); disk 1, HDD (123456789 bytes) > disk.getSize() 123456789 > disk.enable(); > disk.isEnabled() true > Disk disk2 = new Disk("SDD", 2, 256000000000L); > Printer p = new Printer("Laser Printer", 3); > p.numJobs() 0 > p.submitJob(); > p.numJobs() 0 > p.isEnabled() false > p.enable(); > p.submitJob(); > p.numJobs() 1 > p.submitJob(); > p.numJobs() 2 > p.completeJob(); > p.numJobs() 1 > p.completeJob(); > p.completeJob(); > p.numJobs() 0 > Device[] devices = {dev, disk, disk2, p}; > for (Device d : devices) { System.out.println(d); } generic 0, controller disk 1, HDD (123456789 bytes) disk 2, SDD (256000000000 bytes) printer 3, Laser Printer
-
Please make sure that it passes the following: https://repl.it/@micky123/ColorfulGranularCode
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started