Groovyスクリプトを(Grailsプラグインの一部として)作成していて、プラグインのユーザーが定義する可能性のあるGrailsDomainClassのプロパティのリストを取得したいと思います。domainClass.properties
これは、(domainClassがGrailsDomainClassの場合)を使用して実行できます。
ただし、ユーザーがgrailsドメインクラスを持っているとします。
class Example {
String name
static constraints = {
}
def getSomeNonExistingProperty(){
return "Not-a-real-property"
}
}
この場合、との両方をdomainClass.properties
含むリストを返しますname
someNoneExistingProperty
これは、Grailsが誰かがgetBlah()メソッドを持っている場合に使用するために、読み取り専用プロパティをオンザフライで生成しているためだと理解しています。これはすばらしいことですが、私のスクリプトでは、「実際の」プロパティのみ(または少なくとも非読み取り専用プロパティ)でいくつかのアクションを実行したいと思います。
つまりsomeNonExistingProperty
、読み取り専用プロパティとして、または代わりに、Grailsによって生成され、プラグインのユーザーによってdomainClassのフィールドとして明示的に入力されていないプロパティとして区別または識別する方法が必要です。
GrailsDomainClassPropertyクラスを見てきましたが、プロパティに関する情報を提供するさまざまなメソッドがあります。ただし、プロパティが読み取り専用かどうか、またはdomainClassで定義されたフィールドと、「getSomeNonExistingProperty」の結果としてGrailsによってオンザフライで作成されたフィールドを区別できるようにするものはありません。 ()" 方法。
ここで明らかな何かが欠けていますか?明示的にユーザー定義されたフィールド(上記の例では名前など)のみのリストを取得する方法はありますか?