@Override
    public List<LeafNodeObject> chunking() throws TikaException, IOException {
        java.util.List<LeafNodeObject> list = new ArrayList<>();
        LeafNodeObject.IntermediateNodeObjectBuilder builder =
                new LeafNodeObject.IntermediateNodeObjectBuilder();

        int index = 0;
        while (ZipHeader.isFileHeader(this.fileContent, index)) {
            AtomicReference<byte[]> dataFileSignatureBytes = new AtomicReference<>();
            byte[] header = this.analyzeFileHeader(this.fileContent, index, dataFileSignatureBytes);
            int headerLength = header.length;
            int compressedSize = (int) this.getCompressedSize(dataFileSignatureBytes.get());

            if (headerLength + compressedSize <= 4096) {
                list.add(builder.Build(
                        Arrays.copyOfRange(this.fileContent, index, headerLength + compressedSize),
                        this.getSingleChunkSignature(header, dataFileSignatureBytes.get())));
                index += headerLength += compressedSize;
            } else {
                list.add(builder.Build(header, this.getSHA1Signature(header)));
                index += headerLength;

                byte[] dataFile = Arrays.copyOfRange(this.fileContent, index, compressedSize);

                if (dataFile.length <= 1048576) {
                    list.add(builder.Build(dataFile,
                            this.getDataFileSignature(dataFileSignatureBytes.get())));
                } else {
                    list.addAll(this.getSubChunkList(dataFile));
                }

                index += compressedSize;
            }
        }

        if (0 == index) {
            return null;
        }

        byte[] finalRes =
                Arrays.copyOfRange(this.fileContent, index, this.fileContent.length - index);

        if (finalRes.length <= 1048576) {
            list.add(builder.Build(finalRes, this.getSHA1Signature(finalRes)));
        } else {
            // In current, it has no idea about how to compute the signature for final part larger than 1MB.
            throw new TikaException(
                    "If the final chunk is larger than 1MB, the signature method is not implemented.");
        }

        return list;
    }
This method is used to chunk the file data.

@return A list of LeafNodeObjectData.
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/chunking/ZipFilesChunking.java