You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GenerateOptions.java 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.rthoni.intellij.codefromds.dbo;
  2. import com.intellij.database.model.DasTable;
  3. import com.intellij.database.psi.DbDataSource;
  4. import com.intellij.database.util.DasUtil;
  5. import com.intellij.openapi.project.Project;
  6. import com.rthoni.intellij.codefromds.business.Helper;
  7. import org.json.JSONObject;
  8. import java.io.File;
  9. import java.nio.file.Path;
  10. import java.nio.file.Paths;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Vector;
  14. import java.util.stream.Collectors;
  15. /**
  16. * Created by robin on 11/15/16.
  17. */
  18. public class GenerateOptions {
  19. private DataSourceSelection _selection;
  20. private String _modelsRelativePath;
  21. private String _dataSourceTemplateRelativePath;
  22. private String _modelsTemplateRelativePath;
  23. private String _configAbsolutePath;
  24. private String _filesExtension;
  25. public GenerateOptions(DbDataSource source) {
  26. _modelsRelativePath = "Models";
  27. _dataSourceTemplateRelativePath = "Templates" + File.separator + "DataSource.twig";
  28. _modelsTemplateRelativePath = "Templates" + File.separator + "Models.twig";
  29. _configAbsolutePath = source.getProject().getBasePath() + File.separator + "code-from-ds.json";
  30. _filesExtension = "cs";
  31. _selection = new DataSourceSelection(source);
  32. _selection.setSource(source);
  33. final List<? extends DasTable> tables = DasUtil.getTables(source).toList();
  34. List<TableSelection> tableSelections = new Vector<>();
  35. for (DasTable table : tables) {
  36. TableSelection tableSelection = new TableSelection();
  37. tableSelection.setTable(table);
  38. tableSelection.setColumns(DasUtil.getColumns(table).toList().stream().map(c -> {
  39. ColumnSelection selection = new ColumnSelection();
  40. selection.setColumn(c);
  41. selection.setSelected(true);
  42. return selection;
  43. }).collect(Collectors.toList()));
  44. tableSelections.add(tableSelection);
  45. }
  46. _selection.setTables(tableSelections);
  47. }
  48. public HashMap<String, Object> toMap()
  49. {
  50. HashMap<String, Object> map = new HashMap<>();
  51. map.put("modelsRelativePath", _modelsRelativePath);
  52. map.put("dataSourceTemplateRelativePath", _dataSourceTemplateRelativePath);
  53. map.put("modelsTemplateRelativePath", _modelsTemplateRelativePath);
  54. map.put("filesExtension", _filesExtension);
  55. map.put("selection", _selection == null ? null : new JSONObject(_selection.toMap()));
  56. return map;
  57. }
  58. public void fromJson(JSONObject json)
  59. {
  60. _modelsRelativePath = Helper.getJsonString(json, "modelsRelativePath");
  61. _dataSourceTemplateRelativePath = Helper.getJsonString(json, "dataSourceTemplateRelativePath");
  62. _modelsTemplateRelativePath = Helper.getJsonString(json, "modelsTemplateRelativePath");
  63. _filesExtension = Helper.getJsonString(json, "filesExtension");
  64. _selection.fromJson(json.getJSONObject("selection"));
  65. }
  66. public DataSourceSelection getSelection() {
  67. return _selection;
  68. }
  69. public void setSelection(DataSourceSelection selection) {
  70. _selection = selection;
  71. }
  72. public String getModelsRelativePath() {
  73. return _modelsRelativePath;
  74. }
  75. public void setModelsRelativePath(String modelsRelativePath) {
  76. _modelsRelativePath = modelsRelativePath;
  77. }
  78. public String getDataSourceTemplateRelativePath() {
  79. return _dataSourceTemplateRelativePath;
  80. }
  81. public void setDataSourceTemplateRelativePath(String dataSourceTemplateRelativePath) {
  82. _dataSourceTemplateRelativePath = dataSourceTemplateRelativePath;
  83. }
  84. public String getModelsTemplateRelativePath() {
  85. return _modelsTemplateRelativePath;
  86. }
  87. public void setModelsTemplateRelativePath(String modelsTemplateRelativePath) {
  88. _modelsTemplateRelativePath = modelsTemplateRelativePath;
  89. }
  90. public String getConfigAbsolutePath() {
  91. return _configAbsolutePath;
  92. }
  93. public void setConfigAbsolutePath(String configAbsolutePath) {
  94. _configAbsolutePath = configAbsolutePath;
  95. }
  96. public String getFilesExtension() {
  97. return _filesExtension;
  98. }
  99. public void setFilesExtension(String filesExtension) {
  100. _filesExtension = filesExtension;
  101. }
  102. }