Author: hboutemy
Date: Sat Sep 12 20:34:09 2015
New Revision: 1702681

URL: http://svn.apache.org/r1702681
Log:
[DOXIA-531] improved MacroRequest API with parser and sourceContent parameters 
requirements

Modified:
    
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
    
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java?rev=1702681&r1=1702680&r2=1702681&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/MacroRequest.java
 Sat Sep 12 20:34:09 2015
@@ -20,6 +20,10 @@ package org.apache.maven.doxia.macro;
  */
 
 import java.util.Map;
+
+import org.apache.maven.doxia.parser.AbstractParser;
+import org.apache.maven.doxia.parser.Parser;
+
 import java.io.File;
 
 /**
@@ -31,6 +35,9 @@ import java.io.File;
  */
 public class MacroRequest
 {
+    private static final String PARAM_SOURCE_CONTENT = "sourceContent";
+    private static final String PARAM_PARSER = "parser";
+
     /** The current base directory. */
     private File basedir;
 
@@ -42,6 +49,7 @@ public class MacroRequest
      *
      * @param param A map of parameters.
      * @param base The current base directory.
+     * @deprecated prefer other constructor
      */
     public MacroRequest( Map<String, Object> param, File base )
     {
@@ -49,6 +57,15 @@ public class MacroRequest
         this.basedir = base;
     }
 
+    public MacroRequest( String sourceContent, AbstractParser parser, 
Map<String, Object> param, File base )
+    {
+        this.parameters = param;
+        this.basedir = base;
+        param.put( PARAM_SOURCE_CONTENT, sourceContent );
+        parser.setSecondParsing( true );
+        param.put( PARAM_PARSER, parser );
+    }
+
     /**
      * Returns the current base directory.
      *
@@ -90,4 +107,14 @@ public class MacroRequest
     {
         return parameters.get( key );
     }
+
+    public String getSourceContent()
+    {
+        return (String) getParameter( PARAM_SOURCE_CONTENT );
+    }
+
+    public Parser getParser()
+    {
+        return (Parser) getParameter( PARAM_PARSER );
+    }
 }

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java?rev=1702681&r1=1702680&r2=1702681&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java
 Sat Sep 12 20:34:09 2015
@@ -97,8 +97,8 @@ public class TocMacro
     public void execute( Sink sink, MacroRequest request )
         throws MacroExecutionException
     {
-        String source = (String) request.getParameter( "sourceContent" );
-        Parser parser = (Parser) request.getParameter( "parser" );
+        String source = request.getSourceContent();
+        Parser parser = request.getParser();
 
         section = getInt( request, "section", 0 );
         fromDepth = getInt( request, "fromDepth", 0 );

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=1702681&r1=1702680&r2=1702681&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
 Sat Sep 12 20:34:09 2015
@@ -2913,16 +2913,9 @@ public class AptParser
                 parameters.put( key, value );
             }
 
-            parameters.put( "sourceContent", sourceContent );
-
-            AptParser aptParser = new AptParser();
-            aptParser.setSecondParsing( true );
-            aptParser.enableLogging( getLog() );
-            parameters.put( "parser", aptParser );
-
             // getBasedir() does not work in multi-module builds, see DOXIA-373
             // the basedir should be injected from here, see DOXIA-224
-            MacroRequest request = new MacroRequest( parameters, getBasedir() 
);
+            MacroRequest request = new MacroRequest( sourceContent, new 
AptParser(), parameters, getBasedir() );
             try
             {
                 AptParser.this.executeMacro( macroId, request, sink );

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java?rev=1702681&r1=1702680&r2=1702681&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
 Sat Sep 12 20:34:09 2015
@@ -486,13 +486,8 @@ public class FmlParser
         {
             if ( StringUtils.isNotEmpty( macroName ) )
             {
-                // TODO handles specific macro attributes
-                macroParameters.put( "sourceContent", sourceContent );
-                FmlParser fmlParser = new FmlParser();
-                fmlParser.setSecondParsing( true );
-                macroParameters.put( "parser", fmlParser );
-
-                MacroRequest request = new MacroRequest( macroParameters, 
getBasedir() );
+                MacroRequest request =
+                    new MacroRequest( sourceContent, new FmlParser(), 
macroParameters, getBasedir() );
 
                 try
                 {

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=1702681&r1=1702680&r2=1702681&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
 Sat Sep 12 20:34:09 2015
@@ -392,13 +392,8 @@ public class XdocParser
         {
             if ( StringUtils.isNotEmpty( macroName ) )
             {
-                // TODO handles specific macro attributes
-                macroParameters.put( "sourceContent", sourceContent );
-                XdocParser xdocParser = new XdocParser();
-                xdocParser.setSecondParsing( true );
-                macroParameters.put( "parser", xdocParser );
-
-                MacroRequest request = new MacroRequest( macroParameters, 
getBasedir() );
+                MacroRequest request =
+                    new MacroRequest( sourceContent, new XdocParser(), 
macroParameters, getBasedir() );
 
                 try
                 {


Reply via email to