package com.rthoni.intellij.codefromds.business; import com.intellij.database.psi.DbDataSource; import com.rthoni.intellij.codefromds.dbo.GenerateOptions; import org.json.JSONObject; import java.io.FileOutputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; /** * Created by robin on 11/15/16. */ public abstract class Generator { public static void saveOptions(GenerateOptions options) throws Exception { HashMap map = options.toMap(); JSONObject obj = new JSONObject(map); FileOutputStream file = new FileOutputStream(options.getConfigPath()); file.write(obj.toString(4).getBytes()); file.close(); } public static GenerateOptions loadOptions(String configPath) throws Exception { String data = Files.readAllLines(Paths.get(configPath), StandardCharsets.UTF_8).stream().reduce("", (s1, s2) -> s1 + s2); JSONObject obj = new JSONObject(data); String src = obj.getJSONObject("selection").getString("source"); DbDataSource dataSource = Helper.findDataSource(src); if (dataSource == null) { throw new Exception("Data source " + src + " not found"); } GenerateOptions options = new GenerateOptions(dataSource); options.setConfigPath(configPath); options.fromJson(obj); return options; } public static void generate(GenerateOptions options) { } }