1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krms.api.engine;
17
18 import java.util.Collections;
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import org.joda.time.DateTime;
23
24 public final class SelectionCriteria {
25
26 private final Long effectiveExecutionTime;
27 private final Map<String, String> contextQualifiers;
28 private final Map<String, String> agendaQualifiers;
29
30 private SelectionCriteria(DateTime effectiveDate) {
31 if (effectiveDate != null) {
32 this.effectiveExecutionTime = effectiveDate.getMillis();
33 } else {
34 this.effectiveExecutionTime = null;
35 }
36
37 this.contextQualifiers = new HashMap<String, String>();
38 this.agendaQualifiers = new HashMap<String, String>();
39 }
40
41
42
43
44
45
46
47
48
49 public static SelectionCriteria createCriteria(DateTime effectiveExecutionTime, Map<String, String> contextQualifiers, Map<String, String> agendaQualifiers) {
50 SelectionCriteria criteria = new SelectionCriteria(effectiveExecutionTime);
51 if (contextQualifiers != null) {
52 criteria.contextQualifiers.putAll(contextQualifiers);
53 }
54 if (agendaQualifiers != null) {
55 criteria.agendaQualifiers.putAll(agendaQualifiers);
56 }
57 return criteria;
58 }
59
60
61
62
63
64
65
66 public Long getEffectiveExecutionTime() {
67 return effectiveExecutionTime;
68 }
69
70
71
72
73 public Map<String, String> getContextQualifiers() {
74 return Collections.unmodifiableMap(contextQualifiers);
75 }
76
77
78
79
80 public Map<String, String> getAgendaQualifiers() {
81 return Collections.unmodifiableMap(agendaQualifiers);
82 }
83
84 }