mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-01 08:48:46 +02:00
ef4c5eb65e
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
40 lines
1.6 KiB
Scala
40 lines
1.6 KiB
Scala
package com.twitter.product_mixer.core.pipeline.product
|
|
|
|
import com.twitter.finagle.stats.StatsReceiver
|
|
import com.twitter.product_mixer.core.model.marshalling.request.Request
|
|
import com.twitter.product_mixer.core.pipeline.PipelineQuery
|
|
import com.twitter.product_mixer.core.pipeline.mixer.MixerPipelineBuilderFactory
|
|
import com.twitter.product_mixer.core.pipeline.recommendation.RecommendationPipelineBuilderFactory
|
|
import com.twitter.product_mixer.core.service.gate_executor.GateExecutor
|
|
import com.twitter.product_mixer.core.service.pipeline_execution_logger.PipelineExecutionLogger
|
|
import com.twitter.product_mixer.core.service.pipeline_executor.PipelineExecutor
|
|
import com.twitter.product_mixer.core.service.pipeline_selector_executor.PipelineSelectorExecutor
|
|
import javax.inject.Inject
|
|
import javax.inject.Singleton
|
|
|
|
@Singleton
|
|
class ProductPipelineBuilderFactory @Inject() (
|
|
gateExecutor: GateExecutor,
|
|
pipelineSelectorExecutor: PipelineSelectorExecutor,
|
|
pipelineExecutor: PipelineExecutor,
|
|
mixerPipelineBuilderFactory: MixerPipelineBuilderFactory,
|
|
recommendationPipelineBuilderFactory: RecommendationPipelineBuilderFactory,
|
|
statsReceiver: StatsReceiver,
|
|
pipelineExecutionLogger: PipelineExecutionLogger) {
|
|
def get[
|
|
TRequest <: Request,
|
|
Query <: PipelineQuery,
|
|
Response
|
|
]: ProductPipelineBuilder[TRequest, Query, Response] = {
|
|
new ProductPipelineBuilder[TRequest, Query, Response](
|
|
gateExecutor,
|
|
pipelineSelectorExecutor,
|
|
pipelineExecutor,
|
|
mixerPipelineBuilderFactory,
|
|
recommendationPipelineBuilderFactory,
|
|
statsReceiver,
|
|
pipelineExecutionLogger
|
|
)
|
|
}
|
|
}
|