Parser.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package org.dbsyncer.parser;
  2. import org.dbsyncer.common.model.Task;
  3. import org.dbsyncer.connector.config.ConnectorConfig;
  4. import org.dbsyncer.connector.config.MetaInfo;
  5. import org.dbsyncer.connector.enums.ConnectorEnum;
  6. import org.dbsyncer.connector.enums.FilterEnum;
  7. import org.dbsyncer.connector.enums.OperationEnum;
  8. import org.dbsyncer.parser.enums.ConvertEnum;
  9. import org.dbsyncer.parser.model.Connector;
  10. import org.dbsyncer.parser.model.DataEvent;
  11. import org.dbsyncer.parser.model.Mapping;
  12. import org.dbsyncer.parser.model.TableGroup;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * @author AE86
  17. * @version 1.0.0
  18. * @date 2019/10/20 21:11
  19. */
  20. public interface Parser {
  21. /**
  22. * 解析连接器配置是否可用
  23. *
  24. * @param config
  25. * @return
  26. */
  27. boolean alive(ConnectorConfig config);
  28. /**
  29. * 获取连接器表
  30. *
  31. * @param config
  32. * @return
  33. */
  34. List<String> getTable(ConnectorConfig config);
  35. /**
  36. * 获取表元信息
  37. *
  38. * @param connectorId
  39. * @param tableName
  40. * @return
  41. */
  42. MetaInfo getMetaInfo(String connectorId, String tableName);
  43. /**
  44. * 获取映射关系执行命令
  45. *
  46. * @param mapping
  47. * @param tableGroup
  48. * @return
  49. */
  50. Map<String, String> getCommand(Mapping mapping, TableGroup tableGroup);
  51. /**
  52. * 获取总数
  53. *
  54. * @param connectorId
  55. * @param command
  56. * @return
  57. */
  58. long getCount(String connectorId, Map<String, String> command);
  59. /**
  60. * 解析连接器配置为Connector
  61. *
  62. * @param json
  63. * @return
  64. */
  65. Connector parseConnector(String json);
  66. /**
  67. * 解析配置
  68. *
  69. * @param json
  70. * @param clazz
  71. * @param <T>
  72. * @return
  73. */
  74. <T> T parseObject(String json, Class<T> clazz);
  75. /**
  76. * 获取所有连接器类型
  77. *
  78. * @return
  79. */
  80. List<ConnectorEnum> getConnectorEnumAll();
  81. /**
  82. * 获取所有条件类型
  83. *
  84. * @return
  85. */
  86. List<OperationEnum> getOperationEnumAll();
  87. /**
  88. * 获取所有运算符类型
  89. *
  90. * @return
  91. */
  92. List<FilterEnum> getFilterEnumAll();
  93. /**
  94. * 获取所有转换类型
  95. *
  96. * @return
  97. */
  98. List<ConvertEnum> getConvertEnumAll();
  99. /**
  100. * 全量同步
  101. *
  102. * @param task
  103. * @param mapping
  104. * @param tableGroup
  105. */
  106. void execute(Task task, Mapping mapping, TableGroup tableGroup);
  107. /**
  108. * 增量同步
  109. *
  110. * @param mapping
  111. * @param tableGroup
  112. * @param dataEvent
  113. */
  114. void execute(Mapping mapping, TableGroup tableGroup, DataEvent dataEvent);
  115. }