All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.supercsv.ext.builder.CsvBeanMapping Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package org.supercsv.ext.builder;

import java.util.ArrayList;
import java.util.List;

import org.supercsv.cellprocessor.ift.CellProcessor;


/**
 * 解析したCSVのBeanのマッピング情報。
 * 
 * @author T.TSUCHIE
 *
 */
public class CsvBeanMapping {
    
    private final Class type;
    
    private boolean header;
    
    private List columns;
    
    /**
     * CSVのマッピング情報を作成するコンストラクタ。
     * @param type クラスタイプ。
     */
    public CsvBeanMapping(final Class type) {
        this.type = type;
    }
    
    /**
     * カラムのヘッダーの一覧を取得する。
     * @return ヘッダーの一覧。
     */
    public String[] getHeader() {
        
        List list = new ArrayList<>();
        for(CsvColumnMapping column : columns) {
            list.add(column.getLabel());
        }
        return list.toArray(new String[0]);
    }
    
    /**
     * カラム名の一覧を取得する。
     * @return カラム名の一覧。
     */
    public String[] getNameMapping() {
        
        List list = new ArrayList();
        for(CsvColumnMapping column : columns) {
            list.add(column.getColumnName());
        }
        return list.toArray(new String[0]);
    }
    
    /**
     * 読み込み用の{@link CellProcessor} を取得する。
     * @return カラムの位置順に整列されている{@link CellProcessor}。
     */
    public CellProcessor[] getInputCellProcessor() {
        
        List list = new ArrayList();
        for(CsvColumnMapping column : columns) {
            list.add(column.getInputCellProcessor());
        }
        return list.toArray(new CellProcessor[0]);
    }
    
    /**
     * 書き込み用の{@link CellProcessor} を取得する。
     * @return カラムの位置順に整列されている{@link CellProcessor}。
     */
    public CellProcessor[] getOutputCellProcessor() {
        
        List list = new ArrayList();
        for(CsvColumnMapping column : columns) {
            list.add(column.getOutputCellProcessor());
        }
        return list.toArray(new CellProcessor[0]);
    }
    
    /**
     * カラム情報を取得する。
     * @return カラム情報
     */
    public List getColumns() {
        return columns;
    }
    
    /**
     * カラム情報を設定する。
     * @param columns カラム情報。カラムの位置順に整列されている必要があります。
     */
    public void setColumns(final List columns) {
        this.columns = columns;
    }
    
    /**
     * クラス情報を取得する。
     * @return クラス情報
     */
    public Class getType() {
        return type;
    }
    
    public boolean isHeader() {
        return header;
    }
    
    public void setHeader(final boolean header) {
        this.header = header;
    }
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy