projSupplyList = (ArrayList)refillProjections.clone();
Iterator projResupplyIt = refillProjections.iterator(); while(projResupplyIt.hasNext()) { Task task = (Task) projResupplyIt.next(); if(!tmpProjResupply.contains(task)) { tmpProjResupply.add(task); } }  projSupplyList = tmpProjResupply;
  public void takeSnapshot(Inventory inventory) {    ArrayList tmpProjWdraw = new ArrayList();    ArrayList tmpWdraw = new ArrayList();    Iterator due_outs;    for (int i=0; i < dueOutList.size(); i++) {      due_outs = ((ArrayList)dueOutList.get(i)).iterator();      while (due_outs.hasNext()) {	Task task = (Task)due_outs.next();	if (task.getVerb().equals(Constants.Verb.WITHDRAW)) {	  tmpWdraw.add(task);	} else { // PROJECTWITHDRAW	  if (!tmpProjWdraw.contains(task)) {	    tmpProjWdraw.add(task);	  }	}      }    }    projWithdrawList =tmpProjWdraw;    withdrawList = tmpWdraw;    projSupplyList = (ArrayList)refillProjections.clone();    supplyList = (ArrayList)refillRequisitions.clone();    QuantityScheduleElement qse;    Vector list = new Vector();    long start = convertBucketToTime(0);    for (int i=0; i < criticalLevelsArray.length; i++) {      list.add(ScheduleUtils.buildQuantityScheduleElement(criticalLevelsArray[i],							  start, start+MSEC_PER_BUCKET));      start += MSEC_PER_BUCKET;    }    bufferedCriticalLevels = GLMFactory.newQuantitySchedule(list.elements(), 							    PlanScheduleType.OTHER);    start = convertBucketToTime(0);    list.clear();    for (int i=0; i < inventoryLevelsArray.length; i++) {      list.add(ScheduleUtils.buildQuantityScheduleElement(inventoryLevelsArray[i],							  start, start+MSEC_PER_BUCKET));      start += MSEC_PER_BUCKET;    }    bufferedInventoryLevels = GLMFactory.newQuantitySchedule(list.elements(), 							    PlanScheduleType.OTHER);    NewScheduledContentPG scp = (NewScheduledContentPG)inventory.getScheduledContentPG();    scp.setSchedule(bufferedInventoryLevels);  }