Revision: 12367
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 12, 2009 10:59 by narkisr
Initial Code
def car = "Patriot" def manufacturer = match(car) { when "Focus", "Ford" when "Navigator", "Lincoln" when "Camry", "Toyota" when "Civic", "Honda" when "Patriot", "Jeep" when "Jetta", "VW" when "Ceyene", "Porsche" when "Outback", "Subaru" when "520i", "BMW" when "Tundra", "Nissan" otherwise "Unknown" } println "The $car is made by $manufacturer" def match(obj, closure) { closure.subject = obj closure.when = { value, result -> if (value == subject) throw new MatchResultException(result: result) } closure.otherwise = { return it } closure.resolveStrategy = Closure.DELEGATE_FIRST try { closure() closure.otherwise() } catch (MatchResultException r) { r.result } } class MatchResultException extends RuntimeException { def result }
Initial URL
Initial Description
A nice example of utilizing Groovy closures in order to create a when statement in Groovy (http://www.transentia.com.au/flatpress/?x=entry:entry090311-222726).
Initial Title
Creating when construct in Groovy using closures
Initial Tags
groovy
Initial Language
Groovy