Parser.java 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package org.dbsyncer.parser;
  2. import org.dbsyncer.common.event.RowChangedEvent;
  3. import org.dbsyncer.common.model.AbstractConnectorConfig;
  4. import org.dbsyncer.common.model.Result;
  5. import org.dbsyncer.common.spi.ConnectorMapper;
  6. import org.dbsyncer.connector.enums.ConnectorEnum;
  7. import org.dbsyncer.connector.enums.FilterEnum;
  8. import org.dbsyncer.connector.enums.OperationEnum;
  9. import org.dbsyncer.connector.model.MetaInfo;
  10. import org.dbsyncer.connector.model.Table;
  11. import org.dbsyncer.listener.enums.QuartzFilterEnum;
  12. import org.dbsyncer.parser.enums.ConvertEnum;
  13. import org.dbsyncer.parser.model.*;
  14. import org.dbsyncer.storage.enums.StorageDataStatusEnum;
  15. import java.util.List;
  16. import java.util.Map;
  17. import java.util.concurrent.ExecutorService;
  18. /**
  19. * @author AE86
  20. * @version 1.0.0
  21. * @date 2019/10/20 21:11
  22. */
  23. public interface Parser {
  24. /**
  25. * 获取连接配置
  26. *
  27. * @param config
  28. * @return
  29. */
  30. ConnectorMapper connect(AbstractConnectorConfig config);
  31. /**
  32. * 刷新连接配置
  33. *
  34. * @param config
  35. */
  36. boolean refreshConnectorConfig(AbstractConnectorConfig config);
  37. /**
  38. * 连接配置是否可用
  39. *
  40. * @param config
  41. * @return
  42. */
  43. boolean isAliveConnectorConfig(AbstractConnectorConfig config);
  44. /**
  45. * 获取连接器表
  46. *
  47. * @param config
  48. * @return
  49. */
  50. List<Table> getTable(ConnectorMapper config);
  51. /**
  52. * 获取表元信息
  53. *
  54. * @param connectorId
  55. * @param tableName
  56. * @return
  57. */
  58. MetaInfo getMetaInfo(String connectorId, String tableName);
  59. /**
  60. * 获取映射关系执行命令
  61. *
  62. * @param mapping
  63. * @param tableGroup
  64. * @return
  65. */
  66. Map<String, String> getCommand(Mapping mapping, TableGroup tableGroup);
  67. /**
  68. * 获取总数
  69. *
  70. * @param connectorId
  71. * @param command
  72. * @return
  73. */
  74. long getCount(String connectorId, Map<String, String> command);
  75. /**
  76. * 解析连接器配置为Connector
  77. *
  78. * @param json
  79. * @return
  80. */
  81. Connector parseConnector(String json);
  82. /**
  83. * 解析配置
  84. *
  85. * @param json
  86. * @param clazz
  87. * @param <T>
  88. * @return
  89. */
  90. <T> T parseObject(String json, Class<T> clazz);
  91. /**
  92. * 获取所有连接器类型
  93. *
  94. * @return
  95. */
  96. List<ConnectorEnum> getConnectorEnumAll();
  97. /**
  98. * 获取所有条件类型
  99. *
  100. * @return
  101. */
  102. List<OperationEnum> getOperationEnumAll();
  103. /**
  104. * 获取过滤条件系统参数
  105. *
  106. * @return
  107. */
  108. List<QuartzFilterEnum> getQuartzFilterEnumAll();
  109. /**
  110. * 获取所有运算符类型
  111. *
  112. * @return
  113. */
  114. List<FilterEnum> getFilterEnumAll();
  115. /**
  116. * 获取所有转换类型
  117. *
  118. * @return
  119. */
  120. List<ConvertEnum> getConvertEnumAll();
  121. /**
  122. * 获取所有同步数据状态类型
  123. *
  124. * @return
  125. */
  126. List<StorageDataStatusEnum> getStorageDataStatusEnumAll();
  127. /**
  128. * 全量同步
  129. *
  130. * @param task
  131. * @param mapping
  132. * @param tableGroup
  133. * @param executorService
  134. */
  135. void execute(Task task, Mapping mapping, TableGroup tableGroup, ExecutorService executorService);
  136. /**
  137. * 增量同步
  138. *
  139. * @param mapping
  140. * @param tableGroup
  141. * @param rowChangedEvent
  142. */
  143. void execute(Mapping mapping, TableGroup tableGroup, RowChangedEvent rowChangedEvent);
  144. /**
  145. * 批执行
  146. *
  147. * @param batchWriter
  148. * @return
  149. */
  150. Result writeBatch(BatchWriter batchWriter);
  151. }