package com.erggroup.mass.ant; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.taskdefs.Property; /** * */ public class Jats extends org.apache.tools.ant.Task { static final String JatsHomeProperty = "${env.JATS_HOME}"; public static final String JATS_PACKAGE_SCOPE = "${jats.package.project}"; private String packageName = null; private File fromdir = null; private File todir = null; private String includes = "**/*"; private ArrayList elements = new ArrayList(); private boolean verbose = true; public ManifestElement createManifest() { ManifestElement element = new ManifestElement(); elements.add(element); return element; } public ReleaseElement createRelease() { ReleaseElement element = new ReleaseElement(); elements.add(element); return element; } public SandboxElement createSandbox() { SandboxElement element = new SandboxElement(); elements.add(element); return element; } public void execute() throws BuildException { if (todir == null) { File basedir = new File(project.replaceProperties("${basedir}")); todir = new File(basedir, "interface"); } if (fromdir == null) { // Try to retrieve the JATS_HOME environment variable. // // // and then use ${env.JATS_HOME} // Property property = new Property(); property.setProject(project); property.setTaskName(this.getTaskName()); property.setName("env"); property.setEnvironment("env"); property.setValue(""); property.perform(); String jatsHome = project.replaceProperties(JatsHomeProperty); if (JatsHomeProperty.equals(jatsHome)) { throw new BuildException("<" + this.getTaskName() + "> JATS_HOME environment variable not set"); } else { fromdir = new File(jatsHome); } } Iterator i = elements.iterator(); while (i.hasNext()) { JatsElement element = (JatsElement)i.next(); element.execute(this); } } public void setFromdir(File fromdir) { this.fromdir = fromdir; } public void setTodir(File todir) { this.todir = todir; } public File getFromdir() { return fromdir; } public File getTodir() { return todir; } public String getPackage() { if ( packageName != null && packageName.length() > 0 ) { return packageName; } return project.getName(); } public void setPackage( String value ) { this.packageName = value; } public String getIncludes() { return includes; } public void setIncludes( String includes ) { this.includes = includes; } public void setVerbose( String newValue ) { this.verbose = !( "false".equalsIgnoreCase(newValue) ); } public boolean isVerbose() { return verbose; } }