author | František Kučera <franta-hg@frantovo.cz> |
Tue Jun 08 12:56:46 2010 +0200 (2010-06-08) | |
changeset 132 | 1ca0d7fdbe51 |
parent 131 | 0d1cba59734b |
child 133 | 2acdbc74bc24 |
permissions | -rw-r--r-- |
franta-hg@28 | 1 |
package cz.frantovo.nekurak.ejb; |
franta-hg@28 | 2 |
|
franta-hg@39 | 3 |
import cz.frantovo.nekurak.dao.PodnikDAO; |
franta-hg@130 | 4 |
import cz.frantovo.nekurak.dto.Komentar; |
franta-hg@28 | 5 |
import cz.frantovo.nekurak.dto.Podnik; |
franta-hg@107 | 6 |
import cz.frantovo.nekurak.dto.VysledekHlasovani; |
franta-hg@119 | 7 |
import cz.frantovo.nekurak.ext.Geo; |
franta-hg@119 | 8 |
import cz.frantovo.nekurak.ext.Geo.Souradnice; |
franta-hg@130 | 9 |
import cz.frantovo.nekurak.ext.Texy; |
franta-hg@130 | 10 |
import cz.frantovo.nekurak.util.Komentare; |
franta-hg@132 | 11 |
import cz.frantovo.nekurak.vyjimky.KomentarovaVyjimka; |
franta-hg@132 | 12 |
import cz.frantovo.nekurak.vyjimky.TexyVyjimka; |
franta-hg@28 | 13 |
import java.util.Collection; |
franta-hg@130 | 14 |
import java.util.Date; |
franta-hg@107 | 15 |
import java.util.logging.Logger; |
franta-hg@63 | 16 |
import javax.annotation.Resource; |
franta-hg@40 | 17 |
import javax.annotation.security.RolesAllowed; |
franta-hg@39 | 18 |
import javax.ejb.EJB; |
franta-hg@63 | 19 |
import javax.ejb.SessionContext; |
franta-hg@28 | 20 |
import javax.ejb.Stateless; |
franta-hg@28 | 21 |
|
franta-hg@28 | 22 |
/** |
franta-hg@28 | 23 |
* |
franta-hg@28 | 24 |
* @author fiki |
franta-hg@28 | 25 |
*/ |
franta-hg@28 | 26 |
@Stateless |
franta-hg@39 | 27 |
public class PodnikEJB implements PodnikRemote { |
franta-hg@28 | 28 |
|
franta-hg@107 | 29 |
private static final Logger log = Logger.getLogger(PodnikEJB.class.getSimpleName()); |
franta-hg@39 | 30 |
@EJB |
franta-hg@50 | 31 |
private PodnikDAO podnikDAO; |
franta-hg@63 | 32 |
@Resource |
franta-hg@63 | 33 |
private SessionContext ctx; |
franta-hg@28 | 34 |
|
franta-hg@28 | 35 |
public Collection<Podnik> getPodniky() { |
franta-hg@39 | 36 |
Collection<Podnik> vysledek = podnikDAO.getPodniky(); |
franta-hg@39 | 37 |
return vysledek; |
franta-hg@28 | 38 |
} |
franta-hg@40 | 39 |
|
franta-hg@100 | 40 |
public Podnik getPodnik(int id) { |
franta-hg@100 | 41 |
return podnikDAO.getPodnik(id); |
franta-hg@100 | 42 |
} |
franta-hg@100 | 43 |
|
franta-hg@40 | 44 |
@RolesAllowed("opravneny") |
franta-hg@40 | 45 |
public void zalozPodnik(Podnik p) { |
franta-hg@63 | 46 |
p.setSpravce(ctx.getCallerPrincipal().getName()); |
franta-hg@56 | 47 |
podnikDAO.zaloz(p); |
franta-hg@40 | 48 |
} |
franta-hg@40 | 49 |
|
franta-hg@40 | 50 |
@RolesAllowed("opravneny") |
franta-hg@40 | 51 |
public void upravPodnik(Podnik p) { |
franta-hg@40 | 52 |
podnikDAO.uloz(p); |
franta-hg@40 | 53 |
} |
franta-hg@100 | 54 |
|
franta-hg@100 | 55 |
public int dopocitejSouradnice() { |
franta-hg@100 | 56 |
/** |
franta-hg@123 | 57 |
* TODO: refaktorovat, změnit datové typy, souřadnice… |
franta-hg@100 | 58 |
*/ |
franta-hg@100 | 59 |
Geo g = new Geo(); |
franta-hg@100 | 60 |
int pocetAktualizovanych = 0; |
franta-hg@100 | 61 |
|
franta-hg@102 | 62 |
for (Podnik p : podnikDAO.getPodnikyBezSouradnic()) { |
franta-hg@100 | 63 |
Souradnice s = g.getSouradnice(p.getUlice() + " " + p.getCisloPopisne() + ", " + p.getMesto()); |
franta-hg@100 | 64 |
if (s != null) { |
franta-hg@100 | 65 |
pocetAktualizovanych++; |
franta-hg@100 | 66 |
p.setSirka(s.getSirka()); |
franta-hg@100 | 67 |
p.setDelka(s.getDelka()); |
franta-hg@100 | 68 |
podnikDAO.uloz(p); |
franta-hg@100 | 69 |
} |
franta-hg@100 | 70 |
} |
franta-hg@100 | 71 |
|
franta-hg@100 | 72 |
return pocetAktualizovanych; |
franta-hg@100 | 73 |
} |
franta-hg@107 | 74 |
|
franta-hg@107 | 75 |
public void hlasuj(int podnik, boolean hlas, String ipAdresa) { |
franta-hg@110 | 76 |
|
franta-hg@107 | 77 |
podnikDAO.hlasuj(podnik, hlas, ipAdresa); |
franta-hg@107 | 78 |
} |
franta-hg@107 | 79 |
|
franta-hg@107 | 80 |
public VysledekHlasovani getVysledekHlasovani(int podnik) { |
franta-hg@107 | 81 |
return podnikDAO.getVysledekHlasovani(podnik); |
franta-hg@107 | 82 |
} |
franta-hg@130 | 83 |
|
franta-hg@130 | 84 |
@RolesAllowed("opravneny") |
franta-hg@132 | 85 |
public void komentuj(Komentar k) throws KomentarovaVyjimka, TexyVyjimka { |
franta-hg@130 | 86 |
k.setUzivatel(ctx.getCallerPrincipal().getName()); |
franta-hg@130 | 87 |
k.setDatum(new Date()); |
franta-hg@130 | 88 |
|
franta-hg@130 | 89 |
/** Převedeme na XML */ |
franta-hg@130 | 90 |
switch (k.getTyp()) { |
franta-hg@130 | 91 |
case PROSTY_TEXT: |
franta-hg@130 | 92 |
k.setKomentar(Komentare.upravProstyText(k.getKomentar())); |
franta-hg@130 | 93 |
k.setKomentar(Komentare.obal(k.getKomentar())); |
franta-hg@130 | 94 |
break; |
franta-hg@130 | 95 |
case TEXY: |
franta-hg@130 | 96 |
Texy t = new Texy(); |
franta-hg@130 | 97 |
k.setKomentar(t.preved(k.getKomentar())); |
franta-hg@130 | 98 |
k.setKomentar(Komentare.obal(k.getKomentar())); |
franta-hg@130 | 99 |
break; |
franta-hg@130 | 100 |
} |
franta-hg@130 | 101 |
|
franta-hg@131 | 102 |
/** Zkontrolujeme XML */ |
franta-hg@132 | 103 |
Komentare.zkontroluj(k.getKomentar()); |
franta-hg@130 | 104 |
|
franta-hg@131 | 105 |
|
franta-hg@132 | 106 |
/** TODO: Uložíme do databáze */ |
franta-hg@130 | 107 |
log.severe("Komentář: " + k.getNadpis() + " | " + k.getKomentar() + " | " + k.getTyp()); |
franta-hg@130 | 108 |
} |
franta-hg@28 | 109 |
} |