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