public virtual CompiledTemplate LookupTemplate(string name)
{
if (name[0] != '/')
name = "/" + name;
if (Verbose)
Console.WriteLine(string.Format("{0}.LookupTemplate({1})", Name, name));
CompiledTemplate code;
templates.TryGetValue(name, out code);
if (code == NotFoundTemplate)
{
if (Verbose)
Console.WriteLine(string.Format("{0} previously seen as not found", name));
return null;
}
// try to load from disk and look up again
if (code == null)
code = Load(name);
if (code == null)
code = LookupImportedTemplate(name);
if (code == null)
{
if (Verbose)
Console.WriteLine(string.Format("{0} recorded not found", name));
templates[name] = NotFoundTemplate;
}
if (Verbose && code != null)
Console.WriteLine(string.Format("{0}.LookupTemplate({1}) found", Name, name));
return code;
}