001/** 002 * Copyright 2005-2016 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krms.api.repository.function; 017 018import org.kuali.rice.core.api.mo.common.Identifiable; 019import org.kuali.rice.core.api.mo.common.Versioned; 020 021/** 022 * Defines the contract for a function parameter definition. A function 023 * parameter definition helps to define the "signature" of a 024 * {@link FunctionDefinitionContract} by defining the name and type of an 025 * expected parameter to the function. 026 * 027 * @author Kuali Rice Team (rice.collab@kuali.org) 028 * 029 */ 030public interface FunctionParameterDefinitionContract extends Versioned, Identifiable { 031 032 /** 033 * Returns the name of this parameters. All parameters have a name and this 034 * value can never be null or blank. The parameter name must be unique 035 * within a given function definition. 036 * 037 * @return the name of this function parameter definition 038 */ 039 String getName(); 040 041 /** 042 * Returns the description of this parameter. The description is intended 043 * to provide more information about a parameter and it's appropriate 044 * usage. The description is optional and will be null if a 045 * description is not defined. 046 * 047 * @return the description of this function parameter definition, or null 048 * if this parameter has no description 049 */ 050 String getDescription(); 051 052 /** 053 * Returns the type of this function parameter. This can be one of a set 054 * of "built-in" data types or a custom data type represented as a fully 055 * qualified java class name. All parameters must have a valid type so 056 * this method should never return null or blank. 057 * 058 * @return the type of this function parameter definition 059 */ 060 String getParameterType(); 061 062 /** 063 * Returns the ID of the function to which this parameter is associated. 064 * 065 * @return the ID of the corresponding function 066 */ 067 String getFunctionId(); 068 069 /** 070 * This is the sequence number of the function parameter. 071 * The sequence number identifies the position of the 072 * parameter in the function list. 073 * 074 * @return the sequence number of the function parameter 075 */ 076 public Integer getSequenceNumber(); 077}