package com.constellio.app.modules.es.connectors.spi;
import java.util.ArrayList;
import java.util.List;
import com.constellio.app.modules.es.services.ESSchemasRecordsServices;
import com.constellio.app.modules.es.services.mapping.ConnectorField;
import com.constellio.model.entities.records.Record;
public abstract class Connector {
protected ESSchemasRecordsServices es;
protected ConnectorLogger logger;
private Record instance;
protected ConnectorEventObserver eventObserver;
public abstract List<ConnectorJob> getJobs();
protected abstract void initialize(Record instance);
public abstract List<String> fetchTokens(String username);
public abstract List<String> getConnectorDocumentTypes();
public abstract void start();
public abstract void stop();
public abstract void afterJobs(List<ConnectorJob> jobs);
public abstract void resume();
public abstract List<String> getReportMetadatas(String reportMode);
public abstract String getMainConnectorDocumentType();
public abstract void onAllDocumentsDeleted();
public Connector initialize(ConnectorLogger logger, Record instance, ConnectorEventObserver eventObserver,
ESSchemasRecordsServices es) {
this.logger = logger;
this.instance = instance;
this.eventObserver = eventObserver;
this.es = es;
initialize(instance);
return this;
}
public ConnectorLogger getLogger() {
return logger;
}
public ConnectorEventObserver getEventObserver() {
return eventObserver;
}
public ESSchemasRecordsServices getEs() {
return es;
}
public void setEs(ESSchemasRecordsServices es) {
this.es = es;
}
public List<ConnectorField> getDefaultConnectorFields() {
return new ArrayList<>();
}
}