###############################################################################
# Copyright (c) 2000, 2020 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Benjamin Muskalla <bmuskalla@eclipsesource.com> - [templates] new SWT templates - ToolBar and ToolItem - https://bugs.eclipse.org/bugs/show_bug.cgi?id=264052
#     Robert Roth <robert.roth.off@gmail.com> - [templates] 2 new code templates: finally & lock - https://bugs.eclipse.org/184222
#     Lars Vogel <Lars.Vogel@vogella.com> - [templates] Provide templates that check for 'null' - https://bugs.eclipse.org/131445
###############################################################################

Templates.for_array=use index on array
Templates.for_temp=use index on array with temporary variable
Templates.for_collection=iterate over collection
Templates.for_iterable=iterate over an array or Iterable
Templates.while_enumeration=iterate with enumeration
Templates.while_iterator=iterate with iterator
Templates.do=do while statement
Templates.switch=switch case statement
Templates.switch_labeled=switch labeled statement
Templates.switch_case_expression=switch case expression
Templates.switch_labeled_expression=switch labeled expression
Templates.if=if statement
Templates.ifelse=if else statement
Templates.elseif=else if block
Templates.else=else block
Templates.ifnull=if statement checking for null
Templates.ifnotnull=if statement checking for not null
Templates.try=try catch block
Templates.tryfinally=try finally block
Templates.catch=catch block
Templates.finally=finally block
Templates.main=main method
Templates.public_method=public method
Templates.public_static_method=public static method
Templates.protected_method=protected method
Templates.private_method=private method
Templates.private_static_method=private static method
Templates.instanceof=dynamic type test and cast
Templates.cast=dynamic cast
Templates.toarray=convert collection to array
Templates.test=test method (JUnit 3)
Templates.test_junit4=test method (JUnit 4)
Templates.test_junit5=test method (JUnit 5)
Templates.testfactory_junit5=test factory method (JUnit Jupiter)
Templates.systrace=print current method to standard out
Templates.sysout=print to standard out
Templates.syserr=print to standard error
Templates.code_tag=<code></code>
Templates.code_tag_null=<code>null</code>
Templates.code_tag_true=<code>true</code>
Templates.code_tag_false=<code>false</code>
Templates.pre_tag=<pre></pre>
Templates.b_tag=<b></b>
Templates.i_tag=<i></i>
Templates.author=author name
Templates.new=create new object
Templates.lazy=lazy creation
Templates.while_condition=while loop with condition
Templates.non-nls= non-externalized string marker
Templates.fall-through= $FALL-THROUGH$ marker
Templates.synchronized= synchronized block
Templates.lock=explicit lock acquisition
Templates.runnable= runnable
Templates.arraymerge= merge two arrays into one
Templates.arrayadd= add an element to an array
Templates.static_final=static final field
Templates.new_module=create module declaration
Templates.new_class=create new class
Templates.new_iface=create new interface
Templates.new_enum=create new enumeration
Templates.new_record=create new record

# Java Only stuff
CompilationUnitContextType.variable.description.file=Filename of compilation unit
CompilationUnitContextType.variable.description.primary.type.name=Filename without extension
CompilationUnitContextType.variable.description.enclosing.method=Enclosing method name
CompilationUnitContextType.variable.description.enclosing.type=Enclosing type name
CompilationUnitContextType.variable.description.enclosing.package=Enclosing package name
CompilationUnitContextType.variable.description.enclosing.project=Enclosing project name
CompilationUnitContextType.variable.description.enclosing.method.arguments=Argument names of enclosing method
CompilationUnitContextType.variable.description.return.type=Enclosing method return type

JavaContextType.variable.description.array=A proposal for an array
JavaContextType.variable.description.array.type=A proposal for the element type of an array
JavaContextType.variable.description.array.element=A proposal for the element name of an array
JavaContextType.variable.description.index=A proposal for an index (int)
JavaContextType.variable.description.collection=A proposal for a collection (java.util.Collection)
JavaContextType.variable.description.iterator=A proposal for an iterator (java.util.Iterator)
JavaContextType.variable.description.todo=Todo task tag

JavaContext.error.title=Template Error
JavaContext.error.message=Template file incomplete or has errors.  You can load the default templates from the template preference page (Java>Templates).

CodeTemplateContextType.variable.description.todo=Todo task tag
CodeTemplateContextType.variable.description.packdeclaration=Package declaration of the new type
CodeTemplateContextType.variable.description.typedeclaration=Generated type declaration
CodeTemplateContextType.variable.description.getterfieldname=The name of field to set or get
CodeTemplateContextType.variable.description.getterfieldtype=The type of the field to set or get
CodeTemplateContextType.variable.description.fieldname=The name of field
CodeTemplateContextType.variable.description.fieldtype=The type of the field
CodeTemplateContextType.variable.description.barefieldname=The name of field to set or get without prefix or suffix
CodeTemplateContextType.variable.description.param=The parameter passed into the setter method
CodeTemplateContextType.variable.description.typecomment=Content of code template 'typecomment'
CodeTemplateContextType.variable.description.exceptiontype=The type of the caught exception
CodeTemplateContextType.variable.description.exceptionvar=The variable name of the caught exception
CodeTemplateContextType.variable.description.enclosingtype=The type enclosing this method
CodeTemplateContextType.variable.description.typename=Name of the current type
CodeTemplateContextType.variable.description.enclosingmethod=The enclosing method
CodeTemplateContextType.variable.description.bodystatement=Return statement or super call
CodeTemplateContextType.variable.description.returntype=Return type of the enclosing method
CodeTemplateContextType.variable.description.tags=Generated Javadoc tags (@param, @return...)
CodeTemplateContextType.variable.description.seetag=See tag pointing to the overridden method (@see T#m())

CodeTemplateContextType.variable.description.filename=Name of the enclosing compilation unit
CodeTemplateContextType.variable.description.packagename=Name of the enclosing package
CodeTemplateContextType.variable.description.projectname=Name of the enclosing project

CodeTemplateContextType.validate.unknownvariable=Variable ''{0}'' is unknown.
CodeTemplateContextType.validate.missingvariable=Variable ''{0}'' is required.
CodeTemplateContextType.validate.invalidcomment=Pattern is not a valid Java comment.

PostfixTemplates.beg=Sets the cursor to the begin of the expression
PostfixTemplates.cast=Casts the expression to a new type
PostfixTemplates.dowhile=Creates a do-while loop
PostfixTemplates.else=Creates a negated if statement
PostfixTemplates.for=Creates a for statement
PostfixTemplates.fori=Creates a for statement which iterates over an array
PostfixTemplates.foriub=Creates an indexed for statement which uses the given integer as upper bound
PostfixTemplates.forrlb=Creates an indexed for statement which uses the given integer - 1 as starting value (counting backwards)
PostfixTemplates.forr=Creates a for statement which iterates over an array in reverse order
PostfixTemplates.nnull=Creates an if statement and checks if the expression does not resolve to null
PostfixTemplates.null=Creates an if statement which checks if expression resolves to null
PostfixTemplates.sif=Creates a short if statement
PostfixTemplates.snnull=Creates an if statement which checks if the expression does not resolve to null
PostfixTemplates.snull=Creates a short if statement which checks for null
PostfixTemplates.sysout=Sends the affected string to a System.out.println(..) call
PostfixTemplates.throw=Throws the given Exception
PostfixTemplates.var=Creates a new variable
PostfixTemplates.while=Creates a while loop
PostfixTemplates.withinregion=Creates an if statement which checks if a given numeric variable is within a region
PostfixTemplates.field=Creates a new field
PostfixTemplates.constpriv=Creates a new private constant
PostfixTemplates.constpub=Creates a new public constant
PostfixTemplates.stream=Creates a new stream using Stream.of

# strings in default templates
CodeTemplates.constructorcomment=Comment for created constructors
CodeTemplates.filecomment=Comment for created Java files
CodeTemplates.typecomment=Comment for created types
CodeTemplates.fieldcomment=Comment for fields
CodeTemplates.modulecomment=Comment for modules
CodeTemplates.nonoverridingcomment=Comment for non-overriding methods
CodeTemplates.overridecomment=Comment for overriding methods
CodeTemplates.delegatecomment=Comment for delegate methods
CodeTemplates.gettercomment=Comment for getter method
# ! Do not translate ${bare_field_name} !
CodeTemplates.gettercomment.returntagcontent=the ${bare_field_name}
CodeTemplates.settercomment=Comment for setter method
# ! Do not translate ${bare_field_name} !
CodeTemplates.settercomment.paramtagcontent=the ${bare_field_name} to set

CodeTemplates.newfile=Newly created files
CodeTemplates.classbody=Code in new class type bodies
CodeTemplates.interfacebody=Code in new interface type bodies
CodeTemplates.enumbody=Code in new enum type bodies
CodeTemplates.recordbody=Code in new record type bodies
CodeTemplates.annotationbody=Code in new annotation type bodies
CodeTemplates.catchblock=Code in new catch blocks
CodeTemplates.methodstub=Code in created method stubs
CodeTemplates.constructorstub=Code in created constructor stubs
CodeTemplates.getterstub=Code in created getters
CodeTemplates.setterstub=Code in created setters

CodeTemplates.overridecomment.nonjd=(non-Javadoc)
CodeTemplates.delegatecomment.nonjd=(non-Javadoc)

CodeTemplates.catchblock.tododesc=Auto-generated catch block
CodeTemplates.methodstub.tododesc=Auto-generated method stub
CodeTemplates.constructorstub.tododesc=Auto-generated constructor stub

SWTTemplates.label=new Label
SWTTemplates.image=new Image
SWTTemplates.button=new Button
SWTTemplates.link=new Link
SWTTemplates.combo=new Combo
SWTTemplates.scale=new Scale
SWTTemplates.spinner=new Spinner
SWTTemplates.browser=new Browser
SWTTemplates.datetime=new DateTime
SWTTemplates.composite=new Composite with GridLayout
SWTTemplates.scrolledcomposite=new ScrolledComposite
SWTTemplates.group=new Group with GridLayout
SWTTemplates.sashform=new SashForm
SWTTemplates.expandbar=new ExpandBar
SWTTemplates.expanditem=new ExpandItem for an ExpandBar
SWTTemplates.tabfolder=new TabFolder
SWTTemplates.tabitem=new TabItem for a TabFolder
SWTTemplates.text=new Text
SWTTemplates.styledtext=new StyledText 
SWTTemplates.stylerange=new StyleRange for a StyledText
SWTTemplates.list=new List
SWTTemplates.table=new Table
SWTTemplates.tablecolumn=new TableColumn for a Table 
SWTTemplates.tableitem=new TableItem for a Table
SWTTemplates.tree=new Tree
SWTTemplates.treecolumn=new TreeColumn for a Tree 
SWTTemplates.treeitem=new TreeItem for a Tree
SWTTemplates.shell=new Shell
SWTTemplates.mainloop=new top level Shell with event loop
SWTTemplates.execute=execute a runnable in the UI thread
SWTTemplates.addlistener=add a listener to a Widget 
SWTTemplates.gridlayout=new GridLayout for a Composites
SWTTemplates.griddata=new GridData for a Control
SWTTemplates.griddatafactory=using GridDataFactory for a Control
SWTTemplates.toolbar=new ToolBar
SWTTemplates.toolitem=new ToolItem for a ToolBar
