public override IEnumerable <KeyValuePair <AttributeValue, long> > Enumerate(QueryCriteria value) { IResultSet <KeyValuePair <AttributeValue, long> > resultSet = new ListedResultSet <KeyValuePair <AttributeValue, long> >(); Evaluate(ref resultSet, value); return(resultSet); }
public virtual void Evaluate(ref IResultSet <T> resultSet, QueryCriteria values) { if (resultSet == null) { resultSet = new ListedResultSet <T>(); } foreach (T result in Enumerate(values)) { resultSet.Add(result); } }
public override void Evaluate(ref IResultSet <KeyValuePair <AttributeValue, long> > resultSet, QueryCriteria values) { if (resultSet == null) { resultSet = new ListedResultSet <KeyValuePair <AttributeValue, long> >(); } IDictionary <long, AttributeValue> initial = new HashVector <long, AttributeValue>(); var firstIteration = true; var intersecter = new Intersecter <long, AttributeValue>(initial); if (_childPredicates != null) { foreach (var predicate in _childPredicates) { var terminal = (TerminalPredicate)predicate; if (terminal == null) { continue; } foreach (var kvp in terminal.Enumerate(values)) { if (firstIteration) { initial[kvp.Value] = kvp.Key; } else { intersecter.Add(kvp.Value, kvp.Key); } } if (!firstIteration) { intersecter.Flip(); } firstIteration = false; } } foreach (var keyValuePair in intersecter.FinalResult) { resultSet.Add(new KeyValuePair <AttributeValue, long>(keyValuePair.Value, keyValuePair.Key)); } }
public override void Evaluate(ref IResultSet <KeyValuePair <AttributeValue, long> > resultSet, QueryCriteria values) { resultSet = new ListedResultSet <KeyValuePair <AttributeValue, long> >(); }