Beispiel #1
0
        /// <summary>
        /// Check if the property is initialized. If the named property does not exist
        /// or is not persistent, this method always returns <tt>true</tt>.
        /// </summary>
        /// <param name="proxy">The potential proxy </param>
        /// <param name="propertyName">the name of a persistent attribute of the object </param>
        /// <returns>
        /// true if the named property of the object is not listed as uninitialized;
        /// false if the object is an uninitialized proxy, or the named property is uninitialized
        /// </returns>
        public static bool IsPropertyInitialized(object proxy, string propertyName)
        {
            object entity;

            if (proxy is INHibernateProxy)
            {
                ILazyInitializer li = ((INHibernateProxy)proxy).HibernateLazyInitializer;
                if (li.IsUninitialized)
                {
                    return(false);
                }
                else
                {
                    entity = li.GetImplementation();
                }
            }
            else
            {
                entity = proxy;
            }

            if (FieldInterceptionHelper.IsInstrumented(entity))
            {
                IFieldInterceptor interceptor = FieldInterceptionHelper.ExtractFieldInterceptor(entity);
                return(interceptor == null || interceptor.IsInitializedField(propertyName));
            }
            else
            {
                return(true);
            }
        }
Beispiel #2
0
        public static bool IsPropertyInitialized(object proxy, string propertyName)
        {
            object entity;

            if (!IsProxyFactoryConfigurated())
            {
                //if the proxy provider it's not configurated, can't be a proxy neither an instrumented field.
                return(true);
            }

            if (proxy.IsProxy())
            {
                ILazyInitializer li = ((INHibernateProxy)proxy).HibernateLazyInitializer;
                if (li.IsUninitialized)
                {
                    return(false);
                }
                else
                {
                    entity = li.GetImplementation();
                }
            }
            else
            {
                entity = proxy;
            }

            if (FieldInterceptionHelper.IsInstrumented(entity))
            {
                IFieldInterceptor interceptor = FieldInterceptionHelper.ExtractFieldInterceptor(entity);
                return(interceptor == null || interceptor.IsInitializedField(propertyName));
            }
            else
            {
                return(true);
            }
        }