Package com.unitesk.aspectrace.html
Class ReportGenerator
- java.lang.Object
-
- com.unitesk.aspectrace.html.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.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.util.List<java.lang.String>,java.lang.Boolean>
autoRefs
protected java.util.LinkedHashSet<ReportPage>
pages
protected ReferenceManager<HtmlReportPage>
refMan
protected java.util.IdentityHashMap<HtmlReportPage.Streamable,java.io.PrintWriter>
streams
-
Constructor Summary
Constructors Constructor Description ReportGenerator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HtmlReportPage
addAllDtBsPage()
void
addAutoRef(java.lang.String fromAspect, java.lang.String toAspect)
Adds auto referencing (one-sided) between HTML-pages via resolvers and tags.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.HtmlReportPage
addDetailsPage(HtmlReportPage ti)
HtmlReportPage
addGenericReport(java.lang.String name, java.lang.String aspect, HtmlReportPage ti, java.lang.String reportName)
HtmlReportPage
addIndexPage()
Adds a common index page.void
addPage(ReportPage rp)
Adds a page in a report.void
addPages(ReportPage[] ps)
Adds pages in report.void
addRefResolver(java.lang.String aspect, ReferenceResolver<? extends HtmlReportPage> resolver)
Adds resolver for auto referencing.StaticResource
addResource(java.lang.String inPath, java.lang.String outPath)
Adds a resource.protected void
buildAutoRefs()
protected java.io.PrintWriter
createWriter(HtmlReportPage hp)
protected void
finishGeneration(HtmlReportPage.Streamable strmbl)
void
generateReport()
Generates all report pages except: HTML-pages included as sections in other HTML-pages; Pages without path; Pages which are generating on fly now.java.lang.String
getDefaultCharset()
Gets default coding for pages.java.io.File
getGenerationDir()
Gets generation directory.java.io.File
getGenerationDir(java.io.File dir)
HtmlReportPage[]
getHtmlPages()
Gets all HTML-pages and reports sections.ReportPage[]
getPages()
Gets all pages and report sections.void
removeAutoRef(java.lang.String fromAspect, java.lang.String toAspect)
Removes auto referencing between HTML-pages of two aspects.void
removeRefResolver(java.lang.String aspect, ReferenceResolver<? extends HtmlReportPage> resolver)
Removes resolver from auto referencing.HtmlReportPage
resolve(java.lang.String aspect, java.lang.String channel, java.lang.String ref)
Resolves text reference into HTML-page.HtmlReportPage[]
resolveMulti(java.lang.String aspect, java.lang.String channel, java.lang.String ref)
Resolves a text reference into multiple HTML-pages.void
setDefaultCharset(java.lang.String charset)
Sets default coding for pages.void
setGenerationDir(java.io.File dir)
Sets generation directory.protected void
startGeneration(HtmlReportPage.Streamable strmbl)
-
-
-
Field Detail
-
refMan
protected ReferenceManager<HtmlReportPage> refMan
-
autoRefs
protected java.util.Map<java.util.List<java.lang.String>,java.lang.Boolean> autoRefs
-
pages
protected java.util.LinkedHashSet<ReportPage> pages
-
streams
protected java.util.IdentityHashMap<HtmlReportPage.Streamable,java.io.PrintWriter> streams
-
-
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 isstreamble HTML-page
then generation begins immediately.
-
addPages
public void addPages(ReportPage[] ps)
Adds pages in report.- See Also:
addPage(ReportPage)
-
addIndexPage
public HtmlReportPage addIndexPage()
Adds a common index page.- Returns:
- Added page.
-
addAllDtBsPage
public HtmlReportPage addAllDtBsPage()
-
addDetailsPage
public HtmlReportPage addDetailsPage(HtmlReportPage ti)
-
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
-
finishGeneration
protected void finishGeneration(HtmlReportPage.Streamable strmbl)
-
createWriter
protected java.io.PrintWriter createWriter(HtmlReportPage hp) throws java.io.IOException
- Throws:
java.io.IOException
-
-