1 package fr.ifremer.tutti.service.genericformat;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import fr.ifremer.tutti.persistence.entities.data.Cruise;
28 import fr.ifremer.tutti.persistence.entities.data.Cruises;
29 import fr.ifremer.tutti.persistence.entities.data.Program;
30 import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
31 import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
32 import fr.ifremer.tutti.persistence.model.CruiseDataModel;
33 import fr.ifremer.tutti.persistence.model.ProgramDataModel;
34
35 import java.io.File;
36 import java.io.Serializable;
37 import java.util.Date;
38 import java.util.Set;
39
40
41
42
43
44
45
46 public class GenericFormatImportRequest implements Serializable {
47
48 private static final long serialVersionUID = 1L;
49
50 private final GenericFormatImportConfiguration importConfiguration;
51
52 private final GenericFormatArchive archive;
53
54 private final char csvSeparator;
55
56 private final SampleCategoryModel sampleCategoryModel;
57
58 private final Set<Cruise> existingCruises;
59
60 private final TuttiProtocol protocol;
61
62 private final Program program;
63
64 private final Date startingDate;
65
66 private final ProgramDataModel existingData;
67
68 public GenericFormatImportRequest(GenericFormatImportConfiguration importConfiguration,
69 GenericFormatArchive archive,
70 char csvSeparator,
71 Program program,
72 SampleCategoryModel sampleCategoryModel,
73 Set<Cruise> cruises,
74 ProgramDataModel existingData,
75 TuttiProtocol protocol) {
76 this.importConfiguration = importConfiguration;
77 this.archive = archive;
78 this.csvSeparator = csvSeparator;
79 this.sampleCategoryModel = sampleCategoryModel;
80 this.program = program;
81 this.existingCruises = cruises;
82 this.existingData = existingData;
83 this.protocol = protocol;
84 this.startingDate = new Date();
85
86 }
87
88 public GenericFormatArchive getArchive() {
89 return archive;
90 }
91
92 public char getCsvSeparator() {
93 return csvSeparator;
94 }
95
96 public SampleCategoryModel getSampleCategoryModel() {
97 return sampleCategoryModel;
98 }
99
100 public TuttiProtocol getProtocol() {
101 return protocol;
102 }
103
104 public Program getProgram() {
105 return program;
106 }
107
108 public Date getStartingDate() {
109 return startingDate;
110 }
111
112 public GenericFormatImportConfiguration getImportConfiguration() {
113 return importConfiguration;
114 }
115
116 public CruiseDataModel getExistingCruiseData(Cruise importRowCruise) {
117
118 String cruiseId = getExistingCruiseId(importRowCruise);
119 CruiseDataModel result = null;
120
121 if (cruiseId != null) {
122
123 for (CruiseDataModel cruiseDataModel : existingData) {
124 if (cruiseId.equals(cruiseDataModel.getId())) {
125 result = cruiseDataModel;
126 break;
127 }
128 }
129 }
130 return result;
131
132 }
133
134 public boolean isCleanWeights() {
135 return importConfiguration.isCleanWeights();
136 }
137
138 public boolean isCheckWeights() {
139 return importConfiguration.isCheckWeights();
140 }
141
142 public boolean isOverrideProtocol() {
143 return importConfiguration.isOverrideProtocol();
144 }
145
146 public boolean isUpdateCruises() {
147 return importConfiguration.isUpdateCruises();
148 }
149
150 public boolean isUpdateOperations() {
151 return importConfiguration.isUpdateOperations();
152 }
153
154 public boolean isImportSpecies() {
155 return importConfiguration.isImportSpecies();
156 }
157
158 public boolean isImportBenthos() {
159 return importConfiguration.isImportBenthos();
160 }
161
162 public boolean isImportMarineLitter() {
163 return importConfiguration.isImportMarineLitter();
164 }
165
166 public boolean isImportAccidentalCatch() {
167 return importConfiguration.isImportAccidentalCatch();
168 }
169
170 public boolean isImportIndividualObservation() {
171 return importConfiguration.isImportIndividualObservation();
172 }
173
174 public boolean isImportAttachments() {
175 return importConfiguration.isImportAttachments();
176 }
177
178 public File getReportFile() {
179 return importConfiguration.getReportFile();
180 }
181
182 public int getMaximumRowsInErrorPerFile() {
183 return importConfiguration.getMaximumRowsInErrorPerFile();
184 }
185
186 public boolean isAuthorizeObsoleteReferentials() {
187 return importConfiguration.isAuthorizeObsoleteReferentials();
188 }
189
190 protected String getExistingCruiseId(Cruise importRowCruise) {
191
192 String result = null;
193 for (Cruise cruise : existingCruises) {
194
195 boolean equals = Cruises.equals(importRowCruise, cruise);
196 if (equals) {
197 result = cruise.getId();
198 break;
199 }
200
201 }
202 return result;
203
204 }
205
206 public CruiseDataModel getSelectedCruise(Cruise importRowCruise) {
207
208 CruiseDataModel result = null;
209
210 ProgramDataModel dataToExport = importConfiguration.getDataToExport();
211 for (CruiseDataModel selectedCruise : dataToExport) {
212 boolean equals = Cruises.equalsNaturalId(importRowCruise, selectedCruise.getId());
213 if (equals) {
214 result = selectedCruise;
215 break;
216 }
217 }
218
219 return result;
220
221 }
222
223 }