private static TableHiLoGenerator CreateTableHiLoGenerator(TableIdGeneratorParams parameters)
        {
            var generator = new TableHiLoGenerator();

            Configure(parameters, generator);
            return(generator);
        }
        private static IConfigurable CreateGenerator <IdType>(IdGeneratorParams parameters)
        {
            switch (parameters.Strategy)
            {
            case IdGeneratorStrategy.TableHiLow:
            {
                TableHiLoGenerator generator = CreateTableHiLoGenerator((TableIdGeneratorParams)parameters);
                return(new IdGeneratorNHibernateAdaptor <IdType>(generator));
            }

            case IdGeneratorStrategy.MinimalGap:
            {
                return(CreateMinimalGapTableIdGenerator((TableIdGeneratorParams)parameters));
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }