Author: apetrelli
Date: Wed Feb 25 11:17:37 2009
New Revision: 747748
URL: http://svn.apache.org/viewvc?rev=747748&view=rev
Log:
TILES-373
Added "execute" method to models.
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/AddAttributeModel.java
Wed Feb 25 11:17:37 2009
@@ -14,9 +14,22 @@
public void end(Stack<Object> composeStack, Object value,
String expression, String body, String role, String type) {
+ Attribute attribute = (Attribute) composeStack.pop();
+ addAttributeToList(attribute, composeStack, value, expression, body,
+ role, type);
+ }
+
+ public void execute(Stack<Object> composeStack, Object value,
+ String expression, String body, String role, String type) {
+ addAttributeToList(new Attribute(), composeStack, value, expression,
+ body, role, type);
+ }
+
+ private void addAttributeToList(Attribute attribute,
+ Stack<Object> composeStack, Object value, String expression,
+ String body, String role, String type) {
ListAttribute listAttribute = (ListAttribute) ComposeStackUtil
.findAncestorWithClass(composeStack, ListAttribute.class);
- Attribute attribute = (Attribute) composeStack.pop();
if(value != null) {
attribute.setValue(value);
} else if (attribute.getValue() == null && body != null) {
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java
Wed Feb 25 11:17:37 2009
@@ -10,6 +10,28 @@
public void start(Stack<Object> composeStack, String name, String template,
String role, String extendsParam, String preparer) {
+ Definition definition = createDefinition(name, template, role,
+ extendsParam, preparer);
+ composeStack.push(definition);
+ }
+
+ public void end(MutableTilesContainer container,
+ Stack<Object> composeStack, String name, Object... requestItems) {
+ Definition definition = (Definition) composeStack.pop();
+ registerDefinition(definition, container, composeStack, requestItems);
+ }
+
+ public void execute(MutableTilesContainer container,
+ Stack<Object> composeStack, String name, String template,
+ String role, String extendsParam, String preparer,
+ Object... requestItems) {
+ Definition definition = createDefinition(name, template, role,
+ extendsParam, preparer);
+ registerDefinition(definition, container, composeStack, requestItems);
+ }
+
+ private Definition createDefinition(String name, String template,
+ String role, String extendsParam, String preparer) {
Definition definition = new Definition();
definition.setName(name);
Attribute templateAttribute = Attribute
@@ -18,12 +40,12 @@
definition.setTemplateAttribute(templateAttribute);
definition.setExtends(extendsParam);
definition.setPreparer(preparer);
- composeStack.push(definition);
+ return definition;
}
-
- public void end(MutableTilesContainer container,
- Stack<Object> composeStack, String name, Object... requestItems) {
- Definition definition = (Definition) composeStack.pop();
+
+ private void registerDefinition(Definition definition,
+ MutableTilesContainer container, Stack<Object> composeStack,
+ Object... requestItems) {
container.register(definition, requestItems);
if (composeStack.isEmpty()) {
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
Wed Feb 25 11:17:37 2009
@@ -23,20 +23,46 @@
boolean ignore, String preparer, String role, Object defaultValue,
String defaultValueRole, String defaultValueType, String name,
Attribute value, Object... requestItems) {
+ Attribute attribute = resolveAttribute(container, ignore, preparer,
+ role, defaultValue, defaultValueRole, defaultValueType, name,
+ value, requestItems);
+ composeStack.push(attribute);
+ }
+
+ public void end(Stack<Object> composeStack, TilesContainer container,
+ Writer writer, boolean ignore, Object... requestItems)
+ throws IOException {
+ Attribute attribute = (Attribute) composeStack.pop();
+ renderAttribute(attribute, container, writer, ignore, requestItems);
+ }
+
+ public void execute(TilesContainer container, Writer writer,
+ boolean ignore, String preparer, String role, Object defaultValue,
+ String defaultValueRole, String defaultValueType, String name,
+ Attribute value, Object... requestItems) throws IOException {
+ Attribute attribute = resolveAttribute(container, ignore, preparer,
+ role, defaultValue, defaultValueRole, defaultValueType, name,
+ value, requestItems);
+ renderAttribute(attribute, container, writer, ignore, requestItems);
+ }
+
+ private Attribute resolveAttribute(TilesContainer container,
+ boolean ignore, String preparer, String role, Object defaultValue,
+ String defaultValueRole, String defaultValueType, String name,
+ Attribute value, Object... requestItems) {
if (preparer != null) {
container.prepare(preparer, requestItems);
}
Attribute attribute = attributeResolver.computeAttribute(container,
value, name, role, ignore, defaultValue,
defaultValueRole, defaultValueType, requestItems);
- composeStack.push(attribute);
container.startContext(requestItems);
+ return attribute;
}
-
- public void end(Stack<Object> composeStack, TilesContainer container,
+
+ private void renderAttribute(Attribute attribute, TilesContainer container,
Writer writer, boolean ignore, Object... requestItems)
throws IOException {
- Attribute attribute = (Attribute) composeStack.pop();
if (attribute == null && ignore) {
return;
}
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
Wed Feb 25 11:17:37 2009
@@ -22,19 +22,44 @@
boolean ignore, String preparer, String role, Object defaultValue,
String defaultValueRole, String defaultValueType, String name,
Attribute value, Object... requestItems) {
+ Attribute attribute = resolveAttribute(container, ignore, preparer,
+ role, defaultValue, defaultValueRole, defaultValueType, name,
+ value, requestItems);
+ composeStack.push(attribute);
+ }
+
+ public void end(Stack<Object> composeStack, TilesContainer container,
+ boolean ignore, Object... requestItems) throws IOException {
+ Attribute attribute = (Attribute) composeStack.pop();
+ renderAttribute(container, ignore, attribute, requestItems);
+ }
+
+ public void execute(TilesContainer container,
+ boolean ignore, String preparer, String role, Object defaultValue,
+ String defaultValueRole, String defaultValueType, String name,
+ Attribute value, Object... requestItems) throws IOException {
+ Attribute attribute = resolveAttribute(container, ignore, preparer,
+ role, defaultValue, defaultValueRole, defaultValueType, name,
+ value, requestItems);
+ renderAttribute(container, ignore, attribute, requestItems);
+ }
+
+ private Attribute resolveAttribute(TilesContainer container,
+ boolean ignore, String preparer, String role, Object defaultValue,
+ String defaultValueRole, String defaultValueType, String name,
+ Attribute value, Object... requestItems) {
if (preparer != null) {
container.prepare(preparer, requestItems);
}
Attribute attribute = attributeResolver.computeAttribute(container,
value, name, role, ignore, defaultValue,
defaultValueRole, defaultValueType, requestItems);
- composeStack.push(attribute);
container.startContext(requestItems);
+ return attribute;
}
- public void end(Stack<Object> composeStack, TilesContainer container,
- boolean ignore, Object... requestItems) throws IOException {
- Attribute attribute = (Attribute) composeStack.pop();
+ private void renderAttribute(TilesContainer container, boolean ignore,
+ Attribute attribute, Object... requestItems) throws IOException {
try {
if (attribute == null && ignore) {
return;
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
Wed Feb 25 11:17:37 2009
@@ -26,4 +26,11 @@
container.endContext(requestItems);
}
}
+
+ public void execute(TilesContainer container, String definitionName,
+ String template, String role, String preparer,
+ Object... requestItems) {
+ start(container, requestItems);
+ end(container, definitionName, template, role, preparer, requestItems);
+ }
}
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
Wed Feb 25 11:17:37 2009
@@ -25,4 +25,10 @@
container.endContext(requestItems);
}
}
+
+ public void execute(TilesContainer container, String template, String role,
+ String preparer, Object... requestItems) {
+ start(container, requestItems);
+ end(container, template, role, preparer, requestItems);
+ }
}
Modified:
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java?rev=747748&r1=747747&r2=747748&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
(original)
+++
tiles/framework/trunk/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
Wed Feb 25 11:17:37 2009
@@ -17,6 +17,21 @@
String name, Object value, String expression, String body,
String role, String type, boolean cascade, Object... requestItems)
{
Attribute attribute = (Attribute) composeStack.pop();
+ putAttributeInParent(attribute, container, composeStack, name, value,
+ expression, body, role, type, cascade, requestItems);
+ }
+
+ public void execute(TilesContainer container, Stack<Object> composeStack,
+ String name, Object value, String expression, String body,
+ String role, String type, boolean cascade, Object... requestItems)
{
+ putAttributeInParent(new Attribute(), container, composeStack, name,
+ value, expression, body, role, type, cascade, requestItems);
+ }
+
+ private void putAttributeInParent(Attribute attribute,
+ TilesContainer container, Stack<Object> composeStack, String name,
+ Object value, String expression, String body, String role,
+ String type, boolean cascade, Object... requestItems) {
AttributeContext attributeContext = null;
if (!composeStack.isEmpty()) {
Object obj = composeStack.peek();