<?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 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
 *     John Kaplan, johnkaplantech@gmail.com - 108071 [code templates] template for body of newly created class
 *******************************************************************************/
-->

<templates>
<template name="gettercomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" description="%CodeTemplates.gettercomment" context="org.eclipse.jsdt.gettercomment_context" enabled="true">/**
 * @return %CodeTemplates.gettercomment.returntagcontent
 */</template>

<template name="settercomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" description="%CodeTemplates.settercomment" context="org.eclipse.jsdt.settercomment_context" enabled="true">/**
 * @param ${param} %CodeTemplates.settercomment.paramtagcontent
 */</template>

<template name="constructorcomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" description="%CodeTemplates.constructorcomment" context="org.eclipse.jsdt.constructorcomment_context" enabled="true">/**
 * ${tags}
 */</template>

<template name="filecomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" description="%CodeTemplates.filecomment" context="org.eclipse.jsdt.filecomment_context" enabled="true">/**
 * 
 */</template>

<template name="typecomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" description="%CodeTemplates.typecomment" context="org.eclipse.jsdt.typecomment_context" enabled="true">/**
 * @author ${user}
 *
 * ${tags}
 */</template>
 
<template name="fieldcomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" description="%CodeTemplates.fieldcomment" context="org.eclipse.jsdt.fieldcomment_context" enabled="true">/**
 * 
 */</template>
 
<template name="methodcomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" description="%CodeTemplates.nonoverridingcomment" context="org.eclipse.jsdt.methodcomment_context" enabled="true">/**
 * ${tags}
 */</template>

<template name="overridecomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" description="%CodeTemplates.overridecomment" context="org.eclipse.jsdt.overridecomment_context" enabled="true">/* %CodeTemplates.overridecomment.nonjd
 * ${see_to_overridden}
 */</template>

<template name="delegatecomment" id="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" description="%CodeTemplates.delegatecomment" context="org.eclipse.jsdt.delegatecomment_context" enabled="true">/**
 * ${tags}
 * ${see_to_target}
 */</template>

<template name="newtype" id="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" description="%CodeTemplates.newfile" context="org.eclipse.jsdt.newtype_context" enabled="true">${filecomment}
${package_declaration}

${typecomment}
${type_declaration}</template>

<template name="classbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" description="%CodeTemplates.classbody" context="org.eclipse.jsdt.classbody_context" enabled="true">
</template>

<!--
<template name="interfacebody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" description="%CodeTemplates.interfacebody" context="org.eclipse.jsdt.interfacebody_context" enabled="true">
</template>

<template name="enumbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" description="%CodeTemplates.enumbody" context="org.eclipse.jsdt.enumbody_context" enabled="true">
</template>

<template name="annotationbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" description="%CodeTemplates.annotationbody" context="org.eclipse.jsdt.annotationbody_context" enabled="true">
</template>
-->

<template name="catchblock" id="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" description="%CodeTemplates.catchblock" context="org.eclipse.jsdt.catchblock_context" enabled="true">// ${todo} %CodeTemplates.catchblock.tododesc
${exception_var}.printStackTrace();</template>

<template name="methodbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" description="%CodeTemplates.methodstub" context="org.eclipse.jsdt.methodbody_context" enabled="true">// ${todo} %CodeTemplates.methodstub.tododesc
${body_statement}</template>

<template name="constructorbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" description="%CodeTemplates.constructorstub" context="org.eclipse.jsdt.constructorbody_context" enabled="true">${body_statement}
// ${todo} %CodeTemplates.constructorstub.tododesc</template>

<template name="getterbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" description="%CodeTemplates.getterstub" context="org.eclipse.jsdt.getterbody_context" enabled="true">return ${field};</template>

<template name="setterbody" id="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" description="%CodeTemplates.setterstub" context="org.eclipse.jsdt.setterbody_context" enabled="true">${field} = ${param};</template>

</templates>