internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); object ParamValue; switch(frame.State) { case Initialized: if (this.selectKey != Compiler.InvalidQueryKey) { ParamValue = processor.RunQuery(frame, this.selectKey); processor.SetParameter(this.name, ParamValue); frame.Finished(); } else { if (this.containedActions == null) { processor.SetParameter(this.name, String.Empty); frame.Finished(); break; } NavigatorOutput output = new NavigatorOutput(); processor.PushOutput(output); processor.PushActionFrame(frame); frame.State = ProcessingChildren; } break; case ProcessingChildren: RecordOutput recOutput = processor.PopOutput(); Debug.Assert(recOutput is NavigatorOutput); processor.SetParameter(this.name,((NavigatorOutput)recOutput).Navigator); frame.Finished(); break; default: Debug.Fail("Invalid execution state inside VariableAction.Execute"); break; } }
internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: object value = processor.GetGlobalParameter(this.name); if (value != null) { frame.SetVariable(this.varKey, value); frame.Finished(); break; } if (this.varType == VariableType.LocalParameter) { if ((value = processor.GetParameter(this.name)) != null) { frame.SetVariable(this.varKey, value); frame.Finished(); break; } } if (this.selectKey != Compiler.InvalidQueryKey) { value = processor.RunQuery(frame, this.selectKey); frame.SetVariable(this.varKey, value); frame.Finished(); } else { if (this.containedActions == null) { frame.SetVariable(this.varKey, ""); frame.Finished(); break; } NavigatorOutput output = new NavigatorOutput(); processor.PushOutput(output); processor.PushActionFrame(frame); frame.State = ProcessingChildren; } break; case ProcessingChildren: RecordOutput recOutput = processor.PopOutput(); Debug.Assert(recOutput is NavigatorOutput); frame.SetVariable(this.varKey, ((NavigatorOutput)recOutput).Navigator); frame.Finished(); break; default: Debug.Fail("Invalid execution state inside VariableAction.Execute"); break; } }
internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); object ParamValue; switch (frame.State) { case Initialized: if (this.selectKey != Compiler.InvalidQueryKey) { ParamValue = processor.RunQuery(frame, this.selectKey); processor.SetParameter(this.name, ParamValue); frame.Finished(); } else { if (this.containedActions == null) { processor.SetParameter(this.name, String.Empty); frame.Finished(); break; } NavigatorOutput output = new NavigatorOutput(); processor.PushOutput(output); processor.PushActionFrame(frame); frame.State = ProcessingChildren; } break; case ProcessingChildren: RecordOutput recOutput = processor.PopOutput(); Debug.Assert(recOutput is NavigatorOutput); processor.SetParameter(this.name, ((NavigatorOutput)recOutput).Navigator); frame.Finished(); break; default: Debug.Fail("Invalid execution state inside VariableAction.Execute"); break; } }
internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch(frame.State) { case Initialized: object value = processor.GetGlobalParameter(this.name); if (value != null) { frame.SetVariable(this.varKey, value); frame.Finished(); break; } if (this.varType == VariableType.LocalParameter) if ((value = processor.GetParameter(this.name)) != null) { frame.SetVariable(this.varKey, value); frame.Finished(); break; } if (this.selectKey != Compiler.InvalidQueryKey) { value = processor.RunQuery(frame, this.selectKey); frame.SetVariable(this.varKey, value); frame.Finished(); } else { if (this.containedActions == null){ frame.SetVariable(this.varKey, ""); frame.Finished(); break; } NavigatorOutput output = new NavigatorOutput(); processor.PushOutput(output); processor.PushActionFrame(frame); frame.State = ProcessingChildren; } break; case ProcessingChildren: RecordOutput recOutput = processor.PopOutput(); Debug.Assert(recOutput is NavigatorOutput); frame.SetVariable(this.varKey, ((NavigatorOutput)recOutput).Navigator); frame.Finished(); break; default: Debug.Fail("Invalid execution state inside VariableAction.Execute"); break; } }