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

<!--
/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-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>
