private static Directory NewDirectoryImpl(Random random, string clazzName)
{
if (clazzName.Equals("random"))
{
if (Rarely(random))
{
clazzName = RandomInts.RandomFrom(random, CORE_DIRECTORIES);
}
else
{
clazzName = "RAMDirectory";
}
}
if (VERBOSE)
{
Trace.TraceInformation("Type of Directory is : {0}", clazzName);
}
Type clazz = CommandLineUtil.LoadDirectoryClass(clazzName);
// If it is a FSDirectory type, try its ctor(File)
if (clazz.IsSubclassOf(typeof(FSDirectory)))
{
DirectoryInfo dir = CreateTempDir("index-" + clazzName);
dir.Create(); // ensure it's created so we 'have' it.
return NewFSDirectoryImpl(clazz, dir);
}
// try empty ctor
return (Directory)Activator.CreateInstance(clazz);
}