![JAR search and dependency download from the Maven repository](/logo.png)
net.savantly.sprout.module.content.model.webPage.WebPageRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sprout-modules-content Show documentation
Show all versions of sprout-modules-content Show documentation
Provides dynamic content management for the Sprout Platform
The newest version!
package net.savantly.sprout.module.content.model.webPage;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.transaction.Transactional;
import org.springframework.util.Assert;
import freemarker.core.ParseException;
import freemarker.template.Configuration;
import freemarker.template.MalformedTemplateNameException;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateNotFoundException;
import freemarker.template.Version;
import net.savantly.sprout.module.content.model.contentItem.ContentItemRenderingChain;
import net.savantly.sprout.module.content.model.webPageLayout.WebPageLayoutTemplateLoader;
public class WebPageRenderer {
private Configuration configuration;
private ContentItemRenderingChain contentItemRenderer;
public WebPageRenderer(WebPageLayoutTemplateLoader loader, ContentItemRenderingChain contentItemRenderer) throws IOException, TemplateException {
Version incompatibleImprovements = new Version("2.3.26");
this.configuration = new Configuration(incompatibleImprovements);
this.configuration.setTemplateLoader(loader);
this.contentItemRenderer = contentItemRenderer;
}
@Transactional
public String render(WebPage item) throws TemplateNotFoundException,
MalformedTemplateNameException, ParseException, IOException, TemplateException {
Assert.notNull(item, "The WebPage item should not be null");
Assert.notNull(item.getWebPageLayout(), "The WebPageLayout should not be null");
Template template = configuration.getTemplate(item.getWebPageLayout().getId());
StringWriter writer = new StringWriter();
Map> temp = new HashMap<>();
item.getContentItems().stream().forEach((c) -> {
if (!temp.containsKey(c.getPlaceHolderId())) {
temp.put(c.getPlaceHolderId(), new ArrayList());
}
c.getContentItems().stream().forEach((i) -> {
StringWriter ciWriter = new StringWriter();
contentItemRenderer.renderContentItem(i, ciWriter);
temp.get(c.getPlaceHolderId()).add(ciWriter.toString());
});
});
Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy