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"),