<?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 name="for" description="%Templates.for_array" id="org.eclipse.jdt.ui.templates.for_array" context="java" enabled="true" autoinsert="false">for (int ${index} = 0; ${index} &lt; ${array}.length; ${index}++) {
	${line_selection}${cursor}
}</template>

<template name="for" description="%Templates.for_temp" id="org.eclipse.jdt.ui.templates.for_temp" context="java" enabled="true" autoinsert="false">for (int ${index} = 0; ${index} &lt; ${array}.length; ${index}++) {
	${array_type} ${array_element} = ${array}[${index}];
	${cursor}
}</template>

<template name="for" description="%Templates.for_collection" id="org.eclipse.jdt.ui.templates.for_collection" context="java" enabled="true" autoinsert="false">for (Iterator ${iterator} = ${collection}.iterator(); ${iterator}.hasNext(); ) {
	${type} ${element} = (${type}) ${iterator}.next();
	${cursor}
}</template>

<template name="foreach" description="%Templates.for_iterable" id="org.eclipse.jdt.ui.templates.for_iterable" context="java" enabled="true" autoinsert="false">for (${iterable_type} ${iterable_element} : ${iterable}) {
	${cursor}
}</template>

<template name="while" description="%Templates.while_enumeration" id="org.eclipse.jdt.ui.templates.while_enumeration" context="java" enabled="true" autoinsert="false">while (${enumeration}.hasMoreElements()) {
	${type} ${element} = (${type}) ${enumeration}.nextElement();
	${cursor}
}</template>

<template name="while" description="%Templates.while_iterator" id="org.eclipse.jdt.ui.templates.while_iterator" context="java" enabled="true" autoinsert="false">while (${iterator}.hasNext()) {
	${type} ${element} = (${type}) ${iterator}.next();
	${cursor}
}</template>

<template name="do" description="%Templates.do" id="org.eclipse.jdt.ui.templates.do" context="java" enabled="true" autoinsert="false">do {
	${line_selection}${cursor}
} while (${condition});</template>

<template name="switch" description="%Templates.switch" id="org.eclipse.jdt.ui.templates.switch" context="java" enabled="true" autoinsert="false">switch (${key}) {
	case ${value}:
		${cursor}
		break;

	default:
		break;
}</template>

<template name="if" description="%Templates.if" id="org.eclipse.jdt.ui.templates.if" context="java" enabled="true" autoinsert="false">if (${condition}) {
	${line_selection}${cursor}
}</template>

<template name="ifelse" description="%Templates.ifelse" id="org.eclipse.jdt.ui.templates.ifelse" context="java" enabled="true" autoinsert="false">if (${condition}) {
	${cursor}
} else {
	
}</template>

<template name="elseif" description="%Templates.elseif" id="org.eclipse.jdt.ui.templates.elseif" context="java" enabled="true" autoinsert="false">else if (${condition}) {
	${cursor}
}</template>

<template name="else" description="%Templates.else" id="org.eclipse.jdt.ui.templates.else" context="java" enabled="true" autoinsert="false">else {
	${cursor}
}</template>

<template name="try" description="%Templates.try" id="org.eclipse.jdt.ui.templates.try" context="java" enabled="true" autoinsert="false">try {
	${line_selection}${cursor}
} catch (${Exception} e) {
	// ${todo}: handle exception
}</template>

<template name="catch" description="%Templates.catch" id="org.eclipse.jdt.ui.templates.catch" context="java" enabled="true" autoinsert="false">catch (${Exception} e) {
	${cursor}// ${todo}: handle exception
}</template>

<template name="main" description="%Templates.main" id="org.eclipse.jdt.ui.templates.main" context="java" enabled="true" autoinsert="false">public static void main(String[] args) {
	${cursor}
}</template>

<template name="public_method" description="%Templates.public_method" id="org.eclipse.jdt.ui.templates.public_method" context="java" enabled="true" autoinsert="false">public ${return_type} ${name}(${}) {
	${cursor}
}</template>

<template name="protected_method" description="%Templates.protected_method" id="org.eclipse.jdt.ui.templates.protected_method" context="java" enabled="true" autoinsert="false">protected ${return_type} ${name}(${}) {
	${cursor}
}</template>

<template name="private_method" description="%Templates.private_method" id="org.eclipse.jdt.ui.templates.private_method" context="java" enabled="true" autoinsert="false">private ${return_type} ${name}(${}) {
	${cursor}
}</template>

<template name="private_static_method" description="%Templates.private_static_method" id="org.eclipse.jdt.ui.templates.private_static_method" context="java" enabled="true" autoinsert="false">private static ${return_type} ${name}(${}) {
	${cursor}
}</template>

<template name="instanceof" description="%Templates.instanceof" id="org.eclipse.jdt.ui.templates.instanceof" context="java" enabled="true" autoinsert="false">if (${name} instanceof ${type}) {
	${type} ${new_name} = (${type})${name};
	${cursor}
}</template>

<template name="cast" description="%Templates.cast" id="org.eclipse.jdt.ui.templates.cast" context="java" enabled="true" autoinsert="false">${type} ${new_name} = (${type}) ${name};</template>

<template name="new" description="%Templates.new" id="org.eclipse.jdt.ui.templates.new" context="java" enabled="true" autoinsert="false">${type} ${name} = new ${type}(${arguments});</template>

<template name="lazy" description="%Templates.lazy" id="org.eclipse.jdt.ui.templates.lazy" context="java" enabled="true" autoinsert="false">if (${name} == null) {
	${name} = new ${type}(${arguments});
	${cursor}
}

return ${name};</template>

<template name="toarray" description="%Templates.toarray" id="org.eclipse.jdt.ui.templates.toarray" context="java" enabled="true" autoinsert="false">(${type}[]) ${collection}.toArray(new ${type}[${collection}.size()])</template>

<template name="sysout" description="%Templates.sysout" id="org.eclipse.jdt.ui.templates.sysout" context="java" enabled="true" autoinsert="true">System.out.println(${word_selection}${});${cursor}</template>

<template name="syserr" description="%Templates.syserr" id="org.eclipse.jdt.ui.templates.syserr" context="java" enabled="true" autoinsert="true">System.err.println(${word_selection}${});${cursor}</template>

<template name="systrace" description="%Templates.systrace" id="org.eclipse.jdt.ui.templates.systrace" context="java" enabled="true" autoinsert="true">System.out.println(&quot;${enclosing_type}.${enclosing_method}()&quot;);</template>

<template name="&lt;code&gt;" description="%Templates.code_tag" id="org.eclipse.jdt.ui.templates.code_tag" context="javadoc" enabled="true" autoinsert="true">&lt;code&gt;${word_selection}${}&lt;/code&gt;${cursor}</template>

<template name="null" description="%Templates.code_tag_null" id="org.eclipse.jdt.ui.templates.code_tag_null" context="javadoc" enabled="true" autoinsert="true">&lt;code&gt;null&lt;/code&gt;</template>

<template name="true" description="%Templates.code_tag_true" id="org.eclipse.jdt.ui.templates.code_tag_true" context="javadoc" enabled="true" autoinsert="true">&lt;code&gt;true&lt;/code&gt;</template>

<template name="false" description="%Templates.code_tag_false" id="org.eclipse.jdt.ui.templates.code_tag_false" context="javadoc" enabled="true" autoinsert="true">&lt;code&gt;false&lt;/code&gt;</template>

<template name="&lt;pre&gt;" description="%Templates.pre_tag" id="org.eclipse.jdt.ui.templates.pre_tag" context="javadoc" enabled="true" autoinsert="true">&lt;pre&gt;${word_selection}${}&lt;/pre&gt;${cursor}</template>

<template name="&lt;b&gt;" description="%Templates.b_tag" id="org.eclipse.jdt.ui.templates.b_tag" context="javadoc" enabled="true" autoinsert="true">&lt;b&gt;${word_selection}${}&lt;/b&gt;${cursor}</template>

<template name="&lt;i&gt;" description="%Templates.i_tag" id="org.eclipse.jdt.ui.templates.i_tag" context="javadoc" enabled="true" autoinsert="true">&lt;i&gt;${word_selection}${}&lt;/i&gt;${cursor}</template>

<template name="@author" description="%Templates.author" id="org.eclipse.jdt.ui.templates.author" context="javadoc" enabled="true" autoinsert="true">@author ${user}</template>

<template name="while" description="%Templates.while_condition" id="org.eclipse.jdt.ui.templates.while_condition" context="java" enabled="true" autoinsert="false">while (${condition}) {
	${line_selection}${cursor}
}</template>

<template name="test" description="%Templates.test" id="org.eclipse.jdt.ui.templates.test" context="java" enabled="true" autoinsert="false">public void test${name}() throws Exception {
	${cursor} 
}</template>

<template name="nls" description="%Templates.non-nls" id="org.eclipse.jdt.ui.templates.non-nls" context="java" enabled="true" autoinsert="false">//$$NON-NLS-${N}$$</template>

<template name="synchronized" description="%Templates.synchronized" id="org.eclipse.jdt.ui.templates.synchronized" context="java" enabled="true" autoinsert="false">synchronized (${mutex}) {
	${line_selection}
}</template>

<template name="runnable" description="%Templates.runnable" id="org.eclipse.jdt.ui.templates.runnable" context="java" enabled="true" autoinsert="false">new Runnable() {
	public void run() {
		${line_selection}
	}
}</template>

</templates>
