public override bool Execute()
{
bool success;
if (!Path.IsPathRooted(ToolPath))
ToolPath = Path.Combine(Path.GetDirectoryName(BuildEngine.ProjectFileOfTaskNode), ToolPath);
if (!Path.IsPathRooted(BuildTaskPath))
BuildTaskPath = Path.Combine(Path.GetDirectoryName(BuildEngine.ProjectFileOfTaskNode), BuildTaskPath);
try
{
AntlrClassGenerationTaskInternal wrapper = CreateBuildTaskWrapper();
success = wrapper.Execute();
if (success)
{
_generatedCodeFiles.AddRange(wrapper.GeneratedCodeFiles.Select(file => (ITaskItem)new TaskItem(file)));
}
foreach (BuildMessage message in wrapper.BuildMessages)
{
ProcessBuildMessage(message);
}
}
catch (Exception exception)
{
if (IsFatalException(exception))
throw;
ProcessExceptionAsBuildMessage(exception);
success = false;
}
return success;
}