01: package org.eclipse.ui.examples.jobs;
02:
03: import org.eclipse.core.resources.IResource;
04: import org.eclipse.core.runtime.jobs.ISchedulingRule;
05:
06: /**
07: * TestJobRule is a scheduling rules that makes all jobs sequential.
08: *
09: */
10: public class TestJobRule implements ISchedulingRule {
11: private int jobOrder;
12:
13: public TestJobRule(int order) {
14: jobOrder = order;
15: }
16:
17: /* (non-Javadoc)
18: * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
19: */
20: public boolean contains(ISchedulingRule rule) {
21: if (rule instanceof IResource || rule instanceof TestJobRule)
22: return true;
23: return false;
24: }
25:
26: /* (non-Javadoc)
27: * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
28: */
29: public boolean isConflicting(ISchedulingRule rule) {
30: if (!(rule instanceof TestJobRule))
31: return false;
32: return ((TestJobRule) rule).getJobOrder() >= jobOrder;
33: }
34:
35: /**
36: * Return the order of this rule.
37: * @return
38: */
39: public int getJobOrder() {
40: return jobOrder;
41: }
42:
43: }
|