diff -r 000000000000 -r 8238cdb4113a java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/chat/Spojeni.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/chat/Spojeni.java Wed Jun 30 00:26:14 2010 +0200 @@ -0,0 +1,56 @@ +package cz.frantovo.nekurak.chat; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.jivesoftware.smack.ConnectionConfiguration; +import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.XMPPException; + +/** + * + * @author fiki + */ +public class Spojeni { + + private XMPPConnection spojeni; + private Collection mistnosti = new ArrayList(); + private static final Logger log = Logger.getLogger(Spojeni.class.getSimpleName()); + + public Spojeni(UcetRobota ucet) throws XMPPException { + /** Navážeme spojení */ + ConnectionConfiguration nastaveni = new ConnectionConfiguration(ucet.getAdresaServeru(), ucet.getPort(), ucet.getDomena()); + spojeni = new XMPPConnection(nastaveni); + spojeni.connect(); + spojeni.login(ucet.getUzivatelskeJmeno(), ucet.getUzivatelskeHeslo(), ucet.getProstredek()); + + /** Vstoupíme do místností */ + for (Mistnost m : ucet.getMistnosti()) { + MistnostPripojena mp = new MistnostPripojena(m, this); + mistnosti.add(mp); + } + } + + public void odpoj() { + /** Rozloučíme se ve všech místnostech */ + try { + for (MistnostPripojena mp : mistnosti) { + mp.odejdi(); + } + } catch (Exception e) { + log.log(Level.WARNING, "Nepodařilo se odejít z místnosti před ukončením spojení.", e); + } + + /** Ukončíme spojení */ + spojeni.disconnect(); + } + + public XMPPConnection getSpojeni() { + return spojeni; + } + + public Collection getMistnosti() { + return mistnosti; + } +}