Ejemplo n.º 1
0
        public virtual ObjectFeatureProvider GetObjectSubsetProvider(ObjectFeatureFilter filter)
        {
            Contract.Requires(filter != null);
            Contract.Ensures(Contract.Result<ObjectFeatureProvider>() != null);

            return new ObjectFeatureProvider(this, filter);
        }
Ejemplo n.º 2
0
 private ObjectFeatureProvider(ObjectFeatureProvider baseProvider, ObjectFeatureFilter filter)
 {
     Contract.Requires(baseProvider != null);
     Contract.Requires(filter != null);
     
     entries = baseProvider.entries;
     SourceList = ApplyFilter(baseProvider.SourceList, filter);
 }
Ejemplo n.º 3
0
        private IList ApplyFilter(IList sourceList, ObjectFeatureFilter filter)
        {
            Contract.Requires(entries != null);
            Contract.Requires(entries.Length > 0);

            if (filter == null) return sourceList;

            var filteredList = new ArrayList();
            for (int idx = 0; idx < sourceList.Count; idx++)
            {
                object obj = sourceList[idx];
                var values = entries.ToDictionary(e => e.Description.ID, e => e.GetValue(obj));
                if (filter(idx, values)) filteredList.Add(obj);
            }
            return filteredList.ToArray();
        }
Ejemplo n.º 4
0
        public ObjectFeatureProvider(IList sourceList, Strings featureProjections, ObjectFeatureFilter filter = null)
        {
            Contract.Requires(sourceList != null);
            Contract.Requires(featureProjections != null);
            Contract.Requires(sourceList.Count > 0);
            Contract.Requires(featureProjections.Count > 0);

            entries = featureProjections.Select(p => new Entry(this, p, GetObjectType(sourceList), sourceList)).ToArray();
            SourceList = ApplyFilter(sourceList, filter);
        }