1 package org.kuali.ole.sys.batch; 2 3 import java.util.List; 4 5 /** 6 * Contract of methods for the configuration element which specifies how to parse a flat file 7 */ 8 public interface FlatFileSpecification { 9 /** 10 * @return a List of the specifications for all objects which will be parsed into during the course of 11 * this flat file parse 12 */ 13 public List<FlatFileObjectSpecification> getObjectSpecifications(); 14 15 /** 16 * Retrieves the FlatFilePrefixObjectSpecification specifically associated with a given class 17 * @param businessObjectClass the class of a business object which will be parsed into 18 * @return the corresponding FlatFilePrefixObjectSpecification configuration object 19 */ 20 public FlatFileObjectSpecification getObjectSpecification(Class<?> businessObjectClass); 21 22 /** 23 * Determines the Class of the business object that the given line should be parsed into 24 * @param line the current line of the flat file parser being parsed 25 * @return the Class of the business object that the given line will be parsed into 26 */ 27 public Class<?> determineClassForLine(String line); 28 29 /** 30 * Parses the current line of the flat file into a business object 31 * @param parseSpecification the specification explaining how to parse the line into the business object 32 * @param lineToParse the current line being parsed 33 * @param parseIntoObject the target object to parse into 34 * @param lineNumber the current line number 35 */ 36 public void parseLineIntoObject( 37 FlatFileObjectSpecification parseSpecification, String lineToParse, 38 Object parseIntoObject, int lineNumber); 39 }