1 package net.sumaris.importation.util.csv;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.base.Preconditions;
26 import net.sumaris.core.dao.technical.schema.SumarisColumnMetadata;
27 import net.sumaris.core.dao.technical.schema.SumarisTableMetadata;
28
29 public class FileMessageFormatter {
30
31 public static String format(FileReader reader, Integer columnIndex, String message) {
32 Preconditions.checkArgument(columnIndex == null || columnIndex.intValue() >= 0);
33 int lineNumber = reader.getCurrentLine();
34 Preconditions.checkArgument(lineNumber > 0);
35 StringBuilder sb = new StringBuilder();
36 sb.append("[").append(reader.getFileName());
37 if (columnIndex != null) {
38 String[] headers = reader.getHeaders();
39 if (headers != null && columnIndex.intValue() < headers.length) {
40 sb.append(".").append(headers[columnIndex]);
41 }
42 }
43 sb.append(":")
44 .append(lineNumber)
45 .append("] ")
46 .append(message);
47 return sb.toString();
48 }
49
50 public static String format(SumarisTableMetadata table, SumarisColumnMetadata colMeta, int lineNumber, String message) {
51 StringBuilder sb = new StringBuilder();
52 sb.append("[").append(table.getName());
53 if (colMeta != null) {
54 sb.append(".").append(colMeta.getName());
55 }
56 if (lineNumber != -1) {
57 sb.append(" / ").append(lineNumber);
58 }
59 sb.append("] ").append(message);
60 return sb.toString();
61
62 }
63
64 }