01: /*
02: * Copyright 2005-2006 The Kuali Foundation.
03: *
04: *
05: * Licensed under the Educational Community License, Version 1.0 (the "License");
06: * you may not use this file except in compliance with the License.
07: * You may obtain a copy of the License at
08: *
09: * http://www.opensource.org/licenses/ecl1.php
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package edu.iu.uis.eden.engine.node;
18:
19: import java.util.List;
20:
21: /**
22: * A service providing data access for {@link Branch} instances.
23: *
24: * @author ewestfal
25: */
26: public interface BranchService {
27: public void save(Branch branch);
28:
29: public void deleteBranchStates(List statesToBeDeleted);
30:
31: /**
32: * Responsible for inspecting the branch hierarchy/scope and returning a value
33: * for the variable name if it exists somewere in scope.
34: * @param branch the lowermost scope to start resolution
35: * @return a value for the key if it exists somewere in scope
36: */
37: public String getScopedVariableValue(Branch branch, String name);
38:
39: /**
40: * Responsible for setting a value in the branch hierarchy/scope. If the variable name
41: * exists in a scope, it will be updated as opposed to created in a lower scope.
42: * @param branch the lowermost scope to start resolution
43: * @param value the value to set for the variable
44: * @return the replaced value of the variable, if the variable was already defined, or null otherwise
45: */
46: public String setScopedVariableValue(Branch branch, String name,
47: String value);
48: }
|