public override void Execute (IProgressMonitor monitor, IBuildTarget item, ExecutionContext context, ConfigurationSelector configuration)
{
if (item is SolutionEntityItem) {
SolutionEntityItem entry = (SolutionEntityItem) item;
SolutionItemConfiguration conf = entry.GetConfiguration (configuration) as SolutionItemConfiguration;
if (conf != null && conf.CustomCommands.HasCommands (CustomCommandType.Execute)) {
conf.CustomCommands.ExecuteCommand (monitor, entry, CustomCommandType.Execute, context, configuration);
return;
}
entry.OnExecute (monitor, context, configuration);
}
else if (item is WorkspaceItem) {
((WorkspaceItem)item).OnExecute (monitor, context, configuration);
}
else if (item is SolutionItem)
((SolutionItem)item).OnExecute (monitor, context, configuration);
else
throw new InvalidOperationException ("Unknown item type: " + item);
}