package eu.dnetlib.iis.wf.export.actionmanager.entity;
import static eu.dnetlib.iis.wf.export.actionmanager.ExportWorkflowRuntimeParameters.EXPORT_ENTITY_MDSTORE_ID;
import java.security.InvalidParameterException;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import eu.dnetlib.iis.common.WorkflowRuntimeParameters;
import eu.dnetlib.iis.common.java.PortBindings;
import eu.dnetlib.iis.common.java.ProcessUtils;
import eu.dnetlib.iis.common.schemas.Identifier;
/**
* Document entity exporter.
*
* @author mhorst
*
*/
public class DocumentExporterProcess extends AbstractEntityExporterProcess<Identifier> {
private String mdStoreId;
// ------------------------ CONSTRUCTORS -----------------------------
public DocumentExporterProcess() {
super(Identifier.SCHEMA$, "dmf2actions", "eu/dnetlib/actionmanager/xslt/dmf2insertActions.xslt");
}
// ------------------------ LOGIC -----------------------------
@Override
public void run(PortBindings portBindings, Configuration conf, Map<String, String> parameters) throws Exception {
this.mdStoreId = ProcessUtils.getParameterValue(EXPORT_ENTITY_MDSTORE_ID, conf, parameters);
if (StringUtils.isBlank(mdStoreId) || WorkflowRuntimeParameters.UNDEFINED_NONEMPTY_VALUE.equals(mdStoreId)) {
throw new InvalidParameterException("unable to export document entities to action manager, "
+ "unknown MDStore identifier. Required parameter '" + EXPORT_ENTITY_MDSTORE_ID + "' is missing!");
}
super.run(portBindings, conf, parameters);
}
@Override
protected MDStoreIdWithEntityId convertIdentifier(Identifier element) {
return new MDStoreIdWithEntityId(this.mdStoreId, element.getId().toString());
}
}