1 package cz.frantovo.nekurak.ejb;
3 import cz.frantovo.nekurak.dao.PodnikDAO;
4 import cz.frantovo.nekurak.dto.Komentar;
5 import cz.frantovo.nekurak.dto.Podnik;
6 import cz.frantovo.nekurak.dto.VysledekHlasovani;
7 import cz.frantovo.nekurak.ext.Geo;
8 import cz.frantovo.nekurak.ext.Geo.Souradnice;
9 import cz.frantovo.nekurak.ext.Texy;
10 import cz.frantovo.nekurak.util.Komentare;
11 import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka;
12 import cz.frantovo.nekurak.vyjimky.TexyVyjimka;
13 import java.util.Collection;
14 import java.util.Date;
15 import java.util.logging.Logger;
16 import javax.annotation.Resource;
17 import javax.annotation.security.RolesAllowed;
19 import javax.ejb.SessionContext;
20 import javax.ejb.Stateless;
27 public class PodnikEJB implements PodnikRemote {
29 private static final Logger log = Logger.getLogger(PodnikEJB.class.getSimpleName());
31 private PodnikDAO podnikDAO;
33 private SessionContext ctx;
34 private Komentare komentare = new Komentare();
36 public Collection<Podnik> getPodniky() {
37 Collection<Podnik> vysledek = podnikDAO.getPodniky();
41 public Podnik getPodnik(int id) {
42 return podnikDAO.getPodnik(id);
45 @RolesAllowed("opravneny")
46 public void zalozPodnik(Podnik p) {
47 p.setSpravce(ctx.getCallerPrincipal().getName());
51 @RolesAllowed("opravneny")
52 public void upravPodnik(Podnik p) {
56 public int dopocitejSouradnice() {
58 * TODO: refaktorovat, změnit datové typy, souřadnice…
61 int pocetAktualizovanych = 0;
63 for (Podnik p : podnikDAO.getPodnikyBezSouradnic()) {
64 Souradnice s = g.getSouradnice(p.getUlice() + " " + p.getCisloPopisne() + ", " + p.getMesto());
66 pocetAktualizovanych++;
67 p.setSirka(s.getSirka());
68 p.setDelka(s.getDelka());
73 return pocetAktualizovanych;
76 public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
78 podnikDAO.hlasuj(podnik, hlas, ipAdresa);
81 public VysledekHlasovani getVysledekHlasovani(int podnik) {
82 return podnikDAO.getVysledekHlasovani(podnik);
85 @RolesAllowed("opravneny")
86 public void komentuj(Komentar k) throws KomentarovaVyjimka, TexyVyjimka {
87 k.setUzivatel(ctx.getCallerPrincipal().getName());
88 k.setDatum(new Date());
90 /** Převedeme na XML */
93 k.setKomentar(Komentare.upravProstyText(k.getKomentar()));
97 k.setKomentar(t.preved(k.getKomentar()));
100 k.setKomentar(Komentare.upravXHTML(k.getKomentar()));
103 k.setKomentar(Komentare.obal(k.getKomentar()));
105 /** Zkontrolujeme XML */
106 komentare.zkontroluj(k.getKomentar());
109 /** TODO: Uložíme do databáze */
110 log.severe("Komentář: " + k.getNadpis() + " | " + k.getKomentar() + " | " + k.getTyp());