package callbacks

import (
	

	
)

func callMethod( *gorm.DB,  func( interface{},  *gorm.DB) bool) {
	 := .Session(&gorm.Session{NewDB: true})
	if  := (.Statement.ReflectValue.Interface(), ); ! {
		switch .Statement.ReflectValue.Kind() {
		case reflect.Slice, reflect.Array:
			.Statement.CurDestIndex = 0
			for  := 0;  < .Statement.ReflectValue.Len(); ++ {
				if  := reflect.Indirect(.Statement.ReflectValue.Index()); .CanAddr() {
					(.Addr().Interface(), )
				} else {
					.AddError(gorm.ErrInvalidValue)
					return
				}
				.Statement.CurDestIndex++
			}
		case reflect.Struct:
			if .Statement.ReflectValue.CanAddr() {
				(.Statement.ReflectValue.Addr().Interface(), )
			} else {
				.AddError(gorm.ErrInvalidValue)
			}
		}
	}
}