public override object InternalExecute(Program program) { if (ShouldExecute()) { OrderTable table = new OrderTable(this, program); try { table.Open(); return(table); } catch { table.Dispose(); throw; } } return(SourceNode.Execute(program)); }