/// <summary> /// Cascade an action from the parent object to all its children. /// </summary> /// <param name="session"></param> /// <param name="persister"></param> /// <param name="parent"></param> /// <param name="action"></param> /// <param name="cascadeTo"></param> /// <param name="anything"></param> public static void Cascade(ISessionImplementor session, IClassPersister persister, object parent, CascadingAction action, CascadePoint cascadeTo, object anything) { if (persister.HasCascades) { if (log.IsDebugEnabled) { log.Debug("processing cascades for: " + persister.ClassName); } IType[] types = persister.PropertyTypes; CascadeStyle[] cascadeStyles = persister.PropertyCascadeStyles; for (int i = 0; i < types.Length; i++) { CascadeStyle style = cascadeStyles[i]; if (style.DoCascade(action)) { Cascade(session, persister.GetPropertyValue(parent, i), types[i], action, style, cascadeTo, anything); } } if (log.IsDebugEnabled) { log.Debug("done processing cascades for: " + persister.ClassName); } } }
/// <summary> /// Cascade an action from the parent object to all its children. /// </summary> /// <param name="session"></param> /// <param name="persister"></param> /// <param name="parent"></param> /// <param name="action"></param> /// <param name="cascadeTo"></param> /// <param name="anything"></param> public static void Cascade( ISessionImplementor session, IClassPersister persister, object parent, CascadingAction action, CascadePoint cascadeTo, object anything ) { if( persister.HasCascades ) { if( log.IsDebugEnabled ) { log.Debug( "processing cascades for: " + persister.ClassName ); } IType[ ] types = persister.PropertyTypes; CascadeStyle[ ] cascadeStyles = persister.PropertyCascadeStyles; for( int i = 0; i < types.Length; i++ ) { CascadeStyle style = cascadeStyles[ i ]; if( style.DoCascade( action ) ) { Cascade( session, persister.GetPropertyValue( parent, i ), types[ i ], action, style, cascadeTo, anything ); } } if( log.IsDebugEnabled ) { log.Debug( "done processing cascades for: " + persister.ClassName ); } } }