package org.vfny.geoserver.wms.responses.map.htmlimagemap.utils;
/**
* Cyclical implementation of ArrayList: when a not
* available index is used, then index is wrapped until
* it falls in tre available index range.
* @author m.bartolomeoli
*
*/
public class CyclicalList extends java.util.ArrayList
{
private static final long serialVersionUID = 5468175713393008920L;
protected int wrapIndex(int index) {
//perform the index wrapping
while (index < 0)
index = size() + index;
if (index >= size())
index %= size();
return index;
}
public Object get(int index) {
return super.get(wrapIndex(index));
}
public Object set(int index,Object value) {
return super.set(wrapIndex(index), value);
}
public CyclicalList() { }
}