1 /************************************************************************** 2 * 3 * Copyright (c) 2016-2019 Yawg project contributors. 4 * 5 **************************************************************************/ 6 7 package com.varmateo.yawg.spi; 8 9 import java.io.Writer; 10 11 import com.varmateo.yawg.api.Result; 12 13 14 /** 15 * Layout template for a baked page. 16 */ 17 public interface Template { 18 19 20 /** 21 * Generates the final document from this template. 22 * 23 * @param context Input data for the document content generation 24 * process. 25 * 26 * @param output Sink where the document content is to be written 27 * to. 28 * 29 * @return A result signaling success, or failure. A failure could 30 * be caused during the processing of the template, or writing 31 * into the given {@code Writer}. 32 */ 33 Result<Void> process( 34 TemplateContext context, 35 Writer output); 36 }