View Javadoc

1   /*
2    * This file is part of Pease Plate Template Engine.
3    * 
4    * Pease Plate Template Engine is free software: you can redistribute
5    * it and/or modify it under the terms of the GNU Lesser General 
6    * Public License as published by the Free Software Foundation, 
7    * either version 3 of the License, or any later version.
8    * 
9    * Pease Plate Template Engine is distributed in the hope that it 
10   * will be useful, but WITHOUT ANY WARRANTY; without even the implied
11   * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12   * See the GNU Lesser General Public License for more details.
13   * 
14   * You should have received a copy of the GNU Lesser General Public 
15   * License along with Pease Plate Template Engine. If not, see 
16   * <http://www.gnu.org/licenses/>.
17   * 
18   * Copyright (c) 2008 Manfred HANTSCHEL
19   */
20  package org.peaseplate.internal.template;
21  
22  import java.io.IOException;
23  import java.io.Writer;
24  
25  import org.peaseplate.Template;
26  import org.peaseplate.TemplateException;
27  import org.peaseplate.internal.BuildContext;
28  import org.peaseplate.internal.chunk.MacroBlock;
29  
30  public class MacroReference {
31  
32  	private final Template template;
33  	private final MacroBlock macroBlock;
34  	
35  	public MacroReference(Template template, MacroBlock macroBlock) {
36  		super();
37  		
38  		this.template = template;
39  		this.macroBlock = macroBlock;
40  	}
41  
42  	public Template getTemplate() {
43  		return template;
44  	}
45  
46  	public MacroBlock getMacroBlock() {
47  		return macroBlock;
48  	}
49  
50  	public void render(BuildContext context, Writer writer) throws TemplateException, IOException {
51  		context.pushMessages(template.getMessages(template.getEngine()));
52  		
53  		macroBlock.renderBlock(context, writer);
54  		
55  		context.popMessages();
56  	}
57  	
58  }