code: 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;
    }
docs: Calculate the set of levels that flow through to a child.
  @param includeAllLevels naVsRest dictates include all (inherited) levels
  @param discardAllLevels naVsRest dictates discard all levels
  @param nodeBitsetDoesContain true if the GenmodelBitset from the compressed_tree
  @return Calculated set of levels