private static BaseDirectoryWrapper NewFSDirectory(DirectoryInfo d, LockFactory lf, bool bare)
{
string fsdirClass = TEST_DIRECTORY;
if (fsdirClass.Equals("random"))
{
fsdirClass = RandomInts.RandomFrom(Random(), FS_DIRECTORIES);
}
Type clazz;
try
{
clazz = CommandLineUtil.LoadFSDirectoryClass(fsdirClass);
}
catch (System.InvalidCastException e)
{
// TEST_DIRECTORY is not a sub-class of FSDirectory, so draw one at random
fsdirClass = RandomInts.RandomFrom(Random(), FS_DIRECTORIES);
clazz = CommandLineUtil.LoadFSDirectoryClass(fsdirClass);
}
Directory fsdir = NewFSDirectoryImpl(clazz, d);
BaseDirectoryWrapper wrapped = WrapDirectory(Random(), fsdir, bare);
if (lf != null)
{
wrapped.LockFactory = lf;
}
return wrapped;
}