public IClass GetClass(string qualifiedName, ClassCreateHandler classCreateHandler)
{
ITypeElement declaredElement = TypeChooser.GetDeclaredElement(qualifiedName);
if (declaredElement == null && classCreateHandler(qualifiedName))
{
IDeclaration declaration = null;
PsiManager manager = myConstructor.GetManager();
CommandProcessor.Instance.BeginCommand("Create class");
try
{
TransactionResult result = manager.DoTransaction(delegate
{
declaration = LanguageSpecificUtil.GetImplementation(myConstructor).LocateAndCreateClass(myConstructor, qualifiedName);
if (declaration != null) manager.UpdateCaches();
});
if (!result.Succeded) declaration = null;
}
finally
{
CommandProcessor.Instance.EndCommand();
}
return declaration == null ? null : (IClass) declaration.DeclaredElement;
}
return declaredElement as IClass;
}