Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

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.
                        //
                        // <property name="env" environment="env" value="not used"/>
                        // 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;
        }
}