public static MediaType detectOnKeys(Set<String> keySet) {
        if (keySet.contains("nodes") && keySet.contains("edges") &&
                keySet.contains("graphEncodingVersion")) {
            return BMEMGRAPH;
        } else if (keySet.contains(
                "WebMainResource")) { //&& keySet.contains ("WebSubresources") should we require
            // this?
            return BWEBARCHIVE;
        } else if (keySet.contains("Playlists") && keySet.contains("Tracks") &&
                keySet.contains("Music Folder")) {
            return BITUNES;
        } //if it contains $archiver and $objects, it is a bplist inside a webarchive
        return BPLIST;
    }
Detector for BPList with utility functions for PList.
<p>
Without significant refactoring, this can't easily work as a true
detector on plist subtypes.  Rather, for now, we require the file to be
parsed and then the parser adds the subtype for xml-based plists.

@since 1.25
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/detect/apple/BPListDetector.java