package fr.openwide.core.wicket.more.markup.repeater.map; 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; /** * A {@link IMapModel} that provides a specific type of models for its items (keys and values). * * <p>This model also allows a full iteration on its underlying key models. */ public interface IItemModelAwareMapModel<K, V, M extends Map<K, V>, MK extends IModel<K>, MV extends IModel<V>> extends IMapModel<K, V, M>, Iterable<MK> { @Override Iterator<MK> iterator(long offset, long limit); @Override IItemModelAwareCollectionModel<K, Set<K>, MK> keysModel(); @Override IItemModelAwareCollectionModel<V, Collection<V>, MV> valuesModel(); @Override MV valueModelForProvidedKeyModel(IModel<K> keyModel); }