17.6 Adding Methods at Compile Time - Reference Documentation
Authors: Graeme Rocher, Peter Ledbrook, Marc Palmer, Jeff Brown, Luke Daley, Burt Beckwith, Lari Hotari
Version: 3.0.11
17.6 Adding Methods at Compile Time
Grails 3.0 makes it easy to add new traits to existing artefact types from a plugin. For example say you wanted to add methods for manipulating dates to controllers. This can be done by first defining a trait insrc/main/groovy
:package myplugintrait DateTrait { Date currentDate() { return new Date() } }
package myplugin@CompileStatic class ControllerTraitInjector implements TraitInjector { @Override Class getTrait() { DateTrait } @Override String[] getArtefactTypes() { ['Controller'] as String[] } }
TraitInjector
will add the DateTrait
to all controllers. The getArtefactTypes
method defines the types of artefacts that the trait should be applied to.