1 /**
2 * Copyright 2005-2013 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.rice.krad.rules.rule.event;
17
18 import org.kuali.rice.krad.document.Document;
19 import org.kuali.rice.krad.rules.rule.BusinessRule;
20
21 import java.util.List;
22
23 /**
24 * Parent interface of all document-related events, which are used to drive the business rules evaluation process.
25 *
26 *
27 */
28 public interface KualiDocumentEvent {
29 /**
30 * @return Document The document associated with this event
31 */
32 public Document getDocument();
33
34 /**
35 * The name of the event.
36 *
37 * @return String
38 */
39 public String getName();
40
41 /**
42 * A description of the event.
43 *
44 * @return String
45 */
46 public String getDescription();
47
48
49 /**
50 * @return errorPathPrefix for this event
51 */
52 public String getErrorPathPrefix();
53
54 /**
55 * Returns the interface that classes must implement to receive this event.
56 *
57 * @return
58 */
59 public Class<? extends BusinessRule> getRuleInterfaceClass();
60
61 /**
62 * Validates the event has all the necessary properties.
63 */
64 public void validate();
65
66 /**
67 * Invokes the event handling method on the rule object.
68 *
69 * @param rule
70 * @return
71 */
72 public boolean invokeRuleMethod(BusinessRule rule);
73
74 /**
75 * This will return a list of events that are spawned from this event.
76 *
77 * @return
78 */
79 public List<KualiDocumentEvent> generateEvents();
80 }