Introduce dependecy injection container

- TikTokLiveClientBuilder this class has been higly modify to support DI container
This commit is contained in:
jacek.wolniewicz
2024-06-29 23:12:24 +02:00
parent 55fcf83870
commit 3f268f3a1a
2 changed files with 6 additions and 8 deletions

View File

@@ -115,18 +115,18 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
//config //config
dependance.registerSingleton(LiveClientSettings.class, clientSettings); dependance.registerSingleton(LiveClientSettings.class, clientSettings);
dependance.registerSingleton(Logger.class, LoggerFactory.create(clientSettings.getHostName(), clientSettings));
dependance.registerSingleton(TikTokRoomInfo.class, container -> dependance.registerSingleton(TikTokRoomInfo.class, container ->
{ {
var roomInfo = new TikTokRoomInfo(); var roomInfo = new TikTokRoomInfo();
roomInfo.setHostName(clientSettings.getHostName()); roomInfo.setHostName(clientSettings.getHostName());
return roomInfo; return roomInfo;
}); });
dependance.registerSingleton(Logger.class, LoggerFactory.create(clientSettings.getHostName(), clientSettings));
//messages //messages
dependance.registerSingleton(TikTokLiveEventHandler.class, eventHandler); dependance.registerSingleton(TikTokLiveEventHandler.class, eventHandler);
dependance.registerSingleton(TikTokLiveMessageHandler.class); dependance.registerSingleton(TikTokLiveMessageHandler.class);
dependance.registerSingleton(TikTokLiveMapper.class, (container) -> dependance.registerSingleton(TikTokMapper.class, (container) ->
{ {
var dependace = (DependanceContainer) container.find(DependanceContainer.class); var dependace = (DependanceContainer) container.find(DependanceContainer.class);
var mapper = MessagesMapperFactory.create(dependace); var mapper = MessagesMapperFactory.create(dependace);
@@ -165,7 +165,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
//mapper //mapper
dependance.registerSingleton(TikTokGenericEventMapper.class); dependance.registerSingleton(TikTokGenericEventMapper.class);
dependance.registerSingleton(TikTokMapperHelper.class, TikTokLiveMapperHelper.class); dependance.registerSingleton(TikTokMapperHelper.class, TikTokLiveMapperHelper.class);
dependance.registerSingleton(TikTokLiveMapper.class); dependance.registerSingleton(TikTokMapper.class, TikTokLiveMapper.class);
//mapper handlers //mapper handlers
dependance.registerSingleton(TikTokCommonEventHandler.class); dependance.registerSingleton(TikTokCommonEventHandler.class);
@@ -173,9 +173,6 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
dependance.registerSingleton(TikTokRoomInfoEventHandler.class); dependance.registerSingleton(TikTokRoomInfoEventHandler.class);
dependance.registerSingleton(TikTokSocialMediaEventHandler.class); dependance.registerSingleton(TikTokSocialMediaEventHandler.class);
//client //client
dependance.registerSingleton(LiveClient.class, TikTokLiveClient.class); dependance.registerSingleton(LiveClient.class, TikTokLiveClient.class);

View File

@@ -31,6 +31,7 @@ import io.github.jwdeveloper.tiktok.data.events.websocket.TikTokWebsocketUnhandl
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveMessageException; import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveMessageException;
import io.github.jwdeveloper.tiktok.live.LiveClient; import io.github.jwdeveloper.tiktok.live.LiveClient;
import io.github.jwdeveloper.tiktok.mappers.TikTokLiveMapper; import io.github.jwdeveloper.tiktok.mappers.TikTokLiveMapper;
import io.github.jwdeveloper.tiktok.mappers.TikTokMapper;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastResponse; import io.github.jwdeveloper.tiktok.messages.webcast.WebcastResponse;
import io.github.jwdeveloper.tiktok.utils.Stopwatch; import io.github.jwdeveloper.tiktok.utils.Stopwatch;
@@ -41,9 +42,9 @@ public class TikTokLiveMessageHandler {
private final TikTokLiveEventHandler tikTokEventHandler; private final TikTokLiveEventHandler tikTokEventHandler;
private final TikTokLiveMapper mapper; private final TikTokLiveMapper mapper;
public TikTokLiveMessageHandler(TikTokLiveEventHandler tikTokEventHandler, TikTokLiveMapper mapper) { public TikTokLiveMessageHandler(TikTokLiveEventHandler tikTokEventHandler, TikTokMapper mapper) {
this.tikTokEventHandler = tikTokEventHandler; this.tikTokEventHandler = tikTokEventHandler;
this.mapper = mapper; this.mapper = (TikTokLiveMapper)mapper;
} }
public void handle(LiveClient client, WebcastResponse webcastResponse) { public void handle(LiveClient client, WebcastResponse webcastResponse) {