#grails #groovy #dns
#grails #groovy #dns
Вопрос:
Для произвольного объекта, какой самый простой способ определить, является ли тип объекта классом домена Grails?
Ответ №1:
Для этого вы можете использовать grailsApplication. Добавьте внедрение зависимостей в свой контроллер или службу:
def grailsApplication
и тогда вы можете использовать его следующим образом:
def foo = ...
if (grailsApplication.isDomainClass(foo.getClass()) {
...
}
Комментарии:
1. Хороший ответ. Откуда взялся этот метод? Кажется, я не могу найти его в Javadoc: grails.org/doc/latest/api/org/codehaus/groovy/grails/commons /…
2. Это динамический метод, поэтому его нет в Javadoc. Все артефакты работают таким образом, например, isServiceClass тоже работает. И если плагин добавляет артефакт, он тоже будет работать, например, Quartz plugin — isTaskClass работает, если у вас установлен Quartz. Эти методы описаны здесь: grails.org/doc/latest/guide /…
Ответ №2:
Нашел следующий фрагмент на https://svn.intuitive-collaboration.com/RiskAnalytics/trunk/riskanalytics-grails/src/java/org/codehaus/groovy/grails/web/binding/GrailsDataBinder.java
DomainClassArtefactHandler.isDomainClass(clazz)
Javadoc находится здесь: http://grails.org/doc/latest/api/org/codehaus/groovy/grails/commons/DomainClassArtefactHandler.html#isDomainClass(java.lang.Класс)