Author: apetrelli
Date: Sat Feb 27 12:20:21 2010
New Revision: 916947
URL: http://svn.apache.org/viewvc?rev=916947&view=rev
Log:
TILESSB-21
TILESSB-22
Adapted changes to template model style to autotag-core and autotag-jsp.
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
Sat Feb 27 12:20:21 2010
@@ -6,6 +6,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.autotag.model.TemplateClass;
import org.apache.tiles.autotag.model.TemplateMethod;
import org.apache.tiles.autotag.model.TemplateParameter;
@@ -70,26 +71,16 @@
if (tagClassPrefix != null) {
String tagName = tagClassPrefix.substring(0, 1).toLowerCase()
+ tagClassPrefix.substring(1);
- TemplateMethod startMethod = null;
- TemplateMethod endMethod = null;
TemplateMethod executeMethod = null;
for (JavaMethod method : clazz.getMethods()) {
if (isFeasible(method)) {
- if ("start".equals(method.getName())) {
- TemplateMethod templateMethod =
createMethod(method);
- startMethod = templateMethod;
- } else if ("end".equals(method.getName())) {
- endMethod = createMethod(method);
- } else if ("execute".equals(method.getName())) {
- executeMethod = createMethod(method);
- }
+ executeMethod = createMethod(method);
}
}
- if ((startMethod != null && endMethod != null)
- || executeMethod != null) {
+ if (executeMethod != null) {
TemplateClass templateClass = new TemplateClass(clazz
.getFullyQualifiedName(), tagName, tagClassPrefix,
- startMethod, endMethod, executeMethod);
+ executeMethod);
templateClass.setDocumentation(clazz.getComment());
classes.add(templateClass);
}
@@ -117,7 +108,7 @@
for (JavaParameter parameter : method.getParameters()) {
TemplateParameter templateParameter = new TemplateParameter(
parameter.getName(), parameter.getType()
- .getFullyQualifiedName(), false, false);
+ .getFullyQualifiedName(), false);
params.add(templateParameter);
}
TemplateMethod templateMethod = new TemplateMethod(method.getName(),
@@ -142,7 +133,8 @@
private boolean isFeasible(JavaMethod method) {
Type returns = method.getReturns();
- if (returns != null && "void".equals(returns.getFullyQualifiedName())
+ if ("execute".equals(method.getName()) && returns != null
+ && "void".equals(returns.getFullyQualifiedName())
&& method.isPublic() && !method.isStatic()
&& !method.isAbstract() && !method.isConstructor()) {
JavaParameter[] params = method.getParameters();
@@ -153,6 +145,16 @@
return true;
}
}
+ if (params.length >= 2) {
+ JavaParameter param1 = params[params.length - 2];
+ JavaParameter param2 = params[params.length - 1];
+ if (Request.class.getName().equals(
+ param1.getType().getFullyQualifiedName())
+ && ModelBody.class.getName().equals(
+ param2.getType().getFullyQualifiedName())) {
+ return true;
+ }
+ }
}
return false;
}
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
Sat Feb 27 12:20:21 2010
@@ -14,24 +14,17 @@
private String documentation;
- private TemplateMethod startMethod;
-
- private TemplateMethod endMethod;
-
private TemplateMethod executeMethod;
public TemplateClass(String name) {
- this(name, null, null, null, null, null);
+ this(name, null, null, null);
}
public TemplateClass(String name, String tagName, String tagClassPrefix,
- TemplateMethod startMethod, TemplateMethod endMethod,
TemplateMethod executeMethod) {
this.name = name;
this.tagName = tagName;
this.tagClassPrefix = tagClassPrefix;
- this.startMethod = startMethod;
- this.endMethod = endMethod;
this.executeMethod = executeMethod;
}
@@ -55,22 +48,12 @@
this.documentation = documentation;
}
- public TemplateMethod getStartMethod() {
- return startMethod;
- }
-
- public TemplateMethod getEndMethod() {
- return endMethod;
- }
-
public TemplateMethod getExecuteMethod() {
return executeMethod;
}
public Collection<TemplateParameter> getParameters() {
Map<String, TemplateParameter> params = new LinkedHashMap<String,
TemplateParameter>();
- fillRegularParameters(params, startMethod);
- fillRegularParameters(params, endMethod);
fillRegularParameters(params, executeMethod);
return params.values();
}
@@ -87,14 +70,13 @@
}
public boolean hasBody() {
- return (startMethod != null && endMethod != null);
+ return executeMethod.hasBody();
}
@Override
public String toString() {
- return "TemplateClass\n[documentation=" + documentation +
",\nendMethod="
- + endMethod + ",\nexecuteMethod=" + executeMethod + ",\nname="
- + name + ",\nstartMethod=" + startMethod + "]";
+ return "TemplateClass\n[documentation=" + documentation
+ + ",\nexecuteMethod=" + executeMethod + ",\nname=" + name +
"]";
}
}
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
Sat Feb 27 12:20:21 2010
@@ -41,6 +41,17 @@
return parameters.get(name);
}
+ public boolean hasBody() {
+ if (parameters.size() >= 2) {
+ for (TemplateParameter param : parameters.values()) {
+ if (param.isBody()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
@Override
public String toString() {
return "TemplateMethod\n[documentation=" + documentation + ", name="
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
Sat Feb 27 12:20:21 2010
@@ -1,5 +1,6 @@
package org.apache.tiles.autotag.model;
+import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.request.Request;
public class TemplateParameter {
@@ -12,14 +13,10 @@
private boolean required;
- private boolean body;
-
- public TemplateParameter(String name, String type, boolean required,
- boolean body) {
+ public TemplateParameter(String name, String type, boolean required) {
this.name = name;
this.type = type;
this.required = required;
- this.body = body;
}
public String getDocumentation() {
@@ -43,7 +40,7 @@
}
public boolean isBody() {
- return body;
+ return ModelBody.class.getName().equals(type);
}
public boolean isRequest() {
@@ -52,7 +49,7 @@
@Override
public String toString() {
- return "TemplateParameter\n[body=" + body + ",\ndocumentation="
+ return "TemplateParameter\n[documentation="
+ documentation + ",\nname=" + name + ", required=" + required
+ ", type=" + type + "]";
}
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
Sat Feb 27 12:20:21 2010
@@ -11,6 +11,7 @@
import org.apache.tiles.autotag.core.internal.ExampleExecutableTemplate;
import org.apache.tiles.autotag.core.internal.ExampleTemplate;
import org.apache.tiles.autotag.core.internal.NotFeasibleExampleTemplate;
+import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.autotag.model.TemplateClass;
import org.apache.tiles.autotag.model.TemplateMethod;
import org.apache.tiles.autotag.model.TemplateParameter;
@@ -54,13 +55,14 @@
assertNotNull(templateClass);
assertEquals(ExampleTemplate.class.getName(), templateClass.getName());
assertEquals("Example start/stop template.",
templateClass.getDocumentation());
- assertNull(templateClass.getExecuteMethod());
- TemplateMethod templateMethod = templateClass.getStartMethod();
+ TemplateMethod templateMethod = templateClass.getExecuteMethod();
assertNotNull(templateMethod);
- assertEquals("start", templateMethod.getName());
+ assertTrue(templateMethod.hasBody());
+ assertTrue(templateClass.hasBody());
+ assertEquals("execute", templateMethod.getName());
assertEquals("It starts.", templateMethod.getDocumentation());
List<TemplateParameter> parameters = new
ArrayList<TemplateParameter>(templateMethod.getParameters());
- assertEquals(3, parameters.size());
+ assertEquals(4, parameters.size());
TemplateParameter parameter = parameters.get(0);
assertEquals("one", parameter.getName());
assertEquals("java.lang.String", parameter.getType());
@@ -73,32 +75,15 @@
assertEquals("request", parameter.getName());
assertEquals(Request.class.getName(), parameter.getType());
assertEquals("The request.", parameter.getDocumentation());
-
- templateMethod = templateClass.getEndMethod();
- assertNotNull(templateMethod);
- assertEquals("end", templateMethod.getName());
- assertEquals("It ends.", templateMethod.getDocumentation());
- parameters = new
ArrayList<TemplateParameter>(templateMethod.getParameters());
- assertEquals(3, parameters.size());
- parameter = parameters.get(0);
- assertEquals("three", parameter.getName());
- assertEquals("java.lang.Double", parameter.getType());
- assertEquals("Parameter three.", parameter.getDocumentation());
- parameter = parameters.get(1);
- assertEquals("four", parameter.getName());
- assertEquals("long", parameter.getType());
- assertEquals("Parameter four.", parameter.getDocumentation());
- parameter = parameters.get(2);
- assertEquals("request", parameter.getName());
- assertEquals(Request.class.getName(), parameter.getType());
- assertEquals("The request.", parameter.getDocumentation());
+ parameter = parameters.get(3);
+ assertEquals("modelBody", parameter.getName());
+ assertEquals(ModelBody.class.getName(), parameter.getType());
+ assertEquals("The model body.", parameter.getDocumentation());
templateClass =
suite.getTemplateClassByName(ExampleExecutableTemplate.class.getName());
assertNotNull(templateClass);
assertEquals(ExampleExecutableTemplate.class.getName(),
templateClass.getName());
assertEquals("Example executable template.",
templateClass.getDocumentation());
- assertNull(templateClass.getStartMethod());
- assertNull(templateClass.getEndMethod());
templateMethod = templateClass.getExecuteMethod();
assertNotNull(templateMethod);
assertEquals("execute", templateMethod.getName());
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleTemplate.java
Sat Feb 27 12:20:21 2010
@@ -1,5 +1,6 @@
package org.apache.tiles.autotag.core.internal;
+import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.request.Request;
/**
@@ -15,19 +16,9 @@
* @param one Parameter one.
* @param two Parameter two.
* @param request The request.
+ * @param modelBody The model body.
*/
- public void start(String one, int two, Request request) {
- // Does nothing.
- }
-
- /**
- * It ends.
- *
- * @param three Parameter three.
- * @param four Parameter four.
- * @param request The request.
- */
- public void end(Double three, long four, Request request) {
+ public void execute(String one, int two, Request request, ModelBody
modelBody) {
// Does nothing.
}
}
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
Sat Feb 27 12:20:21 2010
@@ -51,9 +51,9 @@
<name>${parameter.name}</name>
<required>${parameter.required}</required>
<rtexprvalue>true</rtexprvalue>
+ <type>${parameter.type}</type>
</attribute>
#end
</tag>
#end
</taglib>
-
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
Sat Feb 27 12:20:21 2010
@@ -14,6 +14,7 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.autotag.model.TemplateClass;
import org.apache.tiles.autotag.model.TemplateMethod;
import org.apache.tiles.autotag.model.TemplateParameter;
@@ -42,33 +43,48 @@
file.deleteOnExit();
TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD
docs.");
suite.getCustomVariables().put("taglibURI",
"http://www.initrode.net/tags/test");
+
List<TemplateParameter> params = new ArrayList<TemplateParameter>();
- TemplateParameter param = new TemplateParameter("one",
"java.lang.String", true, false);
+ TemplateParameter param = new TemplateParameter("one",
"java.lang.String", true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("two", "int", false, false);
+ param = new TemplateParameter("two", "int", false);
param.setDocumentation("Parameter two.");
params.add(param);
- param = new TemplateParameter("request", Request.class.getName(),
false, false);
+ param = new TemplateParameter("three", "long", false);
+ param.setDocumentation("Parameter three.");
+ params.add(param);
+ param = new TemplateParameter("request", Request.class.getName(),
false);
param.setDocumentation("The request.");
params.add(param);
- TemplateMethod startMethod = new TemplateMethod("start", params);
+ param = new TemplateParameter("modelBody", ModelBody.class.getName(),
false);
+ param.setDocumentation("The body.");
+ params.add(param);
+ TemplateMethod executeMethod = new TemplateMethod("execute", params);
+
+ TemplateClass clazz = new
TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
+ "doStuff", "DoStuff", executeMethod);
+ clazz.setDocumentation("Documentation of the DoStuff class");
+ suite.addTemplateClass(clazz);
params = new ArrayList<TemplateParameter>();
- param = new TemplateParameter("one", "java.lang.String", true, false);
+ param = new TemplateParameter("one", "java.lang.Double", true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("three", "long", false, false);
+ param = new TemplateParameter("two", "float", false);
+ param.setDocumentation("Parameter two.");
+ params.add(param);
+ param = new TemplateParameter("three", "java.util.Date", false);
param.setDocumentation("Parameter three.");
params.add(param);
- param = new TemplateParameter("request", Request.class.getName(),
false, false);
+ param = new TemplateParameter("request", Request.class.getName(),
false);
param.setDocumentation("The request.");
params.add(param);
- TemplateMethod endMethod = new TemplateMethod("end", params);
+ executeMethod = new TemplateMethod("execute", params);
- TemplateClass clazz = new
TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
- "doStuff", "DoStuff", startMethod, endMethod, null);
- clazz.setDocumentation("Documentation of the DoStuff class");
+ clazz = new
TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
+ "doStuffNoBody", "DoStuffNoBody", executeMethod);
+ clazz.setDocumentation("Documentation of the DoStuffNoBody class");
suite.addTemplateClass(clazz);
@@ -84,7 +100,7 @@
File effectiveFile = new File(file, "META-INF/tld/tldtest-jsp.tld");
assertTrue(effectiveFile.exists());
InputStream effective = new FileInputStream(effectiveFile);
- IOUtils.contentEquals(effective, expected);
+ assertTrue(IOUtils.contentEquals(effective, expected));
FileUtils.deleteDirectory(file);
}
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld?rev=916947&r1=916946&r2=916947&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
(original)
+++
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
Sat Feb 27 12:20:21 2010
@@ -30,6 +30,7 @@
<name>one</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
+ <type>java.lang.String</type>
</attribute>
<attribute>
<description>
@@ -40,6 +41,7 @@
<name>two</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
+ <type>int</type>
</attribute>
<attribute>
<description>
@@ -50,7 +52,50 @@
<name>three</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
+ <type>long</type>
+ </attribute>
+ </tag>
+ <tag>
+ <description>
+ <![CDATA[
+ Documentation of the DoStuffNoBody class
+ ]]>
+ </description>
+ <name>doStuffNoBody</name>
+ <tag-class>org.apache.tiles.autotag.jsp.test.DoStuffNoBody</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <description>
+ <![CDATA[
+ Parameter one.
+ ]]>
+ </description>
+ <name>one</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Double</type>
+ </attribute>
+ <attribute>
+ <description>
+ <![CDATA[
+ Parameter two.
+ ]]>
+ </description>
+ <name>two</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>float</type>
+ </attribute>
+ <attribute>
+ <description>
+ <![CDATA[
+ Parameter three.
+ ]]>
+ </description>
+ <name>three</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.util.Date</type>
</attribute>
</tag>
</taglib>
-