internal void CreateInstances(CreateInstancesTraversalContext traversalContext) { if (m_grouping != null) { m_grouping.Traverse(ProcessingStages.CreateGroupTree, m_expression == null || m_expression.Direction, traversalContext); } if (m_hierarchyObjs == null) { return; } bool flag = true; for (int i = 0; i < m_hierarchyObjs.Count; i++) { IReference <RuntimeHierarchyObj> reference = m_hierarchyObjs[i]; using (reference.PinValue()) { RuntimeHierarchyObj runtimeHierarchyObj = reference.Value(); if (!flag || runtimeHierarchyObj is RuntimeGroupLeafObj) { ((RuntimeGroupLeafObj)runtimeHierarchyObj).TraverseAllLeafNodes(ProcessingStages.CreateGroupTree, traversalContext); flag = false; } else { ((RuntimeDetailObj)runtimeHierarchyObj).CreateInstance(traversalContext); } } } }
internal void CreateInstances(ScopeInstance parentInstance, IReference <RuntimeMemberObj>[] innerMembers, IReference <RuntimeDataTablixGroupLeafObj> innerGroupLeafRef) { CreateInstancesTraversalContext traversalContext = new CreateInstancesTraversalContext(parentInstance, innerMembers, innerGroupLeafRef); m_hierarchyDef.ResetInstancePathCascade(); TraverseGroupOrSortTree(ProcessingStages.CreateGroupTree, traversalContext); if (m_detailDataRows != null) { m_detailDataRows.Dispose(); } m_detailDataRows = null; m_detailUserSortTargetInfo = null; }
internal virtual void CreateInstance(CreateInstancesTraversalContext traversalContext) { Global.Tracer.Assert(condition: false); }