Mercury-IM/xmpp/src/main/java/org/mercury_im/messenger/transport/xmpp/XmppConnectionFactory.java

31 lines
1 KiB
Java
Raw Normal View History

2019-11-18 23:51:27 +01:00
package org.mercury_im.messenger.transport.xmpp;
2019-11-12 00:07:57 +01:00
2019-11-16 09:58:00 +01:00
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
2019-11-18 23:51:27 +01:00
import org.mercury_im.messenger.Messenger;
import org.mercury_im.messenger.transport.connection.ConnectionFactory;
import org.mercury_im.messenger.entity.Account;
2019-11-12 00:07:57 +01:00
public abstract class XmppConnectionFactory<CF extends ConnectionConfiguration>
implements ConnectionFactory<XmppTcpConnectionMethod> {
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 XmppTcpConnectionMethod provideConnection(Account account) {
return new XmppTcpConnectionMethod(account, getMessenger(), createXmppConnection(getConfiguration(account)));
2019-11-12 00:07:57 +01:00
}
2019-11-16 09:58:00 +01:00
protected abstract CF getConfiguration(Account account);
protected abstract XMPPConnection createXmppConnection(CF connectionConfiguration);
2019-11-12 00:07:57 +01:00
}