All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ramcosta.composedestinations.codegen.servicelocator.ServiceLocatorAccessor.kt Maven / Gradle / Ivy

package com.ramcosta.composedestinations.codegen.servicelocator

import com.ramcosta.composedestinations.codegen.commons.DestinationWithNavArgsMapper
import com.ramcosta.composedestinations.codegen.facades.CodeOutputStreamMaker
import com.ramcosta.composedestinations.codegen.facades.Logger
import com.ramcosta.composedestinations.codegen.model.CodeGenConfig
import com.ramcosta.composedestinations.codegen.model.Core
import com.ramcosta.composedestinations.codegen.writers.*
import com.ramcosta.composedestinations.codegen.writers.sub.NavArgResolver

internal interface ServiceLocatorAccessor {
    val logger: Logger
    val codeGenerator: CodeOutputStreamMaker
    val core: Core
    val codeGenConfig: CodeGenConfig
}

internal val ServiceLocatorAccessor.customNavTypeWriter get() = CustomNavTypesWriter(
    codeGenerator,
    logger
)

internal val ServiceLocatorAccessor.destinationsWriter get() = DestinationsWriter(
    codeGenerator,
    logger,
    core,
    NavArgResolver()
)

internal val ServiceLocatorAccessor.navGraphsObjectWriter get() = NavGraphsObjectWriter(
    codeGenerator,
    logger,
    codeGenConfig.generateNavGraphs
)

internal val ServiceLocatorAccessor.coreExtensionsWriter get() = CoreExtensionsWriter(
    codeGenerator,
)

internal val ServiceLocatorAccessor.sealedDestinationWriter get() = SealedDestinationWriter(
    codeGenerator,
)

internal val ServiceLocatorAccessor.destinationWithNavArgsMapper get() = DestinationWithNavArgsMapper()




© 2015 - 2025 Weber Informatics LLC | Privacy Policy