Пример #1
0
 /// <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 );
				}
			}
		}