public virtual int GetParent(int ordinal) { EnsureOpen(); // Note: the following if() just enforces that a user can never ask // for the parent of a nonexistant category - even if the parent array // was allocated bigger than it really needs to be. if (ordinal >= nextID) { throw new System.IndexOutOfRangeException("requested ordinal is bigger than the largest ordinal in the taxonomy"); } int[] parents = TaxoArrays.Parents(); Debug.Assert(ordinal < parents.Length, "requested ordinal (" + ordinal + "); parents.length (" + parents.Length + ") !"); return(parents[ordinal]); }
public TaxonomyIndexArrays(IndexReader reader, TaxonomyIndexArrays copyFrom) { Debug.Assert(copyFrom != null); // note that copyParents.length may be equal to reader.maxDoc(). this is not a bug // it may be caused if e.g. the taxonomy segments were merged, and so an updated // NRT reader was obtained, even though nothing was changed. this is not very likely // to happen. int[] copyParents = copyFrom.Parents(); this.parents_Renamed = new int[reader.MaxDoc]; Array.Copy(copyParents, 0, parents_Renamed, 0, copyParents.Length); InitParents(reader, copyParents.Length); if (copyFrom.initializedChildren) { InitChildrenSiblings(copyFrom); } }