package moe.ymc.acron.config.json; import com.google.gson.Gson; import moe.ymc.acron.config.Config; import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class ConfigDeserializer { public static @NotNull Config deserialize(@NotNull File file, boolean startup) throws ConfigDeserializationException, IOException { final Reader reader = new FileReader(file); final moe.ymc.acron.config.json.Config config; try { config = new Gson() .fromJson(reader, moe.ymc.acron.config.json.Config.class); } catch (Throwable e) { throw new ConfigDeserializationException("Cannot parse JSON: " + e.getMessage(), true); } reader.close(); return config.create(startup); } }