package org.mercury_im.xmpp.connection; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.XMPPConnection; import org.mercury_im.core.ConnectionFactory; import org.mercury_im.core.Messenger; import org.mercury_im.messenger.xmpp.entity.XmppAccount; import org.mercury_im.messenger.xmpp.entity.XmppAddress; import org.mercury_im.messenger.xmpp.entity.XmppAuthMethod; public abstract class XmppConnectionFactory implements ConnectionFactory { protected final Messenger messenger; public XmppConnectionFactory(Messenger messenger) { this.messenger = messenger; } public Messenger getMessenger() { return messenger; } @Override public XmppConnectionMethod provideConnection(XmppAccount account) { return new XmppConnectionMethod(account, getMessenger(), createXmppConnection()); } protected abstract XMPPConnection createXmppConnection(ConnectionConfiguration connectionConfiguration); }