View Javadoc

1   /*
2    * Copyright 2006-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  
17  package org.kuali.rice.krms.impl.repository;
18  
19  import java.util.List;
20  
21  
22  import org.kuali.rice.krms.api.repository.proposition.PropositionDefinition;
23  import org.kuali.rice.krms.api.repository.proposition.PropositionParameter;
24  
25  public interface PropositionBoService {
26  
27      /**
28       * This will create a {@link PropositionDefinition} exactly like the parameter passed in.
29       *
30       * @param prop the proposition to create
31       * @throws IllegalArgumentException if the proposition is null
32       * @throws IllegalStateException if the proposition already exists in the system
33       */
34      PropositionDefinition createProposition(PropositionDefinition prop);
35  
36      /**
37       * This will update an existing {@link PropositionDefinition}.
38       *
39       * @param prop the proposition to update
40       * @throws IllegalArgumentException if the proposition is null
41       * @throws IllegalStateException if the proposition does not exist in the system
42       */
43      void updateProposition(PropositionDefinition prop);
44  
45      /**
46       * Lookup the proposition based on the given proposition id.
47       *
48       * @param propId the given proposition id
49       * @return a proposition associated with the given proposition id.  A null reference is returned if an invalid or
50       *         non-existent id is supplied.
51       */
52      PropositionDefinition getPropositionById(String propId);
53  
54  
55  
56      /**
57       * This will create a {@link PropositionParameter} exactly like the parameter passed in.
58       *
59       * @param parameter the proposition parameter to create
60       * @throws IllegalArgumentException if the proposition parameter is null
61       * @throws IllegalStateException if the proposition parameter is already existing in the system
62       */
63      void createParameter(PropositionParameter parameter);
64  
65      /**
66       * This will update a {@link PropositionParameter}.
67       *
68       *
69       * @param parameter the proposition parameter to update
70       * @throws IllegalArgumentException if the proposition parameter is null
71       * @throws IllegalStateException if the proposition parameter does not exist in the system
72       */
73      void updateParameter(PropositionParameter parameter);
74  
75      /**
76       * Lookup the proposition parameters based on the given proposition id.
77       *
78       * @param id the given proposition id
79       * @return a list of PropositionParameters associated with the given proposition id.  A null reference is returned if an invalid or
80       *         non-existant id is supplied.
81       */
82      List<PropositionParameter> getParameters(String propId);
83  
84      /**
85       * Lookup the proposition parameter based on the id.
86       *
87       * @param id the given proposition id
88       * @return an immutable PropositionParameters associated with the given id.  A null reference is returned if an invalid or
89       *         non-existant id is supplied.
90       */
91      PropositionParameter getParameterById(String id);
92  
93      /**
94       * Lookup the proposition parameter based on the proposition id and sequence number.
95       *
96       * @param id the given proposition id
97       * @return an immutable PropositionParameters associated with the given proposition id and sequence number.  A null reference is returned if an invalid or
98       *         non-existant.
99       */
100     PropositionParameter getParameterByPropIdAndSequenceNumber(String propId, Integer sequenceNumber);
101 
102 
103 }