Project

General

Profile

1
package eu.dnetlib.msro.oai.workflows.nodes;
2

    
3
import com.googlecode.sarasvati.NodeToken;
4
import eu.dnetlib.data.information.oai.utils.OAIParameterNames;
5
import eu.dnetlib.enabling.resultset.rmi.ResultSetException;
6
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
7
import eu.dnetlib.miscutils.datetime.DateUtils;
8
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode;
9
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory;
10
import eu.dnetlib.msro.workflows.util.ProgressProvider;
11
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider;
12
import org.apache.commons.logging.Log;
13
import org.apache.commons.logging.LogFactory;
14
import org.springframework.beans.factory.annotation.Required;
15

    
16
public class SyncOAIStoreJobNode extends AbstractOAIJobNode implements ProgressJobNode {
17

    
18
	private static final Log log = LogFactory.getLog(SyncOAIStoreJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM
19

    
20
	private ProcessCountingResultSetFactory processCountingResultSetFactory;
21
	
22
	private ResultsetProgressProvider progressProvider;
23

    
24
	private String eprParam;
25
	private boolean alwaysNewRecord = false;
26
	private boolean skipDuplicates = false;
27
	private String duplicateXPath;
28

    
29
	@Override
30
	void completePrepareJob(final BlackboardJob job, final NodeToken token) throws ResultSetException {
31

    
32
		final String eprS = token.getEnv().getAttribute(getEprParam());
33
		this.progressProvider = processCountingResultSetFactory.createProgressProvider(token.getProcess(), eprS);
34
		job.setAction("SYNC");
35
		job.getParameters().put(OAIParameterNames.OAI_FEED_DATE, DateUtils.now_ISO8601());
36
		job.getParameters().put(OAIParameterNames.OAI_SKIP_DUPLICATES, String.valueOf(skipDuplicates));
37
		if(skipDuplicates) job.getParameters().put(OAIParameterNames.OAI_DUPLICATE_XPATH, duplicateXPath);
38
		job.getParameters().put(OAIParameterNames.OAI_SYNC_EPR, progressProvider.getEpr().toString());
39
		job.getParameters().put(OAIParameterNames.OAI_ALWAYS_NEW_RECORD, String.valueOf(alwaysNewRecord));
40
		log.fatal("OAI Sync Job prepared");
41
	}
42

    
43
	public ProcessCountingResultSetFactory getProcessCountingResultSetFactory() {
44
		return processCountingResultSetFactory;
45
	}
46

    
47
	@Required
48
	public void setProcessCountingResultSetFactory(final ProcessCountingResultSetFactory processCountingResultSetFactory) {
49
		this.processCountingResultSetFactory = processCountingResultSetFactory;
50
	}
51

    
52
	@Override
53
	public ProgressProvider getProgressProvider() {
54
		return this.progressProvider;
55
	}
56

    
57

    
58
	public String getEprParam() {
59
		return eprParam;
60
	}
61

    
62
	public void setEprParam(final String eprParam) {
63
		this.eprParam = eprParam;
64
	}
65

    
66
	public boolean isAlwaysNewRecord() {
67
		return alwaysNewRecord;
68
	}
69

    
70
	public void setAlwaysNewRecord(boolean alwaysNewRecord) {
71
		this.alwaysNewRecord = alwaysNewRecord;
72
	}
73

    
74
	public boolean isSkipDuplicates() {
75
		return skipDuplicates;
76
	}
77

    
78
	public void setSkipDuplicates(final boolean skipDuplicates) {
79
		this.skipDuplicates = skipDuplicates;
80
	}
81

    
82
	public String getDuplicateXPath() {
83
		return duplicateXPath;
84
	}
85

    
86
	public void setDuplicateXPath(final String duplicateXPath) {
87
		this.duplicateXPath = duplicateXPath;
88
	}
89

    
90
}
(10-10/10)