Beispiel #1
0
 public void SetParentSubset(IColumnSubsetInfo <T> parent)
 {
     if (GetParentSubset() != null)
     {
         throw new Exception($"Subset {this} already has a parent subset.");
     }
     _parent = parent;
     // when assigning a parent, remove all columns inherited from this parent, so a 'derived' object contains only its own columns
     _columns = _columns.Except(parent.GetColumns()).ToList();
 }
Beispiel #2
0
        public override string ToString()
        {
            //return $"ID={GetId()}, Parent={(_parent!=null ? String.Join(",", _parent?.GetColumns()) : null)}, Columns={String.Join(",", _columns)}";

            //let's output subsets with their hierarcy
            var str = $"({String.Join(",", GetColumns())})";

            for (IColumnSubsetInfo <T> subset = this; subset.GetParentSubset() != null; subset = subset.GetParentSubset())
            {
                str += $" -> ({String.Join(",", subset.GetParentSubset().GetColumns())})";
            }
            return(str);
        }