In the scaffolding templates there is a property domainClass from
type org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass. These
object has the property constrainedProperties. To have access to any properties such in this example: 'readonly' you have to do this:
Your domain class:
The DefaultGrailsDomainClass has a constructor with a attribute from type Class maybe you can do this:
Your domain class:
class Contact { static belongsTo = [subscription: Subscription] static constraints = { subscription(nullable: false, attributes: [readonly: true]) } String description }
The DefaultGrailsDomainClass has a constructor with a attribute from type Class maybe you can do this:
def domainClass = new DefaultGrailsDomainClass(Contact.class) def ro = domainClass.constrainedProperties.subscription.attributes.readonly
def domainClass = new DefaultGrailsDomainClass(it.metaClass.getTheClass()) def constrainedProperties = domainClass.constrainedProperties; if(constrainedProperties.containsKey("subscription")) { ConstrainedProperty v = (ConstrainedProperty) constrainedProperties.get("subscription"); /** * Now check */ if(v.isNullable()) { println "Nullable"; } if(v.isBlank()) { println "Blank"; } /** * There are may other constraints * http://grails.org/doc/latest/api/org/codehaus/groovy/grails/validation/ConstrainedProperty.html
* Java/Grails Class ConstrainedProperty
*/
}