Глядя на GrailsDomainConfigurationUtil
, вы можете видеть, что карта ограничений строится из свойства статических ограничений класса домена с использованием ConstrainedPropertyBuilder
. Конечно, вы можете заполнить карту ограничений, динамически вызывая методы компоновщика, используя карту, созданную из XML.
static constraints = {
def fromXml = [lastName: [blank:false, maxSize: 100]]
fromXml.each { property, constraints ->
invokeMethod (property, constraints)
}
}
Это может подойти, если вам нужны только ограничения на основе XML в одном доменном классе, в противном случае более общий подход, предложенный Эриком, вероятно, лучше, например схема именования файлов XML и, таким образом, экстраполяция идеи соглашения на конфигурацию.