Author: rdonkin
Date: Thu May 26 18:32:18 2011
New Revision: 1128024

URL: http://svn.apache.org/viewvc?rev=1128024&view=rev
Log:
MAILETDOCS-4 Statefully accumulate descriptors, ready for aggregation.

Modified:
    
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
    
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java

Modified: 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
URL: 
http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java?rev=1128024&r1=1128023&r2=1128024&view=diff
==============================================================================
--- 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
 (original)
+++ 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
 Thu May 26 18:32:18 2011
@@ -24,6 +24,7 @@ import java.lang.reflect.InvocationTarge
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -48,14 +49,22 @@ public class DefaultDescriptorsExtractor
 
     private static final String MATCHER_CLASS_NAME = Matcher.class.getName();
     private static final String MAILET_CLASS_NAME = Mailet.class.getName();
+    
+    private final List<MailetMatcherDescriptor> descriptors;
+    
+    public DefaultDescriptorsExtractor() {
+        descriptors = new ArrayList<MailetMatcherDescriptor> ();
+    }
 
     /**
-     * @see 
org.apache.james.mailet.DescriptorsExtractor#extractDescriptors(MavenProject, 
Log)
+     * Descriptors extracted.
+     * @return not null
      */
-    public List<MailetMatcherDescriptor> extractDescriptors(MavenProject 
project, Log log) {
-
-        List<MailetMatcherDescriptor> descriptors = new 
LinkedList<MailetMatcherDescriptor>();
+    public List<MailetMatcherDescriptor> descriptors() {
+        return descriptors;
+    }
 
+    public DefaultDescriptorsExtractor extract(final MavenProject project, 
final Log log) {
         final JavaClass[] classes = javaClasses(project);
 
         final URLClassLoader classLoader = classLoader(project, log);
@@ -65,14 +74,14 @@ public class DefaultDescriptorsExtractor
 
         for (int i = 0; i < classes.length; i++) {
             final JavaClass nextClass = classes[i];
-            addDescriptor(log, descriptors, classLoader, nextClass);
+            addDescriptor(log, classLoader, nextClass);
         }
-
-        return descriptors;
+        
+        return this;
     }
 
 
-    private void addDescriptor(Log log, List<MailetMatcherDescriptor> res,
+    private void addDescriptor(Log log, 
             final URLClassLoader classLoader, final JavaClass nextClass) {
         final String nameOfNextClass = nextClass.getFullyQualifiedName();
         if (log.isDebugEnabled()) {
@@ -91,12 +100,12 @@ public class DefaultDescriptorsExtractor
             if (allInterfaces.contains(mailetClass)) {
                 final MailetMatcherDescriptor descriptor = describeMailet(log, 
nextClass,
                         nameOfNextClass, klass);
-                res.add(descriptor);
+                descriptors.add(descriptor);
 
             } else if (allInterfaces.contains(matcherClass)) {
                 final MailetMatcherDescriptor descriptor = describeMatcher(log,
                         nextClass, nameOfNextClass, klass);
-                res.add(descriptor);
+                descriptors.add(descriptor);
             } else {
                 logInterfaces(log, klass, allInterfaces);
             }

Modified: 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
URL: 
http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java?rev=1128024&r1=1128023&r2=1128024&view=diff
==============================================================================
--- 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
 (original)
+++ 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
 Thu May 26 18:32:18 2011
@@ -152,7 +152,7 @@ public class MailetdocsMojo extends Abst
     }
 
     private List<MailetMatcherDescriptor> buildDescriptors() {
-        final List<MailetMatcherDescriptor> descriptors = new 
DefaultDescriptorsExtractor().extractDescriptors(project, getLog());
+        final List<MailetMatcherDescriptor> descriptors = new 
DefaultDescriptorsExtractor().extract(project, getLog()).descriptors();
         
         Collections.sort(descriptors, new 
Comparator<MailetMatcherDescriptor>() {
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to