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 2008/03/05 20:04:48 UTC
svn commit: r633978 - in /tiles/framework/trunk/tiles-core/src:
main/java/org/apache/tiles/evaluator/
main/java/org/apache/tiles/evaluator/impl/ main/java/org/apache/tiles/impl/
main/java/org/apache/tiles/renderer/impl/ test/java/org/apache/tiles/evalu...
Author: apetrelli
Date: Wed Mar 5 11:04:29 2008
New Revision: 633978
URL: http://svn.apache.org/viewvc?rev=633978&view=rev
Log:
TILES-48
Refactored AttributeEvaluator.evaluate to accept an attribute.
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/AttributeEvaluator.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/impl/DirectEvaluator.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRenderer.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectEvaluatorTest.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRendererTest.java
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/AttributeEvaluator.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/AttributeEvaluator.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/AttributeEvaluator.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/AttributeEvaluator.java Wed Mar 5 11:04:29 2008
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.evaluator;
+import org.apache.tiles.Attribute;
import org.apache.tiles.context.TilesRequestContext;
/**
@@ -33,9 +34,9 @@
/**
* Evaluates an expression.
*
- * @param expression The expression to evaluate.
+ * @param attribute The expression to evaluate.
* @param request The request object.
* @return The evaluated object.
*/
- Object evaluate(String expression, TilesRequestContext request);
+ Object evaluate(Attribute attribute, TilesRequestContext request);
}
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/impl/DirectEvaluator.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/impl/DirectEvaluator.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/impl/DirectEvaluator.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/evaluator/impl/DirectEvaluator.java Wed Mar 5 11:04:29 2008
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.evaluator.impl;
+import org.apache.tiles.Attribute;
import org.apache.tiles.context.TilesRequestContext;
import org.apache.tiles.evaluator.AttributeEvaluator;
@@ -33,7 +34,11 @@
public class DirectEvaluator implements AttributeEvaluator {
/** {@inheritDoc} */
- public Object evaluate(String expression, TilesRequestContext request) {
- return expression;
+ public Object evaluate(Attribute attribute, TilesRequestContext request) {
+ if (attribute == null) {
+ throw new IllegalArgumentException("The attribute cannot be null");
+ }
+
+ return attribute.getValue();
}
}
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java Wed Mar 5 11:04:29 2008
@@ -323,12 +323,7 @@
throws TilesException {
TilesRequestContext request = getContextFactory().createRequestContext(
context, requestItems);
- Object retValue = attribute.getValue();
- if (retValue != null && retValue instanceof String) {
- retValue = evaluator.evaluate((String) retValue, request);
- }
-
- return retValue;
+ return evaluator.evaluate(attribute, request);
}
/** {@inheritDoc} */
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRenderer.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRenderer.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRenderer.java Wed Mar 5 11:04:29 2008
@@ -36,7 +36,6 @@
import org.apache.tiles.evaluator.AttributeEvaluator;
import org.apache.tiles.evaluator.AttributeEvaluatorAware;
import org.apache.tiles.renderer.AttributeRenderer;
-import org.apache.tiles.renderer.RendererException;
/**
* Base abstract class that manages authorization to display the attribute.
@@ -94,10 +93,6 @@
Object... requestItems) throws IOException, TilesException {
TilesRequestContext request = getRequestContext(requestItems);
- if (attribute == null) {
- throw new RendererException("Cannot render a null attribute");
- }
-
if (!isPermitted(request, attribute.getRoles())) {
if (LOG.isDebugEnabled()) {
LOG.debug("Access to attribute denied. User not in role '"
@@ -106,11 +101,7 @@
return;
}
- Object value = attribute.getValue();
-
- if (attribute.getValue() instanceof String) {
- value = evaluator.evaluate((String) value, request);
- }
+ Object value = evaluator.evaluate(attribute, request);
write(value, attribute, writer, request, requestItems);
}
Modified: tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectEvaluatorTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectEvaluatorTest.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectEvaluatorTest.java (original)
+++ tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/evaluator/impl/DirectEvaluatorTest.java Wed Mar 5 11:04:29 2008
@@ -20,6 +20,8 @@
*/
package org.apache.tiles.evaluator.impl;
+import org.apache.tiles.Attribute;
+
import junit.framework.TestCase;
/**
@@ -41,15 +43,17 @@
/**
* Tests
- * {@link DirectEvaluator#evaluate(String, org.apache.tiles.context.TilesRequestContext)}.
+ * {@link DirectEvaluator#evaluate(Attribute, org.apache.tiles.context.TilesRequestContext)}.
*/
public void testEvaluate() {
String expression = "This is an expression";
- Object result = evaluator.evaluate(expression, null);
+ Attribute attribute = new Attribute(expression);
+ Object result = evaluator.evaluate(attribute, null);
assertEquals("The expression has not been evaluated correctly", result,
expression);
expression = "${attributeName}";
- result = evaluator.evaluate(expression, null);
+ attribute.setValue(expression);
+ result = evaluator.evaluate(attribute, null);
assertEquals("The expression has not been evaluated correctly", result,
expression);
}
Modified: tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRendererTest.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRendererTest.java?rev=633978&r1=633977&r2=633978&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRendererTest.java (original)
+++ tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/renderer/impl/AbstractBaseAttributeRendererTest.java Wed Mar 5 11:04:29 2008
@@ -31,6 +31,7 @@
import org.apache.tiles.TilesException;
import org.apache.tiles.context.TilesContextFactory;
import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.evaluator.impl.DirectEvaluator;
import org.easymock.EasyMock;
import junit.framework.TestCase;
@@ -51,6 +52,7 @@
@Override
protected void setUp() throws Exception {
renderer = new MockAttributeRenderer();
+ renderer.setEvaluator(new DirectEvaluator());
}
/**