1. Design a Java interface called Priority that includes two methods: setPriority and getPriority. The interface should define a way to establish numeric priority among a set of objects. Design and implement a class called Task that represents a task (such as on a todo list) that implements the Priority interface. Create a driver class to exercise some Task objects. 2. Modify the Task class from the project in question 1 so that it also implements the Comparable interface from the Java standard class library. Implement the interface such that the tasks are ranked by priority. Create a driver class whose main method shows these new features of Task objects. Solution solution public interface Priority extends Comparable { public int getPriority(); public void setPriority(int n); } ***************************************************************************** *************************** public class Task implements Priority { public int priority; /** * @param priority */ public Task(int priority) { this.priority = priority; } /** * @return the priority */ @Override public int getPriority() { return priority; } /** * @param priority * the priority to set */ @Override public void setPriority(int priority) { this.priority = priority; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return \"Task [priority=\" + priority + \"]\"; } @Override public int compareTo(Priority o) { // this is for ascending return this.getPriority() - o.getPriority(); } /* * @Override public int compareTo(Priority o) { //this is for descending * return o.getPriority()-this.getPriority(); } */ } ***************************************************************************** ******************************************* import java.util.ArrayList; import java.util.Collections; import java.util.List; public class PriorityDemo { public static void main(String[] args) { List priorities = new ArrayList(); Priority p = new Task(1); Priority p1 = new Task(25); Priority p2 = new Task(112); Priority p3 = new Task(12); Priority p4 = new Task(10); Priority p5 = new Task(512); Priority p6 = new Task(6); priorities.add(p); priorities.add(p1); priorities.add(p2); priorities.add(p3); priorities.add(p4); priorities.add(p5); priorities.add(p6); // before sorting based on priority System.out.println(\"before sorting based on priority\"); for (Priority pri : priorities) { System.out.println(pri); } // after sorting based on priority System.out.println(\"after sorting based on priority\"); Collections.sort(priorities); for (Priority prip : priorities) { System.out.println(prip); } } } output before sorting based on priority Task [priority=1] Task [priority=25] Task [priority=112] Task [priority=12] Task [priority=10] Task [priority=512] Task [priority=6] after sorting based on priority Task [priority=1] Task [priority=6] Task [priority=10] Task [priority=12] Task [priority=25] Task [priority=112] Task [priority=512].