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}