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);