Example #1
0
        private bool AcceptByStoreFiltering(long reference, int storeLookups, Value[] values)
        {
            // Initialize the property cursor scan
            _read.singleNode(reference, _node);
            if (!_node.next())
            {
                // This node doesn't exist, therefore it cannot be accepted
                _property.close();
                return(false);
            }
            _node.properties(_property);

            while (storeLookups > 0 && _property.next())
            {
                for (int i = 0; i < _filters.Length; i++)
                {
                    IndexQuery filter = _filters[i];
                    if (filter != null && (values == null || values[i] == NO_VALUE) && _property.propertyKey() == filter.PropertyKeyId())
                    {
                        if (!filter.AcceptsValueAt(_property))
                        {
                            return(false);
                        }
                        storeLookups--;
                    }
                }
            }
            return(storeLookups == 0);
        }