<?xml version="1.0" encoding="UTF-8"?>

<project
    name="javadoc"
    default="main"
    basedir=".">
	
    <property
        name="buildDirectory"
        value="${basedir}/../.." />

    <!-- = = = standard properties pattern = = = -->
    <!-- 
        First get environment variables
        Note to be cross-platform, "environment variables" are only appropriate for 
        some variables, e.g. ones we set, since properties are case sensitive, even if 
        the environment variables on your operating system are not, e.g. it will 
        be ${env.Path} not ${env.PATH} on Windows -->
    <property environment="env" />

    <!-- 
        Let users override standard properties, if desired.
        If this directory/files does not exist, then it will be ignored, 
        and defaults used.
    -->
    <property
        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />

    <property file="javadoc.properties" />
    <property name="outputDir" value="${basedir}" />

	<target
        name="main"
        depends="javadoc, packagetoc"
        description="Builds Plugin Javadoc" />

    <target
        name="javadoc"
        depends="getSkipJavaDocParam"
        unless="doskipJavaDoc">
    	<echo message="basedir: ${basedir}" />
    	<echo message="outputdir: ${outputDir}" />
        <echo message="classpath: ${J2SE-1.5}" />
        <echo message="buildDirectory: ${buildDirectory}" />

        <javadoc
            access="public"
            author="false"
            destdir="${outputDir}/reference/api"
            doctitle="${api.title}"
            nodeprecated="false"
            nodeprecatedlist="false"
            noindex="false"
            nonavbar="false"
            notree="false"
            Encoding="ISO-8859-1"
            packagenames="${api.packages}"
            sourcepath="${plugin.sourcefolders}"
            splitindex="true"
            use="true"
            version="true"
            breakiterator="yes"
            verbose="false"
            failonerror="false"
        	classpath="">
        	
            <classpath>
            	<fileset dir="${basedir}/../">
            		<include name="javax.wsdl/*.jar"/>
            		<include name="org.eclipse.xsd/*.jar"/>
				</fileset>
            </classpath>
            
			<tag name="ignore"     description="ignore" enabled="false"/>
			<tag name="generated"  description="ignore" enabled="false"/>
			<tag name="model"      description="ignore" enabled="false"/>
			<tag name="modifiable" description="ignore" enabled="false"/>
			<tag name="extends"    description="ignore" enabled="false"/>
			<tag name="implements" description="ignore" enabled="false"/>
			<tag name="ordered"    description="ignore" enabled="false"/>

        </javadoc>
    </target>

    <target name="packagetoc">
        <loadfile
            failonerror="false"
            property="wtp.packages"
            srcFile="${outputDir}/reference/api/package-list">
            <filterchain>
                <filterreader
                    classname="org.apache.tools.ant.filters.PrefixLines">
                    <param
                        name="prefix"
                        value="&lt;/package&gt;&lt;package&gt;" />
                </filterreader>
                <striplinebreaks />
            </filterchain>
        </loadfile>

        <!-- Create packages.xml file -->
        <echo file="packages.xml">
            &lt;packages&gt;&lt;package&gt;${wtp.packages}&lt;/package&gt;&lt;/packages&gt;
        </echo>

        <xslt
            basedir="${basedir}/build"
            in="packages.xml"
            out="javadoctoc.xml"
            style="javadocToc.xsl">
            <outputproperty
                name="method"
                value="xml" />
            <outputproperty
                name="indent"
                value="yes" />
        </xslt>
    </target>
    
    <target
        name="getSkipJavaDocParam"
        if="skipJavaDoc">
        <echo message="skipJavaDoc: ${skipJavaDoc}" />
        <condition property="doskipJavaDoc">
            <equals
                arg1="${skipJavaDoc}"
                arg2="true"
                trim="true"
                casesensitive="false" />
        </condition>
    </target>
</project>