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());
+ }
}