import java.io.*; public class Planner implements Database { private Task [] todo; private int numtasks; private static final int MAXSIZE = 1000; public Planner() { todo = new Task[STARTSIZE]; numtasks = 0; } public int size() { return numtasks; } public boolean add(Object o) { if (! (o instanceof Task)) return false; if (numtasks == todo.length && numtasks < MAXSIZE) // make bigger { int newsize = numtasks * 2; if (newsize > MAXSIZE) newsize = MAXSIZE; Task[] temp = new Task[newsize]; for (int i=0; i < numtasks; i++) temp[i] = todo[i]; todo = temp; } try { todo[numtasks++] = (Task) o; return true; } catch (ArrayIndexOutOfBoundsException iout) { System.err.print(iout + " in add attempt"); System.err.println("Sorry, no more room in planner"); numtasks--; } return false; } public void display() { for (int i=0; i < numtasks; i++) System.out.println(todo[i]); } public Object find(Object o) { boolean found = false; String s; if (! (o instanceof String)) return null; else s = (String) o; for (int i=0; i < numtasks; i++) { if (todo[i].toString().indexOf(s) >= 0) { return todo[i]; } } return null; } // method not implemented public boolean delete(Object o) { return false; } }