package mf; /*Generated by MPS */ public class BitemporalCollection implements TemporalCollection { private SingleTemporalCollection myContents = new SingleTemporalCollection(); public BitemporalCollection() { myContents.put(MfDate.today(), new SingleTemporalCollection()); } @Override public Object get(MfDate when) { return currentValidHistory().get(when); } private SingleTemporalCollection currentValidHistory() { return (SingleTemporalCollection) myContents.get(); } public Object get(MfDate validDate, MfDate transactionDate) { return validHistoryAt(transactionDate).get(validDate); } private TemporalCollection validHistoryAt(MfDate transactionDate) { return (TemporalCollection) myContents.get(transactionDate); } @Override public void put(MfDate validDate, Object item) { myContents.put(MfDate.today(), currentValidHistory().copy()); currentValidHistory().put(validDate, item); } @Override public void put(Object item) { put(MfDate.today(), item); } @Override public Object get() { return get(MfDate.today()); } @Override public Object get(int year, int month, int date) { return get(new MfDate(year, month, date)); } }