<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <meta name="copyright" content=
    "Copyright (c) IBM Corporation and others 2010, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." />
    <meta http-equiv="Content-Type" content=
    "text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="stylesheet" href="../../../apache_style.css" type=
    "text/css" />
    <title>
      API Consumer Use Report Conversion Ant Task
    </title>
    <script language="JavaScript" src=
    "PLUGINS_ROOT/org.eclipse.help/livehelp.js" type=
    "text/javascript">

</script>
  </head>
  <body>
    <h1>
      API Consumer Use Report Conversion Ant Task
    </h1>
    <h2>
      Purpose
    </h2>

    <p>
      This task converts the XML report created by the
      <code>apitooling.apiuse</code> Ant task into HTML files. The
      HTML report organizes references by the bundle that consumes
      the reference (i.e. contains the code that references the
      api/type).
    </p>
    <h2>
      Usage
    </h2>
    <h3>
      Description
    </h3>

    <p>
      The name of the Ant task is:
      <code>apitooling.apiconsumeruse_reportconversion</code>. To
      be used, the jar file <code>apitooling-ant.jar</code> has to
      be on the Ant classpath.
    </p>
    <div class="c4">
      <pre class="c3">
 <b><span class="c2">&lt;apitooling.apiconsumeruse_reportconversion
	xmlfiles=<span class="c1">"..."</span>
	htmlfiles=<span class="c1">"..."</span>
	xsltfile=<span class="c1">"..."</span>
	filterpatterns=<span class="c1">"..."</span>
	tofilterpatterns=<span class="c1">"..."</span>
	debug=<span class="c1">"..."</span>
 /&gt;</span></b>
</pre>
    </div>
    <h3>
      Parameters
    </h3>
    <table border="1" cellpadding="2" cellspacing="0">
      <tr>
        <td valign="top">

          <b>Attribute</b>
        </td>
        <td valign="top">
          <b>Description</b>
        </td>
        <td align="center" valign="top">
          <b>Required</b>

        </td>
      </tr>
      <tr>
        <td valign="top">
          xmlfiles
        </td>
        <td valign="top">
          This attribute specifies the location of the xml files to
          convert.<br />
          <br />

          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>
      <tr>
        <td valign="top">
          htmlfiles
        </td>

        <td valign="top">
          This attribute specifies the location of the html files
          to generate.<br />
          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          Yes
        </td>
      </tr>

      <tr>
        <td valign="top">
          xsltfile
        </td>
        <td valign="top">
          This attribute specifies the location of an XSLT file to
          be used to generate the reference details pages in a
          desired ordering.<br />
          <br />
          A default XSLT file is available in the
          <code>apitooling-ant.jar</code> JAR file.<br />

          <br />
          The location is specified using an absolute path.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>
        <td valign="top">
          filterpatterns
        </td>

        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>from</em> matching name patterns from the final
          report.<br />
          <br />
          The pattern must be a well-formatted regular expression
          as defined <a href=
          "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
          here</a>.
        </td>

        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>
        <td valign="top">
          tofilterpatterns
        </td>
        <td valign="top">
          This attribute specifies a comma separated listing of
          regular expression patterns used to prune references
          <em>to</em> matching name patterns from the final
          report.<br />

          <br />
          The pattern must be a well-formatted regular expression
          as defined <a href=
          "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html">
          here</a>.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
      <tr>

        <td valign="top">
          debug
        </td>
        <td valign="top">
          Set the debug value.<br />
          <br />
          The possible values are: <code>true</code>,
          <code>false</code><br />

          Default is <code>false</code>.
        </td>
        <td align="center" valign="top">
          No
        </td>
      </tr>
    </table>
    <h3>
      Examples
    </h3>

    <pre>
 <b><span class="c2">&lt;apitooling.apiuse_reportconversion
  xmlfiles=<span class="c1">"/eclipse/apiuse-both/XML"</span>
  htmlfiles=<span class="c1">"/eclipse/apiuse-both/HTML"</span>
  xsltfile=<span class="c1">"/eclipse/references.xsl"</span>
  debug=<span class="c1">"true"</span>

 /&gt;</span></b>
</pre>
    <p>
      This will run the task creating <code>*.html</code> files
      inside the folder <code>/eclipse/apiuse-both/HTML</code>
      corresponding to the folder structure of the XML file
      location
    </p>
    <p>

      If debug is enabled, some debug tracing will show up in the
      Ant console.
    </p>
    <p>
      <img src="../../../images/ngrelr.png" alt="Related reference"
      border="0" />
    </p>
    <p>
      <a href="apiuse-reportconversion-ant-task.htm">API Use Report
      Conversion Ant Task</a><br />
      <a href="analysis-ant-task.htm">Analysis Ant Task</a><br />

      <a href="filegeneration-ant-task.htm">File Generation Ant
      Task</a><br />
      <a href="apiuse-ant-task.htm">API Use Ant Task</a><br />
      <a href="apifreeze-ant-task.htm">API Freeze Ant
      Task</a><br />
      <a href="deprecation-ant-task.htm">API Deprecation Ant
      Task</a><br />
      <a href="deprecation-reportconversion-ant-task.htm">API
      Deprecation Report Conversion Ant Task</a><br />
      <a href="analysis-reportconversion-ant-task.htm">Analysis
      Report Conversion Ant Task</a>

    </p>
  </body>
</html>
