1 /** 2 * Copyright 2011 The Kuali Foundation Licensed under the 3 * Educational Community License, Version 2.0 (the "License"); you may 4 * not use this file except in compliance with the License. You may 5 * obtain a copy of the License at 6 * 7 * http://www.osedu.org/licenses/ECL-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, 10 * software distributed under the License is distributed on an "AS IS" 11 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 package org.kuali.student.kim.identity.mock; 16 17 import java.util.List; 18 import org.kuali.rice.core.api.uif.DataType; 19 20 /** 21 * Provides values to compare 22 * 23 * @author nwright 24 */ 25 public interface DataProviderInfc<I, O> { 26 27 /** 28 * Gets the list of values to be compared 29 * 30 * @param obj data object 31 * @param fieldKey path to field on data object 32 * @return list of values for the specified field, if field occurs only once on object the list is of size one 33 * @throws IllegalArgumentException if field key is invalid or not supported 34 */ 35 public List<Object> getValues(I obj, String fieldKey) 36 throws IllegalArgumentException; 37 38 /** 39 * Get the data type of the field 40 * 41 * @param fieldKey 42 * @return DataType of the field key, null if fieldKey is not valid or not supported 43 * @throws IllegalArgumentException if field key is invalid or not supported 44 */ 45 public DataType getDataType(String fieldKey) 46 throws IllegalArgumentException; 47 48 /** 49 * Checks if the field key is supported 50 * @param fieldKey 51 * @return true if it is supported, else false 52 */ 53 public boolean supportsField(String fieldKey); 54 55 /** 56 * Parses the supplied value to which the data field is to be compared 57 * @param fieldKey 58 * @param value 59 * @return the value parsed to match the data type so it can be compaerd 60 * @throws IllegalArgumentException if field key is invalid or not supported* 61 */ 62 public Object parseValue(String fieldKey, String value) 63 throws IllegalArgumentException; 64 }