public static List<DataElement> buildDataElements(byte[] fileContent,
                                                      AtomicReference<ExGuid> storageIndexExGuid)
            throws TikaException, IOException {
        List<ExGuid> objectDataExGuidList = new ArrayList<>();
        AtomicReference<ExGuid> rootNodeObjectExGuid = new AtomicReference<>();
        List<DataElement> dataElementList =
                createObjectGroupDataElement(fileContent, rootNodeObjectExGuid,
                        objectDataExGuidList);

        ExGuid baseRevisionID = new ExGuid(0, GuidUtil.emptyGuid());
        Map<ExGuid, ExGuid> revisionMapping = new HashMap<>();
        AtomicReference<ExGuid> currentRevisionID = new AtomicReference<>();
        dataElementList.add(
                createRevisionManifestDataElement(rootNodeObjectExGuid.get(), baseRevisionID,
                        objectDataExGuidList, revisionMapping, currentRevisionID));

        Map<CellID, ExGuid> cellIDMapping = new HashMap<>();
        dataElementList.add(createCellMainifestDataElement(currentRevisionID.get(), cellIDMapping));

        dataElementList.add(createStorageManifestDataElement(cellIDMapping));
        dataElementList.add(createStorageIndexDataElement(
                dataElementList.get(dataElementList.size() - 1).dataElementExGuid, cellIDMapping,
                revisionMapping));

        storageIndexExGuid.set(dataElementList.get(dataElementList.size() - 1).dataElementExGuid);
        return dataElementList;
    }
This method is used to build a list of data elements to represent a file.

@param fileContent        The file content in byte array form.
@param storageIndexExGuid Reference set to the storage index ex guid.
@return List of DataElement objects that are stored in the file content.
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/util/DataElementUtils.java