package org.overture.codegen.runtime.traces;
import java.util.Iterator;
public class LazyTestSequence extends TestSequence
{
private static final long serialVersionUID = -8449551289160946386L;
private IIterableTraceNode node;
public LazyTestSequence(IIterableTraceNode node)
{
this.node = node;
}
@Override
public synchronized int size()
{
return this.node.size();
}
@Override
public synchronized boolean isEmpty()
{
return !iterator().hasNext();
}
@Override
public synchronized CallSequence get(int index)
{
return this.node.get(index);
}
@Override
public synchronized Iterator<CallSequence> iterator()
{
return new Iterator<CallSequence>()
{
int index = 0;
@Override
public boolean hasNext()
{
return index < LazyTestSequence.this.size();
}
@Override
public CallSequence next()
{
CallSequence test = LazyTestSequence.this.get(index++);
markFiltered(test);
return test;
}
@Override
public void remove()
{
// Not supported
}
};
}
}