import java.util.AbstractList;
public class ItemSet extends AbstractList {
private Item[] arr;
private ItemClass itemClass;
public ItemSet(Item item) {
arr = new Item[1];
arr[0] = item;
}
/*
* (non-Javadoc)
*
* @see java.util.AbstractList#add(java.lang.Object)
*/
@Override
public boolean add(Item e) {
boolean isNotAdded = true;
for (int i = 0; i < arr.length; i++) {
if (e.getRule().compareTo(arr[i].getRule())) {
if (e.getDot() == arr[i].getDot()) {
isNotAdded = false;
break;
}
}
}
if (isNotAdded) {
Item[] oldArr = arr;
arr = new Item[oldArr.length + 1];
System.arraycopy(oldArr, 0, arr, 0, oldArr.length);
arr[oldArr.length] = e;
}
return isNotAdded;
}
@Override
public Item get(int index) {
return arr[index];
}
@Override
public int size() {
return arr.length;
}
// SETTER
/**
* @param itemClass
* the itemClass to set
*/
public void setItemClass(ItemClass itemClass) {
this.itemClass = itemClass;
}
//
// GETTER
/**
* @return the itemClass
*/
public ItemClass getItemClass() {
return itemClass;
}
//
}
How to cover for instance removes methods?
How do not use an own list implementation?
If you don’t want to inherit remove(), then don’t extend
AbstractList, instead delegate the methods you want to anArrayList.Like this (and for the love of god don’t comment your setters and getters)