com.github.mustachejava.codes.DefaultMustache Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of compiler Show documentation
Show all versions of compiler Show documentation
Implementation of mustache.js for Java
package com.github.mustachejava.codes;
import com.github.mustachejava.Code;
import com.github.mustachejava.DefaultMustacheFactory;
import com.github.mustachejava.Mustache;
import com.github.mustachejava.TemplateContext;
import com.github.mustachejava.util.Node;
import java.io.Writer;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Default Mustache
*/
public class DefaultMustache extends DefaultCode implements Mustache {
private Code[] codes;
private boolean inited = false;
public DefaultMustache(TemplateContext tc, DefaultMustacheFactory df, Code[] codes, String name) {
super(tc, df, null, name, null);
setCodes(codes);
}
@Override
public Code[] getCodes() {
return codes;
}
public Writer run(Writer writer, Object[] scopes) {
if (codes != null) {
for (Code code : codes) {
writer = code.execute(writer, scopes);
}
}
return writer;
}
/**
* Invert this mustache given output text.
*
* @param text
* @return
*/
@Override
public Node invert(String text) {
return invert(new Node(), text, new AtomicInteger(0));
}
@Override
public void setCodes(Code[] newcodes) {
codes = newcodes;
}
@Override
public void identity(Writer writer) {
// No self output at the top level
runIdentity(writer);
}
@Override
public synchronized void init() {
if (!inited) {
inited = true;
super.init();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy