1
2
3
4 package de.tivsource.page.restore;
5
6 import java.io.BufferedReader;
7 import java.io.IOException;
8 import java.io.InputStream;
9 import java.io.InputStreamReader;
10 import java.io.UnsupportedEncodingException;
11 import java.security.NoSuchAlgorithmException;
12 import java.text.ParseException;
13 import java.text.SimpleDateFormat;
14 import java.util.Date;
15 import java.util.Iterator;
16
17 import org.apache.logging.log4j.LogManager;
18 import org.apache.logging.log4j.Logger;
19
20 import de.tivsource.page.dao.slider.SliderDaoLocal;
21 import de.tivsource.page.entity.slider.Slider;
22 import de.tivsource.page.entity.slider.SliderImage;
23
24
25
26
27
28 public class RestoreSlider {
29
30
31
32
33 private static final Logger LOGGER = LogManager.getLogger(RestoreSlider.class);
34
35 private SliderDaoLocal sliderDaoLocal;
36
37 public RestoreSlider(SliderDaoLocal sliderDaoLocal) {
38 super();
39 this.sliderDaoLocal = sliderDaoLocal;
40 }
41
42 public void generate(InputStream inputStream) {
43 LOGGER.debug("generate(InputStream inputStream) aufgerufen");
44 cleanup();
45 BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
46 try {
47 String line = null;
48 while ((line = in.readLine()) != null) {
49 if (!line.startsWith("[Format Definition]")) {
50 Slider slider = convert(line);
51 sliderDaoLocal.merge(slider);
52 }
53 }
54 } catch (IOException e) {
55 e.printStackTrace();
56 } catch (NoSuchAlgorithmException e) {
57 e.printStackTrace();
58 }
59 }
60
61 private Slider convert(String line) throws NoSuchAlgorithmException, UnsupportedEncodingException {
62
63
64
65
66
67
68 String[] items = line.split("\\|");
69
70
71 Slider slider = new Slider();
72
73 slider.setUuid(items[0]);
74 slider.setClickable(items[1].equals("true") ? true : false);
75 slider.setUrl(items[2]);
76 slider.setName(items[3]);
77 slider.setPage(items[4]);
78 slider.setOrderNumber(Integer.parseInt(items[5]));
79
80 String[] imageItems = items[6].split(";");
81 SliderImage sliderImage = new SliderImage();
82 sliderImage.setUuid(imageItems[0]);
83 sliderImage.setOriginal(imageItems[1]);
84 sliderImage.setLarge(imageItems[2]);
85 sliderImage.setNormal(imageItems[3]);
86 sliderImage.setSmall(imageItems[4]);
87 sliderImage.setThumbnail(imageItems[5]);
88 sliderImage.setMicro(imageItems[6]);
89 sliderImage.setStandard(imageItems[7].equals("true") ? true : false);
90 sliderImage.setCreated(convertDateString(imageItems[8]));
91 sliderImage.setModified(convertDateString(imageItems[9]));
92 sliderImage.setModifiedBy(imageItems[10]);
93 sliderImage.setModifiedAddress(imageItems[11]);
94 sliderImage.setSlider(slider);
95 slider.setImage(sliderImage);
96
97 slider.setVisible(items[7].equals("true") ? true : false);
98 slider.setCreated(convertDateString(items[8]));
99 slider.setModified(convertDateString(items[9]));
100 slider.setModifiedBy(items[10]);
101 slider.setModifiedAddress(items[11]);
102
103 return slider;
104 }
105
106
107
108
109
110
111 private Date convertDateString(String dateString) {
112 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
113 try {
114 return simpleDateFormat.parse(dateString);
115 } catch (ParseException e) {
116 return new Date();
117 }
118 }
119
120 private void cleanup() {
121 if(sliderDaoLocal.countAll() > 0) {
122 Iterator<Slider> sliderIterator = sliderDaoLocal.findAll(0, sliderDaoLocal.countAll()).iterator();
123 while(sliderIterator.hasNext()) {
124 Slider next = sliderIterator.next();
125 sliderDaoLocal.delete(next);
126 }
127 }
128 }
129
130 }