Author: rdonkin
Date: Tue May 10 09:48:21 2011
New Revision: 1101386

URL: http://svn.apache.org/viewvc?rev=1101386&view=rev
Log:
MAILETDOCS-3 Factored out common descriptor code.

Modified:
    
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.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=1101386&r1=1101385&r2=1101386&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
 Tue May 10 09:48:21 2011
@@ -29,6 +29,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.james.mailet.MailetMatcherDescriptor.Type;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.Matcher;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
@@ -128,21 +129,32 @@ public class DefaultDescriptorsExtractor
             final Class<?> klass) throws InstantiationException,
             IllegalAccessException, InvocationTargetException,
             NoSuchMethodException {
+        
+        final MailetMatcherDescriptor result = buildDescriptor(nextClass,
+                nameOfNextClass, klass, "getMatcherInfo", 
MailetMatcherDescriptor.Type.MATCHER);
+        
+        log.info("Found a Matcher: " + klass.getName());
+        return result;
+    }
+
+
+    private MailetMatcherDescriptor buildDescriptor(final JavaClass nextClass,
+            final String nameOfNextClass, final Class<?> klass,
+            final String infoMethodName, final Type type)
+            throws InstantiationException, IllegalAccessException,
+            InvocationTargetException, NoSuchMethodException {
         final MailetMatcherDescriptor result = new MailetMatcherDescriptor();
         result.setName(nextClass.getName());
         result.setFullyQualifiedName(nameOfNextClass);
         result.setClassDocs(nextClass.getComment());
-        result.setType(MailetMatcherDescriptor.Type.MATCHER);
+        result.setType(type);
 
         final Object instance = klass.newInstance();
         final String info = (String) klass.getMethod(
-                "getMatcherInfo", null).invoke(instance, null);
+                infoMethodName, null).invoke(instance, null);
         if (info != null && info.length() > 0) {
             result.setInfo(info);
         }
-        
-        
-        log.info("Found a Matcher: " + klass.getName());
         return result;
     }
 
@@ -151,19 +163,10 @@ public class DefaultDescriptorsExtractor
             final JavaClass nextClass, final String nameOfNextClass,
             final Class<?> klass) throws InstantiationException,
             IllegalAccessException, InvocationTargetException,
-            NoSuchMethodException {        
-        final MailetMatcherDescriptor result = new MailetMatcherDescriptor();
-        result.setName(nextClass.getName());
-        result.setFullyQualifiedName(nameOfNextClass);
-        result.setClassDocs(nextClass.getComment());
-        result.setType(MailetMatcherDescriptor.Type.MAILET);
-        
-        final Object instance = klass.newInstance();
-        final String info = (String) klass.getMethod(
-                "getMailetInfo", null).invoke(instance, null);
-        if (info != null && info.length() > 0) {
-            result.setInfo(info);
-        }
+            NoSuchMethodException {
+
+        final MailetMatcherDescriptor result = buildDescriptor(nextClass,
+                nameOfNextClass, klass, "getMailetInfo", 
MailetMatcherDescriptor.Type.MAILET);
         
         log.info("Found a Mailet: " + klass.getName());
         return result;



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

Reply via email to