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 2010/03/13 14:30:47 UTC
svn commit: r922555 - in /tiles/sandbox/trunk/tiles-autotag:
tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/
tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/
tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool...
Author: apetrelli
Date: Sat Mar 13 13:30:47 2010
New Revision: 922555
URL: http://svn.apache.org/viewvc?rev=922555&view=rev
Log:
TILESSB-21
Moved velocity.properties in autotag-core.
Added support for default value.
Prepared StringTool to allow management of default parameter values.
Added:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/resources/org/
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/autotag/
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/autotag/velocity.properties
- copied unchanged from r920006, tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/velocity.properties
Removed:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/velocity.properties
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/TemplateParameter.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/pom.xml
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/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
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=922555&r1=922554&r2=922555&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 Mar 13 13:30:47 2010
@@ -110,6 +110,7 @@ public class QDoxTemplateSuiteFactory im
for (JavaParameter parameter : method.getParameters()) {
String exportedName = parameter.getName();
boolean required = false;
+ String defaultValue = null;
Annotation[] annotations = parameter.getAnnotations();
if (annotations != null && annotations.length > 0) {
boolean found = false;
@@ -121,12 +122,16 @@ public class QDoxTemplateSuiteFactory im
exportedName = candidateName.substring(1, candidateName.length() - 1);
}
required = "true".equals(annotations[i].getNamedParameter("required"));
+ candidateName = (String) annotations[i].getNamedParameter("defaultValue");
+ if (candidateName != null && candidateName.length() > 2) {
+ defaultValue = candidateName.substring(1, candidateName.length() - 1);
+ }
}
}
}
TemplateParameter templateParameter = new TemplateParameter(
parameter.getName(), exportedName, parameter.getType()
- .getFullyQualifiedName(), required);
+ .getFullyQualifiedName(), defaultValue, required);
params.add(templateParameter);
}
TemplateMethod templateMethod = new TemplateMethod(method.getName(),
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=922555&r1=922554&r2=922555&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 Mar 13 13:30:47 2010
@@ -13,12 +13,15 @@ public class TemplateParameter {
private String type;
+ private String defaultValue;
+
private boolean required;
- public TemplateParameter(String name, String exportedName, String type, boolean required) {
+ public TemplateParameter(String name, String exportedName, String type, String defaultValue, boolean required) {
this.name = name;
this.exportedName = exportedName;
this.type = type;
+ this.defaultValue = defaultValue;
this.required = required;
}
@@ -42,6 +45,10 @@ public class TemplateParameter {
return type;
}
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
public boolean isRequired() {
return required;
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java?rev=922555&r1=922554&r2=922555&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java Sat Mar 13 13:30:47 2010
@@ -5,12 +5,40 @@ import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.tiles.autotag.core.AutotagRuntimeException;
public class StringTool {
+ private Map<String, String> type2default;
+
+ private Map<String, String> primitive2wrapped;
+
+ public StringTool() {
+ type2default = new HashMap<String, String>();
+ type2default.put("byte", "0");
+ type2default.put("short", "0");
+ type2default.put("int", "0");
+ type2default.put("long", "0L");
+ type2default.put("float", "0.0f");
+ type2default.put("double", "0.0d");
+ type2default.put("char", "'\\u0000'");
+ type2default.put("boolean", "false");
+
+ primitive2wrapped = new HashMap<String, String>();
+ primitive2wrapped.put("byte", Byte.class.getName());
+ primitive2wrapped.put("short", Short.class.getName());
+ primitive2wrapped.put("int", Integer.class.getName());
+ primitive2wrapped.put("long", Long.class.getName());
+ primitive2wrapped.put("float", Float.class.getName());
+ primitive2wrapped.put("double", Double.class.getName());
+ primitive2wrapped.put("char", Character.class.getName());
+ primitive2wrapped.put("boolean", Boolean.class.getName());
+ }
+
public List<String> splitOnNewlines(String toSplit) {
List<String> retValue = new ArrayList<String>();
if (toSplit == null) {
@@ -29,4 +57,28 @@ public class StringTool {
}
return retValue;
}
+
+ public String capitalizeFirstLetter(String string) {
+ return string.substring(0, 1).toUpperCase() + string.substring(1);
+ }
+
+ public String getDefaultValue(String type, String overriddenDefaultValue) {
+ if (overriddenDefaultValue != null) {
+ return overriddenDefaultValue;
+ }
+
+ String retValue = type2default.get(type);
+ if (retValue == null) {
+ retValue = "null";
+ }
+ return retValue;
+ }
+
+ public String getClassToCast(String type) {
+ String retValue = primitive2wrapped.get(type);
+ if (retValue == null) {
+ retValue = type;
+ }
+ return retValue;
+ }
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/pom.xml?rev=922555&r1=922554&r2=922555&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/pom.xml (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/pom.xml Sat Mar 13 13:30:47 2010
@@ -18,11 +18,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-autotag-core</artifactId>
- <version>1.0-SNAPSHOT</version>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
@@ -34,5 +29,15 @@
<version>1.4</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-request-freemarker</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-autotag-core</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
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=922555&r1=922554&r2=922555&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 Mar 13 13:30:47 2010
@@ -45,19 +45,19 @@ public class TLDGeneratorTest {
suite.getCustomVariables().put("taglibURI", "http://www.initrode.net/tags/test");
List<TemplateParameter> params = new ArrayList<TemplateParameter>();
- TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", true);
+ TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("two", "two", "int", false);
+ param = new TemplateParameter("two", "two", "int", null, false);
param.setDocumentation("Parameter two.");
params.add(param);
- param = new TemplateParameter("three", "three", "long", false);
+ param = new TemplateParameter("three", "three", "long", null, false);
param.setDocumentation("Parameter three.");
params.add(param);
- param = new TemplateParameter("request", "request", Request.class.getName(), false);
+ param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
param.setDocumentation("The request.");
params.add(param);
- param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), false);
+ param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
param.setDocumentation("The body.");
params.add(param);
TemplateMethod executeMethod = new TemplateMethod("execute", params);
@@ -68,16 +68,16 @@ public class TLDGeneratorTest {
suite.addTemplateClass(clazz);
params = new ArrayList<TemplateParameter>();
- param = new TemplateParameter("one", "one", "java.lang.Double", true);
+ param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("two", "two", "float", false);
+ param = new TemplateParameter("two", "two", "float", null, false);
param.setDocumentation("Parameter two.");
params.add(param);
- param = new TemplateParameter("three", "three", "java.util.Date", false);
+ param = new TemplateParameter("three", "three", "java.util.Date", null, false);
param.setDocumentation("Parameter three.");
params.add(param);
- param = new TemplateParameter("request", "request", Request.class.getName(), false);
+ param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
param.setDocumentation("The request.");
params.add(param);
executeMethod = new TemplateMethod("execute", params);
@@ -89,7 +89,7 @@ public class TLDGeneratorTest {
suite.addTemplateClass(clazz);
Properties props = new Properties();
- InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/jsp/velocity.properties");
+ InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
props.load(propsStream);
propsStream.close();
Velocity.init(props);
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java?rev=922555&r1=922554&r2=922555&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java Sat Mar 13 13:30:47 2010
@@ -45,19 +45,19 @@ public class TagClassGeneratorTest {
suite.getCustomVariables().put("taglibURI", "http://www.initrode.net/tags/test");
List<TemplateParameter> params = new ArrayList<TemplateParameter>();
- TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", true);
+ TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("two", "two", "int", false);
+ param = new TemplateParameter("two", "two", "int", null, false);
param.setDocumentation("Parameter two.");
params.add(param);
- param = new TemplateParameter("three", "three", "boolean", false);
+ param = new TemplateParameter("three", "three", "boolean", null, false);
param.setDocumentation("Parameter three.");
params.add(param);
- param = new TemplateParameter("request", "request", Request.class.getName(), false);
+ param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
param.setDocumentation("The request.");
params.add(param);
- param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), false);
+ param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
param.setDocumentation("The body.");
params.add(param);
TemplateMethod executeMethod = new TemplateMethod("execute", params);
@@ -84,16 +84,16 @@ public class TagClassGeneratorTest {
suite.addTemplateClass(clazz);
params = new ArrayList<TemplateParameter>();
- param = new TemplateParameter("one", "one", "java.lang.Double", true);
+ param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
param.setDocumentation("Parameter one.");
params.add(param);
- param = new TemplateParameter("two", "two", "float", false);
+ param = new TemplateParameter("two", "two", "float", null, false);
param.setDocumentation("Parameter two.");
params.add(param);
- param = new TemplateParameter("three", "three", "java.util.Date", false);
+ param = new TemplateParameter("three", "three", "java.util.Date", null, false);
param.setDocumentation("Parameter three.");
params.add(param);
- param = new TemplateParameter("request", "request", Request.class.getName(), false);
+ param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
param.setDocumentation("The request.");
params.add(param);
executeMethod = new TemplateMethod("execute", params);