/**
 * An example that uses interfaces and derived classes
 *
 * @version 1.0
 * @author  David Bernstein, James Madison University
 */
public class Driver
{

    public static void main(String[] args)
    {
	AccidentReport       accident1, accident2;
	int                  k;
	Prioritized[]        priorities;
	Alert                alert;
	EmergencyMessage     message;
	


	priorities = new Prioritized[4];

	message = new EmergencyMessage("Congestion on I81 north!");
	priorities[0] = message;

	alert = new Alert("Route 11 Closed in Both Directions",
                          "Use I81 Instead");
	alert.setPriority(4);
	priorities[1] = alert;


	accident1 = new AccidentReport("FENDER BENDER", 2);
	priorities[2] = accident1;

	accident2 = new AccidentReport("HEAD ON", 2);
	priorities[3] = accident2;


	k = countHighPriorityItems(priorities);
	System.out.println("\n\n\n");
	if (k == 1) 
	{
	  System.out.println("1 item is crucial!");

	} else {

	  System.out.println(k+" items are crucial!");
	}


	accident1.setSize(4);
	k = countHighPriorityItems(priorities);
	System.out.println("\n\n\n");
	if (k == 1) 
	{
	  System.out.println("1 item is crucial!");

	} else {

	  System.out.println(k+" items are crucial!");
	}



    }


    /**
     * Determine the number of high priorty items
     */
    public static int countHighPriorityItems(
	                   Prioritized[] items)
    {
	int i, count;

	count = 0;
	for (i=0; i < items.length; i++) 
	{
	    if (items[i].getPriority() >= 5) count++;
	}
	return count;
    }
}
