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 2010/03/13 14:28:27 UTC
svn commit: r922553 - in /tiles/sandbox/trunk/tiles3/tiles-freemarker/src:
main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
test/java/org/apache/tiles/freemarker/context/
test/java/org/apache/tiles/freemarker/io/
Author: apetrelli
Date: Sat Mar 13 13:28:27 2010
New Revision: 922553
URL: http://svn.apache.org/viewvc?rev=922553&view=rev
Log:
TILESSB-10
Removed useless methods in FreeMarkerUtil.
Added new method "getAsObject".
Removed:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/io/
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java?rev=922553&r1=922552&r2=922553&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java Sat Mar 13 13:28:27 2010
@@ -21,16 +21,8 @@
package org.apache.tiles.freemarker.context;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.apache.tiles.autotag.core.runtime.util.NullWriter;
import org.apache.tiles.freemarker.FreeMarkerTilesException;
-import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
import freemarker.template.TemplateModelException;
import freemarker.template.utility.DeepUnwrap;
@@ -102,80 +94,21 @@ public final class FreeMarkerUtil {
}
/**
- * Sets an attribute in the desired scope.
- *
- * @param env The FreeMarker current environment.
- * @param name The name of the attribute.
- * @param obj The value of the attribute.
- * @param scope The scope. It can be <code>page</code>, <code>request</code>
- * , <code>session</code>, <code>application</code>.
- * @since 2.2.0
- */
- public static void setAttribute(Environment env, String name, Object obj,
- String scope) {
- if (scope == null) {
- scope = "page";
- }
- if ("page".equals(scope)) {
- try {
- TemplateModel model = env.getObjectWrapper().wrap(obj);
- env.setVariable(name, model);
- } catch (TemplateModelException e) {
- throw new FreeMarkerTilesException(
- "Error when wrapping an object", e);
- }
- } else if ("request".equals(scope)) {
- FreemarkerRequestUtil.getRequestHashModel(env).getRequest().setAttribute(name, obj);
- } else if ("session".equals(scope)) {
- FreemarkerRequestUtil.getRequestHashModel(env).getRequest().getSession().setAttribute(
- name, obj);
- } else if ("application".equals(scope)) {
- FreemarkerRequestUtil.getServletContextHashModel(env).getServlet().getServletContext()
- .setAttribute(name, obj);
- }
- }
-
- /**
- * Evaluates the body without rendering it.
- *
- * @param body The body to evaluate.
- * @throws TemplateException If something goes wrong during evaluation.
- * @throws IOException If something goes wrong during writing the result.
- * @since 2.2.0
- */
- public static void evaluateBody(TemplateDirectiveBody body)
- throws TemplateException, IOException {
- if (body != null) {
- NullWriter writer = new NullWriter();
- try {
- body.render(writer);
- } finally {
- writer.close();
- }
- }
- }
-
- /**
- * Renders the body as a string.
+ * Unwraps a TemplateModel to extract an object.
*
- * @param body The body to render.
- * @return The rendered string.
- * @throws TemplateException If something goes wrong during evaluation.
- * @throws IOException If something goes wrong during writing the result.
- * @since 2.2.0
+ * @param model The TemplateModel to unwrap.
+ * @return The unwrapped object.
+ * @since 3.0.0
*/
- public static String renderAsString(TemplateDirectiveBody body)
- throws TemplateException, IOException {
- String bodyString = null;
- if (body != null) {
- StringWriter stringWriter = new StringWriter();
- try {
- body.render(stringWriter);
- } finally {
- stringWriter.close();
+ public static Object getAsObject(TemplateModel model, Object defaultValue) {
+ try {
+ Object retValue = DeepUnwrap.unwrap(model);
+ if (retValue == null) {
+ retValue = defaultValue;
}
- bodyString = stringWriter.toString();
+ return retValue;
+ } catch (TemplateModelException e) {
+ throw new FreeMarkerTilesException("Cannot unwrap a model", e);
}
- return bodyString;
}
}