Package com.github.mustachejava.codegen

Source Code of com.github.mustachejava.codegen.CodegenMustacheVisitor

package com.github.mustachejava.codegen;

import com.github.mustachejava.*;
import com.github.mustachejava.codes.DefaultMustache;

import java.io.Writer;

public class CodegenMustacheVisitor extends DefaultMustacheVisitor {
  public CodegenMustacheVisitor(DefaultMustacheFactory mf) {
    super(mf);
  }

  @Override
  public Mustache mustache(TemplateContext templateContext) {
    return new DefaultMustache(templateContext, df, list.toArray(new Code[list.size()]), templateContext.file()) {

      private CompiledCodes compiledCodes;

      @Override
      public Writer run(Writer writer, Object[] scopes) {
        if (compiledCodes != null) {
          return compiledCodes.runCodes(writer, scopes);
        }
        return super.run(writer, scopes);
      }

      @Override
      public void setCodes(Code[] newcodes) {
        super.setCodes(newcodes);
        if (newcodes != null) {
          compiledCodes = CodeCompiler.compile(newcodes);
        }
      }
    };
  }
}
TOP

Related Classes of com.github.mustachejava.codegen.CodegenMustacheVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.