internal override void Execute(Processor processor, ActionFrame frame) {
switch(frame.State) {
case Initialized:
frame.Counter = 0;
frame.State = ProcessingSets;
goto case ProcessingSets;
case ProcessingSets:
if (frame.Counter < this.useAttributeSets.Length) {
AttributeSetAction action = processor.RootAction.GetAttributeSet(this.useAttributeSets[frame.Counter]);
frame.IncrementCounter();
processor.PushActionFrame(action, frame.NodeSet);
}
else {
frame.Finished();
}
break;
default:
Debug.Fail("Invalid Container action execution state");
break;
}
}
}