コード例 #1
0
        public virtual bool CallConstructor(IReflectClass clazz)
        {
            TernaryBool specialized = CallConstructorSpecialized(clazz);

            if (!specialized.IsUnspecified())
            {
                return(specialized.DefiniteYes());
            }
            return(_config.CallConstructors().DefiniteYes());
        }
コード例 #2
0
        /// <exception cref="System.IO.IOException"></exception>
        private void Defrag(TernaryBool generateCommitTimestamp)
        {
            DefragmentConfig config = new DefragmentConfig(SourceFile(), BackupFile());

            config.Db4oConfig(NewConfiguration());
            config.ForceBackupDelete(true);
            if (!generateCommitTimestamp.IsUnspecified())
            {
                config.Db4oConfig().GenerateCommitTimestamps(generateCommitTimestamp.DefiniteYes(
                                                                 ));
            }
            Db4objects.Db4o.Defragment.Defragment.Defrag(config);
        }
コード例 #3
0
        private TernaryBool CallConstructorSpecialized(IReflectClass clazz)
        {
            Config4Class clazzConfig = _config.ConfigClass(clazz.GetName());

            if (clazzConfig != null)
            {
                TernaryBool res = clazzConfig.CallConstructor();
                if (!res.IsUnspecified())
                {
                    return(res);
                }
            }
            if (Platform4.IsEnum(_config.Reflector(), clazz))
            {
                return(TernaryBool.No);
            }
            IReflectClass ancestor = clazz.GetSuperclass();

            if (ancestor != null)
            {
                return(CallConstructorSpecialized(ancestor));
            }
            return(TernaryBool.Unspecified);
        }