Я пишу скрипт 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, и поле, создаваемое Grails на лету в результате действия getSomeNonExistingProperty.() "method.
Я что-то упускаю здесь очевидное?Есть ли способ получить список только явно определенных пользователем полей (например, name, в приведенном выше примере)?