private BitSet calculateChildInclusiveLevels ( boolean includeAllLevels , boolean discardAllLevels , boolean nodeBitsetDoesContain ) { BitSet inheritedInclusiveLevels = findInclusiveLevels ( colId ) ; BitSet childInclusiveLevels = new BitSet ( ) ; for ( int i = 0 ; i < domainValues . length ; i ++ ) { // Calculate whether this level should flow into this child node. boolean includeThisLevel = false ; { if ( discardAllLevels ) { includeThisLevel = false ; } else if ( includeAllLevels ) { includeThisLevel = calculateIncludeThisLevel ( inheritedInclusiveLevels , i ) ; } else if ( bs . isInRange ( i ) && bs . contains ( i ) == nodeBitsetDoesContain ) { includeThisLevel = calculateIncludeThisLevel ( inheritedInclusiveLevels , i ) ; } } if ( includeThisLevel ) { childInclusiveLevels . set ( i ) ; } } return childInclusiveLevels ; }
Calculate the set of levels that flow through to a child .