docs: @Override
    protected Double boundaryForSegmentComputing(String segmentName)
        throws IOException {
      if (segmentRegistration.equals(SEGMENT_SORT_ASC)
          || segmentRegistration.equals(SEGMENT_SORT_DESC)) {
        Double boundary = boundaryForSegment(segmentName);
        if (boundary == null) {
          return null;
        } else {
          if (segmentRegistration.equals(SEGMENT_SORT_DESC)) {
            long correctionBoundary = 0;
            for (String otherSegmentName : segmentValueTopListLast.keySet()) {
              if (!otherSegmentName.equals(segmentName)) {
                Double otherBoundary = segmentValuesBoundary
                    .get(otherSegmentName);
                if (otherBoundary != null) {
                  correctionBoundary += Math.max(0, otherBoundary - boundary);
                }
              }
            }
            return boundary + correctionBoundary;
          } else {
            return boundary;
          }
        }
      } else {
        throw new IOException("can't compute boundary for segmentRegistration "
            + segmentRegistration);
      }
    }