internal static RawTableInfo GetRawTableInfo(this ITable table, RawTableInfo info) { if (table is IQueryTable) return ((IQueryTable)table).GetRawTableInfo(info); throw new NotSupportedException(); }
protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo) { var allList = new List<int>(); int size = RowCount; for (int i = 0; i < size; ++i) { allList.Add(i); } return GetRawTableInfo(rootInfo, allList); }
private RawTableInfo GetRawTableInfo(RawTableInfo info, IEnumerable<int> rows) { if (this is IRootTable) { info.Add((IRootTable)this, CalculateRowReferenceList()); } else { for (int i = 0; i < referenceList.Length; ++i) { IEnumerable<int> newRowSet = new List<int>(rows); // Resolve the rows into the parents indices. newRowSet = ResolveRowsForTable(newRowSet, i); var table = referenceList[i]; if (table is IRootTable) { info.Add((IRootTable)table, newRowSet.ToArray()); } else if (table is JoinedTable) { ((JoinedTable)table).GetRawTableInfo(info, newRowSet); } } } return info; }
protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo) { var rows = this.Select(x => x.RowId.RowNumber).ToArray(); rootInfo.Add(this, rows); return rootInfo; }
protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo) { return Parent.GetRawTableInfo(rootInfo); }
protected abstract RawTableInfo GetRawTableInfo(RawTableInfo rootInfo);
RawTableInfo IQueryTable.GetRawTableInfo(RawTableInfo rootInfo) { return GetRawTableInfo(rootInfo); }
protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo) { var rows = this.Select(row => row.RowId.RowNumber).ToList(); rootInfo.Add(this, rows); return rootInfo; }