org.codehaus.groovy.grails.validation
Class GrailsDomainClassValidator

java.lang.Object
  extended by org.codehaus.groovy.grails.validation.GrailsDomainClassValidator
All Implemented Interfaces:
GrailsApplicationAware, CascadingValidator, Validator
Direct Known Subclasses:
HibernateDomainClassValidator

public class GrailsDomainClassValidator
extends Object
implements Validator, CascadingValidator, GrailsApplicationAware

A specialised Spring validator that validates a domain class instance using the constraints defined in the static constraints closure.

Since:
0.1 Created: 07-Nov-2005
Author:
Graeme Rocher

Field Summary
protected  GrailsDomainClass domainClass
           
protected  GrailsApplication grailsApplication
           
protected  MessageSource messageSource
           
protected  Class targetClass
           
 
Constructor Summary
GrailsDomainClassValidator()
           
 
Method Summary
protected  void cascadeToAssociativeProperty(Errors errors, BeanWrapper bean, GrailsDomainClassProperty persistentProperty)
          Cascades validation onto an associative property maybe a one-to-many, one-to-one or many-to-one relationship
protected  void cascadeValidationToMany(Errors errors, BeanWrapper bean, GrailsDomainClassProperty persistentProperty, String propertyName)
          Cascades validation to a one-to-many type relationship.
protected  void cascadeValidationToOne(Errors errors, BeanWrapper bean, Object associatedObject, GrailsDomainClassProperty persistentProperty, String propertyName)
          Cascades validation to a one-to-one or many-to-one property
protected  GrailsDomainClass getAssociatedDomainClassFromApplication(Object associatedObject)
           
 GrailsDomainClass getDomainClass()
           
protected  void postValidate(Object obj, Errors errors)
          Subclasses can overrite to provide custom handling of the errors object post validation
 void setDomainClass(GrailsDomainClass domainClass)
           
 void setGrailsApplication(GrailsApplication grailsApplication)
          This method is called by the ApplicationContext that loads the Grails application.
 void setMessageSource(MessageSource messageSource)
           
 boolean supports(Class clazz)
           
 void validate(Object obj, Errors errors)
           
 void validate(Object obj, Errors errors, boolean cascade)
          An extended version of the validate(errors,obj) method that takes an additional argument specifying whether the Validator should cascade into associations or not
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

targetClass

protected Class targetClass

domainClass

protected GrailsDomainClass domainClass

messageSource

protected MessageSource messageSource

grailsApplication

protected GrailsApplication grailsApplication
Constructor Detail

GrailsDomainClassValidator

public GrailsDomainClassValidator()
Method Detail

supports

public boolean supports(Class clazz)
Specified by:
supports in interface Validator

setDomainClass

public void setDomainClass(GrailsDomainClass domainClass)
Parameters:
domainClass - The domainClass to set.

getDomainClass

public GrailsDomainClass getDomainClass()

setMessageSource

public void setMessageSource(MessageSource messageSource)
Parameters:
messageSource - The messageSource to set.

validate

public void validate(Object obj,
                     Errors errors,
                     boolean cascade)
Description copied from interface: CascadingValidator
An extended version of the validate(errors,obj) method that takes an additional argument specifying whether the Validator should cascade into associations or not

Specified by:
validate in interface CascadingValidator
Parameters:
obj - The Object to validate
errors - The Spring Errors instance
cascade - True if validation should cascade into associations
See Also:
CascadingValidator.validate(Object, org.springframework.validation.Errors, boolean)

postValidate

protected void postValidate(Object obj,
                            Errors errors)
Subclasses can overrite to provide custom handling of the errors object post validation

Parameters:
obj - The object to validate
errors - The Errors object

validate

public void validate(Object obj,
                     Errors errors)
Specified by:
validate in interface Validator
See Also:
Validator.validate(Object, org.springframework.validation.Errors)

cascadeToAssociativeProperty

protected void cascadeToAssociativeProperty(Errors errors,
                                            BeanWrapper bean,
                                            GrailsDomainClassProperty persistentProperty)
Cascades validation onto an associative property maybe a one-to-many, one-to-one or many-to-one relationship

Parameters:
errors - The Errors instnace
bean - The original bean
persistentProperty - The associative property

cascadeValidationToMany

protected void cascadeValidationToMany(Errors errors,
                                       BeanWrapper bean,
                                       GrailsDomainClassProperty persistentProperty,
                                       String propertyName)
Cascades validation to a one-to-many type relationship. Normally a collection such as a List or Set each element in the association will also be validated

Parameters:
errors - The Errors instance
bean - The original BeanWrapper
persistentProperty - An association whose isOneToMeny() method returns true
propertyName - The name of the property

cascadeValidationToOne

protected void cascadeValidationToOne(Errors errors,
                                      BeanWrapper bean,
                                      Object associatedObject,
                                      GrailsDomainClassProperty persistentProperty,
                                      String propertyName)
Cascades validation to a one-to-one or many-to-one property

Parameters:
errors - The Errors instance
bean - The original BeanWrapper
associatedObject - The associated object's current value
persistentProperty - The GrailsDomainClassProperty instance
propertyName - The name of the property

getAssociatedDomainClassFromApplication

protected GrailsDomainClass getAssociatedDomainClassFromApplication(Object associatedObject)

setGrailsApplication

public void setGrailsApplication(GrailsApplication grailsApplication)
Description copied from interface: GrailsApplicationAware

This method is called by the ApplicationContext that loads the Grails application. The GrailsApplication instance that represents the loaded Grails application is injected.

Specified by:
setGrailsApplication in interface GrailsApplicationAware
Parameters:
grailsApplication - the GrailsApplication object that represents this Grails application


Copyright (c) 2005-2009 The Grails project