1 package fr.ifremer.tutti.service.export.sumatra;
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.data.FishingOperation;
26 import fr.ifremer.tutti.service.csv.TuttiCsvUtil;
27 import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel;
28 import fr.ifremer.tutti.service.export.ExportBatchEntry;
29
30 import static org.nuiton.i18n.I18n.t;
31
32
33
34
35
36 public class CatchRowModel extends AbstractTuttiImportExportModel<CatchRow> {
37
38 public CatchRowModel(char separator) {
39 super(separator);
40
41 newColumnForExport(t("tutti.service.exportSumatra.header.year"), CatchRow.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.YEAR);
42 newColumnForExport(t("tutti.service.exportSumatra.header.station"), CatchRow.PROPERTY_STATION_NUMBER);
43 newColumnForExport(t("tutti.service.exportSumatra.header.multirigAggregation"), CatchRow.PROPERTY_MULTIRIG_AGGREGATION);
44 newColumnForExport(t("tutti.service.exportSumatra.header.genuisSpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_FORMATTER);
45 newColumnForExport(t("tutti.service.exportSumatra.header.surveySpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER);
46 newColumnForExport(t("tutti.service.exportSumatra.header.sign"), CatchRow.PROPERTY_SIGN);
47 newColumnForExport(t("tutti.service.exportSumatra.header.sortedWeight"), CatchRow.PROPERTY_SORTED_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
48 newColumnForExport(t("tutti.service.exportSumatra.header.totalWeight"), CatchRow.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
49 newColumnForExport(t("tutti.service.exportSumatra.header.averageWeight"), CatchRow.PROPERTY_AVERAGE_WEIGHT, TuttiCsvUtil.FLOAT);
50 newColumnForExport(t("tutti.service.exportSumatra.header.averageSize"), CatchRow.PROPERTY_AVERAGE_SIZE, TuttiCsvUtil.FLOAT);
51 newColumnForExport(t("tutti.service.exportSumatra.header.number"), CatchRow.PROPERTY_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
52 newColumnForExport(t("tutti.service.exportSumatra.header.moule"), CatchRow.PROPERTY_MOULE, TuttiCsvUtil.FLOAT);
53 newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT);
54 newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT);
55 newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT);
56 newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT);
57 newColumnForExport(t("tutti.service.exportSumatra.header.startDate"), CatchRow.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
58 newColumnForExport(t("tutti.service.exportSumatra.header.endDate"), CatchRow.PROPERTY_GEAR_SHOOTING_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND);
59 }
60
61 @Override
62 public CatchRow newEmptyInstance() {
63 return new CatchRow();
64 }
65
66 public CatchRow newRow(FishingOperation operation, ExportBatchEntry entry) {
67 CatchRow row = newEmptyInstance();
68 row.setFishingOperation(operation);
69 row.setSpecies(entry.getBatch().getSpecies());
70 row.setSortedWeight(entry.getSortedWeight());
71 float totalWeight = entry.getTotalWeight();
72 int number = entry.getTotalNumber();
73
74 row.setNumber(number);
75 row.setTotalWeight(totalWeight);
76
77
78 row.setAverageSize(entry.getAverageFrequency());
79
80
81 row.setAverageWeight(number == 0 ? null : totalWeight / (float) number);
82
83 row.setMoule(totalWeight == 0 ? null : (float) number / totalWeight);
84 return row;
85 }
86
87 }