You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2007/02/19 04:09:22 UTC

svn commit: r509073 - in /tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo: ComponentReport.java ParametersDoclet.java

Author: hlship
Date: Sun Feb 18 19:09:21 2007
New Revision: 509073

URL: http://svn.apache.org/viewvc?view=rev&rev=509073
Log:
Remove some debugging output, improve the efficiency of generating the XML.

Modified:
    tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ComponentReport.java
    tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ParametersDoclet.java

Modified: tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ComponentReport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ComponentReport.java?view=diff&rev=509073&r1=509072&r2=509073
==============================================================================
--- tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ComponentReport.java (original)
+++ tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ComponentReport.java Sun Feb 18 19:09:21 2007
@@ -423,7 +423,7 @@
 
     private void executeCommand(Commandline command) throws MavenReportException
     {
-        getLog().info(command.toString());
+        getLog().debug(command.toString());
 
         CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
 

Modified: tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ParametersDoclet.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ParametersDoclet.java?view=diff&rev=509073&r1=509072&r2=509073
==============================================================================
--- tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ParametersDoclet.java (original)
+++ tapestry/tapestry5/tapestry-component-report/trunk/src/main/java/org/apache/tapestry/mojo/ParametersDoclet.java Sun Feb 18 19:09:21 2007
@@ -60,11 +60,7 @@
 
         private RootDoc _root;
 
-        private final Set<String> _processedClassNames = new HashSet<String>();
-
-        /** Queue of class names to be processed. */
-
-        private final LinkedList<ClassDoc> _queue = new LinkedList<ClassDoc>();
+        private final Set<ClassDoc> _processed = new HashSet<ClassDoc>();
 
         private final Pattern _stripper = java.util.regex.Pattern.compile(
                 "(<.*?>|&.*?;)",
@@ -82,18 +78,19 @@
 
             for (ClassDoc cd : root.classes())
             {
-                emitClass(cd, true, false);
+                emitClass(cd, false);
             }
 
-            while (!_queue.isEmpty())
+            for (ClassDoc potential : _root.classes())
             {
-                ClassDoc cd = _queue.removeFirst();
-
-                // Its in the queue because it has a parent class that has parameters
-                // but (if it wasn't already processed) it doesn't define parameters of its own,
-                // so we force it into the output regardless.
-
-                emitClass(cd, false, true);
+                for (ClassDoc potentialParent : _processed)
+                {
+                    if (potential.subclassOf(potentialParent))
+                    {
+                        emitClass(potential, true);
+                        break;
+                    }
+                }
             }
 
             println("</component-parameters>");
@@ -101,11 +98,9 @@
             _out.close();
         }
 
-        private void emitClass(ClassDoc classDoc, boolean queueSubclasses, boolean forceClassOutput)
+        private void emitClass(ClassDoc classDoc, boolean forceClassOutput)
         {
-            String className = classDoc.name();
-
-            if (_processedClassNames.contains(className)) return;
+            if (_processed.contains(classDoc)) return;
 
             if (!classDoc.isPublic()) return;
 
@@ -145,14 +140,11 @@
                 String name = annotationValues.get("name");
                 if (name == null) name = fd.name().replaceAll("^[$_]*", "");
 
-                String defaultValue = fd.constantValueExpression();
-                if (defaultValue == null) defaultValue = "";
-
                 print(
                         "<parameter name=\"%s\" type=\"%s\" default=\"%s\" required=\"%s\" cache=\"%s\" default-prefix=\"%s\">",
                         name,
                         fd.type().qualifiedTypeName(),
-                        get(annotationValues, "value", defaultValue),
+                        get(annotationValues, "value", ""),
                         get(annotationValues, "required", "false"),
                         get(annotationValues, "cache", "true"),
                         get(annotationValues, "defaultPrefix", "prop"));
@@ -172,20 +164,8 @@
                 println("</class>");
             }
 
-            if (wroteClass || forceClassOutput) _processedClassNames.add(className);
-
-            if (wroteClass && queueSubclasses)
-            {
-                for (ClassDoc potential : _root.classes())
-                {
-                    // I believe subclassOf() will work even if there are intervening levels of
-                    // heirarchy. This should mean that we don't have to queue up subclasses
-                    // of classes that were added via the queue (rather than by the presence of
-                    // parameter fields).
+            if (wroteClass || forceClassOutput) _processed.add(classDoc);
 
-                    if (potential.subclassOf(classDoc)) _queue.addLast(potential);
-                }
-            }
         }
 
         private void printClassDescriptionStart(ClassDoc classDoc)