{
	"sysout": {
		"prefix": ["sysout", "sout", "System.out.println()"],
		"body": [
			"System.out.println($0);"
		],
		"description": "Print to standard out"
	},
	"syserr": {
		"prefix": ["syserr", "serr", "System.err.println()"],
		"body": [
			"System.err.println($0);"
		],
		"description": "Print to standard err"
	},
	"fori": {
		"prefix": ["fori"],
		"body": [
			"for (${1:int} ${2:i} = ${3:0}; ${2:i} < ${4:max}; ${2:i}++) {",
			"\t$0",
			"}"
		],
		"description": "Indexed for loop"
	},
	"foreach": {
		"prefix": ["foreach", "iter"],
		"body": [
			"for (${1:type} ${2:var} : ${3:iterable}) {",
			"\t$0",
			"}"
		],
		"description": "Enhanced for loop"
	},
	"if": {
		"prefix": ["if"],
		"body": [
			"if (${1:condition}) {",
			"\t$0",
			"}"
		],
		"description": "if statement"
	},
	"ifelse": {
		"prefix": ["ifelse"],
		"body": [
			"if (${1:condition}) {",
			"\t$2",
			"} else {",
			"\t$0",
			"}"
		],
		"description": "if/else statement"
	},
	"ifnull": {
		"prefix": ["ifnull"],
		"body": [
			"if (${1:condition} == null) {",
			"\t$0",
			"}"
		],
		"description": "if statement checking for null"
	},
	"ifnotnull": {
		"prefix": ["ifnotnull"],
		"body": [
			"if (${1:condition} != null) {",
			"\t$0",
			"}"
		],
		"description": "if statement checking for not null"
	},
	"While Statement": {
		"prefix": ["while"],
		"body": [
			"while (${1:condition}) {",
			"\t$0",
			"}"
		],
		"description": "While Statement"
	},
	"Do-While Statement": {
		"prefix": ["dowhile"],
		"body": [
			"do {",
			"\t$0",
			"} while (${1:condition});"
		],
		"description": "Do-While Statement"
	},
	"Switch Statement": {
		"prefix": "switch",
		"body": [
			"switch (${1:key}) {",
			"\tcase ${2:value}:",
			"\t\t$0",
			"\t\tbreak;",
			"",
			"\tdefault:",
			"\t\tbreak;",
			"}"
		],
		"description": "Switch Statement"
	},
	"trycatch": {
		"prefix": "try_catch",
		"body": [
			"try {",
			"\t${TM_SELECTED_TEXT:$1}",
			"} catch (${2:Exception} ${3:e}) {",
			"\t$0// TODO: handle exception",
			"}"
		],
		"description": "try/catch block"
	},
	"tryresources": {
		"prefix": "try_resources",
		"body": [
			"try ($1) {",
			"\t$2",
			"} catch (${3:Exception} ${4:e}) {",
			"\t$0// TODO: handle exception",
			"}"
		]
	},
	"main": {
		"prefix": ["main", "psvm", "public static void main(String[] args)"],
		"body": [
			"public static void main(String[] args) {",
			"\t$0",
			"}"
		],
		"description": "Public static main method"
	},
	"Constructor": {
		"prefix": "ctor",
		"body": [
			"${1|public,protected,private|} ${2:${TM_FILENAME_BASE}}($3) {",
			"\t${4:super();}$0",
			"}"
		],
		"description": "Constructor"
	},
	"method": {
		"prefix": "method",
		"body": [
			"${1|public,protected,private|}${2| , static |}${3:void} ${4:name}($5) {",
			"\t$0",
			"}"
		],
		"description": "Method"
	},
	"newObject": {
		"prefix": "new",
		"body": [
			"${1:Object} ${2:foo} = new ${1}($3);",
			"$0"
		],
		"description": "Create new Object"
	},
	"Field": {
		"prefix": "field",
		"body": [
			"${1|public,protected,private|} ${2:String} ${3:name};"
		],
		"description": "Field"
	}
}