public override RandomAccessFilter BuildRandomAccessFilter(string value, IDictionary <string, string> props) { int depth = GetDepth(props); bool strict = IsStrict(props); PathValueConverter valConverter = new PathValueConverter(depth, strict, _separator); string[] vals = new string[] { value }; if (_multiValue) { return(new MultiValueORFacetFilter(this, vals, valConverter, false)); } return(new FacetOrFilter(this, vals, false, valConverter)); //return _multiValue ? new MultiValueORFacetFilter(this, vals, valConverter, false) : new FacetOrFilter(this, vals, false, valConverter); }
public override RandomAccessFilter BuildRandomAccessOrFilter(string[] vals, IDictionary <string, string> prop, bool isNot) { if (vals.Length > 1) { if (vals.Length > 0) { int depth = GetDepth(prop); bool strict = IsStrict(prop); PathValueConverter valConverter = new PathValueConverter(depth, strict, _separator); if (_multiValue) { return(new MultiValueORFacetFilter(this, vals, valConverter, isNot)); } return(new FacetOrFilter(this, vals, isNot, valConverter)); } else { if (isNot) { return(null); } else { return(EmptyFilter.Instance); } } } else { RandomAccessFilter f = BuildRandomAccessFilter(vals[0], prop); if (f == null) { return(f); } if (isNot) { f = new RandomAccessNotFilter(f); } return(f); } }