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.Species;
26 import fr.ifremer.tutti.persistence.entities.referential.Speciess;
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 SpeciesModel extends AbstractTuttiImportExportModel<SpeciesRow> {
39
40 public static SpeciesModel forExport(char separator, boolean addReferenceTaxonId) {
41
42 SpeciesModel exportModel = new SpeciesModel(separator);
43 exportModel.forExport(addReferenceTaxonId);
44 return exportModel;
45
46 }
47
48 public static SpeciesModel forImport(char separator, boolean addReferenceTaxonId) {
49
50 SpeciesModel importModel = new SpeciesModel(separator);
51 importModel.forImport(addReferenceTaxonId);
52 return importModel;
53
54 }
55
56 @Override
57 public SpeciesRow newEmptyInstance() {
58 return new SpeciesRow();
59 }
60
61 protected void forImport(boolean addReferenceTaxonId) {
62
63 newMandatoryColumn(SpeciesRow.PROPERTY_ID, new TemporaryReferentialEntityIdParser(
64 t("tutti.service.referential.import.species.error.idNotNegative")) {
65
66 @Override
67 protected boolean isTemporaryId(String parse) {
68 int id = Integer.parseInt(parse);
69 return Speciess.isTemporaryId(id);
70 }
71 });
72 newMandatoryColumn(SpeciesRow.PROPERTY_NAME);
73 newMandatoryColumn(SpeciesRow.PROPERTY_TO_DELETE, TuttiCsvUtil.BOOLEAN);
74
75 if (addReferenceTaxonId) {
76 newMandatoryColumn(SpeciesRow.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER);
77 }
78
79 }
80
81 protected void forExport(boolean addReferenceTaxonId) {
82
83 newColumnForExport(SpeciesRow.PROPERTY_ID);
84 newColumnForExport(SpeciesRow.PROPERTY_NAME);
85 newColumnForExport(SpeciesRow.PROPERTY_TO_DELETE);
86
87 if (addReferenceTaxonId) {
88 newColumnForExport(SpeciesRow.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER);
89 }
90
91 }
92
93 protected SpeciesModel(char separator) {
94 super(separator);
95 }
96
97 }