Groovy and the with method
Groovy has some interesting additions to the well known java sdk. As an example, see groovy additions for Object.
One good example is the with method. The with method receive a closure as a parameter. Inside it, you can configure the object state, set properties and call any method:
class Person{ int age String name String address boolean workDone def doVeryExpensiveWork(){ println 'working....' workDone = true } def String toString(){ return "Person -> age: ${age}, name: ${name}, address: ${address}, workDone: ${workDone} " } } def p = new Person() p.with{ age = 12 name = 'andre' address = 'my address' doVeryExpensiveWork() } assert p.age == 12 assert p.name == 'andre' assert p.address == 'my address' assert p.workDone println p
More, you can transform code like this:
Calendar javaCalendar = Calendar.getInstance(); javaCalendar.clear(); javaCalendar.set(Calendar.MONTH, Calendar.JULY); javaCalendar.set(Calendar.DATE, 19); javaCalendar.set(Calendar.YEAR, 1986); Date time = javaCalendar.getTime();
into this one:
//groovy gcalendar = Calendar.instance gcalendar.with{ clear() set MONTH, JULY set DATE, 19 set YEAR, 1986 } assert javaCalendar.time == gcalendar.time
=D
Read Full Post | Make a Comment ( None so far )