text: public Builder add(int docId) {if (docId <= lastDocId) {throw new IllegalArgumentException("Doc ids must be added in-order, got " + docId + " which is <= lastDocID=" + lastDocId);}final int block = docId >>> 16;if (block != currentBlock) {flush();currentBlock = block;}if (currentBlockCardinality < MAX_ARRAY_LENGTH) {buffer[currentBlockCardinality] = (short) docId;} else {if (denseBuffer == null) {final int numBits = Math.min(1 << 16, maxDoc - (block << 16));denseBuffer = new FixedBitSet(numBits);for (short doc : buffer) {denseBuffer.set(doc & 0xFFFF);}}denseBuffer.set(docId & 0xFFFF);}lastDocId = docId;currentBlockCardinality += 1;return this;}