Пример #1
0
    internal ISelector GetSelector()
    {
      if (_complexSelector != null)
      {
        _complexSelector.ConcludeSelector(_currentSelector);
        _currentSelector = _complexSelector;
      }

      if (_aggregateSelectorList == null || _aggregateSelectorList.Length == 0)
      {
        return _currentSelector ?? AllSelector.All();
      }

      if (_currentSelector == null && _aggregateSelectorList.Length == 1)
      {
        return _aggregateSelectorList[0];
      }

      if (_currentSelector == null)
      {
        return _aggregateSelectorList;
      }

      _aggregateSelectorList.AppendSelector(_currentSelector);
      _currentSelector = null;

      return _aggregateSelectorList;
    }
Пример #2
0
 public CombinatorSelector(BaseSelector selector, Combinator delimiter)
 {
     Selector = selector;
     Delimiter = delimiter;
 }
Пример #3
0
    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(new UnknownSelector(""), _combinator);
          _currentSelector = selector;
        }
        else
        {
          _combinator = Combinator.Descendent;
          _hasCombinator = false;
          _currentSelector = selector;
        }
      }
    }
Пример #4
0
    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;
    }
Пример #5
0
    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;
    }