class KiePMMLModelRetriever {

    public static Optional<KiePMMLModel> getFromCommonDataAndTransformationDictionaryAndModel(final DataDictionary dataDictionary,
                                                                                              final TransformationDictionary transformationDictionary,
                                                                                              final Model model,
                                                                                              final Object kBuilder) {
        logger.trace("getFromCommonDataAndTransformationDictionaryAndModel {}", model);
        final PMML_MODEL pmmlMODEL = PMML_MODEL.byName(model.getClass().getSimpleName());
        logger.debug("pmmlModelType {}", pmmlMODEL);
        return getModelImplementationProviderStream(model)
                .map(implementation -> implementation.getKiePMMLModel(dataDictionary, transformationDictionary, model, kBuilder))
                .findFirst();
    }

    private  KiePMMLModelRetriever();

}