public List apply()

in freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/output/DataSourceSeedingOutputGenerator.java [56:82]


    public List<OutputGenerator> apply(OutputGeneratorDefinition outputGeneratorDefinition) {
        Validate.notNull(outputGeneratorDefinition, "outputGeneratorDefinition must not be null");

        final List<OutputGenerator> result = new ArrayList<>();
        final TemplateSourceDefinition templateSourceDefinition = outputGeneratorDefinition.getTemplateSourceDefinition();
        final TemplateOutputDefinition templateOutputDefinition = outputGeneratorDefinition.getTemplateOutputDefinition();
        final Map<String, Object> dataModels = super.dataModels(outputGeneratorDefinition);
        final List<DataSource> dataSources = super.dataSources(settings, outputGeneratorDefinition);
        final List<DataSource> sharedDataSources = Suppliers.sharedDataSourcesSupplier(settings).get();
        final List<DataSource> combinedDataSources = ListUtils.concatenate(dataSources, sharedDataSources);
        final TemplateSource templateSource = TemplateSourceFactory.create(templateSourceDefinition, settings.getTemplateEncoding());
        final DataSourceSeedingOutputMapper outputMapper = outputMapper(outputGeneratorDefinition.getOutputMapper());

        for (DataSource dataSource : combinedDataSources) {
            final TemplateOutput templateOutput = templateOutput(templateOutputDefinition, settings, dataSource, outputMapper);
            final OutputGenerator outputGenerator = new OutputGenerator(
                    templateSource,
                    templateOutput,
                    singletonList(dataSource),
                    dataModels,
                    SeedType.DATASOURCE
            );
            result.add(outputGenerator);
        }

        return result;
    }