You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by he...@apache.org on 2007/01/01 22:35:31 UTC

svn commit: r491636 - /velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java

Author: henning
Date: Mon Jan  1 13:35:30 2007
New Revision: 491636

URL: http://svn.apache.org/viewvc?view=rev&rev=491636
Log:
Forgot to add the NewsReport base class.


Added:
    velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java   (with props)

Added: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
URL: http://svn.apache.org/viewvc/velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java?view=auto&rev=491636
==============================================================================
--- velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java (added)
+++ velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java Mon Jan  1 13:35:30 2007
@@ -0,0 +1,142 @@
+package org.apache.velocity.maven.plugin.news;
+
+import java.io.File;
+import java.util.Locale;
+
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReport;
+import org.apache.maven.reporting.MavenReportException;
+
+/**
+ * Base class for news items report for the site.
+ *
+ * @author  <a href="mailto:henning@apache.org">Henning P. Schmiedehausen</a>
+ * @version  $Revision$
+ */
+public abstract class AbstractVelocityNewsReport extends AbstractVelocityNewsPlugin implements MavenReport {
+
+    private Sink sink;
+
+    private File reportOutputDirectory;
+
+    /**
+     * @component
+     * @required
+     * @readonly
+     */
+    protected Renderer siteRenderer;
+
+    /**
+     * The Maven Project Object
+     *
+     * @parameter default-value="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * Specifies the directory where the report will be generated
+     *
+     * @parameter default-value="${project.reporting.outputDirectory}"
+     * @required
+     */
+    protected File outputDirectory;
+
+   /**
+     * Shortcut Mojo Execution. This is not a real plugin.
+     *
+     * @see org.apache.maven.plugin.Mojo#execute()
+     */
+    public void execute()
+        throws MojoExecutionException
+    {
+        throw new MojoExecutionException( "Reporting mojo's can only be called from ReportDocumentRender");
+    }
+
+    public void generate(final org.codehaus.doxia.sink.Sink sink, final Locale locale)
+        throws MavenReportException
+    {
+        if (sink == null)
+        {
+            throw new MavenReportException("You must specify a sink.");
+        }
+
+        this.sink = sink;
+
+        executeReport(locale);
+    }
+
+    protected abstract void executeReport(final Locale locale) throws MavenReportException ;
+
+    public String getCategoryName()
+    {
+        return CATEGORY_PROJECT_REPORTS;
+    }
+
+    public File getReportOutputDirectory()
+    {
+        if (reportOutputDirectory == null)
+        {
+            reportOutputDirectory = new File(getOutputDirectory());
+        }
+        return reportOutputDirectory;
+    }
+
+    public void setReportOutputDirectory(final File reportOutputDirectory)
+    {
+        this.reportOutputDirectory = reportOutputDirectory;
+    }
+
+    public Sink getSink()
+    {
+        return sink;
+    }
+
+    public boolean isExternalReport()
+    {
+        return false;
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getOutputDirectory()
+     */
+    protected String getOutputDirectory()
+    {
+        return outputDirectory.getAbsolutePath();
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getProject()
+     */
+    protected MavenProject getProject()
+    {
+        return project;
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer()
+     */
+    protected Renderer getSiteRenderer()
+    {
+        return siteRenderer;
+    }
+
+    /**
+     * @see org.apache.maven.reporting.MavenReport#getOutputName()
+     */
+    public String getOutputName() {
+        return getNewsContainer().getNewsPageName();
+    }
+
+    /**
+     * @see org.apache.maven.reporting.AbstractMavenReport#canGenerateReport()
+     */
+    public boolean canGenerateReport()
+    {
+        return true; // For now.
+    }
+}

Propchange: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: velocity/site/velocity-news-plugin/src/main/java/org/apache/velocity/maven/plugin/news/AbstractVelocityNewsReport.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Revision