internal static RawTableInfo GetRawTableInfo(this ITable table, RawTableInfo info)
        {
            if (table is IQueryTable)
                return ((IQueryTable)table).GetRawTableInfo(info);

            throw new NotSupportedException();
        }
示例#2
0
        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);
        }
示例#3
0
        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;
        }
示例#4
0
 protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo)
 {
     var rows = this.Select(x => x.RowId.RowNumber).ToArray();
     rootInfo.Add(this, rows);
     return rootInfo;
 }
示例#5
0
 protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo)
 {
     return Parent.GetRawTableInfo(rootInfo);
 }
示例#6
0
 protected abstract RawTableInfo GetRawTableInfo(RawTableInfo rootInfo);
示例#7
0
 RawTableInfo IQueryTable.GetRawTableInfo(RawTableInfo rootInfo)
 {
     return GetRawTableInfo(rootInfo);
 }
示例#8
0
 protected override RawTableInfo GetRawTableInfo(RawTableInfo rootInfo)
 {
     var rows = this.Select(row => row.RowId.RowNumber).ToList();
     rootInfo.Add(this, rows);
     return rootInfo;
 }