package net.trevize.galatee; import java.util.ArrayList; import java.util.Iterator; /** * * * @author Nicolas James <nicolas.james@gmail.com> [[http://njames.trevize.net]] * GItemList.java - Feb 2, 2010 */ public class GItemList implements Iterable<GItem> { private ArrayList<GItem> toProcess; private ArrayList<GItem> processing; private ArrayList<GItem> processed; private GItemListIterator iterator; public ArrayList<GItem> getToProcess() { return toProcess; } public void setToProcess(ArrayList<GItem> toProcess) { this.toProcess = toProcess; } public ArrayList<GItem> getProcessing() { return processing; } public void setProcessing(ArrayList<GItem> processing) { this.processing = processing; } public ArrayList<GItem> getProcessed() { return processed; } public void setProcessed(ArrayList<GItem> processed) { this.processed = processed; } public GItemList() { toProcess = new ArrayList<GItem>(); processing = new ArrayList<GItem>(); processed = new ArrayList<GItem>(); iterator = new GItemListIterator(this); } @Override public Iterator iterator() { return iterator; } public void add(GItem gitem) { synchronized (toProcess) { synchronized (processing) { if (!processing.contains(gitem)) { toProcess.add(0, gitem); } } } } public void processingEndedFor(GItem gitem) { synchronized (processing) { processing.remove(gitem); } } }