Author: apetrelli
Date: Tue Aug 31 19:50:17 2010
New Revision: 991311

URL: http://svn.apache.org/viewvc?rev=991311&view=rev
Log:
TILESSB-35
Added definition renderer and used delegate.

Added:
    
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionRenderer.java
      - copied, changed from r982384, 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java
Modified:
    
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
    
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
    
tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java

Modified: 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java?rev=991311&r1=991310&r2=991311&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
 Tue Aug 31 19:50:17 2010
@@ -53,6 +53,7 @@ import org.apache.tiles.renderer.TypeDet
 import org.apache.tiles.renderer.impl.BasicRendererFactory;
 import org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer;
 import org.apache.tiles.renderer.impl.DefinitionAttributeRenderer;
+import org.apache.tiles.renderer.impl.DefinitionRenderer;
 import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
 import org.apache.tiles.renderer.impl.StringAttributeRenderer;
 import org.apache.tiles.renderer.impl.TemplateAttributeRenderer;
@@ -64,7 +65,6 @@ import org.apache.tiles.request.Applicat
  * @version $Rev$ $Date$
  * @since 2.1.0
  */
-...@suppresswarnings("unused")
 public class BasicTilesContainerFactory extends AbstractTilesContainerFactory {
 
     /**
@@ -414,9 +414,7 @@ public class BasicTilesContainerFactory 
             ApplicationContext applicationContext,
             TilesContainer container,
             AttributeEvaluatorFactory attributeEvaluatorFactory) {
-        DefinitionAttributeRenderer definitionRenderer = new 
DefinitionAttributeRenderer();
-        definitionRenderer.setContainer(container);
-        
definitionRenderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
-        return definitionRenderer;
+        return new DelegateAttributeRenderer(new DefinitionRenderer(container),
+                attributeEvaluatorFactory);
     }
 }

Copied: 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionRenderer.java
 (from r982384, 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java)
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionRenderer.java?p2=tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionRenderer.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java&r1=982384&r2=991311&rev=991311&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionAttributeRenderer.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/DefinitionRenderer.java
 Tue Aug 31 19:50:17 2010
@@ -20,44 +20,42 @@
  */
 package org.apache.tiles.renderer.impl;
 
-import org.apache.tiles.Attribute;
+import java.io.IOException;
+
 import org.apache.tiles.TilesContainer;
-import org.apache.tiles.awareness.TilesContainerAware;
+import org.apache.tiles.render.InvalidTemplateException;
+import org.apache.tiles.render.TypeDetectingRenderer;
 import org.apache.tiles.request.Request;
 
 /**
  * Renders an attribute that contains a reference to a definition.
  *
  * @version $Rev$ $Date$
- * @since 2.1.0
+ * @since 3.0.0
  */
-public class DefinitionAttributeRenderer extends
-        AbstractTypeDetectingAttributeRenderer implements TilesContainerAware {
+public class DefinitionRenderer implements TypeDetectingRenderer {
 
     /**
      * The Tiles container.
-     *
-     * @since 2.1.0
      */
-    protected TilesContainer container;
+    private TilesContainer container;
 
-    /** {...@inheritdoc} */
-    public void setContainer(TilesContainer container) {
+    public DefinitionRenderer(TilesContainer container) {
         this.container = container;
     }
 
     /** {...@inheritdoc} */
     @Override
-    public void write(Object value, Attribute attribute, Request request) {
-        container.render(value.toString(), request);
+    public void render(String path, Request request) throws IOException {
+        if (path == null) {
+            throw new InvalidTemplateException("Cannot dispatch a null path");
+        }
+
+        container.render(path, request);
     }
 
     /** {...@inheritdoc} */
-    public boolean isRenderable(Object value, Attribute attribute,
-            Request request) {
-        if (value instanceof String) {
-            return container.isValidDefinition((String) value, request);
-        }
-        return false;
+    public boolean isRenderable(String path, Request request) {
+        return path != null && container.isValidDefinition(path, request);
     }
 }

Modified: 
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java?rev=991311&r1=991310&r2=991311&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
 Tue Aug 31 19:50:17 2010
@@ -187,7 +187,7 @@ public class BasicTilesContainerFactoryT
         renderer = rendererFactory.getRenderer("definition");
         assertNotNull("The definition renderer is null", renderer);
         assertTrue("The definition renderer class is not correct",
-                renderer instanceof DefinitionAttributeRenderer);
+                renderer instanceof DelegateAttributeRenderer);
     }
 
     /**
@@ -269,7 +269,7 @@ public class BasicTilesContainerFactoryT
                 rendererFactory, applicationContext, container,
                 attributeEvaluatorFactory);
         assertTrue("The renderer class is not correct",
-                renderer instanceof DefinitionAttributeRenderer);
+                renderer instanceof DelegateAttributeRenderer);
         verify(container, attributeEvaluatorFactory, rendererFactory);
     }
 }

Modified: 
tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java?rev=991311&r1=991310&r2=991311&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-extras/src/test/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactoryTest.java
 Tue Aug 31 19:50:17 2010
@@ -62,7 +62,6 @@ import org.apache.tiles.renderer.Attribu
 import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
 import org.apache.tiles.renderer.impl.BasicRendererFactory;
 import org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer;
-import org.apache.tiles.renderer.impl.DefinitionAttributeRenderer;
 import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
 import org.apache.tiles.renderer.impl.StringAttributeRenderer;
 import org.apache.tiles.request.ApplicationContext;
@@ -130,7 +129,7 @@ public class CompleteAutoloadTilesContai
         rendererFactory.registerRenderer(eq("template"),
                 isA(DelegateAttributeRenderer.class));
         rendererFactory.registerRenderer(eq("definition"),
-                isA(DefinitionAttributeRenderer.class));
+                isA(DelegateAttributeRenderer.class));
         rendererFactory.registerRenderer(eq("freemarker"),
                 isA(FreeMarkerAttributeRenderer.class));
         rendererFactory.registerRenderer(eq("velocity"),


Reply via email to