using System; using Kreta.Core.MessageBroker; using Kreta.Core.MessageBroker.Client.Implementations; namespace Kreta.MessageBroker.ClientFactory { internal abstract class JsonMessageClientFactory : IJsonMessageClientFactory where T : class { #region [Properties] private IMessageClientFactory NativeMessageClientFactory { get; } #endregion #region [Public methods] public IMessageClient Create(string name) { return new JsonMessageClient(this.NativeMessageClientFactory.Create(name)); } #endregion #region [Constructors] public JsonMessageClientFactory(IMessageClientFactory nativeMessageClientFactory) { this.NativeMessageClientFactory = nativeMessageClientFactory ?? throw new ArgumentNullException(nameof(nativeMessageClientFactory)); } #endregion } }