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

com.github.mygreen.supercsv.exception.SuperCsvBindingException Maven / Gradle / Ivy

Go to download

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

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.exception;

import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.supercsv.exception.SuperCsvException;
import org.supercsv.util.CsvContext;

import com.github.mygreen.supercsv.validation.CsvBindingErrors;

/**
 * CellProcessorとは別に、値を検証した結果、エラーが存在する場合にスローされる例外。
 * 
 * @since 2.0
 * @author T.TSUCHIE
 *
 */
public class SuperCsvBindingException extends SuperCsvException {

    /** serialVersionUID */
    private static final long serialVersionUID = -7961092348053869573L;
    
    private final CsvBindingErrors bingingErrors;
    
    /**
     * CellProcessor内で発生したエラーがある場合
     */
    private final List processingErrors = new ArrayList<>();
    
    public SuperCsvBindingException(final String msg, final CsvContext context, final CsvBindingErrors bingingErrors) {
        super(msg, context);
        this.bingingErrors = bingingErrors;
    }
    
    /**
     * エラー情報を取得する。
     * @return
     */
    public CsvBindingErrors getBindingErrors() {
        return bingingErrors;
    }
    
    /**
     * CellProcessor内で発生したエラー情報を追加する。
     * @param errors
     */
    public void addAllProcessingErrors(final Collection errors) {
        this.processingErrors.addAll(errors);
    }
    
    /**
     * CellProcessor内で発生したエラー情報を取得する。
     * @return
     */
    public List getProcessingErrors() {
        return processingErrors;
    }
    
    @Override
    public void printStackTrace(final PrintStream s) {
        
        super.printStackTrace(s);
        
        int count = 1;
        for(SuperCsvException e : processingErrors) {
            s.printf("[ProcessingError-%d] : ", count);
            e.printStackTrace(s);
            count++;
        }
        
    }
    
    @Override
    public void printStackTrace(final PrintWriter s) {
        
        super.printStackTrace(s);
        
        int count = 1;
        for(SuperCsvException e : processingErrors) {
            s.printf("[ProcessingError-%d] : ", count);
            e.printStackTrace(s);
            count++;
        }
    }
    
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy