View Javadoc

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