package de.geolykt.starloader.api.gui.modconf;
import java.util.Collection;
import org.jetbrains.annotations.NotNull;
/**
* A configuration option that is backing a number, be it a floating-point number
* or an integral number.
*
* This interface can be safely implemented by Extensions as the graphical components are relayed
* to other components.
*
* @since 1.3.0
* @param The exact data type that is used by this configuration object
*/
public interface NumberOption extends ConfigurationOption {
/**
* Obtains the maximum value the option can be.
* This value is inclusive to the set of values this option can hold.
*
* @return The maximum value
*/
@NotNull
public T getMaximum();
/**
* Obtains the minimum value the option can be.
* This value is inclusive to the set of values this option can hold.
*
* @return The minimum value
*/
@NotNull
public T getMinimum();
/**
* Obtains the recommended values that the user can set.
*
* @return The recommended values.
*/
@NotNull
public Collection<@NotNull T> getRecommendedValues();
}