mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-12-24 17:41:03 +03:00
35 lines
855 B
Java
35 lines
855 B
Java
package pro.gravit.launcher.config;
|
|
|
|
import java.lang.invoke.MethodHandles;
|
|
import java.lang.invoke.MethodType;
|
|
import java.nio.file.Path;
|
|
|
|
public class SimpleConfigurable<T> extends JsonConfigurable<T> {
|
|
private final Class<T> tClass;
|
|
public T config;
|
|
|
|
public SimpleConfigurable(Class<T> type, Path configPath) {
|
|
super(type, configPath);
|
|
tClass = type;
|
|
}
|
|
|
|
@Override
|
|
public T getConfig() {
|
|
return config;
|
|
}
|
|
|
|
@Override
|
|
public void setConfig(T config) {
|
|
this.config = config;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public T getDefaultConfig() {
|
|
try {
|
|
return (T) MethodHandles.publicLookup().findConstructor(tClass, MethodType.methodType(void.class)).invokeWithArguments();
|
|
} catch (Throwable e) {
|
|
return null;
|
|
}
|
|
}
|
|
}
|