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));
}
}