1 package com.github.mygreen.supercsv.exception;
2
3 import java.io.PrintStream;
4 import java.io.PrintWriter;
5 import java.util.ArrayList;
6 import java.util.Collection;
7 import java.util.List;
8
9 import org.supercsv.exception.SuperCsvException;
10 import org.supercsv.util.CsvContext;
11
12 import com.github.mygreen.supercsv.validation.CsvBindingErrors;
13
14
15
16
17
18
19
20
21 public class SuperCsvBindingException extends SuperCsvException {
22
23
24 private static final long serialVersionUID = -7961092348053869573L;
25
26 private final CsvBindingErrors bingingErrors;
27
28
29
30
31 private final List<SuperCsvException> processingErrors = new ArrayList<>();
32
33 public SuperCsvBindingException(final String msg, final CsvContext context, final CsvBindingErrors bingingErrors) {
34 super(msg, context);
35 this.bingingErrors = bingingErrors;
36 }
37
38
39
40
41
42 public CsvBindingErrors getBindingErrors() {
43 return bingingErrors;
44 }
45
46
47
48
49
50 public void addAllProcessingErrors(final Collection<SuperCsvException> errors) {
51 this.processingErrors.addAll(errors);
52 }
53
54
55
56
57
58 public List<SuperCsvException> getProcessingErrors() {
59 return processingErrors;
60 }
61
62 @Override
63 public void printStackTrace(final PrintStream s) {
64
65 super.printStackTrace(s);
66
67 int count = 1;
68 for(SuperCsvException e : processingErrors) {
69 s.printf("[ProcessingError-%d] : ", count);
70 e.printStackTrace(s);
71 count++;
72 }
73
74 }
75
76 @Override
77 public void printStackTrace(final PrintWriter s) {
78
79 super.printStackTrace(s);
80
81 int count = 1;
82 for(SuperCsvException e : processingErrors) {
83 s.printf("[ProcessingError-%d] : ", count);
84 e.printStackTrace(s);
85 count++;
86 }
87 }
88
89
90 }