private void InsertCommaDelimited() { if (_currentSelector == null) { return; } if (_aggregateSelectorList == null) { _aggregateSelectorList = new AggregateSelectorList(","); } if (_complexSelector != null) { _complexSelector.ConcludeSelector(_currentSelector); _aggregateSelectorList.AppendSelector(_complexSelector); _complexSelector = null; } else { _aggregateSelectorList.AppendSelector(_currentSelector); } _currentSelector = null; }
internal BaseSelector GetSelector() { if (_complexSelector != null) { _complexSelector.ConcludeSelector(_currentSelector); _currentSelector = _complexSelector; } if (_aggregateSelectorList == null || _aggregateSelectorList.Length == 0) { return(_currentSelector ?? SimpleSelector.All); } if (_currentSelector == null && _aggregateSelectorList.Length == 1) { return(_aggregateSelectorList[0]); } if (_currentSelector == null) { return(_aggregateSelectorList); } _aggregateSelectorList.AppendSelector(_currentSelector); _currentSelector = null; return(_aggregateSelectorList); }
internal SelectorFactory ResetFactory() { _attributeName = null; _attributeValue = null; _attributeOperator = string.Empty; _selectorOperation = SelectorOperation.Data; _combinator = Combinator.Descendent; _hasCombinator = false; _currentSelector = null; _aggregateSelectorList = null; _complexSelector = null; return(this); }
private void Insert(BaseSelector selector) { if (_currentSelector != null) { if (!_hasCombinator) { var compound = _currentSelector as AggregateSelectorList; if (compound == null) { compound = new AggregateSelectorList(""); compound.AppendSelector(_currentSelector); } compound.AppendSelector(selector); _currentSelector = compound; } else { if (_complexSelector == null) { _complexSelector = new ComplexSelector(); } _complexSelector.AppendSelector(_currentSelector, _combinator); _combinator = Combinator.Descendent; _hasCombinator = false; _currentSelector = selector; } } else { if (_currentSelector == null && _complexSelector == null && _combinator == Combinator.Namespace) { _complexSelector = new ComplexSelector(); _complexSelector.AppendSelector(SimpleSelector.Type(""), _combinator); _currentSelector = selector; } else { _combinator = Combinator.Descendent; _hasCombinator = false; _currentSelector = selector; } } }
internal void ConcludeSelector(BaseSelector selector) { _selectors.Add(new CombinatorSelector { Selector = selector }); }
public ComplexSelector AppendSelector(BaseSelector selector, Combinator combinator) { _selectors.Add(new CombinatorSelector(selector, combinator)); return(this); }
public CombinatorSelector(BaseSelector selector, Combinator delimiter) { Selector = selector; Delimiter = delimiter; }