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

<!--
/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/ 
-->

<templates>

<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%javacTemplate1.description" 
	id="org.eclipse.ant.ui.templates.javac1" 
	name="javac">&lt;javac srcdir=&quot;${src}&quot;
         destdir=&quot;${dst}&quot;
         classpath=&quot;${jarfile}&quot;
         debug=&quot;${on}&quot;
	/&gt;${cursor}</template>

<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%filesetTemplate1.description" 
	id="org.eclipse.ant.ui.templates.fileset1" 
	name="fileset"><![CDATA[
<fileset dir="${dir}" id="${id}">
    <include name="${include}"/>
    <exclude name="${exclude}"/>
</fileset>
${cursor}
]]>
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%deleteTemplate1.description" 
    id="org.eclipse.ant.ui.templates.delete1" 
    name="delete"><![CDATA[
<delete>
	<fileset dir="${dir}">
	    <include name="${include}"/>
	    <exclude name="${exclude}"/>
	</fileset>
</delete>
${cursor}
]]>
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%deleteTemplate2.description" 
    id="org.eclipse.ant.ui.templates.delete2" 
    name="delete"><![CDATA[
<delete>
    <fileset refid="${cursor}"/>
</delete>
]]>
</template>



<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%propertyTemplate1.description" 
    id="org.eclipse.ant.ui.templates.property1" 
    name="property">&lt;property name=&quot;${name}&quot; location=&quot;${location}&quot;/&gt;
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%propertyTemplate2.description" 
    id="org.eclipse.ant.ui.templates.property2" 
    name="property">&lt;property name=&quot;${name}&quot; value=&quot;${value}&quot;/&gt;
</template>


<template 
	context="org.eclipse.ant.ui.templateContextType.task" 
	description="%targetTemplate1.description" 
	id="org.eclipse.ant.ui.templates.target1" 
	name="target"><![CDATA[
    <!-- ================================= 
          target: ${name}              
         ================================= -->
    <target name="${name}" depends="${depends}" description="--> ${description}">
        ${cursor}
    </target>
]]>
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%targetTemplate2.description" 
    id="org.eclipse.ant.ui.templates.target2" 
    name="target"><![CDATA[
    <!-- - - - - - - - - - - - - - - - - - 
          target: ${name}                      
         - - - - - - - - - - - - - - - - - -->
    <target name="${name}">
            ${cursor}
    </target>
]]>
</template>

<template 
    context="org.eclipse.ant.ui.templateContextType.task" 
    description="%macrodefTemplate.description" 
    id="org.eclipse.ant.ui.templates.macrodef" 
    name="macrodef"><![CDATA[
    <!-- = = = = = = = = = = = = = = = = =
          macrodef: ${name}          
         = = = = = = = = = = = = = = = = = -->
    <macrodef name="${name}">
        <attribute name="${argname}" default="${default}" />
        <sequential>
            ${cursor}
        </sequential>
    </macrodef>
]]>
</template>

<template 
	context="org.eclipse.ant.ui.templateContextType.buildFile" 
	description="%buildFileTemplate1.description" 
	id="org.eclipse.ant.ui.templates.buildFile1" 
	name="%buildFileTemplate1.name"><![CDATA[<?xml version="1.0"?>
<!-- ====================================================================== 
     ${date} ${time}                                                        

     ${project}    
     ${description}
                   
     ${user}                                                                
     ====================================================================== -->
<project name="${project}" default="${default}">
    <description>
            ${description}
    </description>

    <!-- ================================= 
          target: ${default}              
         ================================= -->
    <target name="${default}" depends="${depends}" description="--> ${description}">
        ${cursor}
    </target>

    <!-- - - - - - - - - - - - - - - - - - 
          target: ${depends}                      
         - - - - - - - - - - - - - - - - - -->
    <target name="${depends}">
    </target>

</project>
]]>
</template>

</templates>
