Project

General

Profile

1
package eu.dnetlib.msro.workflows.sarasvati.loader;
2

    
3
import java.util.Comparator;
4
import java.util.concurrent.PriorityBlockingQueue;
5

    
6
import org.apache.commons.lang.math.NumberUtils;
7

    
8
import com.googlecode.sarasvati.GraphProcess;
9

    
10
import eu.dnetlib.msro.workflows.util.WorkflowsConstants;
11

    
12
public class ProcessQueue extends PriorityBlockingQueue<GraphProcess> {
13

    
14
	/**
15
	 * 
16
	 */
17
	private static final long serialVersionUID = -8342381671561461487L;
18

    
19
	@Override
20
	public void put(GraphProcess e) {
21
		// TODO Auto-generated method stub
22
		super.put(e);
23
	}
24

    
25
	private static final int INITIAL_SIZE = 20;
26
	
27
	public ProcessQueue() {
28
		super(INITIAL_SIZE, new Comparator<GraphProcess>() {
29
			
30
			@Override
31
			public int compare(GraphProcess p1, GraphProcess p2) {
32
				int n1 = NumberUtils.toInt(p1.getEnv().getAttribute(WorkflowsConstants.SYSTEM_WF_PRIORITY), WorkflowsConstants.DEFAULT_WF_PRIORITY);
33
				int n2 = NumberUtils.toInt(p2.getEnv().getAttribute(WorkflowsConstants.SYSTEM_WF_PRIORITY), WorkflowsConstants.DEFAULT_WF_PRIORITY);
34
				return NumberUtils.compare(n1, n2);
35
			}
36
		});
37
	}
38
	
39
	
40

    
41
}
(5-5/8)