001package au.com.bytecode.opencsv.bean; 002 003 004/** 005 Copyright 2007 Kyle Miller. 006 007 Licensed under the Apache License, Version 2.0 (the "License"); 008 you may not use this file except in compliance with the License. 009 You may obtain a copy of the License at 010 011 http://www.apache.org/licenses/LICENSE-2.0 012 013 Unless required by applicable law or agreed to in writing, software 014 distributed under the License is distributed on an "AS IS" BASIS, 015 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 See the License for the specific language governing permissions and 017 limitations under the License. 018 */ 019 020import java.beans.IntrospectionException; 021import java.beans.PropertyDescriptor; 022import java.io.IOException; 023 024import au.com.bytecode.opencsv.CSVReader; 025 026public interface MappingStrategy { 027 028 /** 029 * Implementation will have to return a property descriptor from a bean based on the current column. 030 */ 031 public abstract PropertyDescriptor findDescriptor(int col) throws IntrospectionException; 032 033 public abstract Object createBean() throws InstantiationException, IllegalAccessException; 034 035 /** 036 * Implemention of this method can grab the header line before parsing begins to use to map columns 037 * to bean properties. 038 */ 039 public void captureHeader(CSVReader reader) throws IOException; 040 041}