code: public void initNewList(int maxNumberOfTerms, String segmentName,
        int segmentNumber, String boundary) throws IOException {
      if (closed) {
        result = null;
        closed = false;
      }
      initNewListBasic(maxNumberOfTerms);
      if (segmentRegistration != null) {
        this.segmentName = segmentName;
        this.segmentNumber = segmentNumber;
        if (!segmentKeyValueList.containsKey(segmentName)) {
          segmentKeyValueList.put(segmentName, new HashMap<String, T1>());
          if (segmentRegistration.equals(SEGMENT_BOUNDARY_ASC)
              || segmentRegistration.equals(SEGMENT_BOUNDARY_DESC)) {
            if (boundary != null) {
              segmentValuesBoundary.put(segmentName,
                  stringToBoundary(boundary, segmentNumber));
            } else {
              throw new IOException("expected boundary");
            }
          } else {
            segmentValuesBoundary.put(segmentName, null);
          }
          segmentValueTopListLast.put(segmentName, null);
        }
        this.segmentValueTopList = new ArrayList<>();
      }
    }
docs: Inits the new list.
  
  @param maxNumberOfTerms the max number of terms
  @param segmentName the segment name
  @param segmentNumber the segment number
  @param boundary the boundary
  @throws IOException Signals that an I/O exception has occurred.