Coverage Summary for Class: DataModuleKt (cloud.mindbox.mobile_sdk.di.modules)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| DataModuleKt |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(6/6)
|
| DataModuleKt$DataModule$1 |
8.3%
(2/24)
|
|
62.7%
(47/75)
|
84.8%
(543/640)
|
| DataModuleKt$DataModule$1$abTestValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$callbackRepository$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/12)
|
| DataModuleKt$DataModule$1$defaultDataManager$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/12)
|
| DataModuleKt$DataModule$1$featureToggleManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$gson$2 |
100%
(1/1)
|
|
100%
(94/94)
|
100%
(145/145)
|
| DataModuleKt$DataModule$1$inAppConfigTtlValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$inAppContentFetcher$2 |
0%
(0/1)
|
|
0%
(0/2)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$inAppFailureTracker$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/13)
|
| DataModuleKt$DataModule$1$inAppGeoRepository$2 |
0%
(0/1)
|
|
0%
(0/6)
|
0%
(0/19)
|
| DataModuleKt$DataModule$1$inAppImageSizeStorage$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$inAppMapper$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$inAppMessageDelayedManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/8)
|
| DataModuleKt$DataModule$1$inAppRepository$2 |
0%
(0/1)
|
|
0%
(0/5)
|
0%
(0/16)
|
| DataModuleKt$DataModule$1$inAppSegmentationRepository$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/12)
|
| DataModuleKt$DataModule$1$inappSettingsManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$inAppTargetingErrorRepository$2 |
0%
(0/1)
|
|
0%
(0/2)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$inAppValidator$2 |
0%
(0/1)
|
|
0%
(0/5)
|
0%
(0/15)
|
| DataModuleKt$DataModule$1$integerPositiveValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$jsonValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$maxInappsPerDayLimitChecker$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/13)
|
| DataModuleKt$DataModule$1$maxInappsPerSessionLimitChecker$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$migrationManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/7)
|
| DataModuleKt$DataModule$1$mindboxNotificationManager$2 |
0%
(0/1)
|
|
0%
(0/3)
|
0%
(0/10)
|
| DataModuleKt$DataModule$1$minIntervalBetweenShowsLimitChecker$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/13)
|
| DataModuleKt$DataModule$1$mobileConfigRepository$2 |
0%
(0/1)
|
|
0%
(0/18)
|
0%
(0/90)
|
| DataModuleKt$DataModule$1$mobileConfigSettingsManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/14)
|
| DataModuleKt$DataModule$1$modalElementValidator$2 |
0%
(0/1)
|
|
0%
(0/2)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$modalWindowDtoDataFiller$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$modalWindowValidator$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/12)
|
| DataModuleKt$DataModule$1$monitoringValidator$2 |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(3/3)
|
| DataModuleKt$DataModule$1$sdkVersionValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$sessionStorageManager$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/7)
|
| DataModuleKt$DataModule$1$slidingExpirationParametersValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$snackBarDtoDataFiller$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
| DataModuleKt$DataModule$1$snackbarElementValidator$2 |
0%
(0/1)
|
|
0%
(0/4)
|
0%
(0/12)
|
| DataModuleKt$DataModule$1$snackbarValidator$2 |
0%
(0/1)
|
|
0%
(0/3)
|
0%
(0/9)
|
| DataModuleKt$DataModule$1$timeProvider$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$ttlParametersValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$urlValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| DataModuleKt$DataModule$1$xmlValidator$2 |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/3)
|
| Total |
7.7%
(5/65)
|
|
54.2%
(143/264)
|
59.5%
(697/1172)
|
package cloud.mindbox.mobile_sdk.di.modules
import cloud.mindbox.mobile_sdk.annotations.InternalMindboxApi
import cloud.mindbox.mobile_sdk.inapp.data.checkers.MaxInappsPerDayLimitChecker
import cloud.mindbox.mobile_sdk.inapp.data.checkers.MaxInappsPerSessionLimitChecker
import cloud.mindbox.mobile_sdk.inapp.data.checkers.MinIntervalBetweenShowsLimitChecker
import cloud.mindbox.mobile_sdk.inapp.data.dto.BackgroundDto
import cloud.mindbox.mobile_sdk.inapp.data.dto.ElementDto
import cloud.mindbox.mobile_sdk.inapp.data.dto.PayloadBlankDto
import cloud.mindbox.mobile_sdk.inapp.data.dto.PayloadDto
import cloud.mindbox.mobile_sdk.inapp.data.managers.*
import cloud.mindbox.mobile_sdk.inapp.data.managers.data_filler.*
import cloud.mindbox.mobile_sdk.inapp.data.mapper.InAppMapper
import cloud.mindbox.mobile_sdk.inapp.data.repositories.*
import cloud.mindbox.mobile_sdk.inapp.data.validators.*
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.InAppContentFetcher
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.InAppImageLoader
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.InAppImageSizeStorage
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.PermissionManager
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.checkers.Checker
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.FeatureToggleManager
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.GeoSerializationManager
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.InAppFailureTracker
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.InAppSerializationManager
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.managers.MobileConfigSerializationManager
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.repositories.*
import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.validators.InAppValidator
import cloud.mindbox.mobile_sdk.inapp.presentation.InAppMessageDelayedManager
import cloud.mindbox.mobile_sdk.inapp.presentation.MindboxNotificationManager
import cloud.mindbox.mobile_sdk.inapp.presentation.MindboxNotificationManagerImpl
import cloud.mindbox.mobile_sdk.inapp.presentation.view.BridgeMessage
import cloud.mindbox.mobile_sdk.managers.*
import cloud.mindbox.mobile_sdk.managers.MobileConfigSettingsManagerImpl
import cloud.mindbox.mobile_sdk.managers.RequestPermissionManager
import cloud.mindbox.mobile_sdk.managers.RequestPermissionManagerImpl
import cloud.mindbox.mobile_sdk.models.TreeTargetingDto
import cloud.mindbox.mobile_sdk.models.operation.response.FrequencyDto
import cloud.mindbox.mobile_sdk.monitoring.data.validators.MonitoringValidator
import cloud.mindbox.mobile_sdk.utils.*
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import kotlinx.coroutines.Dispatchers
@OptIn(InternalMindboxApi::class)
internal fun DataModule(
appContextModule: AppContextModule,
apiModule: ApiModule
): DataModule = object : DataModule,
AppContextModule by appContextModule,
ApiModule by apiModule {
override val inAppImageLoader: InAppImageLoader
get() = InAppGlideImageLoaderImpl(
appContext,
inAppImageSizeStorage
)
override val modalElementDtoDataFiller: ModalElementDtoDataFiller
get() = ModalElementDtoDataFiller(closeButtonModalElementDtoDataFiller = closeButtonModalElementDtoDataFiller)
override val modalWindowValidator: ModalWindowValidator by lazy {
ModalWindowValidator(
imageLayerValidator = imageLayerValidator,
webViewLayerValidator = webViewLayerValidator,
elementValidator = modalElementValidator
)
}
override val imageLayerValidator: ImageLayerValidator
get() = ImageLayerValidator()
override val webViewLayerValidator: WebViewLayerValidator
get() = WebViewLayerValidator()
override val modalElementValidator: ModalElementValidator by lazy {
ModalElementValidator(
closeButtonElementValidator = closeButtonModalElementValidator
)
}
override val snackbarValidator: SnackbarValidator by lazy {
SnackbarValidator(
imageLayerValidator,
snackbarElementValidator
)
}
override val closeButtonModalElementValidator: CloseButtonModalElementValidator
get() = CloseButtonModalElementValidator(
sizeValidator = CloseButtonModalSizeValidator(),
positionValidator = CloseButtonModalPositionValidator()
)
override val closeButtonModalPositionValidator: CloseButtonModalPositionValidator
get() = CloseButtonModalPositionValidator()
override val closeButtonSnackbarElementValidator: CloseButtonSnackbarElementValidator
get() = CloseButtonSnackbarElementValidator(
positionValidator = closeButtonSnackbarPositionValidator,
sizeValidator = closeButtonSnackbarSizeValidator
)
override val closeButtonSnackbarPositionValidator: CloseButtonSnackbarPositionValidator
get() = CloseButtonSnackbarPositionValidator()
override val closeButtonSnackbarSizeValidator: CloseButtonSnackbarSizeValidator
get() = CloseButtonSnackbarSizeValidator()
override val closeButtonModalElementDtoDataFiller: CloseButtonModalElementDtoDataFiller
get() = CloseButtonModalElementDtoDataFiller()
override val closeButtonPositionValidator: CloseButtonModalPositionValidator
get() = CloseButtonModalPositionValidator()
override val closeButtonModalSizeValidator: CloseButtonModalSizeValidator
get() = CloseButtonModalSizeValidator()
override val snackbarElementValidator: SnackBarElementValidator by lazy {
SnackBarElementValidator(
closeButtonElementValidator = CloseButtonSnackbarElementValidator(
positionValidator = CloseButtonSnackbarPositionValidator(),
sizeValidator = CloseButtonSnackbarSizeValidator()
)
)
}
override val snackBarElementDtoDataFiller: SnackbarElementDtoDataFiller
get() = SnackbarElementDtoDataFiller(closeButtonSnackbarElementDtoDataFiller = closeButtonSnackbarElementDtoDataFiller)
override val closeButtonSnackbarElementDtoDataFiller: CloseButtonSnackbarElementDtoDataFiller
get() = CloseButtonSnackbarElementDtoDataFiller()
override val modalWindowDtoDataFiller: ModalWindowDtoDataFiller
by lazy { ModalWindowDtoDataFiller(elementDtoDataFiller = modalElementDtoDataFiller) }
override val snackBarDtoDataFiller: SnackBarDtoDataFiller
by lazy { SnackBarDtoDataFiller(elementDtoDataFiller = snackBarElementDtoDataFiller) }
override val defaultDataManager: DataManager by lazy {
DataManager(
modalWindowDtoDataFiller = modalWindowDtoDataFiller,
snackBarDtoDataFiller = snackBarDtoDataFiller,
frequencyDataFiller = frequencyDataFiller
)
}
override val inAppImageSizeStorage: InAppImageSizeStorage by lazy { InAppImageSizeStorageImpl() }
override val sessionStorageManager: SessionStorageManager by lazy { SessionStorageManager(timeProvider) }
override val permissionManager: PermissionManager
get() = PermissionManagerImpl(appContext)
override val inAppContentFetcher: InAppContentFetcher by lazy {
InAppContentFetcherImpl(
inAppImageLoader
)
}
override val mobileConfigRepository: MobileConfigRepository by lazy {
MobileConfigRepositoryImpl(
inAppMapper = inAppMapper,
mobileConfigSerializationManager = mobileConfigSerializationManager,
inAppValidator = inAppValidator,
abTestValidator = abTestValidator,
monitoringValidator = monitoringValidator,
operationNameValidator = operationNameValidator,
operationValidator = operationValidator,
gatewayManager = gatewayManager,
defaultDataManager = defaultDataManager,
ttlParametersValidator = ttlParametersValidator,
inAppConfigTtlValidator = inAppConfigTtlValidator,
sessionStorageManager = sessionStorageManager,
timeSpanPositiveValidator = slidingExpirationParametersValidator,
mobileConfigSettingsManager = mobileConfigSettingsManager,
integerPositiveValidator = integerPositiveValidator,
inappSettingsManager = inappSettingsManager,
featureToggleManager = featureToggleManager
)
}
override val mobileConfigSerializationManager: MobileConfigSerializationManager
get() = MobileConfigSerializationManagerImpl(
gson = gson.newBuilder()
.registerTypeAdapter(String::class.java, StrictStringAdapter())
.create()
)
override val inAppGeoRepository: InAppGeoRepository by lazy {
InAppGeoRepositoryImpl(
context = appContext,
inAppMapper = inAppMapper,
geoSerializationManager = geoSerializationManager,
sessionStorageManager = sessionStorageManager,
gatewayManager = gatewayManager,
)
}
override val inAppRepository: InAppRepository by lazy {
InAppRepositoryImpl(
context = appContext,
sessionStorageManager = sessionStorageManager,
inAppSerializationManager = inAppSerializationManager,
timeProvider = timeProvider
)
}
override val callbackRepository: CallbackRepository by lazy {
CallbackRepositoryImpl(
xmlValidator = xmlValidator,
jsonValidator = jsonValidator,
urlValidator = urlValidator
)
}
override val geoSerializationManager: GeoSerializationManager
get() = GeoSerializationManagerImpl(gson = gson)
override val inAppSerializationManager: InAppSerializationManager
get() = InAppSerializationManagerImpl(gson = gson)
override val inAppFailureTracker: InAppFailureTracker by lazy {
InAppFailureTrackerImpl(
timeProvider = timeProvider,
inAppRepository = inAppRepository,
featureToggleManager = featureToggleManager
)
}
override val inAppSegmentationRepository: InAppSegmentationRepository by lazy {
InAppSegmentationRepositoryImpl(
inAppMapper = inAppMapper,
sessionStorageManager = sessionStorageManager,
gatewayManager = gatewayManager,
)
}
override val inAppTargetingErrorRepository: InAppTargetingErrorRepository by lazy {
InAppTargetingErrorRepositoryImpl(
sessionStorageManager = sessionStorageManager
)
}
override val monitoringValidator: MonitoringValidator by lazy { MonitoringValidator() }
override val inAppValidator: InAppValidator by lazy {
InAppValidatorImpl(
sdkVersionValidator = sdkVersionValidator,
modalWindowValidator = modalWindowValidator,
snackbarValidator = snackbarValidator,
frequencyValidator = frequencyValidator
)
}
override val abTestValidator: ABTestValidator by lazy { ABTestValidator(sdkVersionValidator) }
override val sdkVersionValidator: SdkVersionValidator by lazy { SdkVersionValidator() }
override val jsonValidator: JsonValidator by lazy { JsonValidator() }
override val xmlValidator: XmlValidator by lazy { XmlValidator() }
override val urlValidator: UrlValidator by lazy { UrlValidator() }
override val operationNameValidator: OperationNameValidator
get() = OperationNameValidator()
override val operationValidator: OperationValidator
get() = OperationValidator()
override val ttlParametersValidator: TtlParametersValidator by lazy { TtlParametersValidator() }
override val inAppConfigTtlValidator: InAppConfigTtlValidator by lazy { InAppConfigTtlValidator() }
override val slidingExpirationParametersValidator: TimeSpanPositiveValidator by lazy { TimeSpanPositiveValidator() }
override val mobileConfigSettingsManager: MobileConfigSettingsManagerImpl by lazy {
MobileConfigSettingsManagerImpl(appContext, sessionStorageManager, timeProvider)
}
override val integerPositiveValidator: IntegerPositiveValidator by lazy { IntegerPositiveValidator() }
override val inappSettingsManager: InappSettingsManagerImpl by lazy { InappSettingsManagerImpl(sessionStorageManager) }
override val featureToggleManager: FeatureToggleManager by lazy { FeatureToggleManagerImpl() }
override val maxInappsPerSessionLimitChecker: Checker by lazy { MaxInappsPerSessionLimitChecker(sessionStorageManager) }
override val maxInappsPerDayLimitChecker: Checker by lazy { MaxInappsPerDayLimitChecker(inAppRepository, sessionStorageManager, timeProvider) }
override val minIntervalBetweenShowsLimitChecker: Checker by lazy { MinIntervalBetweenShowsLimitChecker(sessionStorageManager, inAppRepository, timeProvider) }
override val inAppMessageDelayedManager: InAppMessageDelayedManager by lazy {
InAppMessageDelayedManager(timeProvider = timeProvider, dispatcher = Dispatchers.Default)
}
override val inAppMapper: InAppMapper by lazy { InAppMapper() }
override val mindboxNotificationManager: MindboxNotificationManager by lazy {
MindboxNotificationManagerImpl(
context = appContext,
requestPermissionManager = requestPermissionManager
)
}
override val requestPermissionManager: RequestPermissionManager
get() = RequestPermissionManagerImpl()
override val frequencyDataFiller: FrequencyDataFiller
get() = FrequencyDataFiller()
override val frequencyValidator: FrequencyValidator
get() = FrequencyValidator()
override val migrationManager: MigrationManager by lazy {
MigrationManager(appContext)
}
override val timeProvider: SystemTimeProvider by lazy {
SystemTimeProvider()
}
override val gson: Gson by lazy {
GsonBuilder()
.registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
BridgeMessage::class.java,
BridgeMessage.TYPE_FIELD_NAME,
true
).registerSubtype(
BridgeMessage.Request::class.java,
BridgeMessage.TYPE_REQUEST
).registerSubtype(
BridgeMessage.Response::class.java,
BridgeMessage.TYPE_RESPONSE
).registerSubtype(
BridgeMessage.Error::class.java,
BridgeMessage.TYPE_ERROR
)
)
.registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
FrequencyDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
FrequencyDto.FrequencyOnceDto::class.java,
FrequencyDto.FrequencyOnceDto.FREQUENCY_ONCE_JSON_NAME
).registerSubtype(
FrequencyDto.FrequencyPeriodicDto::class.java,
FrequencyDto.FrequencyPeriodicDto.FREQUENCY_PERIODIC_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
PayloadBlankDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
PayloadBlankDto.ModalWindowBlankDto::class.java,
PayloadDto.ModalWindowDto.MODAL_JSON_NAME
).registerSubtype(
PayloadBlankDto.SnackBarBlankDto::class.java,
PayloadDto.SnackbarDto.SNACKBAR_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
ElementDto::class.java,
Constants.TYPE_JSON_NAME, true
).registerSubtype(
ElementDto.CloseButtonElementDto::class.java,
ElementDto.CloseButtonElementDto.CLOSE_BUTTON_ELEMENT_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
BackgroundDto.LayerDto.ImageLayerDto.SourceDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
BackgroundDto.LayerDto.ImageLayerDto.SourceDto.UrlSourceDto::class.java,
BackgroundDto.LayerDto.ImageLayerDto.SourceDto.UrlSourceDto.URL_SOURCE_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
BackgroundDto.LayerDto.ImageLayerDto.ActionDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
RedirectUrlActionDto::class.java,
RedirectUrlActionDto.REDIRECT_URL_ACTION_TYPE_JSON_NAME
).registerSubtype(
PushPermissionActionDto::class.java,
PushPermissionActionDto.PUSH_PERMISSION_TYPE_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
BackgroundDto.LayerDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
BackgroundDto.LayerDto.ImageLayerDto::class.java,
BackgroundDto.LayerDto.ImageLayerDto.IMAGE_TYPE_JSON_NAME
).registerSubtype(
BackgroundDto.LayerDto.WebViewLayerDto::class.java,
BackgroundDto.LayerDto.WebViewLayerDto.WEBVIEW_TYPE_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
PayloadDto::class.java,
Constants.TYPE_JSON_NAME, true
).registerSubtype(
PayloadDto.ModalWindowDto::class.java,
PayloadDto.ModalWindowDto.MODAL_JSON_NAME
).registerSubtype(
PayloadDto.SnackbarDto::class.java,
PayloadDto.SnackbarDto.SNACKBAR_JSON_NAME
)
).registerTypeAdapterFactory(
RuntimeTypeAdapterFactory
.of(
TreeTargetingDto::class.java,
Constants.TYPE_JSON_NAME,
true
).registerSubtype(
TreeTargetingDto.TrueNodeDto::class.java,
TreeTargetingDto.TrueNodeDto.TRUE_JSON_NAME
).registerSubtype(
TreeTargetingDto.IntersectionNodeDto::class.java,
TreeTargetingDto.IntersectionNodeDto.AND_JSON_NAME
).registerSubtype(
TreeTargetingDto.UnionNodeDto::class.java,
TreeTargetingDto.UnionNodeDto.OR_JSON_NAME
).registerSubtype(
TreeTargetingDto.SegmentNodeDto::class.java,
TreeTargetingDto.SegmentNodeDto.SEGMENT_JSON_NAME
).registerSubtype(
TreeTargetingDto.CountryNodeDto::class.java,
TreeTargetingDto.CountryNodeDto.COUNTRY_JSON_NAME
).registerSubtype(
TreeTargetingDto.CityNodeDto::class.java,
TreeTargetingDto.CityNodeDto.CITY_JSON_NAME
).registerSubtype(
TreeTargetingDto.RegionNodeDto::class.java,
TreeTargetingDto.RegionNodeDto.REGION_JSON_NAME
).registerSubtype(
TreeTargetingDto.OperationNodeDto::class.java,
TreeTargetingDto.OperationNodeDto.API_METHOD_CALL_JSON_NAME
).registerSubtype(
TreeTargetingDto.ViewProductCategoryNodeDto::class.java,
TreeTargetingDto.ViewProductCategoryNodeDto.VIEW_PRODUCT_CATEGORY_ID_JSON_NAME
).registerSubtype(
TreeTargetingDto.ViewProductCategoryInNodeDto::class.java,
TreeTargetingDto.ViewProductCategoryInNodeDto.VIEW_PRODUCT_CATEGORY_ID_IN_JSON_NAME
).registerSubtype(
TreeTargetingDto.ViewProductSegmentNodeDto::class.java,
TreeTargetingDto.ViewProductSegmentNodeDto.VIEW_PRODUCT_SEGMENT_JSON_NAME
).registerSubtype(
TreeTargetingDto.ViewProductNodeDto::class.java,
TreeTargetingDto.ViewProductNodeDto.VIEW_PRODUCT_ID_JSON_NAME
).registerSubtype(
TreeTargetingDto.VisitNodeDto::class.java,
TreeTargetingDto.VisitNodeDto.VISIT_JSON_NAME
).registerSubtype(
TreeTargetingDto.PushPermissionDto::class.java,
TreeTargetingDto.PushPermissionDto.PUSH_PERMISSION_JSON_NAME
)
)
.create()
}
}