public FlexibleStructureBuilder()
 {
     _typeConfigurations = new StructureTypeConfigurations();
     _typeFactory        = new StructureTypeFactory();
     _schemaFactory      = new StructureSchemaFactory();
     _indexesFactory     = new StructureIndexesFactory();
     _schemas            = new ConcurrentDictionary <Type, IStructureSchema>();
 }
        public StructureSchemas(IStructureTypeFactory structureTypeFactory, IStructureSchemaBuilder structureSchemaBuilder)
        {
            Ensure.That(structureTypeFactory, "structureTypeFactory").IsNotNull();
            Ensure.That(structureSchemaBuilder, "StructureSchemaBuilder").IsNotNull();

            StructureTypeFactory   = structureTypeFactory;
            StructureSchemaBuilder = structureSchemaBuilder;
            _schemas = new ConcurrentDictionary <Type, IStructureSchema>();

            _schemaFactoryFn = t => StructureSchemaBuilder.CreateSchema(StructureTypeFactory.CreateFor(t));
        }