diff -r b15d81be8af3 -r 8d1b4d36c88d java/Postak/src/cz/frantovo/postak/HromadnaZprava.java --- a/java/Postak/src/cz/frantovo/postak/HromadnaZprava.java Tue Nov 29 17:16:47 2011 +0100 +++ b/java/Postak/src/cz/frantovo/postak/HromadnaZprava.java Wed May 09 18:10:02 2012 +0200 @@ -9,130 +9,138 @@ /** * Hromadná zpráva. Umí se rozdělit i na více dílčích zpráv, * které se vejdou do limitu příjemců SMTP serveru. + * * @author fiki */ public class HromadnaZprava implements Cloneable { - private static final Logger log = Logger.getLogger(HromadnaZprava.class.getName()); - /** Předmět zprávy */ - private String predmet; - /** Adresa a případně jméno odesílatele */ - private InternetAddress odesilatel; - /** Zda má být zpráva odeslána jako HTML nebo prostý text */ - private boolean formatHTML = false; - /** Tělo zprávy - prostý text */ - private String text; - /** Všichni příjemci této zprávy */ - private ArrayList prijemci = new ArrayList(); - /** Hlavička Reply-to */ - private InternetAddress odpovedetKomu; + public enum FORMÁT { - public String getPredmet() { - return predmet; - } + XHTML, + PROSTÝ_TEXT, + OBOJE + } + private static final Logger log = Logger.getLogger(HromadnaZprava.class.getName()); + /** Předmět zprávy */ + private String predmet; + /** Adresa a případně jméno odesílatele */ + private InternetAddress odesilatel; + /** Zda má být zpráva odeslána jako HTML nebo prostý text */ + private FORMÁT formát = FORMÁT.PROSTÝ_TEXT; + /** Tělo zprávy - prostý text */ + private String text; + /** Všichni příjemci této zprávy */ + private ArrayList prijemci = new ArrayList(); + /** Hlavička Reply-to */ + private InternetAddress odpovedetKomu; - public void setPredmet(String predmet) { - this.predmet = predmet; - } + public String getPredmet() { + return predmet; + } - public InternetAddress getOdesilatel() { - return odesilatel; - } + public void setPredmet(String predmet) { + this.predmet = predmet; + } - public void setOdesilatel(InternetAddress odesilatel) { - this.odesilatel = odesilatel; - } + public InternetAddress getOdesilatel() { + return odesilatel; + } - public String getText() { - return text; - } + public void setOdesilatel(InternetAddress odesilatel) { + this.odesilatel = odesilatel; + } - public void setText(String text) { - this.text = text; - } + public String getText() { + return text; + } - public ArrayList getPrijemci() { - return prijemci; - } + public void setText(String text) { + this.text = text; + } - /** - * @param prijemci pokud je null, nastaví prázdná kolekce. - */ - public void setPrijemci(ArrayList prijemci) { - this.prijemci = new ArrayList(); - pridejPrijemce(prijemci); - } + public ArrayList getPrijemci() { + return prijemci; + } - public void pridejPrijemce(Collection prijemci) { - if (prijemci == null) { - log.log(Level.FINER, "Prázdná množina příjemců – nic nepřidáme"); - } else { - this.prijemci.addAll(prijemci); - } - } + /** + * @param prijemci pokud je null, nastaví prázdná kolekce. + */ + public void setPrijemci(ArrayList prijemci) { + this.prijemci = new ArrayList(); + pridejPrijemce(prijemci); + } - /** - * Pokud má zpráva více přijemců, než je limit povolený SMTP serverem, - * rozdělí se zpráva na více dílčích zpráv. - * @param limit maximální počet příjemců jedné zprávy (omezení SMTP serveru) - */ - public Collection getDilciZpravy(int limit) { - Collection zpravy = new ArrayList(); + public void pridejPrijemce(Collection prijemci) { + if (prijemci == null) { + log.log(Level.FINER, "Prázdná množina příjemců – nic nepřidáme"); + } else { + this.prijemci.addAll(prijemci); + } + } - if (limit < getPrijemci().size()) { - /** Zprávu je potřeba rozdělit */ - try { - HromadnaZprava dilciZprava = (HromadnaZprava) clone(); - dilciZprava.setPrijemci(null); + /** + * Pokud má zpráva více přijemců, než je limit povolený SMTP serverem, + * rozdělí se zpráva na více dílčích zpráv. + * + * @param limit maximální počet příjemců jedné zprávy (omezení SMTP serveru) + */ + public Collection getDilciZpravy(int limit) { + Collection zpravy = new ArrayList(); - ArrayList vsichniPrijemci = getPrijemci(); - for (InternetAddressKomu prijemce : vsichniPrijemci) { - dilciZprava.getPrijemci().add(prijemce); + if (limit < getPrijemci().size()) { + /** Zprávu je potřeba rozdělit */ + try { + HromadnaZprava dilciZprava = (HromadnaZprava) clone(); + dilciZprava.setPrijemci(null); - if (dilciZprava.getPrijemci().size() == limit) { - zpravy.add(dilciZprava); - dilciZprava = (HromadnaZprava) clone(); - dilciZprava.setPrijemci(null); - } - } + ArrayList vsichniPrijemci = getPrijemci(); + for (InternetAddressKomu prijemce : vsichniPrijemci) { + dilciZprava.getPrijemci().add(prijemce); - if (dilciZprava.getPrijemci().size() > 0) { - /** - * Počet příjemců není násobkem limitu, - * takže nakonci ještě někteří zbyli. - * Z nich budou příjemci pro poslední dílčí zprávu. - */ - zpravy.add(dilciZprava); - } + if (dilciZprava.getPrijemci().size() == limit) { + zpravy.add(dilciZprava); + dilciZprava = (HromadnaZprava) clone(); + dilciZprava.setPrijemci(null); + } + } + if (dilciZprava.getPrijemci().size() > 0) { + /** + * Počet příjemců není násobkem limitu, + * takže nakonci ještě někteří zbyli. + * Z nich budou příjemci pro poslední dílčí zprávu. + */ + zpravy.add(dilciZprava); + } - } catch (CloneNotSupportedException ex) { - /** Tohle by nikdy nemělo nastat */ - log.log(Level.SEVERE, "Hromandou zprávu se nepodařilo naklonovat - divné.", ex); - zpravy.add(this); - } - } else { - /** Zprávu má málo příjemců - můžeme ji odeslat najednou */ - zpravy.add(this); - } - return zpravy; - } + } catch (CloneNotSupportedException ex) { + /** Tohle by nikdy nemělo nastat */ + log.log(Level.SEVERE, "Hromandou zprávu se nepodařilo naklonovat - divné.", ex); + zpravy.add(this); + } + } else { + /** Zprávu má málo příjemců - můžeme ji odeslat najednou */ + zpravy.add(this); + } - public boolean isFormatHTML() { - return formatHTML; - } + return zpravy; + } - public void setFormatHTML(boolean formatHTML) { - this.formatHTML = formatHTML; - } + public FORMÁT getFormát() { + return formát; + } - public InternetAddress getOdpovedetKomu() { - return odpovedetKomu; - } + public void setFormatHTML(FORMÁT formát) { + this.formát = formát; + } - /** Pokud je null, hlavička Reply-to se v e-mailu vůbec nenastaví. */ - public void setOdpovedetKomu(InternetAddress odpovedetKomu) { - this.odpovedetKomu = odpovedetKomu; - } + public InternetAddress getOdpovedetKomu() { + return odpovedetKomu; + } + + /** Pokud je null, hlavička Reply-to se v e-mailu vůbec nenastaví. */ + public void setOdpovedetKomu(InternetAddress odpovedetKomu) { + this.odpovedetKomu = odpovedetKomu; + } }