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 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   * Created on 2/15/15.
42   *
43   * @author Tony Chemit - chemit@codelutin.com
44   * @since 3.14
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 }