package net.rubygrapefruit.docs.theme;
import net.rubygrapefruit.docs.model.Block;
import net.rubygrapefruit.docs.model.Component;
import net.rubygrapefruit.docs.model.Document;
import net.rubygrapefruit.docs.model.Part;
import net.rubygrapefruit.docs.renderer.BuildableChunk;
import net.rubygrapefruit.docs.renderer.RenderableDocument;
public class SingleChunkBuilder implements RenderableDocumentBuilder {
public void buildDocument(Document source, RenderableDocument target) {
BuildableChunk chunk = target.addChunk();
chunk.setId(source.getId());
addChunks(source, chunk);
}
private void addChunks(Component component, BuildableChunk chunk) {
if (!component.getTitle().isEmpty()) {
chunk.addTitlePage(component);
}
for (Block block : component.getContents()) {
if (block instanceof Part) {
Part part = (Part) block;
addChunks(part, chunk);
} else {
chunk.add(block);
}
}
}
}