2007 年の mixin 提案 [0] を見つけましたが、GroovyDefaultMethods#mixin [1] メソッドはパラメーター化された mixin をサポートしておらず、@Mixin もサポートしていません。
上記のコード例からわかる限り、(ドメイン) クラスに関連付けられている GSP ビュー情報を混在させる方法を見つける必要があります。この場合の別の (そして少しグルーヴィーな ;)) アプローチはRenderedWithTemplates
、GSP ビュー情報を保持する単一のクロージャー パラメーターを使用してアノテーションとして実装することです。
import java.lang.annotation.*
@Retention(RetentionPolicy.RUNTIME)
@interface RenderedWithTemplates {
Class value()
}
@RenderedWithTemplates({ [show: "showAddress.gsp", add: "addAddress.gsp"] })
class Address {}
// shows how to read the map with all the GSP infos
def templateInfo = Address.getAnnotation(RenderedWithTemplates)
def gspMap = templateInfo.value().newInstance(this, this).call()
[0] http://docs.codehaus.org/display/GroovyJSR/Mixins
[1] http://groovy.codehaus.org/api/org/codehaus/groovy/runtime/DefaultGroovyMethods.html