package org.mercury_im.core; import org.mercury_im.core.connection.ConnectionMethod; import org.mercury_im.messenger.core.entity.Account; import org.mercury_im.messenger.core.entity.Address; public interface ConnectionFactory< CM extends ConnectionMethod, AC extends Account, AD extends Address.UserAddress, AU extends Account.AuthMethod> { Messenger getMessenger(); CM provideConnection(AC account); }