Parser.java 3.6 KB

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