View Javadoc

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   * @author Marc Michele
50   *
51   */
52  public class RestoreZipFile {
53  
54      /**
55       * Statischer Logger der Klasse.
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         }// Ende while
153 
154         // Stelle Galerien wieder her
155         restoreGallery();
156 
157         // Stelle Rollen wieder her
158         restoreRole();
159 
160         // Stelle Benutzer wieder her
161         restoreUser();
162 
163         // Stelle Seiten wieder her
164         restorePage();
165 
166         // Stelle Properties wieder her
167         restoreProperty();
168 
169         // Stelle Location wieder her
170         restoreLocation();
171 
172         // Stelle Event wieder her
173         restoreEvent();
174 
175         // Stelle Message wieder her
176         restoreMessage();
177 
178         // Stelle News wieder her
179         restoreNews();
180         
181         // Stelle Reservation wieder her
182         restoreReservation();
183 
184         // Stelle Vacancy wieder her
185         restoreVacancy();
186 
187         // Stelle Manual wieder her
188         restoreManual();
189 
190         // Stelle Slider wieder her
191         restoreSlider();
192 
193         // Schließe Datei
194         zipFile.close();
195 
196         // Schließe Datei Stream
197         zipInputStream.close();
198 
199     }// Ende restoreZip(File file)
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         // Stelle Bilder wieder her
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 }// Ende class