author | František Kučera <franta-hg@frantovo.cz> |
Tue, 08 Jun 2010 13:29:13 +0200 | |
changeset 133 | 2acdbc74bc24 |
parent 132 | 1ca0d7fdbe51 |
child 134 | 4bd1e353c527 |
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@133 | 34 |
private Komentare komentare = new Komentare(); |
franta-hg@28 | 35 |
|
franta-hg@28 | 36 |
public Collection<Podnik> getPodniky() { |
franta-hg@39 | 37 |
Collection<Podnik> vysledek = podnikDAO.getPodniky(); |
franta-hg@39 | 38 |
return vysledek; |
franta-hg@28 | 39 |
} |
franta-hg@40 | 40 |
|
franta-hg@100 | 41 |
public Podnik getPodnik(int id) { |
franta-hg@100 | 42 |
return podnikDAO.getPodnik(id); |
franta-hg@100 | 43 |
} |
franta-hg@100 | 44 |
|
franta-hg@40 | 45 |
@RolesAllowed("opravneny") |
franta-hg@40 | 46 |
public void zalozPodnik(Podnik p) { |
franta-hg@63 | 47 |
p.setSpravce(ctx.getCallerPrincipal().getName()); |
franta-hg@56 | 48 |
podnikDAO.zaloz(p); |
franta-hg@40 | 49 |
} |
franta-hg@40 | 50 |
|
franta-hg@40 | 51 |
@RolesAllowed("opravneny") |
franta-hg@40 | 52 |
public void upravPodnik(Podnik p) { |
franta-hg@40 | 53 |
podnikDAO.uloz(p); |
franta-hg@40 | 54 |
} |
franta-hg@100 | 55 |
|
franta-hg@100 | 56 |
public int dopocitejSouradnice() { |
franta-hg@100 | 57 |
/** |
franta-hg@123 | 58 |
* TODO: refaktorovat, změnit datové typy, souřadnice… |
franta-hg@100 | 59 |
*/ |
franta-hg@100 | 60 |
Geo g = new Geo(); |
franta-hg@100 | 61 |
int pocetAktualizovanych = 0; |
franta-hg@100 | 62 |
|
franta-hg@102 | 63 |
for (Podnik p : podnikDAO.getPodnikyBezSouradnic()) { |
franta-hg@100 | 64 |
Souradnice s = g.getSouradnice(p.getUlice() + " " + p.getCisloPopisne() + ", " + p.getMesto()); |
franta-hg@100 | 65 |
if (s != null) { |
franta-hg@100 | 66 |
pocetAktualizovanych++; |
franta-hg@100 | 67 |
p.setSirka(s.getSirka()); |
franta-hg@100 | 68 |
p.setDelka(s.getDelka()); |
franta-hg@100 | 69 |
podnikDAO.uloz(p); |
franta-hg@100 | 70 |
} |
franta-hg@100 | 71 |
} |
franta-hg@100 | 72 |
|
franta-hg@100 | 73 |
return pocetAktualizovanych; |
franta-hg@100 | 74 |
} |
franta-hg@107 | 75 |
|
franta-hg@107 | 76 |
public void hlasuj(int podnik, boolean hlas, String ipAdresa) { |
franta-hg@110 | 77 |
|
franta-hg@107 | 78 |
podnikDAO.hlasuj(podnik, hlas, ipAdresa); |
franta-hg@107 | 79 |
} |
franta-hg@107 | 80 |
|
franta-hg@107 | 81 |
public VysledekHlasovani getVysledekHlasovani(int podnik) { |
franta-hg@107 | 82 |
return podnikDAO.getVysledekHlasovani(podnik); |
franta-hg@107 | 83 |
} |
franta-hg@130 | 84 |
|
franta-hg@130 | 85 |
@RolesAllowed("opravneny") |
franta-hg@132 | 86 |
public void komentuj(Komentar k) throws KomentarovaVyjimka, TexyVyjimka { |
franta-hg@130 | 87 |
k.setUzivatel(ctx.getCallerPrincipal().getName()); |
franta-hg@130 | 88 |
k.setDatum(new Date()); |
franta-hg@130 | 89 |
|
franta-hg@130 | 90 |
/** Převedeme na XML */ |
franta-hg@130 | 91 |
switch (k.getTyp()) { |
franta-hg@130 | 92 |
case PROSTY_TEXT: |
franta-hg@130 | 93 |
k.setKomentar(Komentare.upravProstyText(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@133 | 98 |
break; |
franta-hg@133 | 99 |
case XHTML: |
franta-hg@133 | 100 |
k.setKomentar(Komentare.upravXHTML(k.getKomentar())); |
franta-hg@130 | 101 |
break; |
franta-hg@130 | 102 |
} |
franta-hg@133 | 103 |
k.setKomentar(Komentare.obal(k.getKomentar())); |
franta-hg@130 | 104 |
|
franta-hg@131 | 105 |
/** Zkontrolujeme XML */ |
franta-hg@133 | 106 |
komentare.zkontroluj(k.getKomentar()); |
franta-hg@130 | 107 |
|
franta-hg@131 | 108 |
|
franta-hg@132 | 109 |
/** TODO: Uložíme do databáze */ |
franta-hg@130 | 110 |
log.severe("Komentář: " + k.getNadpis() + " | " + k.getKomentar() + " | " + k.getTyp()); |
franta-hg@130 | 111 |
} |
franta-hg@28 | 112 |
} |