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 }