/*
*
*/
package ext.egantt.model.drawing.granularity.iterator;
import com.egantt.model.drawing.DrawingTransform;
import java.util.*;
public class CalendarIterator
implements Iterator
{
public CalendarIterator(DrawingTransform transform, int field, int step, long width, boolean needsRounding)
{
position = Calendar.getInstance();
returnValue = true;
this.field = field;
this.step = step;
this.transform = transform;
long start = ((Long)transform.inverseTransform(0L, width)).longValue();
finish = ((Long)transform.inverseTransform(width, width)).longValue();
position.setTime(new Date(start));
if(needsRounding)
{
for(int i = field + 1; i < 14; i++)
position.clear(i);
}
}
public boolean hasNext()
{
return returnValue;
}
public Object next()
{
long value = position.getTime().getTime();
returnValue = value < finish;
position.add(field, step);
return new Long(value);
}
public void remove()
{
}
protected Calendar position;
protected DrawingTransform transform;
protected boolean returnValue;
protected int field;
protected int step;
protected long finish;
}