001package io.cui.tools.collect;
002
003import java.io.Serializable;
004import java.util.Collection;
005
006/**
007 * Represents a partial collection / sub-collection. It extends the {@link java.util.Collection}
008 * interface
009 * with {@link #isMoreAvailable()} flag. This indicates that the original
010 * {@link java.util.Collection}
011 * provides more data than the current {@link io.cui.tools.collect.PartialCollection}. It defines
012 * the lower bound for the
013 * contained types to {@link java.io.Serializable}. Currently, the only implementation is
014 * {@link io.cui.tools.collect.PartialArrayList}. It provides convenient methods for instantiation,
015 * like
016 * {@link io.cui.tools.collect.PartialArrayList#of(java.util.List, int)}
017 *
018 * @param <T> the type of the entity
019 * @author oliver
020 */
021public interface PartialCollection<T extends Serializable> extends Collection<T>, Serializable {
022
023    /**
024     * <p>
025     * isMoreAvailable.
026     * </p>
027     *
028     * @return {@code true} if more entities are available and ignored due to the given limit.
029     */
030    boolean isMoreAvailable();
031
032}