You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2009/07/30 12:48:11 UTC
svn commit: r799232 - in /tiles/framework/trunk/tiles-core/src:
main/java/org/apache/tiles/definition/pattern/PatternUtil.java
test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
Author: apetrelli
Date: Thu Jul 30 10:48:11 2009
New Revision: 799232
URL: http://svn.apache.org/viewvc?rev=799232&view=rev
Log:
TILES-454
Added null checking and replacing placeholders in cascaded attributes.
Added test cases.
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PatternUtil.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PatternUtil.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PatternUtil.java?rev=799232&r1=799231&r2=799232&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PatternUtil.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PatternUtil.java Thu Jul 30 10:48:11 2009
@@ -67,12 +67,15 @@
nudef.setExtends(replace(d.getExtends(), vars));
nudef.setName(name);
nudef.setPreparer(replace(d.getPreparer(), vars));
- nudef.setTemplateAttribute(replaceVarsInAttribute(d
- .getTemplateAttribute(), vars));
+ Attribute templateAttribute = d.getTemplateAttribute();
+ if (templateAttribute != null) {
+ nudef.setTemplateAttribute(replaceVarsInAttribute(
+ templateAttribute, vars));
+ }
- Set<String> localAttributeNames = d.getLocalAttributeNames();
- if (localAttributeNames != null && !localAttributeNames.isEmpty()) {
- for (String attributeName : localAttributeNames) {
+ Set<String> attributeNames = d.getLocalAttributeNames();
+ if (attributeNames != null && !attributeNames.isEmpty()) {
+ for (String attributeName : attributeNames) {
Attribute attr = d.getLocalAttribute(attributeName);
Attribute nuattr = replaceVarsInAttribute(attr, vars);
@@ -80,6 +83,16 @@
}
}
+ attributeNames = d.getCascadedAttributeNames();
+ if (attributeNames != null && !attributeNames.isEmpty()) {
+ for (String attributeName : attributeNames) {
+ Attribute attr = d.getCascadedAttribute(attributeName);
+ Attribute nuattr = replaceVarsInAttribute(attr, vars);
+
+ nudef.putAttribute(replace(attributeName, vars), nuattr, true);
+ }
+ }
+
return nudef;
}
Modified: tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java?rev=799232&r1=799231&r2=799232&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java (original)
+++ tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java Thu Jul 30 10:48:11 2009
@@ -59,4 +59,45 @@
attribute = nudef.getAttribute("attrib2");
assertEquals("valuevalue2value3", attribute.getValue());
}
+
+ /**
+ * Test method for
+ * {@link PatternUtil#replacePlaceholders(Definition, String, Object[])}.
+ */
+ @Test
+ public void testReplacePlaceholdersNullTemplate() {
+ Map<String, Attribute> attributes = new HashMap<String, Attribute>();
+ attributes.put("attrib1", new Attribute("value{2}"));
+ attributes.put("attrib2", new Attribute("value{2}{3}"));
+ Definition definition = new Definition("definitionName", (Attribute) null, attributes);
+ Definition nudef = PatternUtil.replacePlaceholders(definition, "nudef",
+ "value0", "value1", "value2", "value3");
+ assertEquals("nudef", nudef.getName());
+ assertNull(nudef.getTemplateAttribute());
+ Attribute attribute = nudef.getAttribute("attrib1");
+ assertEquals("valuevalue2", attribute.getValue());
+ attribute = nudef.getAttribute("attrib2");
+ assertEquals("valuevalue2value3", attribute.getValue());
+ }
+
+ /**
+ * Test method for
+ * {@link PatternUtil#replacePlaceholders(Definition, String, Object[])}.
+ */
+ @Test
+ public void testReplacePlaceholdersCascadedAttributes() {
+ Definition definition = new Definition("definitionName", new Attribute(
+ "template{1}"), null);
+ definition.putAttribute("attrib1", new Attribute("value{2}"), true);
+ definition.putAttribute("attrib2", new Attribute("value{2}{3}"), true);
+ Definition nudef = PatternUtil.replacePlaceholders(definition, "nudef",
+ "value0", "value1", "value2", "value3");
+ assertEquals("nudef", nudef.getName());
+ Attribute attribute = nudef.getTemplateAttribute();
+ assertEquals("templatevalue1", attribute.getValue());
+ attribute = nudef.getAttribute("attrib1");
+ assertEquals("valuevalue2", attribute.getValue());
+ attribute = nudef.getAttribute("attrib2");
+ assertEquals("valuevalue2value3", attribute.getValue());
+ }
}