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.krms.impl.repository; 17 18 import org.kuali.rice.krms.api.repository.function.FunctionDefinition; 19 import org.kuali.rice.krms.api.repository.function.FunctionRepositoryService; 20 21 /** 22 * This is the interface for accessing KRMS repository Function related bos 23 * 24 * @author Kuali Rice Team (rice.collab@kuali.org) 25 * 26 */ 27 28 public interface FunctionBoService extends FunctionRepositoryService { 29 30 /** 31 * This will create a {@link FunctionDefinition} exactly like the function passed in. 32 * 33 * @param function The Function to create 34 * @throws IllegalArgumentException if the function is null 35 * @throws IllegalStateException if the function already exists in the system 36 */ 37 public FunctionDefinition createFunction(FunctionDefinition function); 38 39 /** 40 * This will update an existing {@link FunctionDefinition}. 41 * 42 * @param function The Function to update 43 * @throws IllegalArgumentException if the function is null 44 * @throws IllegalStateException if the function does not exist in the system 45 */ 46 public void updateFunction(FunctionDefinition function); 47 48 /** 49 * Retrieves a Function from the repository based on the given function id. 50 * 51 * @param functionId the id of the Function to retrieve 52 * @return a {@link FunctionDefinition} identified by the given functionId. 53 * A null reference is returned if an invalid or non-existent functionId is supplied. 54 */ 55 public FunctionDefinition getFunctionById(String functionId); 56 57 /** 58 * Retrieves a Function from the repository based on the provided function name 59 * and namespace. 60 * 61 * @param name the name of the Function to retrieve. 62 * @param namespace the namespace that the Function is under. 63 * @return a {@link FunctionDefinition} identified by the given name and namespace. 64 * A null reference is returned if an invalid or non-existent function name and 65 * namespace combination is supplied. 66 */ 67 public FunctionDefinition getFunctionByNameAndNamespace(String name, String namespace); 68 69 }