From 013ef73278d927e540a6c75ac1ec66eeaf23f373 Mon Sep 17 00:00:00 2001 From: ryounes Date: Wed, 13 Apr 2011 20:01:26 +0000 Subject: [PATCH] Add utility method wrap to use a non-default BeansWrapper to wrap an object. --- .../freemarker/FreemarkerHttpServlet.java | 15 +++++++++------ .../freemarker/IndividualController.java | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index bea5ce30d..b1079bda1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -282,20 +282,23 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { return UrlBuilder.getUrl(path); } - protected BeansWrapper getNonDefaultBeansWrapper(int exposureLevel) { + protected TemplateModel wrap(int exposureLevel, Object obj) throws TemplateModelException { + BeansWrapper wrapper = getBeansWrapper(exposureLevel); + return wrapper.wrap(obj); + } + + protected BeansWrapper getBeansWrapper(int exposureLevel) { BeansWrapper wrapper = new DefaultObjectWrapper(); wrapper.setExposureLevel(exposureLevel); return wrapper; } - - private TemplateModel getTagList() { - + + private TemplateModel getTagList() { // For script and stylesheet lists, use an object wrapper that exposes write methods, // instead of the configuration's object wrapper, which doesn't. The templates can // add stylesheets and scripts to the lists by calling their add() methods. - BeansWrapper wrapper = getNonDefaultBeansWrapper(BeansWrapper.EXPOSE_SAFE); try { - return wrapper.wrap(new Tags()); + return wrap(BeansWrapper.EXPOSE_SAFE, new Tags()); } catch (TemplateModelException e) { log.error("Error creating Tags template model"); return null; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java index c4933e432..417294876 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java @@ -133,7 +133,7 @@ public class IndividualController extends FreemarkerHttpServlet { * This is still safe, because we are only putting BaseTemplateModel objects * into the data model: no real data can be modified. */ - body.put("individual", getNonDefaultBeansWrapper(BeansWrapper.EXPOSE_SAFE).wrap(itm)); + body.put("individual", wrap(BeansWrapper.EXPOSE_SAFE, itm)); body.put("headContent", getRdfLinkTag(itm)); String template = getIndividualTemplate(individual, vreq);