001package fr.aumgn.bukkitutils.command.arg;
002
003import java.util.List;
004
005public interface MatchingArg<V> {
006
007    /**
008     * Returns all values which match the argument.
009     * This should not be called is argument is optional.
010     */
011    List<V> match();
012
013    /**
014     * Returns all values which match the argument or
015     * a list containing the given default if argument
016     * is omitted.
017     */
018    List<V> matchOr(V def);
019
020    /**
021     * Returns all values which match the argument or
022     * the given default list if the argument is omitted.
023     */
024    List<V> matchOr(List<V> def);
025}