package hipstersinc.util; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class RingList implements List { private Item[] items; private int size; private int capacity; private int cursor; @SuppressWarnings("unchecked") public RingList(int capacity) { this.capacity = capacity; this.items = (Item[]) new Object[capacity]; this.size = 0; this.cursor = 0; } public boolean add(Item o) { int index = (cursor + size)%capacity; items[index] = o; size++; if(size > capacity) { cursor++; size = capacity; } return true; } public void add(int index, Item element) { items[index%capacity] = element; } public boolean addAll(Collection c) { // TODO Auto-generated method stub return false; } public boolean addAll(int index, Collection c) { // TODO Auto-generated method stub return false; } public void clear() { // TODO Auto-generated method stub } public boolean contains(Object o) { // TODO Auto-generated method stub return false; } public boolean containsAll(Collection c) { // TODO Auto-generated method stub return false; } public Item get(int index) { return items[(cursor+index)%capacity]; } public int indexOf(Object o) { // TODO Auto-generated method stub return 0; } public boolean isEmpty() { // TODO Auto-generated method stub return false; } public Iterator iterator() { return new Iterator() { private int count = 0; public boolean hasNext() { return((count+1) < size); } public Item next() { Item item = items[(count+cursor)%capacity]; count++; return item; } public void remove() { System.err.println("Nope! RingList.Iterator.Remove"); } }; } public int lastIndexOf(Object o) { // TODO Auto-generated method stub return 0; } public ListIterator listIterator() { // TODO Auto-generated method stub return null; } public ListIterator listIterator(int index) { // TODO Auto-generated method stub return null; } public boolean remove(Object o) { // TODO Auto-generated method stub return false; } public Item remove(int index) { // TODO Auto-generated method stub return null; } public boolean removeAll(Collection c) { // TODO Auto-generated method stub return false; } public boolean retainAll(Collection c) { // TODO Auto-generated method stub return false; } public Item set(int index, Item element) { // TODO Auto-generated method stub return null; } public int size() { return size; } public List subList(int fromIndex, int toIndex) { // TODO Auto-generated method stub return null; } public Object[] toArray() { // TODO Auto-generated method stub return null; } public T[] toArray(T[] a) { // TODO Auto-generated method stub return null; } }