通常、Grails ドメインまたはコマンド クラスでは、制約を宣言すると、フレームワークは、validate()
これらの各制約が現在のインスタンスに対して有効かどうかをチェックするメソッドを追加します。
class Adult {
String name
Integer age
void preValidate() {
// Implementation omitted
}
static constraints = {
name(blank: false)
age(min: 18)
}
}
def p = new Person(name: 'bob', age: 21)
p.validate()
preValidate
私の場合、クラスが検証される前に常に実行されるようにしたいと考えています。メソッドを追加することでこれを達成できました
def customValidate() {
preValidate()
validate()
}
customValidate
しかし、このクラスを使用するすべての人は、の代わりにを呼び出すことを覚えておく必要がありvalidate
ます。これもできない
def validate() {
preValidate()
super.validate()
}
validate
親クラスのメソッドではないためです(メタプログラミングによって追加されます)。私の目標を達成する別の方法はありますか?