/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package arida.ufc.br.moap.core.beans.iterators.imp;
import arida.ufc.br.moap.core.beans.MovingObject;
import arida.ufc.br.moap.core.beans.iterators.api.IMovingObjectIterator;
import java.util.List;
import java.util.concurrent.locks.Lock;
/**
*
* @author igobrilhante
*/
public class MovingObjectIteratorImp implements IMovingObjectIterator {
private List<MovingObject> array;
private int currentIndex = 0;
private int currentSize;
protected Lock lock;
public MovingObjectIteratorImp(List<MovingObject> list, Lock lock) {
this.array = list;
this.currentSize = list.size();
this.lock = lock;
}
@Override
public boolean hasNext() {
boolean res = currentIndex < currentSize && array.get(currentIndex) != null;
if (!res && lock != null) {
lock.unlock();
}
return res;
}
@Override
public MovingObject next() {
return array.get(currentIndex++);
}
@Override
public void remove() {
/*
* Not Implemented
*/
}
}