You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ev...@apache.org on 2005/05/20 17:25:11 UTC

svn commit: r171126 - in /maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting: AbstractMavenMultiPageReport.java AbstractMavenReport.java sink/MultiPageSink.java

Author: evenisse
Date: Fri May 20 08:25:10 2005
New Revision: 171126

URL: http://svn.apache.org/viewcvs?rev=171126&view=rev
Log:
Add startPage and EndPage methods for MultiPageReport

Added:
    maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/sink/MultiPageSink.java
Modified:
    maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenMultiPageReport.java
    maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java

Modified: maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenMultiPageReport.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenMultiPageReport.java?rev=171126&r1=171125&r2=171126&view=diff
==============================================================================
--- maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenMultiPageReport.java (original)
+++ maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenMultiPageReport.java Fri May 20 08:25:10 2005
@@ -1,7 +1,11 @@
 package org.apache.maven.reporting;
 
 import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 
+import org.apache.maven.reporting.sink.MultiPageSink;
 import org.apache.maven.reporting.sink.SinkFactory;
 import org.codehaus.doxia.sink.Sink;
 
@@ -28,7 +32,9 @@
 public abstract class AbstractMavenMultiPageReport
     extends AbstractMavenReport
 {
-    SinkFactory factory;
+    private SinkFactory factory;
+
+    private List sinks = new ArrayList();
 
     public void setSinkFactory( SinkFactory factory )
     {
@@ -44,6 +50,7 @@
             factory.setSiteDescriptor( getSiteDescriptor() );
         }
     }
+
     public SinkFactory getSinkFactory()
     {
         return factory;
@@ -64,9 +71,58 @@
         return true;
     }
 
-    public Sink getSink( String outputName )
+    public abstract boolean usePageLinkBar();
+
+    private Sink getSink( String outputName )
         throws Exception
     {
         return factory.getSink( outputName );
     }
-}
\ No newline at end of file
+
+    public MultiPageSink startPage( String outputName )
+        throws Exception
+    {
+        return new MultiPageSink( outputName, getSink( outputName ) );
+    }
+
+    public void endPage( MultiPageSink sink )
+    {
+        if ( usePageLinkBar() )
+        {
+            sinks.add( sink );
+        }
+        else
+        {
+            sink.closeSink();
+        }
+    }
+
+    protected void closeReport()
+    {
+        int counter = 1;
+
+        if ( !sinks.isEmpty() )
+        {
+            for ( Iterator i = sinks.iterator(); i.hasNext(); )
+            {
+                MultiPageSink currentSink = (MultiPageSink) i.next();
+
+                currentSink.paragraph();
+                for ( Iterator j = sinks.iterator(); i.hasNext(); )
+                {
+                    if (counter>1)
+                    {
+                        currentSink.text( " " );
+                    }
+                    MultiPageSink sink = (MultiPageSink) i.next();
+                    sink.link( sink.getOutputName() + ".html" );
+                    sink.text( String.valueOf( counter++ ) );
+                    sink.link_();
+                    
+                }
+                currentSink.paragraph_();
+                currentSink.closeSink();
+            }
+        }
+    }
+}

Modified: maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java?rev=171126&r1=171125&r2=171126&view=diff
==============================================================================
--- maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java (original)
+++ maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java Fri May 20 08:25:10 2005
@@ -61,10 +61,16 @@
         }
 
         execute();
+
+        closeReport();
     }
 
     protected abstract void execute()
         throws MavenReportException;
+
+    protected void closeReport()
+    {
+    }
 
     public Sink getSink()
         throws IOException

Added: maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/sink/MultiPageSink.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/sink/MultiPageSink.java?rev=171126&view=auto
==============================================================================
--- maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/sink/MultiPageSink.java (added)
+++ maven/components/trunk/maven-reporting/maven-reporting-api/src/main/java/org/apache/maven/reporting/sink/MultiPageSink.java Fri May 20 08:25:10 2005
@@ -0,0 +1,735 @@
+/**
+ * 
+ */
+package org.apache.maven.reporting.sink;
+
+import org.codehaus.doxia.sink.Sink;
+import org.codehaus.doxia.sink.SinkAdapter;
+
+/**
+ * @author Emmanuel Venisse
+ *
+ */
+public class MultiPageSink
+    extends SinkAdapter
+{
+    private String outputName;
+
+    private Sink sink;
+
+    public MultiPageSink( String outputName, Sink sink )
+    {
+        this.outputName = outputName;
+        this.sink = sink;
+    }
+
+    public String getOutputName()
+    {
+        return outputName;
+    }
+
+    public Sink getEmbeddedSink()
+    {
+        return sink;
+    }
+
+    public void closeSink()
+    {
+        sink.body_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#anchor_()
+     */
+    public void anchor_()
+    {
+        sink.anchor_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#anchor(java.lang.String)
+     */
+    public void anchor( String arg0 )
+    {
+        sink.anchor( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#author_()
+     */
+    public void author_()
+    {
+        sink.author_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#author()
+     */
+    public void author()
+    {
+        sink.author();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#body()
+     */
+    public void body()
+    {
+        sink.body();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#body_()
+     */
+    public void body_()
+    {
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#bold_()
+     */
+    public void bold_()
+    {
+        sink.bold_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#bold()
+     */
+    public void bold()
+    {
+        sink.bold();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#close()
+     */
+    public void close()
+    {
+        sink.close();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#date_()
+     */
+    public void date_()
+    {
+        sink.date_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#date()
+     */
+    public void date()
+    {
+        sink.date();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definedTerm_()
+     */
+    public void definedTerm_()
+    {
+        sink.definedTerm_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definedTerm()
+     */
+    public void definedTerm()
+    {
+        sink.definedTerm();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definition_()
+     */
+    public void definition_()
+    {
+        sink.definition_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definition()
+     */
+    public void definition()
+    {
+        sink.definition();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definitionList_()
+     */
+    public void definitionList_()
+    {
+        sink.definitionList_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definitionList()
+     */
+    public void definitionList()
+    {
+        sink.definitionList();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definitionListItem_()
+     */
+    public void definitionListItem_()
+    {
+        sink.definitionListItem_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#definitionListItem()
+     */
+    public void definitionListItem()
+    {
+        sink.definitionListItem();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#figure_()
+     */
+    public void figure_()
+    {
+        sink.figure_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#figure()
+     */
+    public void figure()
+    {
+        sink.figure();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#figureCaption_()
+     */
+    public void figureCaption_()
+    {
+        sink.figureCaption_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#figureCaption()
+     */
+    public void figureCaption()
+    {
+        sink.figureCaption();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#figureGraphics(java.lang.String)
+     */
+    public void figureGraphics( String arg0 )
+    {
+        sink.figureGraphics( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#flush()
+     */
+    public void flush()
+    {
+        sink.flush();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#head_()
+     */
+    public void head_()
+    {
+        sink.head_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#head()
+     */
+    public void head()
+    {
+        sink.head();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#horizontalRule()
+     */
+    public void horizontalRule()
+    {
+        sink.horizontalRule();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#italic_()
+     */
+    public void italic_()
+    {
+        sink.italic_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#italic()
+     */
+    public void italic()
+    {
+        sink.italic();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#lineBreak()
+     */
+    public void lineBreak()
+    {
+        sink.lineBreak();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#link_()
+     */
+    public void link_()
+    {
+        sink.link_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#link(java.lang.String)
+     */
+    public void link( String arg0 )
+    {
+        sink.link( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#list_()
+     */
+    public void list_()
+    {
+        sink.list_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#list()
+     */
+    public void list()
+    {
+        sink.list();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#listItem_()
+     */
+    public void listItem_()
+    {
+        sink.listItem_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#listItem()
+     */
+    public void listItem()
+    {
+        sink.listItem();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#monospaced_()
+     */
+    public void monospaced_()
+    {
+        sink.monospaced_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#monospaced()
+     */
+    public void monospaced()
+    {
+        sink.monospaced();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#nonBreakingSpace()
+     */
+    public void nonBreakingSpace()
+    {
+        sink.nonBreakingSpace();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#numberedList_()
+     */
+    public void numberedList_()
+    {
+        sink.numberedList_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#numberedList(int)
+     */
+    public void numberedList( int arg0 )
+    {
+        sink.numberedList( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#numberedListItem_()
+     */
+    public void numberedListItem_()
+    {
+        sink.numberedListItem_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#numberedListItem()
+     */
+    public void numberedListItem()
+    {
+        sink.numberedListItem();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#pageBreak()
+     */
+    public void pageBreak()
+    {
+        sink.pageBreak();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#paragraph_()
+     */
+    public void paragraph_()
+    {
+        sink.paragraph_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#paragraph()
+     */
+    public void paragraph()
+    {
+        sink.paragraph();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#rawText(java.lang.String)
+     */
+    public void rawText( String arg0 )
+    {
+        sink.rawText( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section1_()
+     */
+    public void section1_()
+    {
+        sink.section1_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section1()
+     */
+    public void section1()
+    {
+        sink.section1();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section2_()
+     */
+    public void section2_()
+    {
+        sink.section2_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section2()
+     */
+    public void section2()
+    {
+        sink.section2();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section3_()
+     */
+    public void section3_()
+    {
+        sink.section3_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section3()
+     */
+    public void section3()
+    {
+        sink.section3();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section4_()
+     */
+    public void section4_()
+    {
+        sink.section4_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section4()
+     */
+    public void section4()
+    {
+        sink.section4();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section5_()
+     */
+    public void section5_()
+    {
+        sink.section5_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#section5()
+     */
+    public void section5()
+    {
+        sink.section5();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle_()
+     */
+    public void sectionTitle_()
+    {
+        sink.sectionTitle_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle()
+     */
+    public void sectionTitle()
+    {
+        sink.sectionTitle();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle1_()
+     */
+    public void sectionTitle1_()
+    {
+        sink.sectionTitle1_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle1()
+     */
+    public void sectionTitle1()
+    {
+        sink.sectionTitle1();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle2_()
+     */
+    public void sectionTitle2_()
+    {
+        sink.sectionTitle2_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle2()
+     */
+    public void sectionTitle2()
+    {
+        sink.sectionTitle2();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle3_()
+     */
+    public void sectionTitle3_()
+    {
+        sink.sectionTitle3_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle3()
+     */
+    public void sectionTitle3()
+    {
+        sink.sectionTitle3();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle4_()
+     */
+    public void sectionTitle4_()
+    {
+        sink.sectionTitle4_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle4()
+     */
+    public void sectionTitle4()
+    {
+        sink.sectionTitle4();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle5_()
+     */
+    public void sectionTitle5_()
+    {
+        sink.sectionTitle5_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#sectionTitle5()
+     */
+    public void sectionTitle5()
+    {
+        sink.sectionTitle5();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#table_()
+     */
+    public void table_()
+    {
+        sink.table_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#table()
+     */
+    public void table()
+    {
+        sink.table();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableCaption_()
+     */
+    public void tableCaption_()
+    {
+        sink.tableCaption_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableCaption()
+     */
+    public void tableCaption()
+    {
+        sink.tableCaption();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableCell_()
+     */
+    public void tableCell_()
+    {
+        sink.tableCell_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableCell()
+     */
+    public void tableCell()
+    {
+        sink.tableCell();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableHeaderCell_()
+     */
+    public void tableHeaderCell_()
+    {
+        sink.tableHeaderCell_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableHeaderCell()
+     */
+    public void tableHeaderCell()
+    {
+        sink.tableHeaderCell();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableRow_()
+     */
+    public void tableRow_()
+    {
+        sink.tableRow_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableRow()
+     */
+    public void tableRow()
+    {
+        sink.tableRow();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableRows_()
+     */
+    public void tableRows_()
+    {
+        sink.tableRows_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#tableRows(int[], boolean)
+     */
+    public void tableRows( int[] arg0, boolean arg1 )
+    {
+        sink.tableRows( arg0, arg1 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#text(java.lang.String)
+     */
+    public void text( String arg0 )
+    {
+        sink.text( arg0 );
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#title_()
+     */
+    public void title_()
+    {
+        sink.title_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#title()
+     */
+    public void title()
+    {
+        sink.title();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#verbatim_()
+     */
+    public void verbatim_()
+    {
+        sink.verbatim_();
+    }
+
+    /**
+     * @see org.codehaus.doxia.sink.SinkAdapter#verbatim(boolean)
+     */
+    public void verbatim( boolean arg0 )
+    {
+        sink.verbatim( arg0 );
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org