blob: 084be3debdf1fd0eb1d65239fde27e8cc6d518d9 [file] [log] [blame]
package org.apache.freemarker.generator.cli.config;
import freemarker.cache.TemplateLoader;
import org.apache.freemarker.generator.base.document.DocumentsSupplier;
import org.apache.freemarker.generator.base.file.PropertiesClassPathSupplier;
import org.apache.freemarker.generator.base.file.PropertiesFileSystemSupplier;
import org.apache.freemarker.generator.base.file.PropertiesSupplier;
import java.util.function.Supplier;
/**
* Convenience methods to create suppliers.
*/
public class Suppliers {
public static ConfigurationSupplier configurationSupplier(Settings settings) {
return new ConfigurationSupplier(settings, templateLoaderSupplier(settings));
}
public static ConfigurationSupplier configurationSupplier(Settings settings, Supplier<TemplateLoader> templateLoader) {
return new ConfigurationSupplier(settings, templateLoader);
}
public static TemplateDirectorySupplier templateDirectorySupplier(String userDefinedTemplateDir) {
return new TemplateDirectorySupplier(userDefinedTemplateDir);
}
public static TemplateLoaderSupplier templateLoaderSupplier(Settings settings) {
return new TemplateLoaderSupplier(settings.getTemplateDirectories());
}
public static ToolsSupplier toolsSupplier(Settings settings) {
return new ToolsSupplier(settings.getConfiguration(), settings.toMap());
}
public static DocumentsSupplier documentsSupplier(Settings settings) {
return new DocumentsSupplier(settings.getSources(),
settings.getInclude(),
settings.getExclude(),
settings.getInputEncoding());
}
public static PropertiesSupplier propertiesSupplier(String fileName) {
return new PropertiesSupplier(
new PropertiesFileSystemSupplier(fileName),
new PropertiesClassPathSupplier(fileName));
}
}