Tag Cache

Note:

Code Result
<div>
    <h3>Fixed tag without cache</h3>
    <p>Fixed: @testTagCacheTag(val)</p>
</div>
<div>
    <h3>Variable tag without cache</h3>
    <p>Variable: @testTagCacheTag(var)</p>
</div>

Fixed tag without cache

Fixed:

Value is : 100, timestamp: 1503228781456

Variable tag without cache

Variable:

Value is : 1735257860, timestamp: 1503228781456

<div>
    <h3>Fixed tag cache without parameter</h3>
    <p>Fixed: @testTagCacheTag(val).cache()</p>
</div>
<div>
    <h3>Variable tag cache without parameter</h3>
    <p>Variable: @testTagCacheTag(var).cache()</p>
</div>

Fixed tag cache without parameter

Fixed:

Value is : 100, timestamp: 1503228781456

Variable tag cache without parameter

Variable:

Value is : 1735257860, timestamp: 1503228781456

<div>
    <h3>Fixed tag cache for "2s"</h3>
    <p>Fixed: @testTagCacheTag2(val).cache("2s")</p>
</div>
<div>
    <h3>Variable tag cache for "2s"</h3>
    <p>Variable: @testTagCacheTag2(var).cache("2s")</p>
</div>

Fixed tag cache for "2s"

Fixed:

Value is : 100, timestamp: 1503228781457

Variable tag cache for "2s"

Variable:

Value is : 1735257860, timestamp: 1503228781457

<div>
    <h3>Fixed tag with body no cache</h3>
    <p>Fixed: @testTagCacheTag2(val) {
        <b>Random int: @(new Random().nextInt())</b>
    }</p>
</div>
<div>
    <h3>Variable tag with body no cache</h3>
    <p>Variable: @testTagCacheTag2(var) {
        <b>Random int: @(new Random().nextInt())</b>
    }</p>
</div>

Fixed tag with body no cache

Fixed:

Value is : 100, timestamp: 1503228781457

Random int: -968843861

Variable tag with body no cache

Variable:

Value is : 1735257860, timestamp: 1503228781457

Random int: 398295975

<div>
    <h3>Fixed tag with body cache no parameter</h3>
    <p>Fixed: @testTagCacheTag2(val).cache() {
        <b>[@@testTagCacheTag2(val).cache()]random int: @(new Random().nextInt())</b>
    }</p>
</div>
<div>
    <h3>Variable tag with body cache no parameter</h3>
    <p>Variable: @testTagCacheTag2(var).cache() {
        <b>[@@testTagCacheTag2(var).cache()]random int: @(new Random().nextInt())</b>
    }</p>
</div>

Fixed tag with body cache no parameter

Fixed:

Value is : 100, timestamp: 1503228781457

[@testTagCacheTag2(val).cache()]random int: 1964593183

Variable tag with body cache no parameter

Variable:

Value is : 1735257860, timestamp: 1503228781458

[@testTagCacheTag2(var).cache()]random int: 739480284

<div>
    <h3>Tag with body cache for "3s"</h3>
    <p>Fixed: @testTagCacheTag(val).cache("3s") {
        [@@testTagCacheTag(val).cache("3s")]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Fixed tag with body cache for 3 seconds</h3>
    <p>Fixed: @testTagCacheTag2(val).cache(3) {
        [@@testTagCacheTag2(val).cache(3)]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Fixed tag with body cache for "3s" using variable as additional cache parameter</h3>
    <p>Fixed: @testTagCacheTag2(val).cache(3, System.currentTimeMillis()) {
        [@@testTagCacheTag2(val).cache(3, System.currentTimeMillis())]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Variable tag with body cache for "3s"</h3>
    <p>Variable: @testTagCacheTag2(var).cache("3s") {
        [@@testTagCacheTag2(var).cache("3s")]
        Random int: @(new Random().nextInt())</p>
    }
</div>

Tag with body cache for "3s"

Fixed:

Value is : 100, timestamp: 1503228781458

[@testTagCacheTag(val).cache("3s")] Random int: 1326787696

Fixed tag with body cache for 3 seconds

Fixed:

Value is : 100, timestamp: 1503228781458

[@testTagCacheTag2(val).cache(3)] Random int: 957757860

Fixed tag with body cache for "3s" using variable as additional cache parameter

Fixed:

Value is : 100, timestamp: 1503228781459

[@testTagCacheTag2(val).cache(3, System.currentTimeMillis())] Random int: -1734130388

Variable tag with body cache for "3s"

Variable:

Value is : 1735257860, timestamp: 1503228781459

[@testTagCacheTag2(var).cache("3s")] Random int: 191209620

Template Source
@args int val, int var
@extends("main")
@set(title:"Tag Cache")

<div>
    <h2>@get("title") <small></small></h2>
</div>

<div>
    <p>Note:</p>
    <ul>
        <li>int val is fixed across requests</li>
        <li>int val is changed upon each request</li>
    </ul>
</div>

<table class="table code-section">
    <thead>
        <th class="span6">Code</th>
        <th>Result</th>
    </thead>
    <tbody>
        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Fixed tag without cache</h3>
    <p>Fixed: @testTagCacheTag(val)</p>
</div>
<div>
    <h3>Variable tag without cache</h3>
    <p>Variable: @testTagCacheTag(var)</p>
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Fixed tag without cache</h3>
                    <p>Fixed: @testTagCacheTag(val)</p>
                </div>
                <div>
                    <h3>Variable tag without cache</h3>
                    <p>Variable: @testTagCacheTag(var)</p>
                </div>
            </td>
        </tr>

        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Fixed tag cache without parameter</h3>
    <p>Fixed: @testTagCacheTag(val).cache()</p>
</div>
<div>
    <h3>Variable tag cache without parameter</h3>
    <p>Variable: @testTagCacheTag(var).cache()</p>
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Fixed tag cache without parameter</h3>
                    <p>Fixed: @testTagCacheTag(val).cache()</p>
                </div>
                <div>
                    <h3>Variable tag cache without parameter</h3>
                    <p>Variable: @testTagCacheTag(var).cache()</p>
                </div>
            </td>
        </tr>

        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Fixed tag cache for "2s"</h3>
    <p>Fixed: @testTagCacheTag2(val).cache("2s")</p>
</div>
<div>
    <h3>Variable tag cache for "2s"</h3>
    <p>Variable: @testTagCacheTag2(var).cache("2s")</p>
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Fixed tag cache for "2s"</h3>
                    <p>Fixed: @testTagCacheTag2(val).cache("2s")</p>
                </div>
                <div>
                    <h3>Variable tag cache for "2s"</h3>
                    <p>Variable: @testTagCacheTag2(var).cache("2s")</p>
                </div>
            </td>
        </tr>

        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Fixed tag with body no cache</h3>
    <p>Fixed: @testTagCacheTag2(val) {
        <b>Random int: @(new Random().nextInt())</b>
    }</p>
</div>
<div>
    <h3>Variable tag with body no cache</h3>
    <p>Variable: @testTagCacheTag2(var) {
        <b>Random int: @(new Random().nextInt())</b>
    }</p>
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Fixed tag with body no cache</h3>
                    <p>Fixed: @testTagCacheTag2(val) {
                        <b>Random int: @(new Random().nextInt())</b>
                        }</p>
                </div>
                <div>
                    <h3>Variable tag with body no cache</h3>
                    <p>Variable: @testTagCacheTag2(var) {
                        <b>Random int: @(new Random().nextInt())</b>
                        }</p>
                </div>
            </td>
        </tr>

        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Fixed tag with body cache no parameter</h3>
    <p>Fixed: @testTagCacheTag2(val).cache() {
        <b>[@@testTagCacheTag2(val).cache()]random int: @(new Random().nextInt())</b>
    }</p>
</div>
<div>
    <h3>Variable tag with body cache no parameter</h3>
    <p>Variable: @testTagCacheTag2(var).cache() {
        <b>[@@testTagCacheTag2(var).cache()]random int: @(new Random().nextInt())</b>
    }</p>
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Fixed tag with body cache no parameter</h3>
                    <p>Fixed: @testTagCacheTag2(val).cache() {
                        <b>[@@testTagCacheTag2(val).cache()]random int: @(new Random().nextInt())</b>
                        }</p>
                </div>
                <div>
                    <h3>Variable tag with body cache no parameter</h3>
                    <p>Variable: @testTagCacheTag2(var).cache() {
                        <b>[@@testTagCacheTag2(var).cache()]random int: @(new Random().nextInt())</b>
                        }</p>
                </div>
            </td>
        </tr>

        <tr>
            <td>
                <pre class="prettyprint linenums">@verbatim(){<div>
    <h3>Tag with body cache for "3s"</h3>
    <p>Fixed: @testTagCacheTag(val).cache("3s") {
        [@@testTagCacheTag(val).cache("3s")]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Fixed tag with body cache for 3 seconds</h3>
    <p>Fixed: @testTagCacheTag2(val).cache(3) {
        [@@testTagCacheTag2(val).cache(3)]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Fixed tag with body cache for "3s" using variable as additional cache parameter</h3>
    <p>Fixed: @testTagCacheTag2(val).cache(3, System.currentTimeMillis()) {
        [@@testTagCacheTag2(val).cache(3, System.currentTimeMillis())]
        Random int: @(new Random().nextInt())</p>
    }
</div>
<div>
    <h3>Variable tag with body cache for "3s"</h3>
    <p>Variable: @testTagCacheTag2(var).cache("3s") {
        [@@testTagCacheTag2(var).cache("3s")]
        Random int: @(new Random().nextInt())</p>
    }
</div>}</pre>
            </td>
            <td>
                <div>
                    <h3>Tag with body cache for "3s"</h3>
                    <p>Fixed: @testTagCacheTag(val).cache("3s") {
                        [@@testTagCacheTag(val).cache("3s")]
                        Random int: @(new Random().nextInt())</p>
                    }
                </div>
                <div>
                    <h3>Fixed tag with body cache for 3 seconds</h3>
                    <p>Fixed: @testTagCacheTag2(val).cache(3) {
                        [@@testTagCacheTag2(val).cache(3)]
                        Random int: @(new Random().nextInt())</p>
                    }
                </div>
                <div>
                    <h3>Fixed tag with body cache for "3s" using variable as additional cache parameter</h3>
                    <p>Fixed: @testTagCacheTag2(val).cache(3, System.currentTimeMillis()) {
                        [@@testTagCacheTag2(val).cache(3, System.currentTimeMillis())]
                        Random int: @(new Random().nextInt())</p>
                    }
                </div>
                <div>
                    <h3>Variable tag with body cache for "3s"</h3>
                    <p>Variable: @testTagCacheTag2(var).cache("3s") {
                        [@@testTagCacheTag2(var).cache("3s")]
                        Random int: @(new Random().nextInt())</p>
                    }
                </div>
            </td>
        </tr>
    </tbody>
</table>


@include(tmpl_src)

Java Source (Rythm Generated)
import play.templates.JavaExtensions;
import controllers.*;
import models.*;
import java.util.*;
import java.io.*;

public class app_rythm_Demo_testTagCache_html__R_T_C__ extends app_rythm_main_html__R_T_C__ {//<extended_resource_key>/app/rythm/main.html</extended_resource_key>

	@Override public java.lang.String getName() {
		return "Demo.testTagCache";
	}

	@Override protected void setup() {
		if (val == null) {val=(Integer)_get("val");}
		if (var == null) {var=(Integer)_get("var");}
		if (flash == null) {flash=(play.mvc.Scope.Flash)_get("flash");}
		if (error_index == null) {error_index=(Integer)_get("error_index");}
		if (error == null) {error=(play.data.validation.Error)_get("error");}
		if (params == null) {params=(play.mvc.Scope.Params)_get("params");}
		if (lang == null) {lang=(java.lang.String)_get("lang");}
		if (messages == null) {messages=(play.i18n.Messages)_get("messages");}
		if (error_isFirst == null) {error_isFirst=(Boolean)_get("error_isFirst");}
		if (errors == null) {errors=(java.util.List<play.data.validation.Error>)_get("errors");}
		if (error_isLast == null) {error_isLast=(Boolean)_get("error_isLast");}
		if (session == null) {session=(play.mvc.Scope.Session)_get("session");}
		if (request == null) {request=(play.mvc.Http.Request)_get("request");}
		if (_rythmPlugin == null) {_rythmPlugin=(com.greenlaw110.rythm.play.RythmPlugin)_get("_rythmPlugin");}
		if (_response_encoding == null) {_response_encoding=(java.lang.String)_get("_response_encoding");}
		if (_renderArgs == null) {_renderArgs=(play.mvc.Scope.RenderArgs)_get("_renderArgs");}
		if (_rythm == null) {_rythm=(com.greenlaw110.rythm.RythmEngine)_get("_rythm");}
		if (error_parity == null) {error_parity=(java.lang.String)_get("error_parity");}
		if (_play == null) {_play=(play.Play)_get("_play");}
	}

	protected Integer val=0;
	protected Integer var=0;
	protected play.mvc.Scope.Flash flash=null;
	protected Integer error_index=0;
	protected play.data.validation.Error error=null;
	protected play.mvc.Scope.Params params=null;
	protected java.lang.String lang=null;
	protected play.i18n.Messages messages=null;
	protected Boolean error_isFirst=false;
	protected java.util.List<play.data.validation.Error> errors=null;
	protected Boolean error_isLast=false;
	protected play.mvc.Scope.Session session=null;
	protected play.mvc.Http.Request request=null;
	protected com.greenlaw110.rythm.play.RythmPlugin _rythmPlugin=null;
	protected java.lang.String _response_encoding=null;
	protected play.mvc.Scope.RenderArgs _renderArgs=null;
	protected com.greenlaw110.rythm.RythmEngine _rythm=null;
	protected java.lang.String error_parity=null;
	protected play.Play _play=null;

	@SuppressWarnings("unchecked") public void setRenderArgs(java.util.Map<String, Object> args) {
		if (null != args && args.containsKey("val")) this.val=(Integer)args.get("val");
		if (null != args && args.containsKey("var")) this.var=(Integer)args.get("var");
		if (null != args && args.containsKey("flash")) this.flash=(play.mvc.Scope.Flash)args.get("flash");
		if (null != args && args.containsKey("error_index")) this.error_index=(Integer)args.get("error_index");
		if (null != args && args.containsKey("error")) this.error=(play.data.validation.Error)args.get("error");
		if (null != args && args.containsKey("params")) this.params=(play.mvc.Scope.Params)args.get("params");
		if (null != args && args.containsKey("lang")) this.lang=(java.lang.String)args.get("lang");
		if (null != args && args.containsKey("messages")) this.messages=(play.i18n.Messages)args.get("messages");
		if (null != args && args.containsKey("error_isFirst")) this.error_isFirst=(Boolean)args.get("error_isFirst");
		if (null != args && args.containsKey("errors")) this.errors=(java.util.List<play.data.validation.Error>)args.get("errors");
		if (null != args && args.containsKey("error_isLast")) this.error_isLast=(Boolean)args.get("error_isLast");
		if (null != args && args.containsKey("session")) this.session=(play.mvc.Scope.Session)args.get("session");
		if (null != args && args.containsKey("request")) this.request=(play.mvc.Http.Request)args.get("request");
		if (null != args && args.containsKey("_rythmPlugin")) this._rythmPlugin=(com.greenlaw110.rythm.play.RythmPlugin)args.get("_rythmPlugin");
		if (null != args && args.containsKey("_response_encoding")) this._response_encoding=(java.lang.String)args.get("_response_encoding");
		if (null != args && args.containsKey("_renderArgs")) this._renderArgs=(play.mvc.Scope.RenderArgs)args.get("_renderArgs");
		if (null != args && args.containsKey("_rythm")) this._rythm=(com.greenlaw110.rythm.RythmEngine)args.get("_rythm");
		if (null != args && args.containsKey("error_parity")) this.error_parity=(java.lang.String)args.get("error_parity");
		if (null != args && args.containsKey("_play")) this._play=(play.Play)args.get("_play");
		super.setRenderArgs(args);
	}

	@SuppressWarnings("unchecked") public void setRenderArgs(Object... args) {
		int _p = 0, l = args.length;
		if (_p < l) { Object v = args[_p++]; boolean isString = ("java.lang.String".equals("Integer") || "String".equals("Integer")); val = (Integer)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p < l) { Object v = args[_p++]; boolean isString = ("java.lang.String".equals("Integer") || "String".equals("Integer")); var = (Integer)(isString ? (null == v ? "" : v.toString()) : v); }
	}

	@SuppressWarnings("unchecked") @Override public void setRenderArg(String name, Object arg) {
		if ("val".equals(name)) this.val=(Integer)arg;
		if ("var".equals(name)) this.var=(Integer)arg;
		if ("flash".equals(name)) this.flash=(play.mvc.Scope.Flash)arg;
		if ("error_index".equals(name)) this.error_index=(Integer)arg;
		if ("error".equals(name)) this.error=(play.data.validation.Error)arg;
		if ("params".equals(name)) this.params=(play.mvc.Scope.Params)arg;
		if ("lang".equals(name)) this.lang=(java.lang.String)arg;
		if ("messages".equals(name)) this.messages=(play.i18n.Messages)arg;
		if ("error_isFirst".equals(name)) this.error_isFirst=(Boolean)arg;
		if ("errors".equals(name)) this.errors=(java.util.List<play.data.validation.Error>)arg;
		if ("error_isLast".equals(name)) this.error_isLast=(Boolean)arg;
		if ("session".equals(name)) this.session=(play.mvc.Scope.Session)arg;
		if ("request".equals(name)) this.request=(play.mvc.Http.Request)arg;
		if ("_rythmPlugin".equals(name)) this._rythmPlugin=(com.greenlaw110.rythm.play.RythmPlugin)arg;
		if ("_response_encoding".equals(name)) this._response_encoding=(java.lang.String)arg;
		if ("_renderArgs".equals(name)) this._renderArgs=(play.mvc.Scope.RenderArgs)arg;
		if ("_rythm".equals(name)) this._rythm=(com.greenlaw110.rythm.RythmEngine)arg;
		if ("error_parity".equals(name)) this.error_parity=(java.lang.String)arg;
		if ("_play".equals(name)) this._play=(play.Play)arg;
		super.setRenderArg(name, arg);
	}

	@SuppressWarnings("unchecked") public void setRenderArg(int pos, Object arg) {
		int _p = 0;
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("Integer") || "String".equals("Integer")); val = (Integer)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("Integer") || "String".equals("Integer")); var = (Integer)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.mvc.Scope.Flash") || "String".equals("play.mvc.Scope.Flash")); flash = (play.mvc.Scope.Flash)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("Integer") || "String".equals("Integer")); error_index = (Integer)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.data.validation.Error") || "String".equals("play.data.validation.Error")); error = (play.data.validation.Error)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.mvc.Scope.Params") || "String".equals("play.mvc.Scope.Params")); params = (play.mvc.Scope.Params)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("java.lang.String") || "String".equals("java.lang.String")); lang = (java.lang.String)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.i18n.Messages") || "String".equals("play.i18n.Messages")); messages = (play.i18n.Messages)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("Boolean") || "String".equals("Boolean")); error_isFirst = (Boolean)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("java.util.List<play.data.validation.Error>") || "String".equals("java.util.List<play.data.validation.Error>")); errors = (java.util.List<play.data.validation.Error>)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("Boolean") || "String".equals("Boolean")); error_isLast = (Boolean)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.mvc.Scope.Session") || "String".equals("play.mvc.Scope.Session")); session = (play.mvc.Scope.Session)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.mvc.Http.Request") || "String".equals("play.mvc.Http.Request")); request = (play.mvc.Http.Request)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("com.greenlaw110.rythm.play.RythmPlugin") || "String".equals("com.greenlaw110.rythm.play.RythmPlugin")); _rythmPlugin = (com.greenlaw110.rythm.play.RythmPlugin)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("java.lang.String") || "String".equals("java.lang.String")); _response_encoding = (java.lang.String)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.mvc.Scope.RenderArgs") || "String".equals("play.mvc.Scope.RenderArgs")); _renderArgs = (play.mvc.Scope.RenderArgs)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("com.greenlaw110.rythm.RythmEngine") || "String".equals("com.greenlaw110.rythm.RythmEngine")); _rythm = (com.greenlaw110.rythm.RythmEngine)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("java.lang.String") || "String".equals("java.lang.String")); error_parity = (java.lang.String)(isString ? (null == v ? "" : v.toString()) : v); }
		if (_p++ == pos) { Object v = arg; boolean isString = ("java.lang.String".equals("play.Play") || "String".equals("play.Play")); _play = (play.Play)(isString ? (null == v ? "" : v.toString()) : v); }
		if(0 == pos) setRenderArg("arg", arg);
	}



    protected String _msg(String key, Object ... params) {return play.i18n.Messages.get(key, params);}
    protected String _url(String action, Object... params) {return _url(false, action, params);}
   protected String _url(boolean isAbsolute, String action, Object... params) {
       com.greenlaw110.rythm.internal.compiler.TemplateClass tc = getTemplateClass(true);
       boolean escapeXML = (!tc.isStringTemplate() && tc.templateResource.getKey().toString().endsWith(".xml"));
       return new com.greenlaw110.rythm.play.utils.ActionBridge(isAbsolute, escapeXML).invokeMethod(action, params).toString();
   }


	@Override public com.greenlaw110.rythm.utils.TextBuilder build(){
		out().ensureCapacity(7528);

_setRenderProperty("title","Tag Cache");p("\n\n<div>\n    <h2>"); //line: 6

p(_getRenderProperty("title", null));p(" <small></small></h2>\n</div>\n\n<div>\n    <p>Note:</p>\n    <ul>\n        <li>int val is fixed across requests</li>\n        <li>int val is changed upon each request</li>\n    </ul>\n</div>\n\n<table class=\"table code-section\">\n    <thead>\n        <th class=\"span6\">Code</th>\n        <th>Result</th>\n    </thead>\n    <tbody>\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 25
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Fixed tag without cache</h3>\n    <p>Fixed: @testTagCacheTag(val)</p>\n</div>\n<div>\n    <h3>Variable tag without cache</h3>\n    <p>Variable: @testTagCacheTag(var)</p>\n</div>")); //line: 32
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Fixed tag without cache</h3>\n                    <p>Fixed: "); //line: 37
{ //line: 37
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 37
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 37
	_pl.add("",val); //line: 37
		_invokeTag("testTagCacheTag", _pl, false); //line: 37
} //line: 37
p("</p>\n                </div>\n                <div>\n                    <h3>Variable tag without cache</h3>\n                    <p>Variable: "); //line: 41
{ //line: 41
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 41
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 41
	_pl.add("",var); //line: 41
		_invokeTag("testTagCacheTag", _pl, false); //line: 41
} //line: 41
p("</p>\n                </div>\n            </td>\n        </tr>\n\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 48
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Fixed tag cache without parameter</h3>\n    <p>Fixed: @testTagCacheTag(val).cache()</p>\n</div>\n<div>\n    <h3>Variable tag cache without parameter</h3>\n    <p>Variable: @testTagCacheTag(var).cache()</p>\n</div>")); //line: 55
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Fixed tag cache without parameter</h3>\n                    <p>Fixed: "); //line: 60
{ //line: 60
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 60
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 60
	_pl.add("",val); //line: 60
	Object _r_s = null; //line: 60
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 60
	_r_s = _engine().cached("f55d2237-9cc9-393e-9ec9-acd232861cb2", _plUUID); //line: 60
	if (null == _r_s) { //line: 60
		StringBuilder sbOld = getOut(); //line: 60
		StringBuilder sbNew = new StringBuilder(); //line: 60
		setSelfOut(sbNew); //line: 60
		_invokeTag("testTagCacheTag", _pl, false); //line: 60
		_r_s = sbNew.toString(); //line: 60
		setSelfOut(sbOld); //line: 60
		_engine().cache("f55d2237-9cc9-393e-9ec9-acd232861cb2", _r_s, null, _plUUID); //line: 60
	} //line: 60
	p(_r_s); //line: 60
} //line: 60
p("</p>\n                </div>\n                <div>\n                    <h3>Variable tag cache without parameter</h3>\n                    <p>Variable: "); //line: 64
{ //line: 64
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 64
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 64
	_pl.add("",var); //line: 64
	Object _r_s = null; //line: 64
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 64
	_r_s = _engine().cached("f55d2237-9cc9-393e-9ec9-acd232861cb2", _plUUID); //line: 64
	if (null == _r_s) { //line: 64
		StringBuilder sbOld = getOut(); //line: 64
		StringBuilder sbNew = new StringBuilder(); //line: 64
		setSelfOut(sbNew); //line: 64
		_invokeTag("testTagCacheTag", _pl, false); //line: 64
		_r_s = sbNew.toString(); //line: 64
		setSelfOut(sbOld); //line: 64
		_engine().cache("f55d2237-9cc9-393e-9ec9-acd232861cb2", _r_s, null, _plUUID); //line: 64
	} //line: 64
	p(_r_s); //line: 64
} //line: 64
p("</p>\n                </div>\n            </td>\n        </tr>\n\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 71
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Fixed tag cache for \"2s\"</h3>\n    <p>Fixed: @testTagCacheTag2(val).cache(\"2s\")</p>\n</div>\n<div>\n    <h3>Variable tag cache for \"2s\"</h3>\n    <p>Variable: @testTagCacheTag2(var).cache(\"2s\")</p>\n</div>")); //line: 78
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Fixed tag cache for \"2s\"</h3>\n                    <p>Fixed: "); //line: 83
{ //line: 83
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 83
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 83
	_pl.add("",val); //line: 83
	Object _r_s = null; //line: 83
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 83
	_r_s = _engine().cached("80dc1f13-6e57-3172-9093-191a9435293d", _plUUID); //line: 83
	if (null == _r_s) { //line: 83
		StringBuilder sbOld = getOut(); //line: 83
		StringBuilder sbNew = new StringBuilder(); //line: 83
		setSelfOut(sbNew); //line: 83
		_invokeTag("testTagCacheTag2", _pl, false); //line: 83
		_r_s = sbNew.toString(); //line: 83
		setSelfOut(sbOld); //line: 83
		_engine().cache("80dc1f13-6e57-3172-9093-191a9435293d", _r_s, "2s", _plUUID); //line: 83
	} //line: 83
	p(_r_s); //line: 83
} //line: 83
p("</p>\n                </div>\n                <div>\n                    <h3>Variable tag cache for \"2s\"</h3>\n                    <p>Variable: "); //line: 87
{ //line: 87
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 87
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 87
	_pl.add("",var); //line: 87
	Object _r_s = null; //line: 87
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 87
	_r_s = _engine().cached("80dc1f13-6e57-3172-9093-191a9435293d", _plUUID); //line: 87
	if (null == _r_s) { //line: 87
		StringBuilder sbOld = getOut(); //line: 87
		StringBuilder sbNew = new StringBuilder(); //line: 87
		setSelfOut(sbNew); //line: 87
		_invokeTag("testTagCacheTag2", _pl, false); //line: 87
		_r_s = sbNew.toString(); //line: 87
		setSelfOut(sbOld); //line: 87
		_engine().cache("80dc1f13-6e57-3172-9093-191a9435293d", _r_s, "2s", _plUUID); //line: 87
	} //line: 87
	p(_r_s); //line: 87
} //line: 87
p("</p>\n                </div>\n            </td>\n        </tr>\n\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 94
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Fixed tag with body no cache</h3>\n    <p>Fixed: @testTagCacheTag2(val) {\n        <b>Random int: @(new Random().nextInt())</b>\n    }</p>\n</div>\n<div>\n    <h3>Variable tag with body no cache</h3>\n    <p>Variable: @testTagCacheTag2(var) {\n        <b>Random int: @(new Random().nextInt())</b>\n    }</p>\n</div>")); //line: 105
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Fixed tag with body no cache</h3>\n                    <p>Fixed: "); //line: 110
{ //line: 110
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 110
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 110
	_pl.add("",val); //line: 110
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 110
			@Override public void setProperty(String name, Object val) { //line: 110
				setRenderArg(name, val); //line: 110
			} //line: 110
			@Override public Object getProperty(String name) { //line: 110
				return getRenderArg(name);  //line: 110
			} //line: 110
			@Override protected void setBodyArgByName(String name, Object val) { //line: 110
			} //line: 110
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 110
			} //line: 110
			@Override protected void _call() { //line: 110
p("\n                        <b>Random int: "); //line: 111

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 111
p("</b>\n                        "); //line: 112

		}
	});
} //line: 112
p("</p>\n                </div>\n                <div>\n                    <h3>Variable tag with body no cache</h3>\n                    <p>Variable: "); //line: 116
{ //line: 116
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 116
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 116
	_pl.add("",var); //line: 116
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 116
			@Override public void setProperty(String name, Object val) { //line: 116
				setRenderArg(name, val); //line: 116
			} //line: 116
			@Override public Object getProperty(String name) { //line: 116
				return getRenderArg(name);  //line: 116
			} //line: 116
			@Override protected void setBodyArgByName(String name, Object val) { //line: 116
			} //line: 116
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 116
			} //line: 116
			@Override protected void _call() { //line: 116
p("\n                        <b>Random int: "); //line: 117

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 117
p("</b>\n                        "); //line: 118

		}
	});
} //line: 118
p("</p>\n                </div>\n            </td>\n        </tr>\n\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 125
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Fixed tag with body cache no parameter</h3>\n    <p>Fixed: @testTagCacheTag2(val).cache() {\n        <b>[@@testTagCacheTag2(val).cache()]random int: @(new Random().nextInt())</b>\n    }</p>\n</div>\n<div>\n    <h3>Variable tag with body cache no parameter</h3>\n    <p>Variable: @testTagCacheTag2(var).cache() {\n        <b>[@@testTagCacheTag2(var).cache()]random int: @(new Random().nextInt())</b>\n    }</p>\n</div>")); //line: 136
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Fixed tag with body cache no parameter</h3>\n                    <p>Fixed: "); //line: 141
{ //line: 141
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 141
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 141
	_pl.add("",val); //line: 141
Object _r_s = null; //line: 141
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 141
	_r_s = _engine().cached("83818884-3ec7-3eba-93df-67e95163f4ed", _plUUID); //line: 141
	if (null == _r_s) { //line: 141
		StringBuilder sbOld = getOut(); //line: 141
		StringBuilder sbNew = new StringBuilder(); //line: 141
		setSelfOut(sbNew); //line: 141
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 141
			@Override public void setProperty(String name, Object val) { //line: 141
				setRenderArg(name, val); //line: 141
			} //line: 141
			@Override public Object getProperty(String name) { //line: 141
				return getRenderArg(name);  //line: 141
			} //line: 141
			@Override protected void setBodyArgByName(String name, Object val) { //line: 141
			} //line: 141
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 141
			} //line: 141
			@Override protected void _call() { //line: 141
p("\n                        <b>["); //line: 142
p("@testTagCacheTag2(val).cache()]random int: "); //line: 142

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 142
p("</b>\n                        "); //line: 143
			} //line: 141
		}, false); //line: 141
		_r_s = sbNew.toString(); //line: 141
		setSelfOut(sbOld); //line: 141
		_engine().cache("83818884-3ec7-3eba-93df-67e95163f4ed", _r_s, null, _plUUID); //line: 141
	} //line: 141
	p(_r_s); //line: 141
		} //line: 141
 //line: 143
p("</p>\n                </div>\n                <div>\n                    <h3>Variable tag with body cache no parameter</h3>\n                    <p>Variable: "); //line: 147
{ //line: 147
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 147
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 147
	_pl.add("",var); //line: 147
Object _r_s = null; //line: 147
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 147
	_r_s = _engine().cached("d9dcdc2f-fb73-38bf-847a-5cdb73a94eaa", _plUUID); //line: 147
	if (null == _r_s) { //line: 147
		StringBuilder sbOld = getOut(); //line: 147
		StringBuilder sbNew = new StringBuilder(); //line: 147
		setSelfOut(sbNew); //line: 147
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 147
			@Override public void setProperty(String name, Object val) { //line: 147
				setRenderArg(name, val); //line: 147
			} //line: 147
			@Override public Object getProperty(String name) { //line: 147
				return getRenderArg(name);  //line: 147
			} //line: 147
			@Override protected void setBodyArgByName(String name, Object val) { //line: 147
			} //line: 147
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 147
			} //line: 147
			@Override protected void _call() { //line: 147
p("\n                        <b>["); //line: 148
p("@testTagCacheTag2(var).cache()]random int: "); //line: 148

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 148
p("</b>\n                        "); //line: 149
			} //line: 147
		}, false); //line: 147
		_r_s = sbNew.toString(); //line: 147
		setSelfOut(sbOld); //line: 147
		_engine().cache("d9dcdc2f-fb73-38bf-847a-5cdb73a94eaa", _r_s, null, _plUUID); //line: 147
	} //line: 147
	p(_r_s); //line: 147
		} //line: 147
 //line: 149
p("</p>\n                </div>\n            </td>\n        </tr>\n\n        <tr>\n            <td>\n                <pre class=\"prettyprint linenums\">"); //line: 156
p(com.greenlaw110.rythm.utils.S.escape("<div>\n    <h3>Tag with body cache for \"3s\"</h3>\n    <p>Fixed: @testTagCacheTag(val).cache(\"3s\") {\n        [@@testTagCacheTag(val).cache(\"3s\")]\n        Random int: @(new Random().nextInt())</p>\n    }\n</div>\n<div>\n    <h3>Fixed tag with body cache for 3 seconds</h3>\n    <p>Fixed: @testTagCacheTag2(val).cache(3) {\n        [@@testTagCacheTag2(val).cache(3)]\n        Random int: @(new Random().nextInt())</p>\n    }\n</div>\n<div>\n    <h3>Fixed tag with body cache for \"3s\" using variable as additional cache parameter</h3>\n    <p>Fixed: @testTagCacheTag2(val).cache(3, System.currentTimeMillis()) {\n        [@@testTagCacheTag2(val).cache(3, System.currentTimeMillis())]\n        Random int: @(new Random().nextInt())</p>\n    }\n</div>\n<div>\n    <h3>Variable tag with body cache for \"3s\"</h3>\n    <p>Variable: @testTagCacheTag2(var).cache(\"3s\") {\n        [@@testTagCacheTag2(var).cache(\"3s\")]\n        Random int: @(new Random().nextInt())</p>\n    }\n</div>")); //line: 183
p("</pre>\n            </td>\n            <td>\n                <div>\n                    <h3>Tag with body cache for \"3s\"</h3>\n                    <p>Fixed: "); //line: 188
{ //line: 188
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 188
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 188
	_pl.add("",val); //line: 188
Object _r_s = null; //line: 188
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 188
	_r_s = _engine().cached("70e36319-ade5-34ba-a5d3-5968128d03d4", _plUUID); //line: 188
	if (null == _r_s) { //line: 188
		StringBuilder sbOld = getOut(); //line: 188
		StringBuilder sbNew = new StringBuilder(); //line: 188
		setSelfOut(sbNew); //line: 188
		_invokeTag("testTagCacheTag", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 188
			@Override public void setProperty(String name, Object val) { //line: 188
				setRenderArg(name, val); //line: 188
			} //line: 188
			@Override public Object getProperty(String name) { //line: 188
				return getRenderArg(name);  //line: 188
			} //line: 188
			@Override protected void setBodyArgByName(String name, Object val) { //line: 188
			} //line: 188
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 188
			} //line: 188
			@Override protected void _call() { //line: 188
p("\n                        ["); //line: 189
p("@testTagCacheTag(val).cache(\"3s\")]\n                        Random int: "); //line: 190

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 190
p("</p>\n                    "); //line: 191
			} //line: 188
		}, false); //line: 188
		_r_s = sbNew.toString(); //line: 188
		setSelfOut(sbOld); //line: 188
		_engine().cache("70e36319-ade5-34ba-a5d3-5968128d03d4", _r_s, "3s", _plUUID); //line: 188
	} //line: 188
	p(_r_s); //line: 188
		} //line: 188
 //line: 191
p("\n                </div>\n                <div>\n                    <h3>Fixed tag with body cache for 3 seconds</h3>\n                    <p>Fixed: "); //line: 195
{ //line: 195
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 195
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 195
	_pl.add("",val); //line: 195
Object _r_s = null; //line: 195
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 195
	_r_s = _engine().cached("91731e76-a017-373e-ac4a-da15cd3b6de6", _plUUID); //line: 195
	if (null == _r_s) { //line: 195
		StringBuilder sbOld = getOut(); //line: 195
		StringBuilder sbNew = new StringBuilder(); //line: 195
		setSelfOut(sbNew); //line: 195
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 195
			@Override public void setProperty(String name, Object val) { //line: 195
				setRenderArg(name, val); //line: 195
			} //line: 195
			@Override public Object getProperty(String name) { //line: 195
				return getRenderArg(name);  //line: 195
			} //line: 195
			@Override protected void setBodyArgByName(String name, Object val) { //line: 195
			} //line: 195
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 195
			} //line: 195
			@Override protected void _call() { //line: 195
p("\n                        ["); //line: 196
p("@testTagCacheTag2(val).cache(3)]\n                        Random int: "); //line: 197

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 197
p("</p>\n                    "); //line: 198
			} //line: 195
		}, false); //line: 195
		_r_s = sbNew.toString(); //line: 195
		setSelfOut(sbOld); //line: 195
		_engine().cache("91731e76-a017-373e-ac4a-da15cd3b6de6", _r_s, 3, _plUUID); //line: 195
	} //line: 195
	p(_r_s); //line: 195
		} //line: 195
 //line: 198
p("\n                </div>\n                <div>\n                    <h3>Fixed tag with body cache for \"3s\" using variable as additional cache parameter</h3>\n                    <p>Fixed: "); //line: 202
{ //line: 202
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 202
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 202
	_pl.add("",val); //line: 202
Object _r_s = null; //line: 202
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 202
	_r_s = _engine().cached("a5ee5526-7bcb-3341-afdd-f447d2af5e30", System.currentTimeMillis()); //line: 202
	if (null == _r_s) { //line: 202
		StringBuilder sbOld = getOut(); //line: 202
		StringBuilder sbNew = new StringBuilder(); //line: 202
		setSelfOut(sbNew); //line: 202
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 202
			@Override public void setProperty(String name, Object val) { //line: 202
				setRenderArg(name, val); //line: 202
			} //line: 202
			@Override public Object getProperty(String name) { //line: 202
				return getRenderArg(name);  //line: 202
			} //line: 202
			@Override protected void setBodyArgByName(String name, Object val) { //line: 202
			} //line: 202
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 202
			} //line: 202
			@Override protected void _call() { //line: 202
p("\n                        ["); //line: 203
p("@testTagCacheTag2(val).cache(3, System.currentTimeMillis())]\n                        Random int: "); //line: 204

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 204
p("</p>\n                    "); //line: 205
			} //line: 202
		}, false); //line: 202
		_r_s = sbNew.toString(); //line: 202
		setSelfOut(sbOld); //line: 202
		_engine().cache("a5ee5526-7bcb-3341-afdd-f447d2af5e30", _r_s, 3, System.currentTimeMillis()); //line: 202
	} //line: 202
	p(_r_s); //line: 202
		} //line: 202
 //line: 205
p("\n                </div>\n                <div>\n                    <h3>Variable tag with body cache for \"3s\"</h3>\n                    <p>Variable: "); //line: 209
{ //line: 209
	com.greenlaw110.rythm.runtime.ITag.ParameterList _pl = null;  //line: 209
	_pl = new com.greenlaw110.rythm.runtime.ITag.ParameterList(); //line: 209
	_pl.add("",var); //line: 209
Object _r_s = null; //line: 209
	String _plUUID = null == _pl ? "" : _pl.toUUID(); //line: 209
	_r_s = _engine().cached("b6271f68-442e-3503-92eb-ca8fc13f630a", _plUUID); //line: 209
	if (null == _r_s) { //line: 209
		StringBuilder sbOld = getOut(); //line: 209
		StringBuilder sbNew = new StringBuilder(); //line: 209
		setSelfOut(sbNew); //line: 209
		_invokeTag("testTagCacheTag2", _pl,  new com.greenlaw110.rythm.runtime.ITag.Body(app_rythm_Demo_testTagCache_html__R_T_C__.this) { //line: 209
			@Override public void setProperty(String name, Object val) { //line: 209
				setRenderArg(name, val); //line: 209
			} //line: 209
			@Override public Object getProperty(String name) { //line: 209
				return getRenderArg(name);  //line: 209
			} //line: 209
			@Override protected void setBodyArgByName(String name, Object val) { //line: 209
			} //line: 209
			@Override protected void setBodyArgByPos(int pos, Object val) { //line: 209
			} //line: 209
			@Override protected void _call() { //line: 209
p("\n                        ["); //line: 210
p("@testTagCacheTag2(var).cache(\"3s\")]\n                        Random int: "); //line: 211

try{pe((new Random().nextInt()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 211
p("</p>\n                    "); //line: 212
			} //line: 209
		}, false); //line: 209
		_r_s = sbNew.toString(); //line: 209
		setSelfOut(sbOld); //line: 209
		_engine().cache("b6271f68-442e-3503-92eb-ca8fc13f630a", _r_s, "3s", _plUUID); //line: 209
	} //line: 209
	p(_r_s); //line: 209
		} //line: 209
 //line: 212
p("\n                </div>\n            </td>\n        </tr>\n    </tbody>\n</table>\n\n\n"); //line: 220
 //line: 3

_startSection("tmpl_src");

try{pe((getTemplateClass(false).getTemplateSource()));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 4
p("\n"); //line: 5

_endSection(); //line: 5
p("\n\n"); //line: 7

_startSection("java_src");

try{pe((getTemplateClass(false).javaSource));} catch (RuntimeException e) {handleTemplateExecutionException(e);}  //line: 8
p("\n"); //line: 9

_endSection(); //line: 9
 //line: 221

		return this;
	}

}