java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java
changeset 4 e3e2a3a4c36a
parent 3 08480e8e1199
child 5 62bddd9b51fb
     1.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java	Wed Feb 11 17:52:08 2009 +0100
     1.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/DenniSouhrn.java	Wed Feb 11 19:36:28 2009 +0100
     1.3 @@ -1,12 +1,85 @@
     1.4  package cz.frantovo.hrisniciSpameri;
     1.5  
     1.6 +import cz.frantovo.hrisniciSpameri.dto.Cil;
     1.7 +import cz.frantovo.hrisniciSpameri.dto.Souhrn;
     1.8  import java.io.Serializable;
     1.9 +import java.net.InetAddress;
    1.10 +import java.net.UnknownHostException;
    1.11 +import java.sql.Date;
    1.12 +import java.text.DateFormat;
    1.13 +import java.text.ParseException;
    1.14 +import java.text.SimpleDateFormat;
    1.15 +import java.util.ArrayList;
    1.16 +import java.util.Collection;
    1.17 +import java.util.logging.Level;
    1.18 +import java.util.logging.Logger;
    1.19  
    1.20  /**
    1.21 - * Beana zprostředkovávající denní souhrn hříšníků
    1.22 + * Beana zprostředkovávající denní souhrn hříšníků.
    1.23   * @author fiki
    1.24   */
    1.25  public class DenniSouhrn implements Serializable {
    1.26  
    1.27      private static final long serialVersionUID = 7932392366943861342L;
    1.28 +    private static final Logger log = Logger.getLogger(DenniSouhrn.class.getName());
    1.29 +    private static final long DEN = 1000 * 60 * 60 * 24;
    1.30 +    private static String formatDataVzor = "yyyy-mm-dd";
    1.31 +    public static DateFormat formatData = new SimpleDateFormat(formatDataVzor);
    1.32 +    private Date den;
    1.33 +
    1.34 +    public Date getDen() {
    1.35 +        return den;
    1.36 +    }
    1.37 +
    1.38 +    public void setDen(Date den) {
    1.39 +        if (den == null) {
    1.40 +            nastavVychoziDen();
    1.41 +        } else {
    1.42 +            this.den = den;
    1.43 +        }
    1.44 +        log.log(Level.INFO, "Den nastaven na: " + formatData.format(den));
    1.45 +    }
    1.46 +
    1.47 +    public void setDen(String den) {
    1.48 +        if (den == null || den.length() != formatDataVzor.length()) {
    1.49 +            nastavVychoziDen();
    1.50 +        }
    1.51 +
    1.52 +        try {
    1.53 +            this.den = new Date(formatData.parse(den).getTime());
    1.54 +        } catch (ParseException e) {
    1.55 +            log.log(Level.INFO, "Chybně zadané datum: " + den, e);
    1.56 +            nastavVychoziDen();
    1.57 +        }
    1.58 +    }
    1.59 +
    1.60 +    /**
    1.61 +     * Ve výchozím stavu zobrazujeme souhrn za předešlý den.
    1.62 +     * @return včerejšek
    1.63 +     */
    1.64 +    private static Date getVychoziDen() {
    1.65 +        return new Date(System.currentTimeMillis() - DEN);
    1.66 +    }
    1.67 +
    1.68 +    private void nastavVychoziDen() {
    1.69 +        log.log(Level.INFO, "Nastavuji den na výchozí hodnotu.");
    1.70 +        setDen(getVychoziDen());
    1.71 +    }
    1.72 +
    1.73 +    public Collection<Souhrn> getSouhrn() {
    1.74 +        Collection<Souhrn> souhrn = new ArrayList<Souhrn>();
    1.75 +
    1.76 +        Cil cil = new Cil(1, "Frantovo.cz", "http://frantovo.cz/blog/", null, null);
    1.77 +
    1.78 +        for (int i = 1; i < 11; i++) {
    1.79 +            try {
    1.80 +                Souhrn s = new Souhrn(getVychoziDen(), InetAddress.getByName("127.0.0.1"), 100 + i, cil);
    1.81 +                souhrn.add(s);
    1.82 +            } catch (UnknownHostException e) {
    1.83 +                log.log(Level.SEVERE, null, e);
    1.84 +            }
    1.85 +        }
    1.86 +
    1.87 +        return souhrn;
    1.88 +    }
    1.89  }