Browse Source

Add taglets support to javadoc

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272232 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 23 years ago
parent
commit
8bd72d6533
2 changed files with 60 additions and 15 deletions
  1. +26
    -7
      docs/manual/CoreTasks/javadoc.html
  2. +34
    -8
      src/main/org/apache/tools/ant/taskdefs/Javadoc.java

+ 26
- 7
docs/manual/CoreTasks/javadoc.html View File

@@ -346,13 +346,6 @@ instead.</i></p>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
<tr>
<td valign="top">tag</td>
<td valign="top">Specifies how custom tags should be handled. See
<a href="#tagelement">below</a> for details.</td>
<td align="center" valign="top">1.4</td>
<td align="center" valign="top">No</td>
</tr>
<tr> <tr>
<td valign="top">additionalparam</td> <td valign="top">additionalparam</td>
<td valign="top">Lets you add additional parameters to the javadoc <td valign="top">Lets you add additional parameters to the javadoc
@@ -586,6 +579,32 @@ with Java 1.4.</p>
</tr> </tr>
</table> </table>


<h4><a name="tagletelement">taglet</a></h4>
<p>The taglet nested element is used to specify custom taglets. This option is
only available with Java 1.4.</p>

<h5>Parameters</h5>
<table width="60%" 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">name</td>
<td valign="top">The name of the taglet class
(e.g. <code>com.sun.tools.doclets.ToDoTaglet</code>)</td>
<td align="center" valign="top">Yes</td>
</tr>
<tr>
<td valign="top">path</td>
<td valign="top">A path specifying the search path for the taglet class
(e.g. <code>/home/taglets</code>).
The path may also be specified by a nested &lt;path&gt; element</td>
<td align="center" valign="top">No</td>
</tr>
</table>

<h4>sourcepath, classpath and bootclasspath</h4> <h4>sourcepath, classpath and bootclasspath</h4>
<p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and <p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and
<i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like <i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like


+ 34
- 8
src/main/org/apache/tools/ant/taskdefs/Javadoc.java View File

@@ -65,7 +65,7 @@ import java.util.StringTokenizer;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.Task; import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference; import org.apache.tools.ant.types.Reference;
@@ -128,12 +128,9 @@ public class Javadoc extends Task {
} }
} }


public class DocletInfo {
static public class ExtensionInfo extends ProjectComponent {
private String name; private String name;
private Path path; private Path path;

private Vector params = new Vector();

public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
@@ -167,6 +164,11 @@ public class Javadoc extends Task {
public void setPathRef(Reference r) { public void setPathRef(Reference r) {
createPath().setRefid(r); createPath().setRefid(r);
} }
}
public class DocletInfo extends ExtensionInfo {

private Vector params = new Vector();


public DocletParam createParam() { public DocletParam createParam() {
DocletParam param = new DocletParam(); DocletParam param = new DocletParam();
@@ -270,7 +272,8 @@ public class Javadoc extends Task {
private String packageList = null; private String packageList = null;
private Vector links = new Vector(2); private Vector links = new Vector(2);
private Vector groups = new Vector(2); private Vector groups = new Vector(2);
private Vector tags = new Vector(1);
private Vector tags = new Vector(5);
private Vector taglets = new Vector(2);
private boolean useDefaultExcludes = true; private boolean useDefaultExcludes = true;
private Html doctitle = null; private Html doctitle = null;
private Html header = null; private Html header = null;
@@ -424,6 +427,10 @@ public class Javadoc extends Task {
return doclet; return doclet;
} }


public void addTaglet(ExtensionInfo tagletInfo) {
taglets.addElement(tagletInfo);
}
public void setOld(boolean b) { public void setOld(boolean b) {
add12ArgIf(b, "-1.1"); add12ArgIf(b, "-1.1");
} }
@@ -971,8 +978,12 @@ public class Javadoc extends Task {
toExecute.createArgument().setValue("-doclet"); toExecute.createArgument().setValue("-doclet");
toExecute.createArgument().setValue(doclet.getName()); toExecute.createArgument().setValue(doclet.getName());
if (doclet.getPath() != null) { if (doclet.getPath() != null) {
toExecute.createArgument().setValue("-docletpath");
toExecute.createArgument().setPath(doclet.getPath().concatSystemClasspath("ignore"));
Path docletPath
= doclet.getPath().concatSystemClasspath("ignore");
if (docletPath.size() != 0) {
toExecute.createArgument().setValue("-docletpath");
toExecute.createArgument().setPath(docletPath);
}
} }
for (Enumeration e = doclet.getParams(); e.hasMoreElements();) { for (Enumeration e = doclet.getParams(); e.hasMoreElements();) {
DocletParam param = (DocletParam)e.nextElement(); DocletParam param = (DocletParam)e.nextElement();
@@ -1068,6 +1079,21 @@ public class Javadoc extends Task {
// JavaDoc 1.4 parameters // JavaDoc 1.4 parameters
if (javadoc4) { if (javadoc4) {
for (Enumeration e = taglets.elements(); e.hasMoreElements(); ) {
ExtensionInfo tagletInfo
= (ExtensionInfo) e.nextElement();
toExecute.createArgument().setValue("-taglet");
toExecute.createArgument().setValue(tagletInfo.getName());
if (tagletInfo.getPath() != null) {
System.out.println("Taglet base path is " + tagletInfo.getPath());
Path tagletPath
= tagletInfo.getPath().concatSystemClasspath("ignore");
if (tagletPath.size() != 0) {
toExecute.createArgument().setValue("-tagletpath");
toExecute.createArgument().setPath(tagletPath);
}
}
}
for (Enumeration e = tags.elements(); e.hasMoreElements(); ) { for (Enumeration e = tags.elements(); e.hasMoreElements(); ) {
TagArgument ta = (TagArgument) e.nextElement(); TagArgument ta = (TagArgument) e.nextElement();
toExecute.createArgument().setValue ("-tag"); toExecute.createArgument().setValue ("-tag");


Loading…
Cancel
Save