Пример #1
0
        private TraversalBranch NextBranchFromSelector(TraversalContext metadata, BranchSelector selector, bool switchIfExhausted)
        {
            TraversalBranch result = selector.Next(metadata);

            if (result == null)
            {
                _selectors[_selectorIndex] = _emptySelector;
                if (switchIfExhausted)
                {
                    result = NextSelector().next(metadata);
                    if (result == null)
                    {
                        _selectors[_selectorIndex] = _emptySelector;
                    }
                }
            }
            return(result);
        }
Пример #2
0
 public AbstractSelectorOrderer(BranchSelector startSelector, BranchSelector endSelector)
 {
     _selectors = new BranchSelector[] { startSelector, endSelector };
     _states[0] = InitialState();
     _states[1] = InitialState();
 }