Class ReportGenerator


  • public class ReportGenerator
    extends java.lang.Object
    HTML-report generator. Supports common generation and stream generation, reference manager and auto-placing of context references.
    • Constructor Detail

      • ReportGenerator

        public ReportGenerator()
    • Method Detail

      • setGenerationDir

        public void setGenerationDir​(java.io.File dir)
        Sets generation directory. Directory would be created if necessary.
      • getGenerationDir

        public java.io.File getGenerationDir​(java.io.File dir)
      • getGenerationDir

        public java.io.File getGenerationDir()
        Gets generation directory.
      • getDefaultCharset

        public java.lang.String getDefaultCharset()
        Gets default coding for pages.
      • setDefaultCharset

        public void setDefaultCharset​(java.lang.String charset)
        Sets default coding for pages.
      • addPage

        public void addPage​(ReportPage rp)
        Adds a page in a report. If the page is streamble HTML-page then generation begins immediately.
      • addIndexPage

        public HtmlReportPage addIndexPage()
        Adds a common index page.
        Returns:
        Added page.
      • addGenericReport

        public HtmlReportPage addGenericReport​(java.lang.String name,
                                               java.lang.String aspect,
                                               HtmlReportPage ti,
                                               java.lang.String reportName)
      • addResource

        public StaticResource addResource​(java.lang.String inPath,
                                          java.lang.String outPath)
        Adds a resource.
        Parameters:
        inPath - Source path in filesystem or in classpath.
        outPath - Result path relative to generation root.
        Returns:
        Added resource object.
      • getPages

        public ReportPage[] getPages()
        Gets all pages and report sections.
      • getHtmlPages

        public HtmlReportPage[] getHtmlPages()
        Gets all HTML-pages and reports sections.
      • addAutoRef

        public void addAutoRef​(java.lang.String fromAspect,
                               java.lang.String toAspect)
        Adds auto referencing (one-sided) between HTML-pages via resolvers and tags.
      • addAutoRef

        public void addAutoRef​(java.lang.String fromAspect,
                               java.lang.String toAspect,
                               boolean bidirect)
        Adds auto referencing (one-sided or two-sided) between HTML-pages of two aspects.
      • removeAutoRef

        public void removeAutoRef​(java.lang.String fromAspect,
                                  java.lang.String toAspect)
        Removes auto referencing between HTML-pages of two aspects.
      • addRefResolver

        public void addRefResolver​(java.lang.String aspect,
                                   ReferenceResolver<? extends HtmlReportPage> resolver)
        Adds resolver for auto referencing.
      • removeRefResolver

        public void removeRefResolver​(java.lang.String aspect,
                                      ReferenceResolver<? extends HtmlReportPage> resolver)
        Removes resolver from auto referencing.
      • resolve

        public HtmlReportPage resolve​(java.lang.String aspect,
                                      java.lang.String channel,
                                      java.lang.String ref)
        Resolves text reference into HTML-page.
      • resolveMulti

        public HtmlReportPage[] resolveMulti​(java.lang.String aspect,
                                             java.lang.String channel,
                                             java.lang.String ref)
        Resolves a text reference into multiple HTML-pages. Here a list can be replaced by an array cause dynamic type is known.
      • buildAutoRefs

        protected void buildAutoRefs()
      • generateReport

        public void generateReport()
                            throws java.io.IOException,
                                   java.lang.IllegalStateException
        Generates all report pages except:
        • HTML-pages included as sections in other HTML-pages;
        • Pages without path;
        • Pages which are generating on fly now. Generation ends for them.
        Throws:
        java.io.IOException
        java.lang.IllegalStateException
      • startGeneration

        protected void startGeneration​(HtmlReportPage.Streamable strmbl)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • createWriter

        protected java.io.PrintWriter createWriter​(HtmlReportPage hp)
                                            throws java.io.IOException
        Throws:
        java.io.IOException