1 package fr.ifremer.tutti.service.referential.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 fr.ifremer.tutti.persistence.entities.referential.Person;
26 import fr.ifremer.tutti.persistence.entities.referential.Persons;
27 import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel;
28 import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
29
30 import static org.nuiton.i18n.I18n.t;
31
32
33
34
35
36
37
38 public class PersonModel extends AbstractTuttiImportExportModel<PersonRow> {
39
40 public static PersonModel forExport(char separator) {
41
42 PersonModel exportModel = new PersonModel(separator);
43 exportModel.forExport();
44 return exportModel;
45
46 }
47
48 public static PersonModel forImport(char separator) {
49
50 PersonModel importModel = new PersonModel(separator);
51 importModel.forImport();
52 return importModel;
53
54 }
55
56 @Override
57 public PersonRow newEmptyInstance() {
58 return new PersonRow();
59 }
60
61 protected PersonModel(char separator) {
62 super(separator);
63 }
64
65 protected void forImport() {
66
67 newMandatoryColumn(PersonRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(
68 t("tutti.service.referential.import.person.error.idNotNegative")){
69
70 @Override
71 protected boolean isTemporaryId(String parse) {
72 int id = Integer.parseInt(parse);
73 return Persons.isTemporaryId(id);
74 }
75 });
76 newMandatoryColumn(PersonRow.PROPERTY_FIRST_NAME);
77 newMandatoryColumn(PersonRow.PROPERTY_LAST_NAME);
78 newMandatoryColumn(PersonRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN);
79
80 }
81
82 protected void forExport() {
83
84 newColumnForExport(PersonRow.PROPERTY_ID);
85 newColumnForExport(PersonRow.PROPERTY_FIRST_NAME);
86 newColumnForExport(PersonRow.PROPERTY_LAST_NAME);
87 newColumnForExport(PersonRow.PROPERTY_TO_DELETE);
88
89 }
90
91 }