/// <summary> /// /// </summary> /// <param name="cache"></param> /// <param name="sortItemProvider"></param> /// <param name="fReturnFirstDecendentOnly"></param> private PartOwnershipTree(FdoCache cache, IMultiListSortItemProvider sortItemProvider, bool fReturnFirstDecendentOnly) { XmlNode partOwnershipTreeSpec = sortItemProvider.PartOwnershipTreeSpec; m_cache = cache; m_classOwnershipTree = partOwnershipTreeSpec.SelectSingleNode(".//ClassOwnershipTree"); XmlNode parentClassPathsToChildren = partOwnershipTreeSpec.SelectSingleNode(".//ParentClassPathsToChildren"); m_parentToChildrenSpecs = parentClassPathsToChildren.Clone(); // now go through the seq specs and set the "firstOnly" to the requested value. XmlNodeList xnl = m_parentToChildrenSpecs.SelectNodes(".//seq"); if (xnl == null) { return; } foreach (XmlElement xe in xnl) { XmlAttribute xaFirstOnly = xe.Attributes["firstOnly"]; if (xaFirstOnly == null) { // create the first only attribute xaFirstOnly = xe.OwnerDocument.CreateAttribute("firstOnly"); xe.Attributes.Append(xaFirstOnly); } xaFirstOnly.Value = fReturnFirstDecendentOnly.ToString().ToLowerInvariant(); } }
/// <summary> /// /// </summary> /// <param name="cache"></param> /// <param name="sortItemProvider"></param> /// <param name="fReturnFirstDecendentOnly"></param> private PartOwnershipTree(FdoCache cache, IMultiListSortItemProvider sortItemProvider, bool fReturnFirstDecendentOnly) { XmlNode partOwnershipTreeSpec = sortItemProvider.PartOwnershipTreeSpec; m_cache = cache; m_classOwnershipTree = partOwnershipTreeSpec.SelectSingleNode(".//ClassOwnershipTree"); XmlNode parentClassPathsToChildren = partOwnershipTreeSpec.SelectSingleNode(".//ParentClassPathsToChildren"); m_parentToChildrenSpecs = parentClassPathsToChildren.Clone(); // now go through the seq specs and set the "firstOnly" to the requested value. XmlNodeList xnl = m_parentToChildrenSpecs.SelectNodes(".//seq"); if (xnl == null) return; foreach (XmlElement xe in xnl) { XmlAttribute xaFirstOnly = xe.Attributes["firstOnly"]; if (xaFirstOnly == null) { // create the first only attribute xaFirstOnly = xe.OwnerDocument.CreateAttribute("firstOnly"); xe.Attributes.Append(xaFirstOnly); } xaFirstOnly.Value = fReturnFirstDecendentOnly.ToString().ToLowerInvariant(); } }
/// <summary> /// Factory for returning a PartOwnershipTree /// </summary> /// <param name="cache"></param> /// <param name="sortItemProvider"></param> /// <param name="fReturnFirstDecendentOnly"></param> /// <returns></returns> static public PartOwnershipTree Create(FdoCache cache, IMultiListSortItemProvider sortItemProvider, bool fReturnFirstDecendentOnly) { return(new PartOwnershipTree(cache, sortItemProvider, fReturnFirstDecendentOnly)); }
/// <summary> /// Factory for returning a PartOwnershipTree /// </summary> /// <param name="cache"></param> /// <param name="sortItemProvider"></param> /// <param name="fReturnFirstDecendentOnly"></param> /// <returns></returns> static public PartOwnershipTree Create(FdoCache cache, IMultiListSortItemProvider sortItemProvider, bool fReturnFirstDecendentOnly) { return new PartOwnershipTree(cache, sortItemProvider, fReturnFirstDecendentOnly); }