static BlockStmt getKiePMMLTransformationDictionaryVariableDeclaration(final TransformationDictionary transformationDictionary) {
        final MethodDeclaration methodDeclaration =
                TRANSFORMATION_DICTIONARY_TEMPLATE.getMethodsByName(GETKIEPMMLTRANSFORMATIONDICTIONARY).get(0).clone();
        final BlockStmt transformationDictionaryBody =
                methodDeclaration.getBody().orElseThrow(() -> new KiePMMLException(String.format(MISSING_BODY_TEMPLATE,
                                                                                        methodDeclaration)));
        final VariableDeclarator variableDeclarator = getVariableDeclarator(transformationDictionaryBody, TRANSFORMATION_DICTIONARY) .orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_IN_BODY, TRANSFORMATION_DICTIONARY, transformationDictionaryBody)));
        final MethodCallExpr initializer = variableDeclarator.getInitializer()
                .orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_INITIALIZER_TEMPLATE, TRANSFORMATION_DICTIONARY, methodDeclaration)))
                .asMethodCallExpr();
        final BlockStmt toReturn = new BlockStmt();
        if (transformationDictionary.hasDefineFunctions()) {
            NodeList<Expression> defineFunctions = addDefineFunctions(toReturn, transformationDictionary.getDefineFunctions());
            getChainedMethodCallExprFrom("withDefineFunctions", initializer).setArguments(defineFunctions);
        }
        if (transformationDictionary.hasDerivedFields()) {
            NodeList<Expression> derivedFields = addDerivedField(toReturn, transformationDictionary.getDerivedFields());
            getChainedMethodCallExprFrom("withDerivedFields", initializer).setArguments(derivedFields);
        }
        transformationDictionaryBody.getStatements().forEach(toReturn::addStatement);
        return toReturn;
    }
@Test
    void getKiePMMLTransformationDictionaryVariableDeclaration() throws IOException {
        TransformationDictionary transformationDictionary = new TransformationDictionary();
        transformationDictionary.addDefineFunctions(getDefineFunctions());
        transformationDictionary.addDerivedFields(getDerivedFields());

        BlockStmt retrieved =
                KiePMMLTransformationDictionaryFactory.getKiePMMLTransformationDictionaryVariableDeclaration(transformationDictionary);
        String text = getFileContent(TEST_01_SOURCE);
        Statement expected = JavaParserUtils.parseBlock(text);
        assertThat(JavaParserUtils.equalsNode(expected, retrieved)).isTrue();
        List<Class<?>> imports = Arrays.asList(KiePMMLParameterField.class,
                                               KiePMMLConstant.class,
                                               KiePMMLFieldRef.class,
                                               KiePMMLApply.class,
                                               KiePMMLDerivedField.class,
                                               KiePMMLDefineFunction.class,
                                               KiePMMLTransformationDictionary.class,
                                               Arrays.class,
                                               Collections.class);
        commonValidateCompilationWithImports(retrieved, imports);
    }