1
2
3
4 package de.tivsource.page.admin.restore;
5
6 import java.io.File;
7 import java.io.FileInputStream;
8 import java.io.IOException;
9 import java.io.InputStream;
10 import java.util.HashMap;
11 import java.util.Map;
12 import java.util.zip.ZipEntry;
13 import java.util.zip.ZipFile;
14 import java.util.zip.ZipInputStream;
15
16 import org.apache.logging.log4j.LogManager;
17 import org.apache.logging.log4j.Logger;
18
19 import de.tivsource.page.dao.administration.RoleDaoLocal;
20 import de.tivsource.page.dao.administration.UserDaoLocal;
21 import de.tivsource.page.dao.event.EventDaoLocal;
22 import de.tivsource.page.dao.gallery.GalleryDaoLocal;
23 import de.tivsource.page.dao.location.LocationDaoLocal;
24 import de.tivsource.page.dao.manual.ManualDaoLocal;
25 import de.tivsource.page.dao.message.MessageDaoLocal;
26 import de.tivsource.page.dao.news.NewsDaoLocal;
27 import de.tivsource.page.dao.page.PageDaoLocal;
28 import de.tivsource.page.dao.picture.PictureDaoLocal;
29 import de.tivsource.page.dao.property.PropertyDaoLocal;
30 import de.tivsource.page.dao.reservation.ReservationDaoLocal;
31 import de.tivsource.page.dao.slider.SliderDaoLocal;
32 import de.tivsource.page.dao.vacancy.VacancyDaoLocal;
33 import de.tivsource.page.restore.RestoreEvent;
34 import de.tivsource.page.restore.RestoreGallery;
35 import de.tivsource.page.restore.RestoreLocation;
36 import de.tivsource.page.restore.RestoreManual;
37 import de.tivsource.page.restore.RestoreMessage;
38 import de.tivsource.page.restore.RestoreNews;
39 import de.tivsource.page.restore.RestorePage;
40 import de.tivsource.page.restore.RestorePicture;
41 import de.tivsource.page.restore.RestoreProperty;
42 import de.tivsource.page.restore.RestoreReservation;
43 import de.tivsource.page.restore.RestoreRole;
44 import de.tivsource.page.restore.RestoreSlider;
45 import de.tivsource.page.restore.RestoreUser;
46 import de.tivsource.page.restore.RestoreVacancy;
47
48
49
50
51
52 public class RestoreZipFile {
53
54
55
56
57 private static final Logger LOGGER = LogManager.getLogger(RestoreZipFile.class);
58
59 private GalleryDaoLocal galleryDaoLocal;
60
61 private PictureDaoLocal pictureDaoLocal;
62
63 private UserDaoLocal userDaoLocal;
64
65 private RoleDaoLocal roleDaoLocal;
66
67 private PageDaoLocal pageDaoLocal;
68
69 private PropertyDaoLocal propertyDaoLocal;
70
71 private LocationDaoLocal locationDaoLocal;
72
73 private EventDaoLocal eventDaoLocal;
74
75 private MessageDaoLocal messageDaoLocal;
76
77 private NewsDaoLocal newsDaoLocal;
78
79 private ReservationDaoLocal reservationDaoLocal;
80
81 private VacancyDaoLocal vacancyDaoLocal;
82
83 private ManualDaoLocal manualDaoLocal;
84
85 private SliderDaoLocal sliderDaoLocal;
86
87 private Map<String, InputStream> streams = new HashMap<String, InputStream>();
88
89 private Map<String, InputStream> pageStreams = new HashMap<String, InputStream>();
90
91 private Map<String, InputStream> messageStreams = new HashMap<String, InputStream>();
92
93 private Map<String, InputStream> newsStreams = new HashMap<String, InputStream>();
94
95 private Map<String, InputStream> reservationStreams = new HashMap<String, InputStream>();
96
97 private Map<String, InputStream> vacancyStreams = new HashMap<String, InputStream>();
98
99 private Map<String, InputStream> manualStreams = new HashMap<String, InputStream>();
100
101 public RestoreZipFile(GalleryDaoLocal galleryDaoLocal, PictureDaoLocal pictureDaoLocal, UserDaoLocal userDaoLocal, RoleDaoLocal roleDaoLocal,
102 PageDaoLocal pageDaoLocal, PropertyDaoLocal propertyDaoLocal,
103 LocationDaoLocal locationDaoLocal, EventDaoLocal eventDaoLocal,
104 MessageDaoLocal messageDaoLocal,
105 NewsDaoLocal newsDaoLocal,
106 ReservationDaoLocal reservationDaoLocal,
107 VacancyDaoLocal vacancyDaoLocal,
108 ManualDaoLocal manualDaoLocal,
109 SliderDaoLocal sliderDaoLocal) {
110 super();
111 this.galleryDaoLocal = galleryDaoLocal;
112 this.pictureDaoLocal = pictureDaoLocal;
113 this.userDaoLocal = userDaoLocal;
114 this.roleDaoLocal = roleDaoLocal;
115 this.pageDaoLocal = pageDaoLocal;
116 this.propertyDaoLocal = propertyDaoLocal;
117 this.locationDaoLocal = locationDaoLocal;
118 this.eventDaoLocal = eventDaoLocal;
119 this.messageDaoLocal = messageDaoLocal;
120 this.newsDaoLocal = newsDaoLocal;
121 this.reservationDaoLocal = reservationDaoLocal;
122 this.vacancyDaoLocal = vacancyDaoLocal;
123 this.manualDaoLocal = manualDaoLocal;
124 this.sliderDaoLocal = sliderDaoLocal;
125 }
126
127 public void restoreZip(File file) throws IOException {
128 LOGGER.info("restoreZip(File file) aufgerufen.");
129
130 ZipFile zipFile = new ZipFile(file);
131 ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
132
133 ZipEntry zipEntry = null;
134
135 while((zipEntry = zipInputStream.getNextEntry()) != null) {
136 String fileName = zipEntry.getName();
137 if(fileName.startsWith("page")) {
138 pageStreams.put(fileName, zipFile.getInputStream(zipEntry));
139 } else if(fileName.startsWith("message")) {
140 messageStreams.put(fileName, zipFile.getInputStream(zipEntry));
141 } else if(fileName.startsWith("news")) {
142 newsStreams.put(fileName, zipFile.getInputStream(zipEntry));
143 } else if(fileName.startsWith("reservation")) {
144 reservationStreams.put(fileName, zipFile.getInputStream(zipEntry));
145 } else if(fileName.startsWith("vacancy")) {
146 vacancyStreams.put(fileName, zipFile.getInputStream(zipEntry));
147 } else if(fileName.startsWith("manual")) {
148 manualStreams.put(fileName, zipFile.getInputStream(zipEntry));
149 } else {
150 streams.put(fileName, zipFile.getInputStream(zipEntry));
151 }
152 }
153
154
155 restoreGallery();
156
157
158 restoreRole();
159
160
161 restoreUser();
162
163
164 restorePage();
165
166
167 restoreProperty();
168
169
170 restoreLocation();
171
172
173 restoreEvent();
174
175
176 restoreMessage();
177
178
179 restoreNews();
180
181
182 restoreReservation();
183
184
185 restoreVacancy();
186
187
188 restoreManual();
189
190
191 restoreSlider();
192
193
194 zipFile.close();
195
196
197 zipInputStream.close();
198
199 }
200
201 private void restoreGallery() {
202 LOGGER.info("restoreGallery() aufgerufen.");
203 RestoreGallery restoreGallery = new RestoreGallery(galleryDaoLocal, pictureDaoLocal);
204 restoreGallery.generate(streams.get("gallery.csv"));
205
206
207 restorePicture();
208
209 restoreGallery.generateOverviewPictures();
210 }
211
212 private void restorePicture() {
213 LOGGER.info("restorePicture() aufgerufen.");
214 RestorePicture restorePicture = new RestorePicture(galleryDaoLocal, pictureDaoLocal);
215 restorePicture.generate(streams.get("picture.csv"));
216 }
217
218 private void restoreUser() {
219 LOGGER.info("restoreUser() aufgerufen.");
220 RestoreUser restoreUser = new RestoreUser(userDaoLocal, roleDaoLocal);
221 restoreUser.generate(streams.get("user.csv"));
222 }
223
224 private void restoreRole() {
225 LOGGER.info("restoreRole() aufgerufen.");
226 RestoreRole restoreRole = new RestoreRole(roleDaoLocal);
227 restoreRole.generate(streams.get("role.csv"));
228 }
229
230 private void restorePage() {
231 LOGGER.info("restorePage() aufgerufen.");
232 RestorePage restorePage = new RestorePage(pageDaoLocal, pictureDaoLocal, pageStreams);
233 restorePage.generate();
234 }
235
236 private void restoreProperty() {
237 LOGGER.info("restoreProperty() aufgerufen.");
238 RestoreProperty restoreProperty = new RestoreProperty(propertyDaoLocal);
239 restoreProperty.generate(streams.get("property.csv"));
240 }
241
242 private void restoreLocation() {
243 LOGGER.info("restoreLocation() aufgerufen.");
244 RestoreLocation restoreLocation = new RestoreLocation(locationDaoLocal, pictureDaoLocal);
245 restoreLocation.generate(streams.get("location.csv"));
246 }
247
248 private void restoreEvent() {
249 LOGGER.info("restoreEvent() aufgerufen.");
250 RestoreEvent eventLocation = new RestoreEvent(locationDaoLocal, eventDaoLocal, pictureDaoLocal);
251 eventLocation.generate(streams.get("event.csv"));
252 }
253
254 private void restoreMessage() {
255 LOGGER.info("restoreMessage() aufgerufen.");
256 RestoreMessage restoreMessage = new RestoreMessage(messageDaoLocal, messageStreams);
257 restoreMessage.generate();
258 }
259
260 private void restoreNews() {
261 LOGGER.info("restoreNews() aufgerufen.");
262 RestoreNews restoreNews = new RestoreNews(newsDaoLocal, pictureDaoLocal, newsStreams);
263 restoreNews.generate();
264 }
265
266 private void restoreReservation() {
267 LOGGER.info("restoreReservation() aufgerufen.");
268 RestoreReservation restoreReservation = new RestoreReservation(reservationDaoLocal, eventDaoLocal, reservationStreams);
269 restoreReservation.generate();
270 }
271
272 private void restoreVacancy() {
273 LOGGER.info("restoreVacancy() aufgerufen.");
274 RestoreVacancy restoreVacancy = new RestoreVacancy(vacancyDaoLocal, locationDaoLocal, pictureDaoLocal, vacancyStreams);
275 restoreVacancy.generate();
276 }
277
278 private void restoreManual() {
279 LOGGER.info("restoreManual() aufgerufen.");
280 RestoreManual restoreManual = new RestoreManual(manualDaoLocal, pictureDaoLocal, manualStreams);
281 restoreManual.generate();
282 }
283
284 private void restoreSlider() {
285 LOGGER.info("restoreSlider() aufgerufen.");
286 RestoreSlider restoreSlider = new RestoreSlider(sliderDaoLocal);
287 restoreSlider.generate(streams.get("slider.csv"));
288 }
289
290 }