package com.constellio.app.modules.es.connectors; import static com.constellio.model.services.search.query.logical.LogicalSearchQueryOperators.fromAllSchemasIn; import static com.constellio.model.services.search.query.logical.LogicalSearchQueryOperators.where; import java.util.List; import com.constellio.app.modules.es.connectors.spi.Connector; import com.constellio.app.modules.es.connectors.spi.ConnectorJob; import com.constellio.app.modules.es.model.connectors.ConnectorDocument; import com.constellio.model.entities.schemas.Schemas; import com.constellio.model.services.search.query.logical.LogicalSearchQuery; import com.constellio.model.services.search.query.logical.condition.LogicalSearchCondition; public class ConnectorDeleterJob extends ConnectorJob { final List<String> recordsToDelete; public ConnectorDeleterJob(Connector connector, List<String> recordsToDelete) { super(connector, "commonDeleterJob"); this.recordsToDelete = recordsToDelete; } @Override public void execute(Connector connector) { LogicalSearchCondition condition = fromAllSchemasIn( connector.getEs().getCollection()).where(Schemas.IDENTIFIER).isIn(recordsToDelete); List<ConnectorDocument<?>> documents = connector.getEs().searchConnectorDocuments(new LogicalSearchQuery(condition)); for (ConnectorDocument<?> document : documents) { connector.getEventObserver().deleteEvents(document); } } }