![JAR search and dependency download from the Maven repository](/logo.png)
net.savantly.sprout.module.content.model.contentItem.ContentItemRenderingChain 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.contentItem;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
public class ContentItemRenderingChain implements InitializingBean {
@Autowired
private ApplicationContext context;
private List contentItemRenderers = new ArrayList<>();
public void addRenderer(ContentItemRenderer renderer) {
this.contentItemRenderers.add(renderer);
}
private List getRenderersInPriority() {
return Collections.unmodifiableList(this.contentItemRenderers.stream()
.sorted(Comparator.comparing(ContentItemRenderer::getPriority).reversed())
.collect(Collectors.toList()));
}
public void renderContentItem(ContentItemImpl content, StringWriter writer) {
for (ContentItemRenderer contentItemRenderer : getRenderersInPriority()) {
if(contentItemRenderer.render(content, writer)) {
return;
}
}
}
@Override
public void afterPropertiesSet() throws Exception {
Map beans = context.getBeansOfType(ContentItemRenderer.class);
this.contentItemRenderers.addAll(beans.values());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy