/*
* 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.IMovingObjectIterable;
import arida.ufc.br.moap.core.beans.iterators.api.IMovingObjectIterator;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.Lock;
/**
*
* @author igobrilhante
*/
public class MovingObjectIterableImp implements IMovingObjectIterable {
private MovingObjectIteratorImp iterator;
public MovingObjectIterableImp(List<MovingObject> list, Lock lock) {
this.iterator = new MovingObjectIteratorImp(list, lock);
}
@Override
public IMovingObjectIterator iterator() {
return iterator;
}
@Override
public MovingObject[] toArray() {
ArrayList<MovingObject> list = new ArrayList<MovingObject>();
while (iterator.hasNext()) {
list.add(iterator.next());
}
return list.toArray(new MovingObject[0]);
}
@Override
public void doBreak() {
if (this.iterator.lock != null) {
this.iterator.lock.unlock();
}
}
}