package fr.openwide.core.wicket.more.model;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.wicket.model.IModel;
import fr.openwide.core.wicket.more.markup.repeater.collection.IItemModelAwareCollectionModel;
import fr.openwide.core.wicket.more.markup.repeater.map.IItemModelAwareMapModel;
public class WorkingCopyMapModel<K, V, M extends Map<K, V>, MK extends IModel<K>, MV extends IModel<V>>
extends WorkingCopyModel<M>
implements IItemModelAwareMapModel<K, V, M, MK, MV> {
private static final long serialVersionUID = -4049247716740595168L;
private final IItemModelAwareMapModel<K, V, M, MK, MV> mapWorkingCopy;
public WorkingCopyMapModel(IModel<M> reference, MapCopyModel<K, V, M, MK, MV> workingCopy) {
super(reference, workingCopy);
this.mapWorkingCopy = workingCopy;
}
@Override
public M getObject() {
return mapWorkingCopy.getObject();
}
@Override
public void setObject(M object) {
mapWorkingCopy.setObject(object);
}
@Override
public Iterator<MK> iterator() {
return mapWorkingCopy.iterator();
}
@Override
public Iterator<MK> iterator(long offset, long limit) {
return mapWorkingCopy.iterator(offset, limit);
}
@Override
public long size() {
return mapWorkingCopy.size();
}
@Override
public IItemModelAwareCollectionModel<K, Set<K>, MK> keysModel() {
return mapWorkingCopy.keysModel();
}
@Override
public IItemModelAwareCollectionModel<V, Collection<V>, MV> valuesModel() {
return mapWorkingCopy.valuesModel();
}
@Override
public IModel<V> valueModel(IModel<? extends K> keyModel) {
return mapWorkingCopy.valueModel(keyModel);
}
@Override
public MV valueModelForProvidedKeyModel(IModel<K> keyModel) {
return mapWorkingCopy.valueModelForProvidedKeyModel(keyModel);
}
@Override
public void put(K key, V value) {
mapWorkingCopy.put(key, value);
}
@Override
public void remove(K key) {
mapWorkingCopy.remove(key);
}
@Override
public void clear() {
mapWorkingCopy.clear();
}
}