View Javadoc

1   /**
2    * Copyright 2005-2011 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.krms.api.repository.agenda;
17  
18  import org.kuali.rice.core.api.mo.common.Identifiable;
19  import org.kuali.rice.core.api.mo.common.Versioned;
20  import org.kuali.rice.krms.api.repository.rule.RuleDefinitionContract;
21  
22  public interface AgendaItemContract extends Identifiable, Versioned {
23  
24  	/**
25  	 * This is the agenda ID for the Agenda associated with this Agenda Item
26  	 *
27  	 * <p>
28  	 * It is the agenda ID for the Agenda object associated with this Agenda Item.
29  	 * </p>
30  	 * @return ID for AgendaItem
31  	 */
32  	public String getAgendaId();
33  
34      /**
35       * This is ID of the Rule associated with this AgendaItem.
36       * <p>
37       * Each AgendaItem has either a Rule or a SubAgenda associated with it, but not both.
38       * <p>
39       * @return ID of the Rule associated with the AgendaItem
40       */
41  	public String getRuleId();
42  
43      /**
44       * This is ID of the SubAgenda associated with this AgendaItem.
45       * <p>
46       * Each AgendaItem has either a Rule or a SubAgenda associated with it, but not both.
47       * <p>
48       * @return ID of the SubAgenda associated with the AgendaItem
49       */
50  	public String getSubAgendaId();
51  
52      /**
53       * This is ID of the next AgendaItem to be executed if the Rule associated
54       * AgendaItem evaluates to true.
55       * @return ID of the next AgendaItem
56       */	
57  	public String getWhenTrueId();
58  	
59      /**
60       * This is ID of the next AgendaItem to be executed if the Rule associated 
61       * AgendaItem evaluates to false.
62       * @return ID of the next AgendaItem
63       */	
64  	public String getWhenFalseId();
65  	
66      /**
67       * This is ID of the next AgendaItem to be executed after following any
68       * defined true or false actions.
69       * @return ID of the next AgendaItem
70       */	
71  	public String getAlwaysId();
72  
73  	/**
74  	 * 
75  	 * This method returns the Rule associated with this AgendaItem.
76  	 * 
77  	 * @return an immutable representation of the Rule
78  	 */
79  	public RuleDefinitionContract getRule();
80  
81  	/**
82  	 * 
83  	 * This method returns the SubAgenda associated with this AgendaItem.
84  	 * 
85  	 * @return an immutable representation of the SubAgenda
86  	 */
87  	public AgendaDefinitionContract getSubAgenda();
88  	
89      /**
90       * This method returns the next AgendaItem to be executed if the 
91       * Rule associated with this AgendaItem evaluates to true.
92       * @return an immutable representation of the next AgendaItem
93       */	
94  	public AgendaItemContract getWhenTrue();
95  	
96      /**
97       * This method returns the next AgendaItem to be executed if the 
98       * Rule associated with this AgendaItem evaluates to false.
99       * @return an immutable representation of the next AgendaItem
100      */	
101 	public AgendaItemContract getWhenFalse();
102 
103 	/**
104      * This is ID of the next AgendaItem to be executed after following any
105      * defined true or false actions.
106      * @return an immutable representation of the next AgendaItem
107      */	
108 	public AgendaItemContract getAlways();
109 
110 }