Mercury-IM/transport_xmpp/src/main/java/org/mercury_im/xmpp/connection/XmppConnectionFactory.java

30 lines
1 KiB
Java
Raw Normal View History

2019-11-12 00:07:57 +01:00
package org.mercury_im.xmpp.connection;
2019-11-16 09:58:00 +01:00
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
2019-11-12 00:07:57 +01:00
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;
2019-11-16 09:58:00 +01:00
public abstract class XmppConnectionFactory implements ConnectionFactory<XmppConnectionMethod, XmppAccount, XmppAddress.XmppUserAddress, XmppAuthMethod> {
2019-11-12 00:07:57 +01:00
2019-11-16 09:58:00 +01:00
protected final Messenger messenger;
public XmppConnectionFactory(Messenger messenger) {
this.messenger = messenger;
}
2019-11-12 00:07:57 +01:00
public Messenger getMessenger() {
return messenger;
}
@Override
public XmppConnectionMethod provideConnection(XmppAccount account) {
2019-11-16 09:58:00 +01:00
return new XmppConnectionMethod(account, getMessenger(), createXmppConnection());
2019-11-12 00:07:57 +01:00
}
2019-11-16 09:58:00 +01:00
protected abstract XMPPConnection createXmppConnection(ConnectionConfiguration connectionConfiguration);
2019-11-12 00:07:57 +01:00
}