package info.opencards.learnstrats.ltm; import info.opencards.core.FlashCard; import info.opencards.core.Item; import info.opencards.core.ItemCollection; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; /** * DOCUMENT ME! * * @author Holger Brandl */ public class LTMCollection extends ItemCollection { public ArrayList<Item> getScheduledItems() { ArrayList<Item> scheduledItems = new ArrayList<Item>(); for (Item item : this) { if (((LTMItem) item).isScheduledForToday()) scheduledItems.add(item); } return scheduledItems; } public void addItem(FlashCard flashCard) { add(new LTMItem(flashCard)); } /** * Returns the items scheduled for a given date. * * @param includeUntil if <code>true</code> also all items until this date become included. */ public List<LTMItem> predictItemsForDate(Date predictedSchedDate, boolean includeUntil) { List<LTMItem> predictedItems = new ArrayList<LTMItem>(); for (Item item : this) { LTMItem ltmItem = (LTMItem) item; Date scheduledDate = ltmItem.getNextScheduledDate(); if (ScheduleUtils.getDayDiff(scheduledDate, predictedSchedDate) == 0) { predictedItems.add(ltmItem); } else if (includeUntil && scheduledDate.compareTo(predictedSchedDate) < 0) { predictedItems.add(ltmItem); } } return predictedItems; } public Object clone() { LTMCollection cloneIC = (LTMCollection) super.clone(); cloneIC.clear(); try { for (Item item : this) { item = (Item) item.clone(); cloneIC.add(item); } } catch (CloneNotSupportedException e) { e.printStackTrace(); } cloneIC.props = new HashMap<String, Object>(props); return cloneIC; } }