## Access Modifiers
snippet po
	protected
snippet pu
	public
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}
