All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.neuland.jade4j.template.JadeTemplate Maven / Gradle / Ivy

There is a newer version: 1.3.2
Show newest version
package de.neuland.jade4j.template;

import java.io.Writer;

import de.neuland.jade4j.Jade4J;
import de.neuland.jade4j.Jade4J.Mode;
import de.neuland.jade4j.compiler.Compiler;
import de.neuland.jade4j.exceptions.JadeCompilerException;
import de.neuland.jade4j.expression.ExpressionHandler;
import de.neuland.jade4j.lexer.token.Doctypes;
import de.neuland.jade4j.model.JadeModel;
import de.neuland.jade4j.parser.node.Node;

public class JadeTemplate {

	private boolean prettyPrint = false;
	private Node rootNode;
	private boolean terse = false;
	private boolean xml = false;
	private TemplateLoader templateLoader;
	private ExpressionHandler expressionHandler;
	private String doctypeLine;

	public void process(JadeModel model, Writer writer) throws JadeCompilerException {
		Compiler compiler = new Compiler(rootNode);
		compiler.setPrettyPrint(prettyPrint);
		compiler.setTemplate(this);
		compiler.setExpressionHandler(expressionHandler);
		compiler.compile(model, writer);
	}

	public boolean isPrettyPrint() {
		return prettyPrint;
	}

	public void setPrettyPrint(boolean prettyPrint) {
		this.prettyPrint = prettyPrint;
	}

	public Node getRootNode() {
		return rootNode;
	}

	public void setRootNode(Node rootNode) {
		this.rootNode = rootNode;
	}

	public boolean isTerse() {
		return terse;
	}

	public boolean isXml() {
		return xml;
	}

	public void setTemplateLoader(TemplateLoader templateLoader) {
		this.templateLoader = templateLoader;
	}

	public TemplateLoader getTemplateLoader() {
		return templateLoader;
	}

	public void setDoctype(String name){
		if (name == null) {
			name = "default";
		}
		doctypeLine = Doctypes.get(name);
		if (doctypeLine == null) {
			doctypeLine = "";
		}

		this.terse = "".equals(this.doctypeLine.toLowerCase());
		this.xml = doctypeLine.startsWith("




© 2015 - 2025 Weber Informatics LLC | Privacy Policy