diff options
Diffstat (limited to 'ant/ant14/com/vladium/emma/report/reportTask.java')
-rw-r--r-- | ant/ant14/com/vladium/emma/report/reportTask.java | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/ant/ant14/com/vladium/emma/report/reportTask.java b/ant/ant14/com/vladium/emma/report/reportTask.java new file mode 100644 index 0000000..b726753 --- /dev/null +++ b/ant/ant14/com/vladium/emma/report/reportTask.java @@ -0,0 +1,179 @@ +/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. + * + * This program and the accompanying materials are made available under + * the terms of the Common Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/cpl-v10.html + * + * $Id: reportTask.java,v 1.1.1.1.2.1 2004/07/08 10:52:11 vlad_r Exp $ + */ +package com.vladium.emma.report; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.Reference; + +import com.vladium.util.IProperties; +import com.vladium.emma.ant.FileTask; +import com.vladium.emma.ant.SuppressableTask; +import com.vladium.emma.report.ReportCfg.Element_HTML; +import com.vladium.emma.report.ReportCfg.Element_TXT; +import com.vladium.emma.report.ReportCfg.Element_XML; + +// ---------------------------------------------------------------------------- +/** + * @author Vlad Roubtsov, (C) 2003 + */ +public +final class reportTask extends FileTask implements IReportProperties, IReportEnums +{ + public reportTask (final SuppressableTask parent) + { + super (parent); + } + + public void init () throws BuildException + { + super.init (); + + m_reportCfg = new ReportCfg (getProject (), this); + } + + + public void execute () throws BuildException + { + if (isEnabled ()) + { + final String [] reportTypes = m_reportCfg.getReportTypes (); + + if ((reportTypes == null) || (reportTypes.length == 0)) // no "txt" default for report processor + throw (BuildException) newBuildException (getTaskName () + + ": no report types specified: provide at least one of <txt>, <html>, <xml> nested elements", location).fillInStackTrace (); + + String [] files = getDataPath (true); + if ((files == null) || (files.length == 0)) + throw (BuildException) newBuildException (getTaskName () + + ": no valid input data files have been specified", location).fillInStackTrace (); + + final Path srcpath = m_reportCfg.getSourcepath (); + + // combine report and all generic settings: + final IProperties settings; + { + final IProperties taskSettings = getTaskSettings (); + final IProperties reportSettings = m_reportCfg.getReportSettings (); + + // named report settings override generic named settings and file + // settings have lower priority than any explicitly named overrides: + settings = IProperties.Factory.combine (reportSettings, taskSettings); + } + + final ReportProcessor processor = ReportProcessor.create (); + + processor.setDataPath (files); files = null; + processor.setSourcePath (srcpath != null ? srcpath.list () : null); + processor.setReportTypes (reportTypes); + processor.setPropertyOverrides (settings); + + processor.run (); + } + } + + + // sourcepath attribute/element: + + public void setSourcepath (final Path path) + { + m_reportCfg.setSourcepath (path); + } + + public void setSourcepathRef (final Reference ref) + { + m_reportCfg.setSourcepathRef (ref); + } + + public Path createSourcepath () + { + return m_reportCfg.createSourcepath (); + } + + + // generator elements: + + public Element_TXT createTxt () + { + return m_reportCfg.createTxt (); + } + + public Element_HTML createHtml () + { + return m_reportCfg.createHtml (); + } + + public Element_XML createXml () + { + return m_reportCfg.createXml (); + } + + + // report properties [defaults for all report types]: + + public void setUnits (final UnitsTypeAttribute units) + { + m_reportCfg.setUnits (units); + } + + public void setDepth (final DepthAttribute depth) + { + m_reportCfg.setDepth (depth); + } + + public void setColumns (final String columns) + { + m_reportCfg.setColumns (columns); + } + + public void setSort (final String sort) + { + m_reportCfg.setSort (sort); + } + + public void setMetrics (final String metrics) + { + m_reportCfg.setMetrics (metrics); + } + + // not supported anymore: + +// public void setOutdir (final File dir) +// { +// m_reportCfg.setOutdir (dir); +// } +// +// public void setDestdir (final File dir) +// { +// m_reportCfg.setDestdir (dir); +// } + + // should not be set at the global level: + +// public void setOutfile (final String fileName) +// { +// m_reportCfg.setOutfile (fileName); +// } + + public void setEncoding (final String encoding) + { + m_reportCfg.setEncoding (encoding); + } + + // protected: ............................................................. + + // package: ............................................................... + + // private: ............................................................... + + + private ReportCfg m_reportCfg; + +} // end of class +// ----------------------------------------------------------------------------
\ No newline at end of file |