package GCB; /* Define the head of a linked list w/wraped entries getFirstItem() returns first entry on the list getLastItem() returns last entry on the list setHeadItem(entry) places entry on the head of the list getHeadItem() returns (and removes) the head of the list setTailItem(entry) places entry on the tail of the list getTailItem() returns (and removes) the tail of the list removeItem(entry) removes the entry from the list */ public class ListObjectHead extends ListHead { // internal attributes static final String CODE_FILE = "ListObjectHead"; static final int CODE_REVISION = 2; // internal methods void display() { ListObject e = (ListObject) super.getFirst(); while(e!=null) { Object o = e.getObject(); System.out.println(o.toString()); e = (ListObject) e.getNext(); } } // external methods public ListObjectHead() {super();} // constructor for object public Object getFirstItem() { // get first entry ListObject o = (ListObject) super.getFirst(); if(o==null) return null; return o.getObject(); } public Object getLastItem() { // get last entry ListObject o = (ListObject) super.getLast(); if(o==null) return null; return o.getObject(); } public Object getNextItem(Object o) { ListObject e = (ListObject) super.getFirst(); while(e!=null) { if(o==e.getObject()) { e = (ListObject) e.getNext(); if(e!=null) return e.getObject(); return null; } e = (ListObject) e.getNext(); } System.out.println(CODE_FILE+ " attempt to get next object from wrong list!"); Thread.dumpStack(); return null; } public void setHeadItem(Object o){super.setHead(new ListObject(o));} public Object getHeadItem() { ListObject o = (ListObject) super.getHead(); if(o==null) return null; return o.getObject(); } public void setTailItem(Object o){super.setTail(new ListObject(o));} public Object getTailItem() { ListObject o = (ListObject) super.getTail(); if(o==null) return null; return o.getObject(); } public void removeItem(Object o) { ListObject e = (ListObject) super.getFirst(); while(e!=null) { if(o==e.getObject()) { super.remove(e); e.setObject(null); return; } e = (ListObject) e.getNext(); } System.out.println(CODE_FILE+ " attempt to remove object from wrong list!"); Thread.dumpStack(); } }