org.hibernate.engine
Class CascadeStyle

java.lang.Object
  extended by org.hibernate.engine.CascadeStyle
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CascadeStyle.MultipleCascadeStyle

public abstract class CascadeStyle
extends Object
implements Serializable

A contract for defining the aspects of cascading various persistence actions.

Author:
Gavin King
See Also:
CascadingAction, Serialized Form

Nested Class Summary
static class CascadeStyle.MultipleCascadeStyle
           
 
Field Summary
static CascadeStyle ALL
          save / delete / update / evict / lock / replicate / merge / persist
static CascadeStyle ALL_DELETE_ORPHAN
          save / delete / update / evict / lock / replicate / merge / persist + delete orphans
static CascadeStyle DELETE
          delete
static CascadeStyle DELETE_ORPHAN
          delete + delete orphans
static CascadeStyle EVICT
          evict
static CascadeStyle LOCK
          lock
static CascadeStyle MERGE
          merge
static CascadeStyle NONE
          no cascades
static CascadeStyle PERSIST
          create
static CascadeStyle REFRESH
          refresh
static CascadeStyle REPLICATE
          replicate
static CascadeStyle UPDATE
          save / update
 
Method Summary
abstract  boolean doCascade(CascadingAction action)
          For this style, should the given action be cascaded?
static CascadeStyle getCascadeStyle(String cascade)
          Factory method for obtaining named cascade styles
 boolean hasOrphanDelete()
          Do we need to delete orphaned collection elements?
 boolean reallyDoCascade(CascadingAction action)
          Probably more aptly named something like doCascadeToCollectionElements(); it is however used from both the collection and to-one logic branches...
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALL_DELETE_ORPHAN

public static final CascadeStyle ALL_DELETE_ORPHAN
save / delete / update / evict / lock / replicate / merge / persist + delete orphans


ALL

public static final CascadeStyle ALL
save / delete / update / evict / lock / replicate / merge / persist


UPDATE

public static final CascadeStyle UPDATE
save / update


LOCK

public static final CascadeStyle LOCK
lock


REFRESH

public static final CascadeStyle REFRESH
refresh


EVICT

public static final CascadeStyle EVICT
evict


REPLICATE

public static final CascadeStyle REPLICATE
replicate


MERGE

public static final CascadeStyle MERGE
merge


PERSIST

public static final CascadeStyle PERSIST
create


DELETE

public static final CascadeStyle DELETE
delete


DELETE_ORPHAN

public static final CascadeStyle DELETE_ORPHAN
delete + delete orphans


NONE

public static final CascadeStyle NONE
no cascades

Method Detail

doCascade

public abstract boolean doCascade(CascadingAction action)
For this style, should the given action be cascaded?

Parameters:
action - The action to be checked for cascade-ability.
Returns:
True if the action should be cascaded under this style; false otherwise.

reallyDoCascade

public boolean reallyDoCascade(CascadingAction action)
Probably more aptly named something like doCascadeToCollectionElements(); it is however used from both the collection and to-one logic branches...

For this style, should the given action really be cascaded? The default implementation is simply to return doCascade(org.hibernate.engine.CascadingAction); for certain styles (currently only delete-orphan), however, we need to be able to control this seperately.

Parameters:
action - The action to be checked for cascade-ability.
Returns:
True if the action should be really cascaded under this style; false otherwise.

hasOrphanDelete

public boolean hasOrphanDelete()
Do we need to delete orphaned collection elements?

Returns:
True if this style need to account for orphan delete operations; false othwerwise.

getCascadeStyle

public static CascadeStyle getCascadeStyle(String cascade)
Factory method for obtaining named cascade styles

Parameters:
cascade - The named cascade style name.
Returns:
The appropriate CascadeStyle