Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.groovy.grails.orm.hibernate.metaclass
Class AbstractSavePersistentMethod

    java.lang.Object
      org.codehaus.groovy.grails.commons.metaclass.AbstractDynamicMethodInvocation
          org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod
              org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractSavePersistentMethod

All Implemented Interfaces:
  DynamicMethodInvocation

Direct Known Subclasses:
  MergePersistentMethod, SavePersistentMethod

    public abstract class AbstractSavePersistentMethod

extends AbstractDynamicPersistentMethod

Abstract class for different implementations that perform saving to implement.

Since:
  0.3
Author:
  Graeme Rocher

Field Summary

Fields inherited from class org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod
`ERRORS_PROPERTY`

Constructor Summary
`AbstractSavePersistentMethod(Pattern pattern, org.hibernate.SessionFactory sessionFactory, ClassLoader classLoader, GrailsApplication application)`
`AbstractSavePersistentMethod(Pattern pattern, org.hibernate.SessionFactory sessionFactory, ClassLoader classLoader, GrailsApplication application, GrailsDomainClass domainClass)`

Method Summary
`protected Object` | `doInvokeInternal(Object target, Object[] arguments)`
`protected Object` | `handleValidationError(Object target, Errors errors)` Sets the flush mode to manual. which ensures that the database changes are not persisted to the database if a validation error occurs.
`static boolean` | `isAutoValidationDisabled(Object obj)`
`protected abstract Object` | `performInsert(Object target, boolean shouldFlush)` Subclasses should override and perform an insert operation, flushing the session if the second argument is true
`protected abstract Object` | `performSave(Object target, boolean shouldFlush)` Subclasses should override and perform a save operation, flushing the session if the second argument is true
`protected void` | `setErrorsOnInstance(Object target, Errors errors)` Associates the Errors object on the instance

Methods inherited from class org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod
`getHibernateTemplate, invoke, setObjectToReadOnly, setObjectToReadWrite, setupErrorsProperty`

Methods inherited from class org.codehaus.groovy.grails.commons.metaclass.AbstractDynamicMethodInvocation
`getPattern, isMethodMatch, setPattern`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractSavePersistentMethod

    public AbstractSavePersistentMethod(Pattern pattern,
                                        org.hibernate.SessionFactory sessionFactory,
                                        ClassLoader classLoader,
                                        GrailsApplication application,
                                        GrailsDomainClass domainClass)

### AbstractSavePersistentMethod

    public AbstractSavePersistentMethod(Pattern pattern,
                                        org.hibernate.SessionFactory sessionFactory,
                                        ClassLoader classLoader,
                                        GrailsApplication application)

Method Detail

### isAutoValidationDisabled

    public static boolean isAutoValidationDisabled(Object obj)

### doInvokeInternal

    protected Object doInvokeInternal(Object target,
                                      Object[] arguments)

  Specified by:
    `doInvokeInternal` in class `AbstractDynamicPersistentMethod`

### handleValidationError

    protected Object handleValidationError(Object target,
                                           Errors errors)

  Sets the flush mode to manual. which ensures that the database changes are not persisted to the database if a validation error occurs. If save() is called again and validation passes the code will check if there is a manual flush mode and flush manually if necessary

  Parameters:
    `target` - The target object that failed validation
    `errors` - The Errors instance
  Returns:
    This method will return null signaling a validation failure

### setErrorsOnInstance

    protected void setErrorsOnInstance(Object target,
                                       Errors errors)

  Associates the Errors object on the instance

  Parameters:
    `target` - The target instance
    `errors` - The Errors object

### performSave

    protected abstract Object performSave(Object target,
                                          boolean shouldFlush)

  Subclasses should override and perform a save operation, flushing the session if the second argument is true

  Parameters:
    `target` - The target object to save
    `shouldFlush` - Whether to flush
  Returns:
    The target object

### performInsert

    protected abstract Object performInsert(Object target,
                                            boolean shouldFlush)

  Subclasses should override and perform an insert operation, flushing the session if the second argument is true

  Parameters:
    `target` - The target object to save
    `shouldFlush` - Whether to flush
  Returns:
    The target object

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD