001 /** 002 * Copyright 2005-2013 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 */ 016 package org.kuali.rice.krms.api.repository.proposition; 017 018 019 import org.kuali.rice.core.api.mo.common.Identifiable; 020 import org.kuali.rice.core.api.mo.common.Versioned; 021 022 /** 023 * The contract for {@link PropositionParameter} 024 * @author Kuali Rice Team (rice.collab@kuali.org) 025 */ 026 public interface PropositionParameterContract extends Identifiable, Versioned { 027 /** 028 * Returns the Id for the parent proposition. 029 * 030 * <p> 031 * It is the Id of the parent proposition. 032 * </p> 033 * @return Id for parent parameter. 034 */ 035 public String getPropId(); 036 037 038 /** 039 * Returns the value of the proposition parameter 040 * 041 * <p> 042 * It is the value of the parameter 043 * </p> 044 * @return value of the parameter 045 */ 046 public String getValue(); 047 048 /** 049 * Returns the type of the parameter. 050 * Proposition parameters are one of the following types: 051 * Constant Values: numbers, strings, dates, etc. 052 * Terms: data available in the execution environment or provided by a term resolver 053 * Functions: custom functions that resolve to a value, 054 * or standard operators (equals, greater than, less than, ...) 055 * 056 * <p> 057 * It identified the type of the parameter. 058 * </p> 059 * @return the parameter type code. Valid values are C, T, and F. 060 */ 061 public String getParameterType(); 062 063 /** 064 * Returns the sequence number of the proposition parameter. 065 * Proposition parameters are listed in Reverse Polish Notation. 066 * The sequence number (starting with 1) identifies the position of the 067 * parameter in the list. 068 * 069 * @return the sequence number of the proposition parameter 070 */ 071 public Integer getSequenceNumber(); 072 }