123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- package org.dbsyncer.manager;
- import org.dbsyncer.connector.config.MetaInfo;
- import org.dbsyncer.connector.enums.FilterEnum;
- import org.dbsyncer.connector.enums.OperationEnum;
- import org.dbsyncer.manager.template.*;
- import org.dbsyncer.manager.template.impl.ConfigOperationTemplate;
- import org.dbsyncer.manager.template.impl.ConfigPreLoadTemplate;
- import org.dbsyncer.parser.Parser;
- import org.dbsyncer.parser.enums.ConvertEnum;
- import org.dbsyncer.parser.model.ConfigModel;
- import org.dbsyncer.parser.model.Connector;
- import org.dbsyncer.parser.model.Mapping;
- import org.dbsyncer.parser.model.TableGroup;
- import org.dbsyncer.plugin.PluginFactory;
- import org.dbsyncer.plugin.config.Plugin;
- import org.dbsyncer.storage.constant.ConfigConstant;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationListener;
- import org.springframework.context.event.ContextRefreshedEvent;
- import org.springframework.stereotype.Component;
- import java.util.List;
- /**
- * @author AE86
- * @version 1.0.0
- * @date 2019/9/16 23:59
- */
- @Component
- public class ManagerFactory implements Manager, ApplicationListener<ContextRefreshedEvent> {
- private final Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private Parser parser;
- @Autowired
- private PluginFactory pluginFactory;
- @Autowired
- private ConfigPreLoadTemplate preLoadTemplate;
- @Autowired
- private ConfigOperationTemplate operationTemplate;
- @Autowired
- private GroupStrategy defaultGroupStrategy;
- @Autowired
- private GroupStrategy tableGroupStrategy;
- @Override
- public boolean alive(String json) {
- return parser.alive(json);
- }
- @Override
- public MetaInfo getMetaInfo(String connectorId, String tableName) {
- return parser.getMetaInfo(connectorId, tableName);
- }
- @Override
- public String addConnector(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseConnector(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.add();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public String editConnector(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseConnector(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.edit();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public void removeConnector(String connectorId) {
- operationTemplate.remove(new RemoveTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- @Override
- public String getId() {
- return connectorId;
- }
- });
- }
- @Override
- public Connector getConnector(String connectorId) {
- return operationTemplate.queryObject(Connector.class, connectorId);
- }
- @Override
- public List<Connector> getConnectorAll() {
- return operationTemplate.queryAll(new QueryTemplate<Connector>() {
- @Override
- public ConfigModel getConfigModel() {
- return new ConfigModel().setType(ConfigConstant.CONNECTOR);
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public String addMapping(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseMapping(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.add();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public String editMapping(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseMapping(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.edit();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public void removeMapping(String mappingId) {
- operationTemplate.remove(new RemoveTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- @Override
- public String getId() {
- return mappingId;
- }
- });
- }
- @Override
- public Mapping getMapping(String mappingId) {
- return operationTemplate.queryObject(Mapping.class, mappingId);
- }
- @Override
- public List<Mapping> getMappingAll() {
- return operationTemplate.queryAll(new QueryTemplate<Mapping>() {
- @Override
- public ConfigModel getConfigModel() {
- return new ConfigModel().setType(ConfigConstant.MAPPING);
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- });
- }
- @Override
- public String addTableGroup(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseTableGroup(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.add();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return tableGroupStrategy;
- }
- });
- }
- @Override
- public String editTableGroup(String json) {
- return operationTemplate.execute(new OperationTemplate() {
- @Override
- public ConfigModel parseConfigModel() {
- return parser.parseTableGroup(json);
- }
- @Override
- public void handleEvent(ConfigOperationTemplate.Call call) {
- call.edit();
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return tableGroupStrategy;
- }
- });
- }
- @Override
- public void removeTableGroup(String tableGroupId) {
- operationTemplate.remove(new RemoveTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return tableGroupStrategy;
- }
- @Override
- public String getId() {
- return tableGroupId;
- }
- });
- }
- @Override
- public TableGroup getTableGroup(String tableGroupId) {
- return operationTemplate.queryObject(TableGroup.class, tableGroupId);
- }
- @Override
- public List<TableGroup> getTableGroupAll(String mappingId) {
- return operationTemplate.queryAll(new QueryTemplate<TableGroup>() {
- @Override
- public ConfigModel getConfigModel() {
- TableGroup model = new TableGroup();
- model.setType(ConfigConstant.TABLE_GROUP);
- model.setMappingId(mappingId);
- return model;
- }
- @Override
- public GroupStrategy getGroupStrategy() {
- return tableGroupStrategy;
- }
- });
- }
- @Override
- public List<OperationEnum> getOperationEnumAll() {
- return parser.getOperationEnumAll();
- }
- @Override
- public List<FilterEnum> getFilterEnumAll() {
- return parser.getFilterEnumAll();
- }
- @Override
- public List<ConvertEnum> getConvertEnumAll() {
- return parser.getConvertEnumAll();
- }
- @Override
- public List<Plugin> getPluginAll() {
- return pluginFactory.getPluginAll();
- }
- @Override
- public void start(String mappingId) {
- }
- @Override
- public void stop(String mappingId) {
- }
- @Override
- public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
- // Load connectors
- preLoadTemplate.execute(new PreLoadTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- @Override
- public String filterType() {
- return ConfigConstant.CONNECTOR;
- }
- @Override
- public ConfigModel parseModel(String json) {
- return parser.parseConnector(json, false);
- }
- });
- // Load mappings
- preLoadTemplate.execute(new PreLoadTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return defaultGroupStrategy;
- }
- @Override
- public String filterType() {
- return ConfigConstant.MAPPING;
- }
- @Override
- public ConfigModel parseModel(String json) {
- return parser.parseMapping(json, false);
- }
- });
- // Load tableGroups
- preLoadTemplate.execute(new PreLoadTemplate() {
- @Override
- public GroupStrategy getGroupStrategy() {
- return tableGroupStrategy;
- }
- @Override
- public String filterType() {
- return ConfigConstant.TABLE_GROUP;
- }
- @Override
- public ConfigModel parseModel(String json) {
- return parser.parseTableGroup(json, false);
- }
- });
- }
- }
|