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