Azavea.Open.DAO.Memory.AbstractMemoryIndex.GetMatchingKeys C# (CSharp) Method

GetMatchingKeys() protected method

Gets the keys that match the expressions that are relevent to this index.
protected GetMatchingKeys ( DaoCriteria crit, IEnumerable allKeys ) : IList
crit Azavea.Open.DAO.Criteria.DaoCriteria The query being run.
allKeys IEnumerable All the key values in the index.
return IList
        protected IList<object> GetMatchingKeys(DaoCriteria crit, IEnumerable<object> allKeys)
        {
            IList<AbstractSinglePropertyExpression> exprs = GetExpressionsForIndex(crit);
            IList<object> retVal = new List<object>();
            foreach (object key in allKeys)
            {
                if (exprs.Count > 0)
                {
                    foreach (AbstractSinglePropertyExpression expr in exprs)
                    {
                        if (UnqueryableDataReader.ValueMatchesExpression(key, expr, _daLayer))
                        {
                            retVal.Add(key);
                        }
                    }
                }
                else
                {
                    retVal.Add(key);
                }
            }
            return retVal;
        }