Project

General

Profile

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

    
3
import java.util.Date;
4

    
5
import org.apache.commons.lang.math.NumberUtils;
6
import org.springframework.beans.factory.annotation.Autowired;
7

    
8
import com.googlecode.sarasvati.Arc;
9
import com.googlecode.sarasvati.NodeToken;
10

    
11
import eu.dnetlib.enabling.datasources.common.LocalDatasourceManager;
12
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
13
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
14
import eu.dnetlib.miscutils.datetime.DateUtils;
15
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode;
16

    
17
public class ObjectStoreToApiExtraFieldJobNode extends SimpleJobNode {
18

    
19
	private String objId;
20
	private String datasourceId;
21
	private String datasourceInterface;
22
	@Deprecated
23
	private String extraFieldForTotal;
24
	@Deprecated
25
	private String extraFieldForDate;
26
	@Deprecated
27
	private String extraFieldForObjId;
28

    
29
	@Autowired
30
	private UniqueServiceLocator serviceLocator;
31

    
32
	@Autowired
33
	private LocalDatasourceManager<?, ?> dsManager;
34

    
35
	@Override
36
	protected String execute(final NodeToken token) throws Exception {
37
		final String xq = "for $x in collection('/db/DRIVER/ObjectStoreDSResources/ObjectStoreDSResourceType') " + "where $x//RESOURCE_IDENTIFIER/@value='"
38
				+ objId + "' " + "return concat($x//COUNT_STORE, ' @=@ ', $x//LAST_STORAGE_DATE)";
39

    
40
		final String s = serviceLocator.getService(ISLookUpService.class).getResourceProfileByQuery(xq);
41

    
42
		final String[] arr = s.split(" @=@ ");
43

    
44
		final int size = NumberUtils.toInt(arr[0].trim(), 0);
45
		final Date date = (new DateUtils()).parse(arr[1]);
46

    
47
		dsManager.setLastDownloadInfo(datasourceId, datasourceInterface, objId, size, date);
48

    
49
		return Arc.DEFAULT_ARC;
50
	}
51

    
52
	public String getDatasourceId() {
53
		return datasourceId;
54
	}
55

    
56
	public void setDatasourceId(final String datasourceId) {
57
		this.datasourceId = datasourceId;
58
	}
59

    
60
	public String getDatasourceInterface() {
61
		return datasourceInterface;
62
	}
63

    
64
	public void setDatasourceInterface(final String datasourceInterface) {
65
		this.datasourceInterface = datasourceInterface;
66
	}
67

    
68
	public String getExtraFieldForTotal() {
69
		return extraFieldForTotal;
70
	}
71

    
72
	public void setExtraFieldForTotal(final String extraFieldForTotal) {
73
		this.extraFieldForTotal = extraFieldForTotal;
74
	}
75

    
76
	public String getExtraFieldForDate() {
77
		return extraFieldForDate;
78
	}
79

    
80
	public void setExtraFieldForDate(final String extraFieldForDate) {
81
		this.extraFieldForDate = extraFieldForDate;
82
	}
83

    
84
	/**
85
	 * @return the objId
86
	 */
87
	public String getObjId() {
88
		return objId;
89
	}
90

    
91
	/**
92
	 * @param objId
93
	 *            the objId to set
94
	 */
95
	public void setObjId(final String objId) {
96
		this.objId = objId;
97
	}
98

    
99
	/**
100
	 * @return the extraFieldForObjId
101
	 */
102
	public String getExtraFieldForObjId() {
103
		return extraFieldForObjId;
104
	}
105

    
106
	/**
107
	 * @param extraFieldForObjId
108
	 *            the extraFieldForObjId to set
109
	 */
110
	public void setExtraFieldForObjId(final String extraFieldForObjId) {
111
		this.extraFieldForObjId = extraFieldForObjId;
112
	}
113

    
114
}
(2-2/4)