public void PushGeneralBuildAction(BuildActionOrder order, Action action)
        {
            Stack <Action> stack = _buildActions
                                   .EnsureItem(order, () => new Stack <Action>());

            stack.Push(action);
        }
        public void PushConditionBuildAction(
            BuildActionOrder order,
            ICondition <ValidationRequest> condition
            )
        {
            PushGeneralBuildAction(order, () => {
                IValidator inner = ActionArgs.Pop();

                IValidator conditional = new ConditionalValidator(
                    condition,
                    inner
                    );

                ActionArgs.Push(conditional);
            });
        }