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());
     }
 
     /**