diff --git a/Zutil.iml b/Zutil.iml index 1fb7c70..176f1f1 100755 --- a/Zutil.iml +++ b/Zutil.iml @@ -8,17 +8,6 @@ - - - - - - - - - - - diff --git a/src/zutil/parser/Templator.java b/src/zutil/parser/Templator.java old mode 100644 new mode 100755 index 24085e5..5d18bc3 --- a/src/zutil/parser/Templator.java +++ b/src/zutil/parser/Templator.java @@ -411,7 +411,10 @@ public class Templator { public void compile(StringBuilder str) { Object obj = getObject(); if(obj != null) - str.append(obj.toString()); + if(obj instanceof Templator) + str.append(((Templator) obj).compile()); + else + str.append(obj.toString()); else str.append("{{").append(tag).append("}}"); } diff --git a/test/zutil/test/TemplatorTest.java b/test/zutil/test/TemplatorTest.java old mode 100644 new mode 100755 index c2fa77f..e17541d --- a/test/zutil/test/TemplatorTest.java +++ b/test/zutil/test/TemplatorTest.java @@ -271,4 +271,20 @@ public class TemplatorTest { assertEquals( "111", tmpl.compile()); } + + + @Test + public void recursiveTemplateorTest(){ + Templator tmpl2 = new Templator( + "{{value1}},{{value2}}"); + tmpl2.set("value1", "sub1"); + tmpl2.set("value2", "sub2"); + Templator tmpl = new Templator( + "{{parent}}:{{child}}"); + tmpl.set("parent", "super"); + tmpl.set("child", tmpl2); + + assertEquals( + "super:sub1,sub2", tmpl.compile()); + } }