From 15ed59d49498a449d6268feca34ce20759e16d21 Mon Sep 17 00:00:00 2001 From: ryounes Date: Mon, 18 Apr 2011 22:23:09 +0000 Subject: [PATCH] Revert changes from r7821 - incomplete refactoring --- .../ext/dump/BaseDumpDirective.java | 39 ++++++++++--------- .../freemarker/ext/dump/DumpDirective.java | 5 +-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java index 282bf6e1b..c26084fc5 100644 --- a/webapp/src/freemarker/ext/dump/BaseDumpDirective.java +++ b/webapp/src/freemarker/ext/dump/BaseDumpDirective.java @@ -41,6 +41,11 @@ import freemarker.template.TemplateScalarModel; import freemarker.template.TemplateSequenceModel; import freemarker.template.utility.DeepUnwrap; +/* TODO + * - Check error messages generated for TemplateModelException-s. If too generic, need to catch, create specific + * error message, and rethrow. + */ + public abstract class BaseDumpDirective implements TemplateDirectiveModel { private static final Log log = LogFactory.getLog(BaseDumpDirective.class); @@ -107,20 +112,16 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { } } - protected Map getTemplateVariableDump(String varName, Environment env) + + protected Map getTemplateVariableData(String varName, Environment env) throws TemplateModelException { - - TemplateHashModel dataModel = env.getDataModel(); - TemplateModel model = dataModel.get(varName); - return getTemplateVariableDump(varName, model); - } - - protected Map getTemplateVariableDump(String varName, TemplateModel model) - throws TemplateModelException { - + Map map = new HashMap(); map.put(Key.NAME.toString(), varName); + TemplateHashModel dataModel = env.getDataModel(); + TemplateModel model = dataModel.get(varName); + // Don't return null if model == null. We still want to send the map to the template. if (model != null) { // TemplateMethodModel and TemplateDirectiveModel objects can only be @@ -132,14 +133,14 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { map.putAll( getTemplateModelData( ( TemplateDirectiveModel)model, varName ) ); } else { - map.putAll(getDump(model)); + map.putAll(getData(model)); } } - return map; + return map; } - - private Map getDump(TemplateModel model) throws TemplateModelException { + + private Map getData(TemplateModel model) throws TemplateModelException { Map map = new HashMap(); // Don't return null if model == null. We still want to send the map to the template. @@ -253,7 +254,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { List> items = new ArrayList>(itemCount); for ( int i = 0; i < itemCount; i++ ) { TemplateModel item = model.get(i); - items.add(getDump(item)); + items.add(getData(item)); } map.put(Key.VALUE.toString(), items); return map; @@ -280,7 +281,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { while (iModel.hasNext()) { String key = iModel.next().toString(); TemplateModel value = model.get(key); - items.put(key, getDump(value)); + items.put(key, getData(value)); } map.put(Key.VALUE.toString(), items); return map; @@ -343,7 +344,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { // The method is available as a property if (keySet.contains(propertyName)) { TemplateModel value = model.get(propertyName); - properties.put(propertyName, getDump(value)); + properties.put(propertyName, getData(value)); continue; } } @@ -397,7 +398,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { TemplateModelIterator iModel = model.iterator(); while (iModel.hasNext()) { TemplateModel m = iModel.next(); - items.add(getDump(m)); + items.add(getData(m)); } map.put(Key.VALUE.toString(), items); return map; @@ -448,7 +449,7 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel { return map; } - protected void dump(String templateName, Map map, Environment env) + protected void dump(String templateName, Map map, String modelName, Environment env) throws TemplateException, IOException { Template template = env.getConfiguration().getTemplate(templateName); diff --git a/webapp/src/freemarker/ext/dump/DumpDirective.java b/webapp/src/freemarker/ext/dump/DumpDirective.java index b4be4595a..8a3730868 100644 --- a/webapp/src/freemarker/ext/dump/DumpDirective.java +++ b/webapp/src/freemarker/ext/dump/DumpDirective.java @@ -30,7 +30,6 @@ public class DumpDirective extends BaseDumpDirective { throw new TemplateModelException( "The dump directive doesn't allow loop variables."); } - if (body != null) { throw new TemplateModelException( "The dump directive doesn't allow nested content."); @@ -44,8 +43,8 @@ public class DumpDirective extends BaseDumpDirective { String varName = ((SimpleScalar)o).getAsString(); Map map = new HashMap(); - map.put("var", getTemplateVariableDump(varName, env)); + map.put("var", getTemplateVariableData(varName, env)); - dump("dumpvar.ftl", map, env); + dump("dumpvar.ftl", map, varName, env); } }