public void Aggregate(IOlapDataVector dataVector) { if (AggregatePred(dataVector)) { AggregateValue(dataVector); } }
IGroup IGroupBuilder.Build(IOlapDataVector dataVector) { IComparable groupKey = KeySelector(dataVector); string groupName = NameSelector(dataVector); string totalName = TotalSelector == null ? "" : TotalSelector(dataVector); return(new PivotBaseGroup.Group(groupKey, groupName, ShowTotal, totalName)); }
protected V GetDataVectorValue <V>(IOlapDataVector dataVector) { if (ValueSelector == null) { throw new ArgumentNullException("Value selector should be specified for aggregator of type:" + GetType()); } return(Cast <V>(ValueSelector(dataVector))); }
internal void Process(IOlapDataVector dataVector, IEnumerable <IGroup> groupList) { Aggregators.ForEach(a => a.Aggregate(dataVector)); var group = groupList.FirstOrDefault(); if (group == null) { return; } GetOrCreateGroup(group).Process(dataVector, groupList.Skip(1)); }
protected override void AggregateValue(IOlapDataVector dataVector) { if (!_first) { _first = true; ValueT = GetDataVectorValue <T>(dataVector); } else if (Greater(GetDataVectorValue <T>(dataVector), ValueT)) { ValueT = GetDataVectorValue <T>(dataVector); } }
protected override void AggregateValue(IOlapDataVector dataVector) { ValueT = Add(ValueT, Cast <T>(1)); }
IEnumerable <IGroup> ResolveGroups(IOlapDataVector dataVector) { return(GroupBuilders.Select(groupBuilder => groupBuilder.Build(dataVector))); }
protected override void AggregateValue(IOlapDataVector dataVector) { ValueT = Add(ValueT, GetDataVectorValue <T>(dataVector)); }
protected override void AggregateValue(IOlapDataVector dataVector) { Sum = Add(Sum, GetDataVectorValue <T>(dataVector)); Count++; ValueT = Divide(Sum, Cast <T>(Count)); }
protected abstract void AggregateValue(IOlapDataVector dataVector);