package eu.dnetlib.iis.wf.export.actionmanager.sequencefile; import java.util.List; import org.apache.hadoop.conf.Configuration; import com.google.common.collect.Lists; import eu.dnetlib.actionmanager.actions.AtomicAction; import eu.dnetlib.actionmanager.common.Agent; import eu.dnetlib.iis.referenceextraction.project.schemas.DocumentToProject; import eu.dnetlib.iis.wf.export.actionmanager.module.ActionBuilderFactory; import eu.dnetlib.iis.wf.export.actionmanager.module.ActionBuilderModule; import eu.dnetlib.iis.wf.export.actionmanager.module.AlgorithmName; import eu.dnetlib.iis.wf.export.actionmanager.module.TrustLevelThresholdExceededException; /** * Mock implementation of action builder factory maintaining DocumentToProject records.. * @author mhorst * */ public class MockDocumentProjectActionBuilderFactory implements ActionBuilderFactory<DocumentToProject> { @Override public ActionBuilderModule<DocumentToProject> instantiate(Configuration config, Agent agent, String actionSetId) { return new ActionBuilderModule<DocumentToProject>() { @Override public List<AtomicAction> build(DocumentToProject object) throws TrustLevelThresholdExceededException { AtomicAction action = new AtomicAction(actionSetId, agent) { @Override public String toString() { return toStringRepresentation(object); } }; return Lists.newArrayList(action); } }; } @Override public AlgorithmName getAlgorithName() { return AlgorithmName.document_referencedProjects; } /** * Generates string representation of input object. */ public static String toStringRepresentation(DocumentToProject input) { StringBuilder strBuilder = new StringBuilder(); strBuilder.append(input.getDocumentId()); strBuilder.append("|"); strBuilder.append(input.getProjectId()); strBuilder.append("|"); strBuilder.append(input.getConfidenceLevel()); return strBuilder.toString(); } }