View Javadoc

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   * @author Marc Michele
26   *
27   */
28  public class RestoreSlider {
29  
30      /**
31       * Statischer Logger der Klasse.
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          // uuid|clickable|url|name|page|orderNumber|
64          // uuid;original;large;normal;small;thumbnail;micro;standard;created;modified;modifiedBy;modifiedAddress;|
65          // visible|created|modified|modifiedBy|modifiedAddress
66  
67          // Zerlege CSV-Zeile in String-Array.
68          String[] items = line.split("\\|");
69  
70          // Erstelle Announcement-Objekt
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     }// Ende convert(String line)
105 
106     /**
107      * Methode zum Konvertieren eines Strings des Formates "1970-12-01 23:59:59" in ein Date-Object. 
108      * @param dateString
109      * @return
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     }// Ende cleanup()
129 
130 }// Ende class