package com.constellio.app.modules.robots.model.actions;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.constellio.app.modules.robots.model.ActionExecutor;
import com.constellio.app.modules.robots.model.wrappers.ActionParameters;
import com.constellio.app.modules.robots.services.RobotsManager;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.Transaction;
import com.constellio.model.entities.records.TransactionRecordsReindexation;
public class RunExtractorsActionExecutor implements ActionExecutor {
public final static String ID = "runExtractorsAction";
private final static Logger LOGGER = LoggerFactory.getLogger(RunExtractorsActionExecutor.class);
public static void registerIn(RobotsManager robotsManager) {
// ParamsSchema is null because this action requires no parameters
// The types list would be null or empty because it applies to everything
robotsManager.registerAction(ID, null, null, new RunExtractorsActionExecutor());
}
@Override
public Transaction execute(String robotId, ActionParameters actionParameters, AppLayerFactory appLayerFactory,
List<Record> records, List<Record> processedRecords, boolean dryRun) {
// Parameters will always be null, not use them
Transaction transaction = new Transaction();
transaction.setSkippingRequiredValuesValidation(true);
transaction.getRecordUpdateOptions().setForcedReindexationOfMetadatas(TransactionRecordsReindexation.ALL());
transaction.addUpdate(records);
return transaction;
}
}