27 lines
663 B
Java
27 lines
663 B
Java
|
package net.knarcraft.blacksmith.config;
|
||
|
|
||
|
/**
|
||
|
* An interface describing an object for managing settings
|
||
|
*
|
||
|
* @param <K> <p>The type of setting managed</p>
|
||
|
*/
|
||
|
public interface Settings<K extends Setting> {
|
||
|
|
||
|
/**
|
||
|
* Changes the value of the given setting
|
||
|
*
|
||
|
* @param setting <p>The setting to change</p>
|
||
|
* @param newValue <p>The new value of the setting</p>
|
||
|
*/
|
||
|
void changeValue(K setting, Object newValue);
|
||
|
|
||
|
/**
|
||
|
* Gets the current raw value of the given global setting
|
||
|
*
|
||
|
* @param setting <p>The setting to get</p>
|
||
|
* @return <p>The current raw setting value</p>
|
||
|
*/
|
||
|
Object getRawValue(K setting);
|
||
|
|
||
|
}
|