Project

General

Profile

1
package eu.dnetlib.msro.workflows.util;
2

    
3
import java.text.SimpleDateFormat;
4
import java.util.Date;
5

    
6
import eu.dnetlib.msro.workflows.procs.WorkflowProcess;
7
import org.apache.commons.lang.math.NumberUtils;
8
import org.apache.commons.logging.Log;
9
import org.apache.commons.logging.LogFactory;
10

    
11
public class ProcessUtils {
12

    
13
	private static final Log log = LogFactory.getLog(ProcessUtils.class);
14
	private static String oldGeneratedId = "";
15

    
16
	public static String calculateName(final WorkflowProcess process) {
17
		return process.getName();
18
	}
19

    
20
	public static String calculateFamily(final WorkflowProcess process) {
21
		return process.getEnv().getAttribute(WorkflowsConstants.SYSTEM_WF_PROFILE_FAMILY, String.class);
22
	}
23

    
24
	public static String calculateWfId(final WorkflowProcess process) {
25
		return process.getEnv().getAttribute(WorkflowsConstants.SYSTEM_WF_PROFILE_ID, String.class);
26
	}
27

    
28
	public static String calculateStatus(final WorkflowProcess process) {
29

    
30
		switch (process.getStatus()) {
31
		case COMPLETED:
32
			return "SUCCESS";
33
		case FAILED:
34
			return "FAILURE";
35
		default:
36
			return process.getStatus().toString().toUpperCase();
37
		}
38
	}
39

    
40
	public static long calculateLastActivityDate(final WorkflowProcess process) {
41
		return process.getLastActivityDate();
42
	}
43

    
44
	public static String calculateRepo(final WorkflowProcess process) {
45
		if (process.getEnv().hasAttribute(WorkflowsConstants.DATASOURCE_NAME)) {
46
			return process.getEnv().getAttribute(WorkflowsConstants.DATASOURCE_NAME, String.class);
47
		} else {
48
			return "";
49
		}
50
	}
51

    
52
	public static synchronized String generateProcessId() {
53
		String id = "";
54
		do {
55
			id = "wf_" + (new SimpleDateFormat("yyyyMMdd_HHmmss_S")).format(new Date());
56
			log.info("Generated processID " + id);
57
		} while (id.equals(oldGeneratedId));
58

    
59
		oldGeneratedId = id;
60

    
61
		return id;
62
	}
63

    
64
	public static long calculateStartDate(final WorkflowProcess process) {
65
		return NumberUtils.toLong(process.getEnv().getAttribute(WorkflowsConstants.SYSTEM_START_DATE, String.class), 0);
66
	}
67

    
68
	public static long calculateEndDate(final WorkflowProcess process) {
69
		return NumberUtils.toLong(process.getEnv().getAttribute(WorkflowsConstants.SYSTEM_END_DATE, String.class), 0);
70
	}
71

    
72
}
(2-2/6)