Browse Source

240234, comment 19 - patch for ajdoc

tags/V162DEV_M1
aclement 16 years ago
parent
commit
84af74fbe9
1 changed files with 58 additions and 10 deletions
  1. 58
    10
      taskdefs/src/org/aspectj/tools/ant/taskdefs/Ajdoc.java

+ 58
- 10
taskdefs/src/org/aspectj/tools/ant/taskdefs/Ajdoc.java View File

@@ -18,17 +18,23 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.taskdefs.Javadoc.AccessType;
import org.apache.tools.ant.taskdefs.Javadoc.Html;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
import org.aspectj.tools.ajdoc.Main;
@@ -66,9 +72,9 @@ public class Ajdoc extends MatchingTask {
private Doclet doclet;
private boolean failonerror;
private boolean fork;
private boolean source14;
private String source;
private Html bottom;
private Vector fileSets = new Vector();
/** reset all to initial values - permit gc if Ajdoc is held */
public Ajdoc() {
reset();
@@ -93,6 +99,8 @@ public class Ajdoc extends MatchingTask {
doclet = null;
failonerror = false;
fork = false;
source = null;
bottom = null;
}

protected final boolean setif(boolean b, String flag) {
@@ -114,7 +122,7 @@ public class Ajdoc extends MatchingTask {
}
public void setSource(String input) {
source14 = "1.4".equals(input);
source = input;
}

public void setSourcepath(Path path) {
@@ -151,12 +159,41 @@ public class Ajdoc extends MatchingTask {
sourcefiles).addAll(strings(list));
}

public void addFileset(FileSet fs) {
fileSets.addElement(fs);
}
private void addFileSets() {
if(sourcefiles == null)
sourcefiles = new ArrayList();
Enumeration e = fileSets.elements();
while (e.hasMoreElements()) {
FileSet fs = (FileSet) e.nextElement();
if (!fs.hasPatterns() && !fs.hasSelectors()) {
fs = (FileSet) fs.clone();
fs.createInclude().setName("**/*.java");
fs.createInclude().setName("**/*.aj");
}
File baseDir = fs.getDir(getProject());
DirectoryScanner ds = fs.getDirectoryScanner(getProject());
String[] files = ds.getIncludedFiles();
for (int i = 0; i < files.length; i++) {
sourcefiles.add((new File(baseDir, files[i])).getAbsolutePath());
}
}
}
public void setPackagenames(String list) {
(packagenames == null ?
packagenames = new ArrayList() :
packagenames).addAll(strings(list, true));
}

public void setAccess(AccessType at) {
cmd.createArgument().setValue("-" + at.getValue());
}
public void setPackageList(String packageList) {
this.packageList = getProject().resolveFile(packageList);
}
@@ -288,9 +325,15 @@ public class Ajdoc extends MatchingTask {
}

public void setBottom(String bottom) {
set("-bottom", bottom);
Html html = new Html();
html.addText(bottom);
addBottom(html);
}

public void addBottom(Html text) {
bottom = text;
}
public void setVerbose(boolean b) {
setif(b, "-verbose");
}
@@ -507,7 +550,7 @@ public class Ajdoc extends MatchingTask {
}

public void execute() throws BuildException {
if (sourcepath == null && argfiles == null) {
if (sourcepath == null && argfiles == null && fileSets.size() == 0) {
throw new BuildException("one of sourcepath or argfiles must be set!",
getLocation());
}
@@ -531,10 +574,13 @@ public class Ajdoc extends MatchingTask {
cmd.createArgument().setValue("-extdirs");
cmd.createArgument().setPath(extdirs);
}
if (source14) {
if (source != null) {
cmd.createArgument().setValue("-source");
cmd.createArgument().setValue("1.4");
cmd.createArgument().setValue(source);
}
if (bottom != null) {
cmd.createArgument().setValue("-bottom");
cmd.createArgument().setValue(getProject().replaceProperties(bottom.getText()));
}
for (Iterator i = links.iterator(); i.hasNext();) {
@@ -639,6 +685,8 @@ public class Ajdoc extends MatchingTask {
}
}
}

addFileSets();
if (sourcefiles != null) {
for (Iterator i = sourcefiles.iterator(); i.hasNext();) {
// let ajdoc resolve sourcefiles relative to sourcepath,

Loading…
Cancel
Save