View Javadoc
1   package fr.ifremer.tutti.service.genericformat;
2   
3   /*
4    * #%L
5    * Tutti :: Service
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import com.google.common.collect.ImmutableSet;
28  import fr.ifremer.tutti.persistence.entities.data.Program;
29  import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
30  import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
31  import fr.ifremer.tutti.persistence.entities.referential.Gear;
32  import fr.ifremer.tutti.persistence.entities.referential.Person;
33  import fr.ifremer.tutti.persistence.entities.referential.Species;
34  import fr.ifremer.tutti.persistence.entities.referential.Vessel;
35  import fr.ifremer.tutti.persistence.model.ProgramDataModel;
36  
37  import java.io.File;
38  import java.io.Serializable;
39  import java.util.Collections;
40  import java.util.Date;
41  import java.util.Set;
42  
43  /**
44   * Created on 2/25/15.
45   *
46   * @author Tony Chemit - chemit@codelutin.com
47   * @since 3.14
48   */
49  public abstract class GenericFormatResultSupport implements Serializable {
50  
51      private static final long serialVersionUID = 1L;
52  
53      private final boolean valid;
54  
55      private GenericFormatImportRequest importRequest;
56  
57      private final Set<String> archiveLayoutErrors;
58  
59      private final TuttiProtocol protocol;
60  
61      private final GenericFormatCsvFileResult sampleCategoryFileResult;
62  
63      private final GenericFormatReferentialImportResult<Gear, Integer> referentialTemporaryGearFileResult;
64  
65      private final GenericFormatReferentialImportResult<Person, Integer> referentialTemporaryPersonFileResult;
66  
67      private final GenericFormatReferentialImportResult<Species, Integer> referentialTemporarySpeciesFileResult;
68  
69      private final GenericFormatReferentialImportResult<Vessel, String> referentialTemporaryVesselFileResult;
70  
71      private final GenericFormatFileResult protocolFileResult;
72  
73      private final GenericFormatCsvFileResult surveyFileResult;
74  
75      private final GenericFormatCsvFileResult gearCaracteristicFileResult;
76  
77      private final GenericFormatCsvFileResult operationFileResult;
78  
79      private final GenericFormatCsvFileResult parameterFileResult;
80  
81      private final GenericFormatCsvFileResult catchFileResult;
82  
83      private final GenericFormatCsvFileResult marineLitterFileResult;
84  
85      private final GenericFormatCsvFileResult individualObservationFileResult;
86  
87      private final GenericFormatCsvFileResult accidentalCatchFileResult;
88  
89      private final GenericFormatCsvFileResult attachmentsFileResult;
90  
91      private String protocolOriginalName;
92  
93      private ProgramDataModel dataModel;
94  
95      protected GenericFormatResultSupport(GenericFormatContextSupport importContext) {
96  
97          this.importRequest = importContext.getImportRequest();
98          this.protocol = importContext.getImportedProtocol();
99          this.sampleCategoryFileResult = importContext.getSampleCategoryFileResult();
100         this.referentialTemporaryGearFileResult = importContext.getReferentialTemporaryGearFileResult();
101         this.referentialTemporaryPersonFileResult = importContext.getReferentialTemporaryPersonFileResult();
102         this.referentialTemporarySpeciesFileResult = importContext.getReferentialTemporarySpeciesFileResult();
103         this.referentialTemporaryVesselFileResult = importContext.getReferentialTemporaryVesselFileResult();
104         this.protocolFileResult = importContext.getProtocolFileResult();
105         this.surveyFileResult = importContext.getSurveyFileResult();
106         this.gearCaracteristicFileResult = importContext.getGearCaracteristicFileResult();
107         this.operationFileResult = importContext.getOperationFileResult();
108         this.parameterFileResult = importContext.getParameterFileResult();
109         this.catchFileResult = importContext.getCatchFileResult();
110         this.marineLitterFileResult = importContext.getMarineLitterFileResult();
111         this.individualObservationFileResult = importContext.getIndividualObservationFileResult();
112         this.accidentalCatchFileResult = importContext.getAccidentalCatchFileResult();
113         this.attachmentsFileResult = importContext.getAttachmentFileResult();
114         this.protocolOriginalName  = importContext.getProtocolOriginalName();
115         Set<String> archiveLayoutErrors1;
116         if (importContext.isArchiveLayoutValid()) {
117             archiveLayoutErrors1 = Collections.emptySet();
118         } else {
119             archiveLayoutErrors1 = importContext.getArchiveLayoutErrors();
120         }
121         this.archiveLayoutErrors = ImmutableSet.copyOf(archiveLayoutErrors1);
122         this.valid = computeValid();
123     }
124 
125     private boolean computeValid() {
126 
127         return isArchiveLayoutValid()
128                          && sampleCategoryFileResult.isValid()
129                          && referentialTemporaryGearFileResult.isValid()
130                          && referentialTemporaryPersonFileResult.isValid()
131                          && referentialTemporarySpeciesFileResult.isValid()
132                          && referentialTemporaryVesselFileResult.isValid()
133                          && protocolFileResult.isValid()
134                          && surveyFileResult.isValid()
135                          && gearCaracteristicFileResult.isValid()
136                          && operationFileResult.isValid()
137                          && parameterFileResult.isValid()
138                          && catchFileResult.isValid()
139                          && marineLitterFileResult.isValid()
140                          && accidentalCatchFileResult.isValid()
141                          && individualObservationFileResult.isValid()
142                          && attachmentsFileResult.isValid();
143 
144     }
145 
146     public boolean isArchiveLayoutValid() {
147         return archiveLayoutErrors.isEmpty();
148     }
149 
150     public Set<String> getArchiveLayoutErrors() {
151         return archiveLayoutErrors;
152     }
153 
154     public TuttiProtocol getProtocol() {
155         return protocol;
156     }
157 
158     public GenericFormatCsvFileResult getSampleCategoryFileResult() {
159         return sampleCategoryFileResult;
160     }
161 
162     public SampleCategoryModel getSampleCategoryModel() {
163         return importRequest.getSampleCategoryModel();
164     }
165 
166     public GenericFormatReferentialImportResult<Gear, Integer> getReferentialTemporaryGearFileResult() {
167         return referentialTemporaryGearFileResult;
168     }
169 
170     public GenericFormatReferentialImportResult<Person, Integer> getReferentialTemporaryPersonFileResult() {
171         return referentialTemporaryPersonFileResult;
172     }
173 
174     public GenericFormatReferentialImportResult<Species, Integer> getReferentialTemporarySpeciesFileResult() {
175         return referentialTemporarySpeciesFileResult;
176     }
177 
178     public GenericFormatReferentialImportResult<Vessel, String> getReferentialTemporaryVesselFileResult() {
179         return referentialTemporaryVesselFileResult;
180     }
181 
182     public GenericFormatFileResult getProtocolFileResult() {
183         return protocolFileResult;
184     }
185 
186     public GenericFormatCsvFileResult getSurveyFileResult() {
187         return surveyFileResult;
188     }
189 
190     public GenericFormatCsvFileResult getGearCaracteristicFileResult() {
191         return gearCaracteristicFileResult;
192     }
193 
194     public GenericFormatCsvFileResult getOperationFileResult() {
195         return operationFileResult;
196     }
197 
198     public GenericFormatCsvFileResult getParameterFileResult() {
199         return parameterFileResult;
200     }
201 
202     public GenericFormatCsvFileResult getCatchFileResult() {
203         return catchFileResult;
204     }
205 
206     public GenericFormatCsvFileResult getMarineLitterFileResult() {
207         return marineLitterFileResult;
208     }
209 
210     public GenericFormatCsvFileResult getIndividualObservationFileResult() {
211         return individualObservationFileResult;
212     }
213 
214     public GenericFormatCsvFileResult getAccidentalCatchFileResult() {
215         return accidentalCatchFileResult;
216     }
217 
218     public GenericFormatCsvFileResult getAttachmentsFileResult() {
219         return attachmentsFileResult;
220     }
221 
222     public File getReportFile() {
223         return importRequest.getReportFile();
224     }
225 
226     public GenericFormatImportConfiguration getImportConfiguration() {
227         return importRequest.getImportConfiguration();
228     }
229 
230     public Program getProgram() {
231         return importRequest.getProgram();
232     }
233 
234     public Date getStartingDate() {
235         return importRequest.getStartingDate();
236     }
237 
238     public boolean isCleanWeights() {
239         return importRequest.isCleanWeights();
240     }
241 
242     public boolean isCheckWeights() {
243         return importRequest.isCheckWeights();
244     }
245 
246     public GenericFormatArchive getArchive() {
247         return importRequest.getArchive();
248     }
249 
250     public boolean isValid() {
251         return valid;
252     }
253 
254     public String getProtocolOriginalName() {
255         return protocolOriginalName;
256     }
257 
258     public void setProtocolOriginalName(String protocolOriginalName) {
259         this.protocolOriginalName = protocolOriginalName;
260     }
261 
262     public ProgramDataModel getDataModel() {
263         return dataModel;
264     }
265 
266     public void setDataModel(ProgramDataModel dataModel) {
267         this.dataModel = dataModel;
268     }
269 
270 }