update to autotag 1.1
git-svn-id: https://svn.apache.org/repos/asf/tiles/request/trunk@1360333 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 2ee1578..6a43a08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -163,7 +163,7 @@
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-autotag-core-runtime</artifactId>
- <version>1.0.0</version>
+ <version>1.1-SNAPSHOT</version>
<optional>true</optional>
</dependency>
<dependency>
diff --git a/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java b/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java
index 9eabac3..6d18903 100644
--- a/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java
+++ b/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java
@@ -36,7 +36,7 @@
/**
* A Runtime for implementing a Freemarker Template Directive.
*/
-public class FreemarkerAutotagRuntime implements AutotagRuntime, TemplateDirectiveModel {
+public class FreemarkerAutotagRuntime implements AutotagRuntime<Request>, TemplateDirectiveModel {
private Environment env;
private TemplateDirectiveBody body;
@@ -65,7 +65,7 @@
/** {@inheritDoc} */
@Override
- public Object getParameter(String name, Object defaultValue) {
- return FreemarkerUtil.getAsObject((TemplateModel)params.get(name), defaultValue);
+ public <T> T getParameter(String name, Class<T> type, T defaultValue) {
+ return FreemarkerUtil.getAsObject((TemplateModel)params.get(name), type, defaultValue);
}
}
diff --git a/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java b/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java
index 881e511..cbb4b02 100644
--- a/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java
+++ b/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java
@@ -46,11 +46,12 @@
* model, or null if not specified.
* @return The unwrapped object.
*/
- public static Object getAsObject(TemplateModel model, Object defaultValue) {
+ public static <T> T getAsObject(TemplateModel model, Class<T> type, T defaultValue) {
try {
- Object retValue = defaultValue;
+ T retValue = defaultValue;
if (model != null) {
- Object value = DeepUnwrap.unwrap(model);
+ @SuppressWarnings("unchecked")
+ T value = (T) DeepUnwrap.unwrap(model);
if (value != null) {
retValue = value;
}
diff --git a/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java b/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java
index 9a93b21..822d295 100644
--- a/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java
+++ b/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java
@@ -147,10 +147,10 @@
replay(model, params, body);
FreemarkerAutotagRuntime runtime = new FreemarkerAutotagRuntime();
runtime.execute(env, params, new TemplateModel[0], body);
- Object notnullParam = runtime.getParameter("notnullParam", null);
- Object nullParam = runtime.getParameter("nullParam", null);
- Object notnullParamDefault = runtime.getParameter("notnullParam", new Integer(24));
- Object nullParamDefault = runtime.getParameter("nullParam", new Integer(24));
+ Object notnullParam = runtime.getParameter("notnullParam", Object.class, null);
+ Object nullParam = runtime.getParameter("nullParam", Object.class, null);
+ int notnullParamDefault = runtime.getParameter("notnullParam", Integer.class, new Integer(24));
+ int nullParamDefault = runtime.getParameter("nullParam", Integer.class, new Integer(24));
assertEquals(42, notnullParam);
assertEquals(null, nullParam);
assertEquals(42, notnullParamDefault);
diff --git a/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java b/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java
index 1841b23..c8ab971 100644
--- a/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java
+++ b/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java
@@ -62,7 +62,7 @@
new Environment(template, rootDataModel, out);
replay(model);
- assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, new Integer(1)));
+ assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, Integer.class, new Integer(1)));
verify(template, rootDataModel, out, model);
}
@@ -81,7 +81,7 @@
replay(template, rootDataModel, out);
new Environment(template, rootDataModel, out);
- assertEquals(new Integer(1), FreemarkerUtil.getAsObject(null, new Integer(1)));
+ assertEquals(new Integer(1), FreemarkerUtil.getAsObject(null, Integer.class, new Integer(1)));
verify(template, rootDataModel, out);
}
@@ -104,7 +104,7 @@
replay(model);
try {
- assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, new Integer(1)));
+ assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, Integer.class, new Integer(1)));
} finally {
verify(template, rootDataModel, out, model);
}
diff --git a/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java b/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java
index 9b72230..7b710f2 100644
--- a/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java
+++ b/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java
@@ -31,7 +31,7 @@
/**
* A Runtime for implementing JSP tag libraries.
*/
-public class JspAutotagRuntime extends SimpleTagSupport implements AutotagRuntime {
+public class JspAutotagRuntime extends SimpleTagSupport implements AutotagRuntime<Request> {
/** {@inheritDoc} */
@Override
public void doTag() {
@@ -55,7 +55,7 @@
/** {@inheritDoc} */
@Override
- public Object getParameter(String name, Object defaultValue) {
+ public <T> T getParameter(String name, Class<T> type, T defaultValue) {
throw new UnsupportedOperationException("the parameters are injected into the tag itself, no need to fetch them");
}
}
diff --git a/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java b/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java
index 53baf2c..4972054 100644
--- a/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java
+++ b/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java
@@ -94,7 +94,7 @@
runtime.setJspContext(jspContext);
runtime.setParent(parent);
runtime.doTag();
- runtime.getParameter("test", null);
+ runtime.getParameter("test", Object.class, null);
verify(jspBody, jspContext, parent);
}
}
diff --git a/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java b/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java
index 9d7b419..9fafedb 100644
--- a/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java
+++ b/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java
@@ -40,7 +40,7 @@
/**
* A Runtime for implementing Velocity Directives.
*/
-public class VelocityAutotagRuntime extends Directive implements AutotagRuntime {
+public class VelocityAutotagRuntime extends Directive implements AutotagRuntime<Request> {
private InternalContextAdapter context;
private Writer writer;
private Node node;
@@ -70,12 +70,12 @@
/** {@inheritDoc} */
@Override
@SuppressWarnings("unchecked")
- public Object getParameter(String name, Object defaultValue) {
+ public <T> T getParameter(String name, Class<T> type, T defaultValue) {
if (params == null) {
ASTMap astMap = (ASTMap) node.jjtGetChild(0);
params = (Map<String, Object>) astMap.value(context);
}
- Object result = params.get(name);
+ T result = (T) params.get(name);
if (result == null) {
result = defaultValue;
}
diff --git a/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java b/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java
index 526c55d..4673fd9 100644
--- a/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java
+++ b/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java
@@ -97,10 +97,10 @@
replay(context, writer, node, astMap, params);
VelocityAutotagRuntime runtime = new VelocityAutotagRuntime();
runtime.render(context, writer, node);
- Object notnullParam = runtime.getParameter("notnullParam", null);
- Object nullParam = runtime.getParameter("nullParam", null);
- Object notnullParamDefault = runtime.getParameter("notnullParam", new Integer(24));
- Object nullParamDefault = runtime.getParameter("nullParam", new Integer(24));
+ Object notnullParam = runtime.getParameter("notnullParam", Object.class, null);
+ Object nullParam = runtime.getParameter("nullParam", Object.class, null);
+ int notnullParamDefault = runtime.getParameter("notnullParam", Integer.class, new Integer(24));
+ int nullParamDefault = runtime.getParameter("nullParam", Integer.class, new Integer(24));
assertEquals(42, notnullParam);
assertEquals(null, nullParam);
assertEquals(42, notnullParamDefault);