module.exports = `## Access Modifiers
snippet u
	UN
snippet un
	UNB
snippet pr
	private
##
## Annotations
snippet before
	@Before
	static void \${1:intercept}(\${2:args}) { \${3} }
snippet mm
	@ManyToMany
	\${1}
snippet mo
	@ManyToOne
	\${1}
snippet om
	@OneToMany\${1:(cascade=CascadeType.ALL)}
	\${2}
snippet oo
	@OneToOne
	\${1}
##
## Basic Java packages and import
snippet im
	import
snippet j.b
	java.beans.
snippet j.i
	java.io.
snippet j.m
	java.math.
snippet j.n
	java.net.
snippet j.u
	java.util.
##
## Class
snippet cl
	class \${1:\`Filename("", "untitled")\`} \${2}
snippet in
	interface \${1:\`Filename("", "untitled")\`} \${2:extends Parent}\${3}
snippet tc
	public class \${1:\`Filename()\`} extends \${2:TestCase}
##
## Class Enhancements
snippet ext
	extends 
snippet imp
	implements
##
## Comments
snippet /*
	/*
	 * \${1}
	 */
##
## Constants
snippet co
	static public final \${1:String} \${2:var} = \${3};\${4}
snippet cos
	static public final String \${1:var} = "\${2}";\${3}
##
## Control Statements
snippet case
	case \${1}:
		\${2}
snippet def
	default:
		\${2}
snippet el
	else
snippet elif
	else if (\${1}) \${2}
snippet if
	if (\${1}) \${2}
snippet sw
	switch (\${1}) {
		\${2}
	}
##
## Create a Method
snippet m
	\${1:void} \${2:method}(\${3}) \${4:throws }\${5}
##
## Create a Variable
snippet v
	\${1:String} \${2:var}\${3: = null}\${4};\${5}
##
## Enhancements to Methods, variables, classes, etc.
snippet ab
	abstract
snippet fi
	final
snippet st
	static
snippet sy
	synchronized
##
## Error Methods
snippet err
	System.err.print("\${1:Message}");
snippet errf
	System.err.printf("\${1:Message}", \${2:exception});
snippet errln
	System.err.println("\${1:Message}");
##
## Exception Handling
snippet as
	assert \${1:test} : "\${2:Failure message}";\${3}
snippet ca
	catch(\${1:Exception} \${2:e}) \${3}
snippet thr
	throw
snippet ths
	throws
snippet try
	try {
		\${3}
	} catch(\${1:Exception} \${2:e}) {
	}
snippet tryf
	try {
		\${3}
	} catch(\${1:Exception} \${2:e}) {
	} finally {
	}
##
## Find Methods
snippet findall
	List<\${1:listName}> \${2:items} = \${1}.findAll();\${3}
snippet findbyid
	\${1:var} \${2:item} = \${1}.findById(\${3});\${4}
##
## Javadocs
snippet /**
	/**
	 * \${1}
	 */
snippet @au
	@author \`system("grep \\\`id -un\\\` /etc/passwd | cut -d \\":\\" -f5 | cut -d \\",\\" -f1")\`
snippet @br
	@brief \${1:Description}
snippet @fi
	@file \${1:\`Filename()\`}.java
snippet @pa
	@param \${1:param}
snippet @re
	@return \${1:param}
##
## Logger Methods
snippet debug
	Logger.debug(\${1:param});\${2}
snippet error
	Logger.error(\${1:param});\${2}
snippet info
	Logger.info(\${1:param});\${2}
snippet warn
	Logger.warn(\${1:param});\${2}
##
## Loops
snippet enfor
	for (\${1} : \${2}) \${3}
snippet for
	for (\${1}; \${2}; \${3}) \${4}
snippet wh
	while (\${1}) \${2}
##
## Main method
snippet main
	public static void main (String[] args) {
		\${1:/* code */}
	}
##
## Print Methods
snippet print
	System.out.print("\${1:Message}");
snippet printf
	System.out.printf("\${1:Message}", \${2:args});
snippet println
	System.out.println(\${1});
##
## Render Methods
snippet ren
	render(\${1:param});\${2}
snippet rena
	renderArgs.put("\${1}", \${2});\${3}
snippet renb
	renderBinary(\${1:param});\${2}
snippet renj
	renderJSON(\${1:param});\${2}
snippet renx
	renderXml(\${1:param});\${2}
##
## Setter and Getter Methods
snippet set
	\${1:public} void set\${3:}(\${2:String} \${4:}){
		this.\$4 = \$4;
	}
snippet get
	\${1:public} \${2:String} get\${3:}(){
		return this.\${4:};
	}
##
## Terminate Methods or Loops
snippet re
	return
snippet br
	break;
##
## Test Methods
snippet t
	public void test\${1:Name}() throws Exception {
		\${2}
	}
snippet test
	@Test
	public void test\${1:Name}() throws Exception {
		\${2}
	}
##
## Utils
snippet Sc
	Scanner
##
## Miscellaneous
snippet action
	public static void \${1:index}(\${2:args}) { \${3} }
snippet rnf
	notFound(\${1:param});\${2}
snippet rnfin
	notFoundIfNull(\${1:param});\${2}
snippet rr
	redirect(\${1:param});\${2}
snippet ru
	unauthorized(\${1:param});\${2}
snippet unless
	(unless=\${1:param});\${2}
`;
