package co.smartreceipts.android.workers.reports.pdf.renderer.pages; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; import java.io.IOException; import co.smartreceipts.android.workers.reports.pdf.pdfbox.PdfBoxWriter; import co.smartreceipts.android.workers.reports.pdf.renderer.Renderer; public class SinglePageRenderer extends Renderer { private final Renderer renderer; public SinglePageRenderer(@NonNull Renderer renderer) { this.renderer = Preconditions.checkNotNull(renderer); } @NonNull @Override public Renderer copy() { final Renderer rendererCopy = this.renderer.copy(); final SinglePageRenderer copy = new SinglePageRenderer(rendererCopy); copy.width = this.width; copy.height = this.height; copy.getRenderingConstraints().setConstraints(this.getRenderingConstraints()); copy.getRenderingFormatting().setFormatting(this.getRenderingFormatting()); return copy; } @Override public void measure() throws IOException { renderer.measure(); } @Override public void render(@NonNull PdfBoxWriter writer) throws IOException { writer.newPage(); renderer.render(writer); } }