Package com.floreysoft.jmte.sample

Source Code of com.floreysoft.jmte.sample.SampleNewlineForeachSeparatorCompiledTemplate

package com.floreysoft.jmte.sample;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import com.floreysoft.jmte.Engine;
import com.floreysoft.jmte.TemplateContext;
import com.floreysoft.jmte.template.AbstractCompiledTemplate;
import com.floreysoft.jmte.token.ForEachToken;
import com.floreysoft.jmte.token.StringToken;

// ${ foreach list item \n}${item.property1}${end}
public class SampleNewlineForeachSeparatorCompiledTemplate extends
    AbstractCompiledTemplate {

  public SampleNewlineForeachSeparatorCompiledTemplate(Engine engine) {
    super(engine);
  }

  @Override
  public Set<String> getUsedVariables() {
    Set<String> usedVariables = new HashSet<String>();
    usedVariables.add("address");
    return usedVariables;
  }

  @Override
  @SuppressWarnings("unchecked")
  protected String transformCompiled(TemplateContext context) {
    StringBuilder buffer = new StringBuilder();

    ForEachToken token1 = new ForEachToken(Arrays
        .asList(new String[] { "list" }), "list", "item", "\n");
    token1.setIterable((Iterable) token1.evaluate(context));

    context.model.enterScope();
    context.push(token1);
    try {
      while (token1.iterator().hasNext()) {
        context.model.put(token1.getVarName(), token1.advance());
        addSpecialVariables(token1, context.model);

        buffer.append(new StringToken(Arrays.asList(new String[] {
            "item", "property1" }), "item.property1")
            .evaluate(context));

        if (!token1.isLast()) {
          buffer.append(token1.getSeparator());
        }
      }
    } finally {
      context.model.exitScope();
      context.pop();
    }
    return buffer.toString();
  }

}
TOP

Related Classes of com.floreysoft.jmte.sample.SampleNewlineForeachSeparatorCompiledTemplate

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.