1 package org.kuali.rice.kew.api.rule;
2
3 import org.joda.time.DateTime;
4
5 import java.util.List;
6 import java.util.Map;
7
8 public interface RuleContract {
9 /**
10 * Unique Id for Template of Rule.
11 *
12 * <p>
13 * This is the unique Id of the rule template of the rule
14 * </p>
15 *
16 * @return ruleTemplateId
17 */
18 String getRuleTemplateId();
19
20 /**
21 * The active indicator for the rule.
22 *
23 * @return true if active false if not.
24 */
25 boolean isActive();
26
27 /**
28 * The description of the rule.
29 *
30 * @return description
31 */
32 String getDescription();
33
34 /**
35 * The documentTypeName of the rule.
36 *
37 * @return documentTypeName
38 */
39 String getDocTypeName();
40
41 /**
42 * The ending date of the rule.
43 *
44 * <p>This is the date from which the rule stops being be used</p>
45 *
46 * @return fromDate
47 */
48 DateTime getFromDate();
49
50 /**
51 * The ending date of the rule.
52 *
53 * <p>This is the date from which the rule starts to be used</p>
54 *
55 * @return toDate
56 */
57 DateTime getToDate();
58
59 /**
60 * Shows if rule will force its action.
61 *
62 * @return boolean value representing if action is forced
63 */
64 boolean isForceAction();
65
66 /**
67 * List of rule responsibilities associated with the Rule
68 *
69 * @return ruleResponsibilities
70 */
71 List<? extends RuleResponsibilityContract> getRuleResponsibilities();
72
73 /**
74 * rule Extensions are a key, value representation provided in a Map that extend a normal Rule
75 *
76 * @return ruleExtensions
77 */
78 Map<String, String> getRuleExtensions();
79
80 /**
81 * Template Name of the Rule.
82 *
83 * <p>
84 * This is the name of the rule template for the rule
85 * </p>
86 *
87 * @return ruleTemplateName
88 */
89 String getRuleTemplateName();
90 }