114cf0368Sopenharmony_ci/*
214cf0368Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
314cf0368Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
414cf0368Sopenharmony_ci * you may not use this file except in compliance with the License.
514cf0368Sopenharmony_ci * You may obtain a copy of the License at
614cf0368Sopenharmony_ci *
714cf0368Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
814cf0368Sopenharmony_ci *
914cf0368Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1014cf0368Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1114cf0368Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1214cf0368Sopenharmony_ci * See the License for the specific language governing permissions and
1314cf0368Sopenharmony_ci * limitations under the License.
1414cf0368Sopenharmony_ci */
1514cf0368Sopenharmony_ci
1614cf0368Sopenharmony_ci#define LOG_TAG "UnifiedMeta"
1714cf0368Sopenharmony_ci#include "unified_meta.h"
1814cf0368Sopenharmony_ci
1914cf0368Sopenharmony_ci#include "logger.h"
2014cf0368Sopenharmony_ci#include "unified_key.h"
2114cf0368Sopenharmony_ci
2214cf0368Sopenharmony_cinamespace OHOS {
2314cf0368Sopenharmony_cinamespace UDMF {
2414cf0368Sopenharmony_cistatic constexpr UtdType UTD_TYPES[] = {
2514cf0368Sopenharmony_ci    { ENTITY, "ENTITY", "general.entity" },
2614cf0368Sopenharmony_ci    { OBJECT, "OBJECT", "general.object" },
2714cf0368Sopenharmony_ci    { COMPOSITE_OBJECT, "COMPOSITE_OBJECT", "general.composite-object" },
2814cf0368Sopenharmony_ci    { TEXT, "TEXT", "general.text" },
2914cf0368Sopenharmony_ci    { PLAIN_TEXT, "PLAIN_TEXT", "general.plain-text" },
3014cf0368Sopenharmony_ci    { HTML, "HTML", "general.html" },
3114cf0368Sopenharmony_ci    { HYPERLINK, "HYPERLINK", "general.hyperlink" },
3214cf0368Sopenharmony_ci    { XML, "XML", "general.xml" },
3314cf0368Sopenharmony_ci    { SOURCE_CODE, "SOURCE_CODE", "general.source-code" },
3414cf0368Sopenharmony_ci    { SCRIPT, "SCRIPT", "general.script" },
3514cf0368Sopenharmony_ci    { SHELL_SCRIPT, "SHELL_SCRIPT", "general.shell-script" },
3614cf0368Sopenharmony_ci    { CSH_SCRIPT, "CSH_SCRIPT", "general.csh-script" },
3714cf0368Sopenharmony_ci    { PERL_SCRIPT, "PERL_SCRIPT", "general.perl-script" },
3814cf0368Sopenharmony_ci    { PHP_SCRIPT, "PHP_SCRIPT", "general.php-script" },
3914cf0368Sopenharmony_ci    { PYTHON_SCRIPT, "PYTHON_SCRIPT", "general.python-script" },
4014cf0368Sopenharmony_ci    { RUBY_SCRIPT, "RUBY_SCRIPT", "general.ruby-script" },
4114cf0368Sopenharmony_ci    { TYPE_SCRIPT, "TYPE_SCRIPT", "general.type-script" },
4214cf0368Sopenharmony_ci    { JAVA_SCRIPT, "JAVA_SCRIPT", "general.java-script" },
4314cf0368Sopenharmony_ci    { C_HEADER, "C_HEADER", "general.c-header" },
4414cf0368Sopenharmony_ci    { C_SOURCE, "C_SOURCE", "general.c-source" },
4514cf0368Sopenharmony_ci    { C_PLUS_PLUS_HEADER, "C_PLUS_PLUS_HEADER", "general.c-plus-plus-header" },
4614cf0368Sopenharmony_ci    { C_PLUS_PLUS_SOURCE, "C_PLUS_PLUS_SOURCE", "general.c-plus-plus-source" },
4714cf0368Sopenharmony_ci    { JAVA_SOURCE, "JAVA_SOURCE", "general.java-source" },
4814cf0368Sopenharmony_ci    { EBOOK, "EBOOK", "general.ebook" },
4914cf0368Sopenharmony_ci    { EPUB, "EPUB", "general.epub" },
5014cf0368Sopenharmony_ci    { AZW, "AZW", "com.amazon.azw" },
5114cf0368Sopenharmony_ci    { AZW3, "AZW3", "com.amazon.azw3" },
5214cf0368Sopenharmony_ci    { KFX, "KFX", "com.amazon.kfx" },
5314cf0368Sopenharmony_ci    { MOBI, "MOBI", "com.amazon.mobi" },
5414cf0368Sopenharmony_ci    { MEDIA, "MEDIA", "general.media" },
5514cf0368Sopenharmony_ci    { IMAGE, "IMAGE", "general.image" },
5614cf0368Sopenharmony_ci    { JPEG, "JPEG", "general.jpeg" },
5714cf0368Sopenharmony_ci    { PNG, "PNG", "general.png" },
5814cf0368Sopenharmony_ci    { RAW_IMAGE, "RAW_IMAGE", "general.raw-image" },
5914cf0368Sopenharmony_ci    { TIFF, "TIFF", "general.tiff" },
6014cf0368Sopenharmony_ci    { BMP, "BMP", "com.microsoft.bmp" },
6114cf0368Sopenharmony_ci    { ICO, "ICO", "com.microsoft.ico" },
6214cf0368Sopenharmony_ci    { PHOTOSHOP_IMAGE, "PHOTOSHOP_IMAGE", "com.adobe.photoshop-image" },
6314cf0368Sopenharmony_ci    { AI_IMAGE, "AI_IMAGE", "com.adobe.illustrator.ai-image" },
6414cf0368Sopenharmony_ci    { WORD_DOC, "WORD_DOC", "com.microsoft.word.doc" },
6514cf0368Sopenharmony_ci    { EXCEL, "EXCEL", "com.microsoft.excel.xls" },
6614cf0368Sopenharmony_ci    { PPT, "PPT", "com.microsoft.powerpoint.ppt" },
6714cf0368Sopenharmony_ci    { PDF, "PDF", "com.adobe.pdf" },
6814cf0368Sopenharmony_ci    { POSTSCRIPT, "POSTSCRIPT", "com.adobe.postscript" },
6914cf0368Sopenharmony_ci    { ENCAPSULATED_POSTSCRIPT, "ENCAPSULATED_POSTSCRIPT", "com.adobe.encapsulated-postscript" },
7014cf0368Sopenharmony_ci    { VIDEO, "VIDEO", "general.video" },
7114cf0368Sopenharmony_ci    { AVI, "AVI", "general.avi" },
7214cf0368Sopenharmony_ci    { MPEG, "MPEG", "general.mpeg" },
7314cf0368Sopenharmony_ci    { MPEG4, "MPEG4", "general.mpeg-4" },
7414cf0368Sopenharmony_ci    { VIDEO_3GPP, "VIDEO_3GPP", "general.3gpp" },
7514cf0368Sopenharmony_ci    { VIDEO_3GPP2, "VIDEO_3GPP2", "general.3gpp2" },
7614cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WM, "WINDOWS_MEDIA_WM", "com.microsoft.windows-media-wm" },
7714cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMV, "WINDOWS_MEDIA_WMV", "com.microsoft.windows-media-wmv" },
7814cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMP, "WINDOWS_MEDIA_WMP", "com.microsoft.windows-media-wmp" },
7914cf0368Sopenharmony_ci    { AUDIO, "AUDIO", "general.audio" },
8014cf0368Sopenharmony_ci    { AAC, "AAC", "general.aac" },
8114cf0368Sopenharmony_ci    { AIFF, "AIFF", "general.aiff" },
8214cf0368Sopenharmony_ci    { ALAC, "ALAC", "general.alac" },
8314cf0368Sopenharmony_ci    { FLAC, "FLAC", "general.flac" },
8414cf0368Sopenharmony_ci    { MP3, "MP3", "general.mp3" },
8514cf0368Sopenharmony_ci    { OGG, "OGG", "general.ogg" },
8614cf0368Sopenharmony_ci    { PCM, "PCM", "general.pcm" },
8714cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMA, "WINDOWS_MEDIA_WMA", "com.microsoft.windows-media-wma" },
8814cf0368Sopenharmony_ci    { WAVEFORM_AUDIO, "WAVEFORM_AUDIO", "com.microsoft.waveform-audio" },
8914cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMX, "WINDOWS_MEDIA_WMX", "com.microsoft.windows-media-wmx" },
9014cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WVX, "WINDOWS_MEDIA_WVX", "com.microsoft.windows-media-wvx" },
9114cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WAX, "WINDOWS_MEDIA_WAX", "com.microsoft.windows-media-wax" },
9214cf0368Sopenharmony_ci    { FILE, "FILE", "general.file" },
9314cf0368Sopenharmony_ci    { DIRECTORY, "DIRECTORY", "general.directory" },
9414cf0368Sopenharmony_ci    { FOLDER, "FOLDER", "general.folder" },
9514cf0368Sopenharmony_ci    { SYMLINK, "SYMLINK", "general.symlink" },
9614cf0368Sopenharmony_ci    { ARCHIVE, "ARCHIVE", "general.archive" },
9714cf0368Sopenharmony_ci    { BZ2_ARCHIVE, "BZ2_ARCHIVE", "general.bz2-archive" },
9814cf0368Sopenharmony_ci    { DISK_IMAGE, "DISK_IMAGE", "general.disk-image" },
9914cf0368Sopenharmony_ci    { TAR_ARCHIVE, "TAR_ARCHIVE", "general.tar-archive" },
10014cf0368Sopenharmony_ci    { ZIP_ARCHIVE, "ZIP_ARCHIVE", "general.zip-archive" },
10114cf0368Sopenharmony_ci    { JAVA_ARCHIVE, "JAVA_ARCHIVE", "com.sun.java-archive" },
10214cf0368Sopenharmony_ci    { GNU_TAR_ARCHIVE, "GNU_TAR_ARCHIVE", "org.gnu.gnu-tar-archive" },
10314cf0368Sopenharmony_ci    { GNU_ZIP_ARCHIVE, "GNU_ZIP_ARCHIVE", "org.gnu.gnu-zip-archive" },
10414cf0368Sopenharmony_ci    { GNU_ZIP_TAR_ARCHIVE, "GNU_ZIP_TAR_ARCHIVE", "org.gnu.gnu-zip-tar-archive" },
10514cf0368Sopenharmony_ci    { CALENDAR, "CALENDAR", "general.calendar" },
10614cf0368Sopenharmony_ci    { CONTACT, "CONTACT", "general.contact" },
10714cf0368Sopenharmony_ci    { DATABASE, "DATABASE", "general.database" },
10814cf0368Sopenharmony_ci    { MESSAGE, "MESSAGE", "general.message" },
10914cf0368Sopenharmony_ci    { VCARD, "VCARD", "general.vcard" },
11014cf0368Sopenharmony_ci    { NAVIGATION, "NAVIGATION", "general.navigation" },
11114cf0368Sopenharmony_ci    { LOCATION, "LOCATION", "general.location" },
11214cf0368Sopenharmony_ci    { SYSTEM_DEFINED_RECORD, "SYSTEM_DEFINED_RECORD", "SystemDefinedType" },
11314cf0368Sopenharmony_ci    { SYSTEM_DEFINED_FORM, "OPENHARMONY_FORM", "openharmony.form" },
11414cf0368Sopenharmony_ci    { SYSTEM_DEFINED_APP_ITEM, "OPENHARMONY_APP_ITEM", "openharmony.app-item" },
11514cf0368Sopenharmony_ci    { SYSTEM_DEFINED_PIXEL_MAP, "OPENHARMONY_PIXEL_MAP", "openharmony.pixel-map" },
11614cf0368Sopenharmony_ci    { OPENHARMONY_ATOMIC_SERVICE, "OPENHARMONY_ATOMIC_SERVICE", "openharmony.atomic-service" },
11714cf0368Sopenharmony_ci    { APPLICATION_DEFINED_RECORD, "APPLICATION_DEFINED_RECORD", "ApplicationDefinedType" },
11814cf0368Sopenharmony_ci    { OPENHARMONY_PACKAGE, "OPENHARMONY_PACKAGE", "openharmony.package" },
11914cf0368Sopenharmony_ci    { OPENHARMONY_HAP, "OPENHARMONY_HAP", "openharmony.hap" },
12014cf0368Sopenharmony_ci    { SMIL, "SMIL", "com.real.smil" },
12114cf0368Sopenharmony_ci    { MARKDOWN, "MARKDOWN", "general.markdown" },
12214cf0368Sopenharmony_ci    { FAX, "FAX", "general.fax" },
12314cf0368Sopenharmony_ci    { JFX_FAX, "JFX_FAX", "com.j2.jfx-fax" },
12414cf0368Sopenharmony_ci    { EFX_FAX, "EFX_FAX", "com.js.efx-fax" },
12514cf0368Sopenharmony_ci    { XBITMAP_IMAGE, "XBITMAP_IMAGE", "general.xbitmap-image" },
12614cf0368Sopenharmony_ci    { TGA_IMAGE, "TGA_IMAGE", "com.truevision.tga-image" },
12714cf0368Sopenharmony_ci    { SGI_IMAGE, "SGI_IMAGE", "com.sgi.sgi-image" },
12814cf0368Sopenharmony_ci    { OPENEXR_IMAGE, "OPENEXR_IMAGE", "com.ilm.openexr-image" },
12914cf0368Sopenharmony_ci    { FLASHPIX_IMAGE, "FLASHPIX_IMAGE", "com.kodak.flashpix.image" },
13014cf0368Sopenharmony_ci    { REALMEDIA, "REALMEDIA", "com.real.realmedia" },
13114cf0368Sopenharmony_ci    { AU_AUDIO, "AU_AUDIO", "general.au-audio" },
13214cf0368Sopenharmony_ci    { AIFC_AUDIO, "AIFC_AUDIO", "general.aifc-audio" },
13314cf0368Sopenharmony_ci    { SD2_AUDIO, "SD2_AUDIO", "com.digidesign.sd2-audio" },
13414cf0368Sopenharmony_ci    { REALAUDIO, "REALAUDIO", "com.real.realaudio" },
13514cf0368Sopenharmony_ci    { OPENXML, "OPENXML", "org.openxmlformats.openxml" },
13614cf0368Sopenharmony_ci    { WORDPROCESSINGML_DOCUMENT, "WORDPROCESSINGML_DOCUMENT",
13714cf0368Sopenharmony_ci      "org.openxmlformats.wordprocessingml.document" },
13814cf0368Sopenharmony_ci    { SPREADSHEETML_SHEET, "SPREADSHEETML_SHEET", "org.openxmlformats.spreadsheetml.sheet" },
13914cf0368Sopenharmony_ci    { PRESENTATIONML_PRESENTATION, "PRESENTATIONML_PRESENTATION",
14014cf0368Sopenharmony_ci      "org.openxmlformats.presentationml.presentation" },
14114cf0368Sopenharmony_ci    { OPENDOCUMENT, "OPENDOCUMENT", "org.oasis.opendocument" },
14214cf0368Sopenharmony_ci    { OPENDOCUMENT_TEXT, "OPENDOCUMENT_TEXT", "org.oasis.opendocument.text" },
14314cf0368Sopenharmony_ci    { OPENDOCUMENT_SPREADSHEET, "OPENDOCUMENT_SPREADSHEET", "org.oasis.opendocument.spreadsheet" },
14414cf0368Sopenharmony_ci    { OPENDOCUMENT_PRESENTATION, "OPENDOCUMENT_PRESENTATION", "org.oasis.opendocument.presentation" },
14514cf0368Sopenharmony_ci    { OPENDOCUMENT_GRAPHICS, "OPENDOCUMENT_GRAPHICS", "org.oasis.opendocument.graphics" },
14614cf0368Sopenharmony_ci    { OPENDOCUMENT_FORMULA, "OPENDOCUMENT_FORMULA", "org.oasis.opendocument.formula" },
14714cf0368Sopenharmony_ci    { STUFFIT_ARCHIVE, "STUFFIT_ARCHIVE", "com.allume.stuffit-archive" },
14814cf0368Sopenharmony_ci    { VCS, "VCS", "general.vcs" },
14914cf0368Sopenharmony_ci    { ICS, "ICS", "general.ics" },
15014cf0368Sopenharmony_ci    { EXECUTABLE, "EXECUTABLE", "general.executable" },
15114cf0368Sopenharmony_ci    { PORTABLE_EXECUTABLE, "PORTABLE_EXECUTABLE", "com.microsoft.portable-executable" },
15214cf0368Sopenharmony_ci    { SUN_JAVA_CLASS, "SUN_JAVA_CLASS", "com.sun.java-class" },
15314cf0368Sopenharmony_ci    { FONT, "FONT", "general.font" },
15414cf0368Sopenharmony_ci    { TRUETYPE_FONT, "TRUETYPE_FONT", "general.truetype-font" },
15514cf0368Sopenharmony_ci    { TRUETYPE_COLLECTION_FONT, "TRUETYPE_COLLECTION_FONT", "general.truetype-collection-font" },
15614cf0368Sopenharmony_ci    { OPENTYPE_FONT, "OPENTYPE_FONT", "general.opentype-font" },
15714cf0368Sopenharmony_ci    { POSTSCRIPT_FONT, "POSTSCRIPT_FONT", "com.adobe.postscript-font" },
15814cf0368Sopenharmony_ci    { POSTSCRIPT_PFB_FONT, "POSTSCRIPT_PFB_FONT", "com.adobe.postscript-pfb-font" },
15914cf0368Sopenharmony_ci    { POSTSCRIPT_PFA_FONT, "POSTSCRIPT_PFA_FONT", "com.adobe.postscript-pfa-font" },
16014cf0368Sopenharmony_ci    { OPENHARMONY_HDOC, "OPENHARMONY_HDOC", "openharmony.hdoc" },
16114cf0368Sopenharmony_ci    { OPENHARMONY_HINOTE, "OPENHARMONY_HINOTE", "openharmony.hinote" },
16214cf0368Sopenharmony_ci    { OPENHARMONY_STYLED_STRING, "OPENHARMONY_STYLED_STRING", "openharmony.styled-string" },
16314cf0368Sopenharmony_ci    { OPENHARMONY_WANT, "OPENHARMONY_WANT", "openharmony.want" },
16414cf0368Sopenharmony_ci    { OFD, "OFD", "general.ofd" },
16514cf0368Sopenharmony_ci    { OPG, "OPG", "general.opg" },
16614cf0368Sopenharmony_ci    { TEX, "TEX", "general.tex" },
16714cf0368Sopenharmony_ci    { CSS, "CSS", "general.css" },
16814cf0368Sopenharmony_ci    { VOB, "VOB", "general.vob" },
16914cf0368Sopenharmony_ci    { DIF_VIDEO, "DIF_VIDEO", "general.dif-video" },
17014cf0368Sopenharmony_ci    { DV_VIDEO, "DV_VIDEO", "general.dv-video" },
17114cf0368Sopenharmony_ci    { FLC_ANIMATION, "FLC_ANIMATION", "general.flc-animation" },
17214cf0368Sopenharmony_ci    { MNG, "MNG", "general.mng" },
17314cf0368Sopenharmony_ci    { MPEGURL_VIDEO, "MPEGURL_VIDEO", "general.mpegurl-video" },
17414cf0368Sopenharmony_ci    { TS, "TS", "general.ts" },
17514cf0368Sopenharmony_ci    { AMR, "AMR", "general.amr" },
17614cf0368Sopenharmony_ci    { AMR_WB, "AMR_WB", "general.amr-wb" },
17714cf0368Sopenharmony_ci    { GMS, "GSM", "general.gsm" },
17814cf0368Sopenharmony_ci    { IMY, "IMY", "general.imy" },
17914cf0368Sopenharmony_ci    { KAR, "KAR", "general.kar" },
18014cf0368Sopenharmony_ci    { MPEGURL_AUDIO, "MPEGURL_AUDIO", "general.mpegurl-audio" },
18114cf0368Sopenharmony_ci    { MPEG_4_AUDIO, "MPEG_4_AUDIO", "general.mpeg-4-audio" },
18214cf0368Sopenharmony_ci    { MIDI_AUDIO, "MIDI_AUDIO", "general.midi-audio" },
18314cf0368Sopenharmony_ci    { MP2, "MP2", "general.mp2" },
18414cf0368Sopenharmony_ci    { MPEG_AUDIO, "MPEG_AUDIO", "general.mpeg-audio" },
18514cf0368Sopenharmony_ci    { MXMF, "MXMF", "general.mxmf" },
18614cf0368Sopenharmony_ci    { OTA, "OTA", "general.ota" },
18714cf0368Sopenharmony_ci    { PLS, "PLS", "general.pls" },
18814cf0368Sopenharmony_ci    { RTTTL, "RTTTL", "general.rtttl" },
18914cf0368Sopenharmony_ci    { PSID, "PSID", "general.psid" },
19014cf0368Sopenharmony_ci    { ULAW_AUDIO, "ULAW_AUDIO", "general.ulaw-audio" },
19114cf0368Sopenharmony_ci    { XMF, "XMF", "general.xmf" },
19214cf0368Sopenharmony_ci    { GIF, "GIF", "general.gif" },
19314cf0368Sopenharmony_ci    { DJVU_IMAGE, "DJVU_IMAGE", "general.djvu-image" },
19414cf0368Sopenharmony_ci    { JNG_IMAGE, "JNG_IMAGE", "general.jng-image" },
19514cf0368Sopenharmony_ci    { PCX_IMAGE, "PCX_IMAGE", "general.pcx-image" },
19614cf0368Sopenharmony_ci    { PBM_IMAGE, "PBM_IMAGE", "general.pbm-image" },
19714cf0368Sopenharmony_ci    { PGM_IMAGE, "PGM_IMAGE", "general.pgm-image" },
19814cf0368Sopenharmony_ci    { PNM_IMAGE, "PNM_IMAGE", "general.pnm-image" },
19914cf0368Sopenharmony_ci    { PPM_IMAGE, "PPM_IMAGE", "general.ppm-image" },
20014cf0368Sopenharmony_ci    { RGB_IMAGE, "RGB_IMAGE", "general.rgb-image" },
20114cf0368Sopenharmony_ci    { SVG_IMAGE, "SVG_IMAGE", "general.svg-image" },
20214cf0368Sopenharmony_ci    { WBMP_IMAGE, "WBMP_IMAGE", "general.wbmp-image" },
20314cf0368Sopenharmony_ci    { XPIXMP_IMAGE, "XPIXMAP_IMAGE", "general.xpixmap-image" },
20414cf0368Sopenharmony_ci    { XWINDOWDUMP_IMAGE, "XWINDOWDUMP_IMAGE", "general.xwindowdump-image" },
20514cf0368Sopenharmony_ci    { HEIF, "HEIF", "general.heif" },
20614cf0368Sopenharmony_ci    { HEIC, "HEIC", "general.heic" },
20714cf0368Sopenharmony_ci    { VIRTUAL_CD, "VIRTUAL_CD", "general.virtual-cd" },
20814cf0368Sopenharmony_ci    { BOO_SOURCE, "BOO_SOURCE", "general.boo-source" },
20914cf0368Sopenharmony_ci    { D_SOURCE, "D_SOURCE", "general.d-source" },
21014cf0368Sopenharmony_ci    { HTML_COMPONENT, "HTML_COMPONENT", "general.html-component" },
21114cf0368Sopenharmony_ci    { PASCAL_SOURCE, "PASCAL_SOURCE", "general.pascal-source" },
21214cf0368Sopenharmony_ci    { HASKELL_SCRIPT, "HASKELL_SCRIPT", "general.haskell-script" },
21314cf0368Sopenharmony_ci    { LITERATE_HASKELL_SCRIPT, "LITERATE_HASKELL_SCRIPT", "general.literate-haskell-script" },
21414cf0368Sopenharmony_ci    { TCL_SCRIPT, "TCL_SCRIPT", "general.tcl-script" },
21514cf0368Sopenharmony_ci    { ASC_TEXT, "ASC_TEXT", "general.asc-text" },
21614cf0368Sopenharmony_ci    { PORTABLE_OBJECT, "PORTABLE_OBJECT", "general.portable-object" },
21714cf0368Sopenharmony_ci    { RICH_TEXT, "RICH_TEXT", "general.rich-text" },
21814cf0368Sopenharmony_ci    { DELIMITED_VALUES_TEXT, "DELIMITED_VALUES_TEXT", "general.delimited-values-text" },
21914cf0368Sopenharmony_ci    { COMMA_SEPARATED_VALUES_TEXT, "COMMA_SEPARATED_VALUES_TEXT", "general.comma-separated-values-text" },
22014cf0368Sopenharmony_ci    { DIFF, "DIFF", "general.diff" },
22114cf0368Sopenharmony_ci    { SETEXT, "SETEXT", "general.setext" },
22214cf0368Sopenharmony_ci    { GCD, "GCD", "general.gcd" },
22314cf0368Sopenharmony_ci    { TAB_SEPARATED_VALUES_TEXT, "TAB_SEPARATED_VALUES_TEXT", "general.tab-separated-values-text" },
22414cf0368Sopenharmony_ci    { P7R, "P7R", "general.p7r" },
22514cf0368Sopenharmony_ci    { PEM, "PEM", "general.pem" },
22614cf0368Sopenharmony_ci    { CHESS_PGN, "CHESS_PGN", "general.chess-pgn" },
22714cf0368Sopenharmony_ci    { LHA_ARCHIVE, "LHA_ARCHIVE", "general.lha-archive" },
22814cf0368Sopenharmony_ci    { LZH_ARCHIVE, "LZH_ARCHIVE", "general.lzh-archive" },
22914cf0368Sopenharmony_ci    { LZX_ARCHIVE, "LZX_ARCHIVE", "general.lzx-archive" },
23014cf0368Sopenharmony_ci    { TAZ_ARCHIVE, "TAZ_ARCHIVE", "general.taz-archive" },
23114cf0368Sopenharmony_ci    { SHAR_ARCHIVE, "SHAR_ARCHIVE", "general.shar-archive" },
23214cf0368Sopenharmony_ci    { CPIO_ARCHIVE, "CPIO_ARCHIVE", "general.cpio-archive" },
23314cf0368Sopenharmony_ci    { WEB_ARCHIVE, "WEB_ARCHIVE", "general.web-archive" },
23414cf0368Sopenharmony_ci    { USTAR, "USTAR", "general.ustar" },
23514cf0368Sopenharmony_ci    { MATHML, "MATHML", "general.mathml" },
23614cf0368Sopenharmony_ci    { XHTML, "XHTML", "general.xhtml" },
23714cf0368Sopenharmony_ci    { RSS, "RSS", "general.rss" },
23814cf0368Sopenharmony_ci    { RDF, "RDF", "general.rdf" },
23914cf0368Sopenharmony_ci    { IGES, "IGES", "general.iges" },
24014cf0368Sopenharmony_ci    { CAD, "CAD", "general.cad" },
24114cf0368Sopenharmony_ci    { OCTET_STREAM, "OCTET_STREAM", "general.octet-stream" },
24214cf0368Sopenharmony_ci    { ISO, "ISO", "general.iso" },
24314cf0368Sopenharmony_ci    { MESH_MODEL, "MESH_MODEL", "general.mesh-model" },
24414cf0368Sopenharmony_ci    { CERTIFICATE, "CERTIFICATE", "general.certificate" },
24514cf0368Sopenharmony_ci    { C_OBJECT, "C_OBJECT", "general.c-object" },
24614cf0368Sopenharmony_ci    { DVI, "DVI", "general.dvi" },
24714cf0368Sopenharmony_ci    { CER_CERTIFICATE, "CER_CERTIFICATE", "general.cer-certificate" },
24814cf0368Sopenharmony_ci    { CRT_CERTIFICATE, "CRT_CERTIFICATE", "general.crt-certificate" },
24914cf0368Sopenharmony_ci    { CRL_CERTIFICATE, "CRL_CERTIFICATE", "general.crl-certificate" },
25014cf0368Sopenharmony_ci    { PRN, "PRN", "general.prn" },
25114cf0368Sopenharmony_ci    { OPENDOCUMENT_CHART, "OPENDOCUMENT_CHART", "org.oasis-open.opendocument.chart" },
25214cf0368Sopenharmony_ci    { OPENDOCUMENT_TEXT_MASTER, "OPENDOCUMENT_TEXT_MASTER", "org.oasis-open.opendocument.text-master" },
25314cf0368Sopenharmony_ci    { OPENDOCUMENT_TEXT_WEB, "OPENDOCUMENT_TEXT_WEB", "org.oasis-open.opendocument.text-web" },
25414cf0368Sopenharmony_ci    { OPENDOCUMENT_DATABASE, "OPENDOCUMENT_DATABASE", "org.oasis-open.opendocument.database" },
25514cf0368Sopenharmony_ci    { OPENDOCUMENT_IMAGE, "OPENDOCUMENT_IMAGE", "org.oasis-open.opendocument.image" },
25614cf0368Sopenharmony_ci    { OPENDOCUMENT_FORMULA_TEMPLATE, "OPENDOCUMENT_FORMULA_TEMPLATE",  "org.oasis-open.opendocument.formula-template" },
25714cf0368Sopenharmony_ci    { OPENDOCUMENT_CHART_TEMPLATE, "OPENDOCUMENT_CHART_TEMPLATE", "org.oasis-open.opendocument.chart-template" },
25814cf0368Sopenharmony_ci    { OPENDOCUMENT_PRESENTATION_TEMPLATE, "OPENDOCUMENT_PRESENTATION_TEMPLATE",
25914cf0368Sopenharmony_ci      "org.oasis-open.opendocument.presentation-template" },
26014cf0368Sopenharmony_ci    { OPENDOCUMENT_IMAGE_TEMPLATE, "OPENDOCUMENT_IMAGE_TEMPLATE", "org.oasis-open.opendocument.image-template" },
26114cf0368Sopenharmony_ci    { OPENDOCUMENT_GRAPHICS_TEMPLATE, "OPENDOCUMENT_GRAPHICS_TEMPLATE",
26214cf0368Sopenharmony_ci      "org.oasis-open.opendocument.graphics-template" },
26314cf0368Sopenharmony_ci    { OPENDOCUMENT_SPREADSHEET_TEMPLATE, "OPENDOCUMENT_SPREADSHEET_TEMPLATE",
26414cf0368Sopenharmony_ci      "org.oasis-open.opendocument.spreadsheet-template" },
26514cf0368Sopenharmony_ci    { OPENDOCUMENT_TEXT_TEMPLATE, "OPENDOCUMENT_TEXT_TEMPLATE", "org.oasis-open.opendocument.text-template" },
26614cf0368Sopenharmony_ci    { WORD_DOT, "WORD_DOT", "com.microsoft.word.dot" },
26714cf0368Sopenharmony_ci    { POWERPOINT_PPS, "POWERPOINT_PPS", "com.microsoft.powerpoint.pps" },
26814cf0368Sopenharmony_ci    { POWERPOINT_POT, "POWERPOINT_POT", "com.microsoft.powerpoint.pot" },
26914cf0368Sopenharmony_ci    { EXCEL_XLT, "EXCEL_XLT", "com.microsoft.excel.xlt" },
27014cf0368Sopenharmony_ci    { VISIO_VSD, "VISIO_VSD", "com.microsoft.visio.vsd" },
27114cf0368Sopenharmony_ci    { DRAWINGML_VISIO, "DRAWINGML_VISIO", "org.openxmlformats.drawingml.visio" },
27214cf0368Sopenharmony_ci    { DRAWINGML_TEMPLATE, "DRAWINGML_TEMPLATE", "org.openxmlformats.drawingml.template" },
27314cf0368Sopenharmony_ci    { DRAWINGML_VISIO_MACROENABLED, "DRAWINGML_VISIO_MACROENABLED", "org.openxmlformats.drawingml.visio.macroenabled" },
27414cf0368Sopenharmony_ci    { DRAWINGML_TEMPLATE_MACROENABLED, "DRAWINGML_TEMPLATE_MACROENABLED",
27514cf0368Sopenharmony_ci      "org.openxmlformats.drawingml.template.macroenabled" },
27614cf0368Sopenharmony_ci    { WORDPROCESSINGML_TEMPLATE, "WORDPROCESSINGML_TEMPLATE", "org.openxmlformats.wordprocessingml.template" },
27714cf0368Sopenharmony_ci    { PRESENTATIONML_TEMPLATE, "PRESENTATIONML_TEMPLATE", "org.openxmlformats.presentationml.template" },
27814cf0368Sopenharmony_ci    { PRESENTATIONML_SLIDESHOW, "PRESENTATIONML_SLIDESHOW", "org.openxmlformats.presentationml.slideshow" },
27914cf0368Sopenharmony_ci    { SPREADSHEETML_TEMPLATE, "SPREADSHEETML_TEMPLATE", "org.openxmlformats.spreadsheetml.template" },
28014cf0368Sopenharmony_ci    { WORDPROCESSINGML_DOCUMENT_MACROENABLED, "WORDPROCESSINGML_DOCUMENT_MACROENABLED",
28114cf0368Sopenharmony_ci      "org.openxmlformats.wordprocessingml.document.macroenabled" },
28214cf0368Sopenharmony_ci    { WORDPROCESSINGML_TEMPLATE_MACROENABLED, "WORDPROCESSINGML_TEMPLATE_MACROENABLED",
28314cf0368Sopenharmony_ci      "org.openxmlformats.wordprocessingml.template.macroenabled" },
28414cf0368Sopenharmony_ci    { SPREADSHEETML_TEMPLATE_MACROENABLED, "SPREADSHEETML_TEMPLATE_MACROENABLED",
28514cf0368Sopenharmony_ci      "org.openxmlformats.spreadsheetml.template.macroenabled" },
28614cf0368Sopenharmony_ci    { SPREADSHEETML_ADDIN_MACROENABLED, "SPREADSHEETML_ADDIN_MACROENABLED",
28714cf0368Sopenharmony_ci      "org.openxmlformats.spreadsheetml.addin.macroenabled" },
28814cf0368Sopenharmony_ci    { SPREADSHEETML_BINARY_MACROENABLED, "SPREADSHEETML_BINARY_MACROENABLED",
28914cf0368Sopenharmony_ci      "org.openxmlformats.spreadsheetml.binary.macroenabled" },
29014cf0368Sopenharmony_ci    { SPREADSHEETML_SHEET_MACROENABLED, "SPREADSHEETML_SHEET_MACROENABLED",
29114cf0368Sopenharmony_ci      "org.openxmlformats.spreadsheetml.sheet.macroenabled" },
29214cf0368Sopenharmony_ci    { PRESENTATIONALML_ADDIN_MACROENABLED, "PRESENTATIONALML_ADDIN_MACROENABLED",
29314cf0368Sopenharmony_ci      "org.openxmlformats.presentationml.addin.macroenabled" },
29414cf0368Sopenharmony_ci    { PRESENTATIONALML_PRESENTATION_MACROENABLED, "PRESENTATIONALML_PRESENTATION_MACROENABLED",
29514cf0368Sopenharmony_ci      "org.openxmlformats.presentationml.presentation.macroenabled" },
29614cf0368Sopenharmony_ci    { PRESENTATIONALML_SLIDESHOW_MACROENABLED, "PRESENTATIONALML_SLIDESHOW_MACROENABLED",
29714cf0368Sopenharmony_ci      "org.openxmlformats.presentationml.slideshow.macroenabled" },
29814cf0368Sopenharmony_ci    { PRESENTATIONALML_TEMPLATE_MACROENABLED, "PRESENTATIONALML_TEMPLATE_MACROENABLED",
29914cf0368Sopenharmony_ci      "org.openxmlformats.presentationml.template.macroenabled" },
30014cf0368Sopenharmony_ci    { OPENOFFICE, "OPENOFFICE", "org.openoffice" },
30114cf0368Sopenharmony_ci    { OPENOFFICE_CALC, "OPENOFFICE_CALC", "org.openoffice.calc" },
30214cf0368Sopenharmony_ci    { OPENOFFICE_DRAW, "OPENOFFICE_DRAW", "org.openoffice.draw" },
30314cf0368Sopenharmony_ci    { OPENOFFICE_WRITER_GLOBAL, "OPENOFFICE_WRITER_GLOBAL", "org.openoffice.writer-global" },
30414cf0368Sopenharmony_ci    { OPENOFFICE_IMPRESS, "OPENOFFICE_IMPRESS", "org.openoffice.impress" },
30514cf0368Sopenharmony_ci    { OPENOFFICE_MATH, "OPENOFFICE_MATH", "org.openoffice.math" },
30614cf0368Sopenharmony_ci    { OPENOFFICE_WRITER, "OPENOFFICE_WRITER", "org.openoffice.writer" },
30714cf0368Sopenharmony_ci    { OPENOFFICE_CALC_TEMPLATE, "OPENOFFICE_CALC_TEMPLATE", "org.openoffice.calc.template" },
30814cf0368Sopenharmony_ci    { OPENOFFICE_DRAW_TEMPLATE, "OPENOFFICE_DRAW_TEMPLATE", "org.openoffice.draw.template" },
30914cf0368Sopenharmony_ci    { OPENOFFICE_IMPRESS_TEMPLATE, "OPENOFFICE_IMPRESS_TEMPLATE", "org.openoffice.impress.template" },
31014cf0368Sopenharmony_ci    { OPENOFFICE_WRITER_TEMPLATE, "OPENOFFICE_WRITER_TEMPLATE", "org.openoffice.writer.template" },
31114cf0368Sopenharmony_ci    { STAROFFICE, "STAROFFICE", "com.staroffice" },
31214cf0368Sopenharmony_ci    { STAROFFICE_DRAW, "STAROFFICE_DRAW", "com.staroffice.draw" },
31314cf0368Sopenharmony_ci    { STAROFFICE_CALC, "STAROFFICE_CALC", "com.staroffice.calc" },
31414cf0368Sopenharmony_ci    { STAROFFICE_IMPRESS, "STAROFFICE_IMPRESS", "com.staroffice.impress" },
31514cf0368Sopenharmony_ci    { STAROFFICE_WRITER, "STAROFFICE_WRITER", "com.staroffice.writer" },
31614cf0368Sopenharmony_ci    { STAROFFICE_CHART, "STAROFFICE_CHART", "com.staroffice.chart" },
31714cf0368Sopenharmony_ci    { STAROFFICE_MAIL, "STAROFFICE_MAIL", "com.staroffice.mail" },
31814cf0368Sopenharmony_ci    { STAROFFICE_WRITER_GLOBAL, "STAROFFICE_WRITER_GLOBAL", "com.staroffice.writer-global" },
31914cf0368Sopenharmony_ci    { STAROFFICE_MATH, "STAROFFICE_MATH", "com.staroffice.math" },
32014cf0368Sopenharmony_ci    { STAROFFICE_TEMPLATE, "STAROFFICE_TEMPLATE", "com.staroffice.template" },
32114cf0368Sopenharmony_ci    { TUG_BIB, "TUG_BIB", "org.tug.bib" },
32214cf0368Sopenharmony_ci    { TUG_CLS, "TUG_CLS", "org.tug.cls" },
32314cf0368Sopenharmony_ci    { TUG_STY, "TUG_STY", "org.tug.sty" },
32414cf0368Sopenharmony_ci    { TUG_TEX, "TUG_TEX", "org.tug.tex" },
32514cf0368Sopenharmony_ci    { LATEX, "LATEX", "org.latex-project.latex" },
32614cf0368Sopenharmony_ci    { ADVANCED_SYSTEMS_FORMAT, "ADVANCED_SYSTEMS_FORMAT", "com.microsoft.advanced-systems-format" },
32714cf0368Sopenharmony_ci    { ADVANCED_STREAM_REDIRECTOR, "ADVANCED_STREAM_REDIRECTOR", "com.microsoft.advanced-stream-redirector" },
32814cf0368Sopenharmony_ci    { MATROSKA_VIDEO, "MATROSKA_VIDEO", "org.matroska.mkv" },
32914cf0368Sopenharmony_ci    { MATROSKA_AUDIO, "MATROSKA_AUDIO", "org.matroska.mka" },
33014cf0368Sopenharmony_ci    { SGI_MOVIE, "SGI_MOVIE", "com.sgi.movie" },
33114cf0368Sopenharmony_ci    { APPLE_M4V, "APPLE_M4V", "com.apple.m4v" },
33214cf0368Sopenharmony_ci    { WEBM, "WEBM", "org.webmproject.webm" },
33314cf0368Sopenharmony_ci    { QUICKTIME_MOVIE, "QUICKTIME_MOVIE", "com.apple.quicktime-movie" },
33414cf0368Sopenharmony_ci    { CORELDRAW_CDR, "CORELDRAW_CDR", "com.coreldraw.cdr" },
33514cf0368Sopenharmony_ci    { CORELDRAW_CDT, "CORELDRAW_CDT", "com.coreldraw.cdt" },
33614cf0368Sopenharmony_ci    { CORELDRAW_CPT, "CORELDRAW_CPT", "com.coreldraw.cpt" },
33714cf0368Sopenharmony_ci    { CORELDRAW_PAT, "CORELDRAW_PAT", "com.coreldraw.pat" },
33814cf0368Sopenharmony_ci    { MICROSOFT_CUR, "MICROSOFT_CUR", "com.microsoft.cur" },
33914cf0368Sopenharmony_ci    { SUN_RASTER, "SUN_RASTER", "com.sun.raster" },
34014cf0368Sopenharmony_ci    { GOOGLE_WEBP, "GOOGLE_WEBP", "com.google.webp" },
34114cf0368Sopenharmony_ci    { KOAN_AUDIO, "KOAN_AUDIO", "com.sseyo.koan-audio" },
34214cf0368Sopenharmony_ci    { QT_MOC, "QT_MOC", "io.qt.moc" },
34314cf0368Sopenharmony_ci    { GHOSTSCRIPT_FONT, "GHOSTSCRIPT_FONT", "com.ghostscript.font" },
34414cf0368Sopenharmony_ci    { X_PCF_FONT, "X_PCF_FONT", "org.x.pcf-font" },
34514cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMD, "WINDOWS_MEDIA_WMD", "com.microsoft.windows-media-wmd" },
34614cf0368Sopenharmony_ci    { WINDOWS_MEDIA_WMZ, "WINDOWS_MEDIA_WMZ", "com.microsoft.windows-media-wmz" },
34714cf0368Sopenharmony_ci    { WINDOWS_INSTALLER, "WINDOWS_INSTALLER", "com.microsoft.windows-installer" },
34814cf0368Sopenharmony_ci    { PUBLISHER_PUB, "PUBLISHER_PUB", "com.microsoft.publisher.pub" },
34914cf0368Sopenharmony_ci    { WINDOWS_MEDIA_PLAYLIST, "WINDOWS_MEDIA_PLAYLIST", "com.microsoft.windows-media-playlist" },
35014cf0368Sopenharmony_ci    { ACCESS_MDB, "ACCESS_MDB", "com.microsoft.access.mdb" },
35114cf0368Sopenharmony_ci    { STEREOLITHOGRAPHY, "STEREOLITHOGRAPHY", "com.3dsystems.stereolithography" },
35214cf0368Sopenharmony_ci    { APPLE_MEDIA_PLAYLIST, "APPLE_MEDIA_PLAYLIST", "com.apple.media.playlist" },
35314cf0368Sopenharmony_ci    { ABISOURCE_WORD, "ABISOURCE_WORD", "com.abisource.word" },
35414cf0368Sopenharmony_ci    { ADOBE_FRAMEMAKER, "ADOBE_FRAMEMAKER", "com.adobe.framemaker" },
35514cf0368Sopenharmony_ci    { WOLFRAM_CDF, "WOLFRAM_CDF", "com.wolfram.cdf" },
35614cf0368Sopenharmony_ci    { CINDERELLA_CDY, "CINDERELLA_CDY", "de.cinderella.cdy" },
35714cf0368Sopenharmony_ci    { ADOBE_DCR, "ADOBE_DCR", "com.adobe.dcr" },
35814cf0368Sopenharmony_ci    { ADOBE_DIR, "ADOBE_DIR", "com.adobe.dir" },
35914cf0368Sopenharmony_ci    { ADOBE_DXR, "ADOBE_DXR", "com.adobe.dxr" },
36014cf0368Sopenharmony_ci    { GNUMERIC_SPREADSHEET, "GNUMERIC_SPREADSHEET", "org.gnumeric.spreadsheet" },
36114cf0368Sopenharmony_ci    { HDFGROUP_HDF, "HDFGROUP_HDF", "org.hdfgroup.hdf" },
36214cf0368Sopenharmony_ci    { BINHEX_ARCHIVE, "BINHEX_ARCHIVE", "com.apple.binhex-archive" },
36314cf0368Sopenharmony_ci    { MICROSOFT_HTA, "MICROSOFT_HTA", "com.microsoft.hta" },
36414cf0368Sopenharmony_ci    { INTERNET_INS, "INTERNET_INS", "com.microsoft.internet.ins" },
36514cf0368Sopenharmony_ci    { INTERNET_ISP, "INTERNET_ISP", "com.microsoft.internet.isp" },
36614cf0368Sopenharmony_ci    { TROFF, "TROFF", "org.troff" },
36714cf0368Sopenharmony_ci    { ADOBE_MIF, "ADOBE_MIF", "com.adobe.framemaker.mif" },
36814cf0368Sopenharmony_ci    { FREEMIND, "FREEMIND", "io.sourceforge.freemind" },
36914cf0368Sopenharmony_ci    { YAMAHA_SMAF, "YAMAHA_SMAF", "com.yamaha.smaf" },
37014cf0368Sopenharmony_ci    { MATHEMATICA_NOTEBOOK, "MATHEMATICA_NOTEBOOK", "com.wolfram.mathematica.notebook" },
37114cf0368Sopenharmony_ci    { XIPH_OGG, "XIPH_OGG", "org.xiph.ogg" },
37214cf0368Sopenharmony_ci    { PROXY_AUTOCONFIG, "PROXY_AUTOCONFIG", "com.netscape.proxy-autoconfig" },
37314cf0368Sopenharmony_ci    { PKCS_12, "PKCS_12", "com.rsa.pkcs-12" },
37414cf0368Sopenharmony_ci    { PGP_SIGNATURE, "PGP_SIGNATURE", "org.openpgp.signature" },
37514cf0368Sopenharmony_ci    { QUICKTIME_LINK, "QUICKTIME_LINK", "com.apple.quicktime-link" },
37614cf0368Sopenharmony_ci    { RAR_ARCHIVE, "RAR_ARCHIVE", "com.rarlab.rar-archive" },
37714cf0368Sopenharmony_ci    { SEVEN_ZIP_ARCHIVE, "SEVEN_ZIP_ARCHIVE", "org.7-zip.7-zip-archive" },
37814cf0368Sopenharmony_ci    { RED_BEAN_SGF, "RED_BEAN_SGF", "com.red-bean.sgf" },
37914cf0368Sopenharmony_ci    { SIT_ARCHIVE, "SIT_ARCHIVE", "com.stuffit.sit-archive" },
38014cf0368Sopenharmony_ci    { FUTURESPLASH, "FUTURESPLASH", "com.adobe.futuresplash" },
38114cf0368Sopenharmony_ci    { FLASH, "FLASH", "com.adobe.flash" },
38214cf0368Sopenharmony_ci    { TEXINFO, "TEXINFO", "org.gnu.texinfo" },
38314cf0368Sopenharmony_ci    { TORRENT, "TORRENT", "org.bittorrent.torrent" },
38414cf0368Sopenharmony_ci    { DOOM, "DOOM", "com.idsoftware.doom" },
38514cf0368Sopenharmony_ci    { APPLE_WEBARCHIVE, "APPLE_WEBARCHIVE", "com.apple.webarchive" },
38614cf0368Sopenharmony_ci    { ANDROID_WEBARCHIVE, "ANDROID_WEBARCHIVE", "com.android.webarchive" },
38714cf0368Sopenharmony_ci    { GIMP_XCF, "GIMP_XCF", "org.gimp.xcf" },
38814cf0368Sopenharmony_ci    { EDRWMAX, "EDRWMAX", "com.edrawsoft.edrawmax" },
38914cf0368Sopenharmony_ci    { EDRWMIND, "EDRWMIND", "com.edrawsoft.edrawmind" },
39014cf0368Sopenharmony_ci    { CNKI_CAJ, "CNKI_CAJ", "net.cnki.caj" },
39114cf0368Sopenharmony_ci    { DBASE_DBF, "DBASE_DBF", "com.dbase.dbf" },
39214cf0368Sopenharmony_ci    { AUTODESK_DWG, "AUTODESK_DWG", "com.autodesk.dwg" },
39314cf0368Sopenharmony_ci    { AUTODESK_DXF, "AUTODESK_DXF", "com.autodesk.dxf" },
39414cf0368Sopenharmony_ci    { AUTODESK_DWS, "AUTODESK_DWS", "com.autodesk.dws" },
39514cf0368Sopenharmony_ci    { AUTODESK_DWT, "AUTODESK_DWT", "com.autodesk.dwt" },
39614cf0368Sopenharmony_ci    { AUTODESK_DWF, "AUTODESK_DWF", "com.autodesk.dwf" },
39714cf0368Sopenharmony_ci    { AUTODESK_DWFX, "AUTODESK_DWFX", "com.autodesk.dwfx" },
39814cf0368Sopenharmony_ci    { AUTODESK_SHP, "AUTODESK_SHP", "com.autodesk.shp" },
39914cf0368Sopenharmony_ci    { AUTODESK_SHX, "AUTODESK_SHX", "com.autodesk.shx" },
40014cf0368Sopenharmony_ci    { AUTODESK_SLIDE_LIB, "AUTODESK_SLIDE_LIB", "com.autodesk.slide-library" },
40114cf0368Sopenharmony_ci    { AUTODESK_LINE, "AUTODESK_LINE", "com.autodesk.line" },
40214cf0368Sopenharmony_ci    { AUTODESK_PLOTTER, "AUTODESK_PLOTTER", "com.autodesk.plotter" },
40314cf0368Sopenharmony_ci    { HP_GRAPHICS_LANG, "HP_GRAPHICS_LANG", "com.hp.graphics-language" },
40414cf0368Sopenharmony_ci    { MICROSOFT_METAFILE, "MICROSOFT_METAFILE", "com.microsoft.metafile" },
40514cf0368Sopenharmony_ci    { ACIS_SAT, "ACIS_SAT", "com.spatial.acis.sat" },
40614cf0368Sopenharmony_ci    { AVIF_IMAGE, "AVIF_IMAGE", "org.aomedia.avif-image" },
40714cf0368Sopenharmony_ci    { MICROSOFT_DDS, "MICROSOFT_DDS", "com.microsoft.dds" },
40814cf0368Sopenharmony_ci    { IFF_ILBM, "IFF_ILBM", "com.ea.iff-ilbm" },
40914cf0368Sopenharmony_ci    { CR2_RAW_IMAGE, "CR2_RAW_IMAGE", "com.canon.cr2-raw-image" },
41014cf0368Sopenharmony_ci    { CR3_RAW_IMAGE, "CR3_RAW_IMAGE", "com.canon.cr3-raw-image" },
41114cf0368Sopenharmony_ci    { CRW_RAW_IMAGE, "CRW_RAW_IMAGE", "com.canon.crw-raw-image" },
41214cf0368Sopenharmony_ci    { DNG_RAW_IMAGE, "DNG_RAW_IMAGE", "com.adobe.dng-raw-image" },
41314cf0368Sopenharmony_ci    { ARW_RAW_IMAGE, "ARW_RAW_IMAGE", "com.sony.arw-raw-image" },
41414cf0368Sopenharmony_ci    { NEF_RAW_IMAGE, "NEF_RAW_IMAGE", "com.nikon.nef-raw-image" },
41514cf0368Sopenharmony_ci    { MINDMANAGER_MMAP, "MINDMANAGER_MMAP", "com.mindjet.mindmanager.mmap" },
41614cf0368Sopenharmony_ci    { MICROSOFT_EMAIL, "MICROSOFT_EMAIL", "com.microsoft.email" },
41714cf0368Sopenharmony_ci    { MICROSOFT_MESSAGE, "MICROSOFT_MESSAGE", "com.microsoft.message" },
41814cf0368Sopenharmony_ci    { MICROSOFT_PST, "MICROSOFT_PST", "com.microsoft.pst" },
41914cf0368Sopenharmony_ci    { KINGSOFT_OFFICE, "KINGSOFT_OFFICE", "com.kingsoft.office	general.zip-archive" },
42014cf0368Sopenharmony_ci    { KINGSOFT_WRITER_WPS, "KINGSOFT_WRITER_WPS", "com.kingsoft.office.writer.wps" },
42114cf0368Sopenharmony_ci    { KINGSOFT_WRITER_WPT, "KINGSOFT_WRITER_WPT", "com.kingsoft.office.writer.wpt" },
42214cf0368Sopenharmony_ci    { KINGSOFT_PRESENTATION_DPS, "KINGSOFT_PRESENTATION_DPS", "com.kingsoft.office.presentation.dps" },
42314cf0368Sopenharmony_ci    { KINGSOFT_PRESENTATION_TEMPLATE, "KINGSOFT_PRESENTATION_TEMPLATE", "com.kingsoft.office.presentation.template" },
42414cf0368Sopenharmony_ci    { KINGSOFT_SPREADSHEETS_ET, "KINGSOFT_SPREADSHEETS_ET", "com.kingsoft.office.spreadsheets.et" },
42514cf0368Sopenharmony_ci    { KINGSOFT_SPREADSHEETS_TEMPLATE, "KINGSOFT_SPREADSHEETS_TEMPLATE", "com.kingsoft.office.spreadsheets.template" },
42614cf0368Sopenharmony_ci    { MICROSOFT_INI, "MICROSOFT_INI", "com.microsoft.ini" },
42714cf0368Sopenharmony_ci    { JSON, "JSON", "general.json" },
42814cf0368Sopenharmony_ci    { YAML, "YAML", "general.yaml" },
42914cf0368Sopenharmony_ci    { LOG, "LOG", "general.log" },
43014cf0368Sopenharmony_ci    { URI, "URI", "general.uri" },
43114cf0368Sopenharmony_ci    { FILE_URI, "FILE_URI", "general.file-uri" },
43214cf0368Sopenharmony_ci    { TEXT_LST, "TEXT_LST", "general.text-lst" },
43314cf0368Sopenharmony_ci    { ANDROID_APK, "ANDROID_APK", "com.android.apk" },
43414cf0368Sopenharmony_ci    { BZ_ARCHIVE, "BZ_ARCHIVE", "general.bz-archive" },
43514cf0368Sopenharmony_ci    { TBZ_ARCHIVE, "TBZ_ARCHIVE", "general.tar-bzip-archive" },
43614cf0368Sopenharmony_ci    { TBZ2_ARCHIVE, "TBZ2_ARCHIVE", "general.tar-bzip2-archive" },
43714cf0368Sopenharmony_ci    { XZ_ARCHIVE, "XZ_ARCHIVE", "org.tukaani.xz-archive" },
43814cf0368Sopenharmony_ci    { TXZ_ARCHIVE, "TXZ_ARCHIVE", "org.tukaani.tar-xz-archive" },
43914cf0368Sopenharmony_ci    { XAR_ARCHIVE, "XAR_ARCHIVE", "general.xar-archive" },
44014cf0368Sopenharmony_ci    { CAB_ARCHIVE, "CAB_ARCHIVE", "com.microsoft.cab-archive" },
44114cf0368Sopenharmony_ci    { RPM_ARCHIVE, "RPM_ARCHIVE", "redhat.rpm-archive" },
44214cf0368Sopenharmony_ci    { TPZ_ARCHIVE, "TPZ_ARCHIVE", "org.godotengine.tpz-archive", },
44314cf0368Sopenharmony_ci    { LZA_ARCHIVE, "LZA_ARCHIVE", "general.lza-archive" },
44414cf0368Sopenharmony_ci    { ARJ_ARCHIVE, "ARJ_ARCHIVE", "general.arj-archive" },
44514cf0368Sopenharmony_ci    { ZIPX_ARCHIVE, "ZIPX_ARCHIVE", "com.winzip.zipx" },
44614cf0368Sopenharmony_ci    { LZMA_ARCHIVE, "LZMA_ARCHIVE", "general.lzma-archive" },
44714cf0368Sopenharmony_ci    { LZMA86_ARCHIVE, "LZMA86_ARCHIVE", "general.lzma86-archive" },
44814cf0368Sopenharmony_ci    { XPI_ARCHIVE, "XPI_ARCHIVE", "org.mozilla.xpinstall" },
44914cf0368Sopenharmony_ci    { HFS_DISK_IMAGE, "HFS_DISK_IMAGE", "general.hfs-disk-image" },
45014cf0368Sopenharmony_ci    { IMG_DISK_IMAGE, "IMG_DISK_IMAGE", "general.img-disk-image" },
45114cf0368Sopenharmony_ci    { ISZ_DISK_IMAGE, "ISZ_DISK_IMAGE", "com.ezbsystems.zipped-iso" },
45214cf0368Sopenharmony_ci    { WIM_DISK_IMAGE, "WIM_DISK_IMAGE", "com.microsoft.wim" },
45314cf0368Sopenharmony_ci    { SWM_DISK_IMAGE, "SWM_DISK_IMAGE", "com.microsoft.swm" },
45414cf0368Sopenharmony_ci    { KINGSOFT_SPREADSHEETS_ETX, "KINGSOFT_SPREADSHEETS_ETX", "com.kingsoft.office.spreadsheets.etx" },
45514cf0368Sopenharmony_ci    { KINGSOFT_SPREADSHEETS_ETTX, "KINGSOFT_SPREADSHEETS_ETTX", "com.kingsoft.office.spreadsheets.ettx" },
45614cf0368Sopenharmony_ci    { EXCEL_DIF, "EXCEL_DIF", "com.microsoft.excel.dif" },
45714cf0368Sopenharmony_ci    { OPENHARMONY_APP, "OPENHARMONY_APP", "openharmony.app" },
45814cf0368Sopenharmony_ci    { HMOS_WIFI, "HMOS_WIFI", "com.huawei.hmos.settings.wifi" },
45914cf0368Sopenharmony_ci    { TEL, "TEL", "general.tel" },
46014cf0368Sopenharmony_ci    { ETS, "ETS", "general.ets" },
46114cf0368Sopenharmony_ci    { JSON5, "JSON5", "general.json5" },
46214cf0368Sopenharmony_ci    { APE_AUDIO, "APE_AUDIO", "com.monkeysaudio.ape-audio" },
46314cf0368Sopenharmony_ci    { OPUS_AUDIO, "OPUS_AUDIO", "org.xiph.opus-audio"},
46414cf0368Sopenharmony_ci    { CONF, "CONF", "general.conf" },
46514cf0368Sopenharmony_ci    { MICROSOFT_DOS_BATCH, "MICROSOFT_DOS_BATCH", "com.microsoft.dos-batch" },
46614cf0368Sopenharmony_ci    { MICROSOFT_VBSCRIPT, "MICROSOFT_VBSCRIPT", "com.microsoft.vbscript" },
46714cf0368Sopenharmony_ci    { ION, "ION", "general.ion" },
46814cf0368Sopenharmony_ci    { MICROSOFT_REGISTRY, "MICROSOFT_REGISTRY", "com.microsoft.registry" },
46914cf0368Sopenharmony_ci    { MICROSOFT_CATALOG, "MICROSOFT_CATALOG", "com.microsoft.catalog" },
47014cf0368Sopenharmony_ci    { MICROSOFT_POWERSHELL_SCRIPT, "MICROSOFT_POWERSHELL_SCRIPT", "com.microsoft.powershell-script" },
47114cf0368Sopenharmony_ci    { W3_WOFF, "W3_WOFF", "org.w3.woff" },
47214cf0368Sopenharmony_ci    { SQLITE_DATABASE, "SQLITE_DATABASE", "org.sqlite.database" },
47314cf0368Sopenharmony_ci    { MICROSOFT_SYS, "MICROSOFT_SYS", "com.microsoft.sys" },
47414cf0368Sopenharmony_ci    { MICROSOFT_INF, "MICROSOFT_INF", "com.microsoft.inf" },
47514cf0368Sopenharmony_ci    { MICROSOFT_PDB, "MICROSOFT_PDB", "com.microsoft.pdb" },
47614cf0368Sopenharmony_ci    { MICROSOFT_TLB, "MICROSOFT_TLB", "com.microsoft.tlb" },
47714cf0368Sopenharmony_ci    { MICROSOFT_SCCD, "MICROSOFT_SCCD", "com.microsoft.sccd" },
47814cf0368Sopenharmony_ci    { ADOBE_F4V, "ADOBE_F4V", "com.adobe.f4v" },
47914cf0368Sopenharmony_ci    { MP2T, "MP2T", "general.mp2t" },
48014cf0368Sopenharmony_ci    { YOUTUBE_VIDEO, "YOUTUBE_VIDEO", "com.youtube.video" },
48114cf0368Sopenharmony_ci    { WEBEX_VIDEO, "WEBEX_VIDEO", "com.cisco.webex-video" },
48214cf0368Sopenharmony_ci    { MPEG2, "MPEG2", "general.mpeg-2" },
48314cf0368Sopenharmony_ci    { MPEG1, "MPEG1", "general.mpeg-1" },
48414cf0368Sopenharmony_ci    { REALMEDIA_VBR, "REALMEDIA_VBR", "com.real.realmedia-vbr" },
48514cf0368Sopenharmony_ci    { REAL_REALVIDEO, "REAL_REALVIDEO", "com.real.realvideo" },
48614cf0368Sopenharmony_ci    { DIVX_VIDEO, "DIVX_VIDEO", "general.divx-video" },
48714cf0368Sopenharmony_ci    { CSIRO_ANNODEX, "CSIRO_ANNODEX", "org.csiro.annodex" },
48814cf0368Sopenharmony_ci    { OGV, "OGV", "general.ogv" },
48914cf0368Sopenharmony_ci    { LSF_VIDEO, "LSF_VIDEO", "com.microsoft.lsf-video" },
49014cf0368Sopenharmony_ci    { H264_VIDEO, "H264_VIDEO", "general.h264-video" },
49114cf0368Sopenharmony_ci    { JPEG2000, "JPEG2000", "general.jpeg-2000" },
49214cf0368Sopenharmony_ci    { RAF_RAW_IMAGE, "RAF_RAW_IMAGE", "com.fujifilm.raf-raw-image" },
49314cf0368Sopenharmony_ci    { NRW_RAW_IMAGE, "NRW_RAW_IMAGE", "com.nikon.nrw-raw-image" },
49414cf0368Sopenharmony_ci    { RW2_RAW_IMAGE, "RW2_RAW_IMAGE", "com.panasonic.rw2-raw-image" },
49514cf0368Sopenharmony_ci    { PEF_RAW_IMAGE, "PEF_RAW_IMAGE", "com.pentax.pef-raw-image" },
49614cf0368Sopenharmony_ci    { SRW_RAW_IMAGE, "SRW_RAW_IMAGE", "com.sumsung.srw-raw-image" },
49714cf0368Sopenharmony_ci    { ERF_RAW_IMAGE, "ERF_RAW_IMAGE", "com.epson.erf-raw-image" },
49814cf0368Sopenharmony_ci    { ORF_RAW_IMAGE, "ORF_RAW_IMAGE", "com.olympus.orf-raw-image" },
49914cf0368Sopenharmony_ci    { IEF_IMAGE, "IEF_IMAGE", "general.ief-image" },
50014cf0368Sopenharmony_ci    { ART_IMAGE, "ART_IMAGE", "com.aol.art-image" },
50114cf0368Sopenharmony_ci    { CONTENT_FORM, "CONTENT_FORM", "general.content-form" },
50214cf0368Sopenharmony_ci    { M4P_AUDIO, "M4P_AUDIO", "com.apple.m4p-audio" },
50314cf0368Sopenharmony_ci    { AC3_AUDIO, "AC3_AUDIO", "general.ac3-audio" }
50414cf0368Sopenharmony_ci};
50514cf0368Sopenharmony_ci
50614cf0368Sopenharmony_cinamespace UtdUtils {
50714cf0368Sopenharmony_cibool IsValidUtdId(const std::string &utdId)
50814cf0368Sopenharmony_ci{
50914cf0368Sopenharmony_ci    for (const auto &item : UTD_TYPES) {
51014cf0368Sopenharmony_ci        if (item.UtdId == utdId) {
51114cf0368Sopenharmony_ci            return true;
51214cf0368Sopenharmony_ci        }
51314cf0368Sopenharmony_ci    }
51414cf0368Sopenharmony_ci    return false;
51514cf0368Sopenharmony_ci}
51614cf0368Sopenharmony_ci
51714cf0368Sopenharmony_ciint32_t GetUtdEnumFromUtdId(const std::string &utdId)
51814cf0368Sopenharmony_ci{
51914cf0368Sopenharmony_ci    for (const auto &item : UTD_TYPES) {
52014cf0368Sopenharmony_ci        if (item.UtdId == utdId) {
52114cf0368Sopenharmony_ci            return item.UtdEnum;
52214cf0368Sopenharmony_ci        }
52314cf0368Sopenharmony_ci    }
52414cf0368Sopenharmony_ci    return UD_BUTT;
52514cf0368Sopenharmony_ci}
52614cf0368Sopenharmony_ci
52714cf0368Sopenharmony_cistd::string GetUtdIdFromUtdEnum(int32_t utdType)
52814cf0368Sopenharmony_ci{
52914cf0368Sopenharmony_ci    for (const auto &item : UTD_TYPES) {
53014cf0368Sopenharmony_ci        if (item.UtdEnum == utdType) {
53114cf0368Sopenharmony_ci            return item.UtdId;
53214cf0368Sopenharmony_ci        }
53314cf0368Sopenharmony_ci    }
53414cf0368Sopenharmony_ci    return "";
53514cf0368Sopenharmony_ci}
53614cf0368Sopenharmony_ci
53714cf0368Sopenharmony_cistd::vector<UtdType> GetUtdTypes()
53814cf0368Sopenharmony_ci{
53914cf0368Sopenharmony_ci    std::vector<UtdType> utdTypes(UTD_TYPES, UTD_TYPES + sizeof(UTD_TYPES) / sizeof(UtdType));
54014cf0368Sopenharmony_ci    return utdTypes;
54114cf0368Sopenharmony_ci}
54214cf0368Sopenharmony_ci} // namespace UtdUtils
54314cf0368Sopenharmony_ci
54414cf0368Sopenharmony_cibool UnifiedDataUtils::IsValidType(int32_t value)
54514cf0368Sopenharmony_ci{
54614cf0368Sopenharmony_ci    return value >= ENTITY && value < UD_BUTT;
54714cf0368Sopenharmony_ci}
54814cf0368Sopenharmony_ci
54914cf0368Sopenharmony_cibool UnifiedDataUtils::IsValidIntention(int32_t value)
55014cf0368Sopenharmony_ci{
55114cf0368Sopenharmony_ci    return value > UD_INTENTION_BASE && value < UD_INTENTION_BUTT;
55214cf0368Sopenharmony_ci}
55314cf0368Sopenharmony_ci
55414cf0368Sopenharmony_cistatic constexpr AppShareOption APP_SHARE_OPTIONS[] = {
55514cf0368Sopenharmony_ci    { IN_APP, "IN_APP"},
55614cf0368Sopenharmony_ci    { CROSS_APP, "CROSS_APP"},
55714cf0368Sopenharmony_ci};
55814cf0368Sopenharmony_ci
55914cf0368Sopenharmony_cibool ShareOptionsUtil::IsValid(int32_t shareOption)
56014cf0368Sopenharmony_ci{
56114cf0368Sopenharmony_ci    if (shareOption < 0 || shareOption >= SHARE_OPTIONS_BUTT) {
56214cf0368Sopenharmony_ci        return false;
56314cf0368Sopenharmony_ci    }
56414cf0368Sopenharmony_ci    return true;
56514cf0368Sopenharmony_ci}
56614cf0368Sopenharmony_ci
56714cf0368Sopenharmony_ciint32_t ShareOptionsUtil::GetEnumNum(const std::string &shareOption)
56814cf0368Sopenharmony_ci{
56914cf0368Sopenharmony_ci    for (const auto &item : APP_SHARE_OPTIONS) {
57014cf0368Sopenharmony_ci        if (item.enumStr == shareOption) {
57114cf0368Sopenharmony_ci            return item.enumNum;
57214cf0368Sopenharmony_ci        }
57314cf0368Sopenharmony_ci    }
57414cf0368Sopenharmony_ci    return SHARE_OPTIONS_BUTT;
57514cf0368Sopenharmony_ci}
57614cf0368Sopenharmony_ci
57714cf0368Sopenharmony_cistd::string ShareOptionsUtil::GetEnumStr(int32_t shareOption)
57814cf0368Sopenharmony_ci{
57914cf0368Sopenharmony_ci    for (const auto &item : APP_SHARE_OPTIONS) {
58014cf0368Sopenharmony_ci        if (item.enumNum == shareOption) {
58114cf0368Sopenharmony_ci            return item.enumStr;
58214cf0368Sopenharmony_ci        }
58314cf0368Sopenharmony_ci    }
58414cf0368Sopenharmony_ci    return "";
58514cf0368Sopenharmony_ci}
58614cf0368Sopenharmony_ci
58714cf0368Sopenharmony_cisize_t UnifiedDataUtils::GetVariantSize(UDVariant &variant)
58814cf0368Sopenharmony_ci{
58914cf0368Sopenharmony_ci    auto int32Value = std::get_if<int32_t>(&variant);
59014cf0368Sopenharmony_ci    if (int32Value != nullptr) {
59114cf0368Sopenharmony_ci        return sizeof(std::get<int32_t>(variant));
59214cf0368Sopenharmony_ci    }
59314cf0368Sopenharmony_ci    auto int64Value = std::get_if<int64_t>(&variant);
59414cf0368Sopenharmony_ci    if (int64Value != nullptr) {
59514cf0368Sopenharmony_ci        return sizeof(std::get<int64_t>(variant));
59614cf0368Sopenharmony_ci    }
59714cf0368Sopenharmony_ci    auto boolValue = std::get_if<bool>(&variant);
59814cf0368Sopenharmony_ci    if (boolValue != nullptr) {
59914cf0368Sopenharmony_ci        return sizeof(std::get<bool>(variant));
60014cf0368Sopenharmony_ci    }
60114cf0368Sopenharmony_ci    auto doubleValue = std::get_if<double>(&variant);
60214cf0368Sopenharmony_ci    if (doubleValue != nullptr) {
60314cf0368Sopenharmony_ci        return sizeof(std::get<double>(variant));
60414cf0368Sopenharmony_ci    }
60514cf0368Sopenharmony_ci    auto strValue = std::get_if<std::string>(&variant);
60614cf0368Sopenharmony_ci    if (strValue != nullptr) {
60714cf0368Sopenharmony_ci        return std::get<std::string>(variant).size();
60814cf0368Sopenharmony_ci    }
60914cf0368Sopenharmony_ci    auto vecValue = std::get_if<std::vector<uint8_t>>(&variant);
61014cf0368Sopenharmony_ci    if (vecValue != nullptr) {
61114cf0368Sopenharmony_ci        return std::get<std::vector<uint8_t>>(variant).size();
61214cf0368Sopenharmony_ci    }
61314cf0368Sopenharmony_ci    return 0;
61414cf0368Sopenharmony_ci}
61514cf0368Sopenharmony_ci
61614cf0368Sopenharmony_cisize_t UnifiedDataUtils::GetDetailsSize(UDDetails &details)
61714cf0368Sopenharmony_ci{
61814cf0368Sopenharmony_ci    size_t total = 0;
61914cf0368Sopenharmony_ci    for (std::pair<std::string, UDVariant> prop : details) {
62014cf0368Sopenharmony_ci        total += prop.first.size();
62114cf0368Sopenharmony_ci        total += GetVariantSize(prop.second);
62214cf0368Sopenharmony_ci    }
62314cf0368Sopenharmony_ci    return total;
62414cf0368Sopenharmony_ci}
62514cf0368Sopenharmony_ci
62614cf0368Sopenharmony_cibool UnifiedDataUtils::IsPersist(const Intention &intention)
62714cf0368Sopenharmony_ci{
62814cf0368Sopenharmony_ci    return intention >= UD_INTENTION_DATA_HUB && intention < UD_INTENTION_BUTT;
62914cf0368Sopenharmony_ci}
63014cf0368Sopenharmony_ci
63114cf0368Sopenharmony_cibool UnifiedDataUtils::IsPersist(const std::string &intention)
63214cf0368Sopenharmony_ci{
63314cf0368Sopenharmony_ci    return IsPersist(GetIntentionByString(intention));
63414cf0368Sopenharmony_ci}
63514cf0368Sopenharmony_ci
63614cf0368Sopenharmony_ciIntention UnifiedDataUtils::GetIntentionByString(const std::string &intention)
63714cf0368Sopenharmony_ci{
63814cf0368Sopenharmony_ci    for (const auto &it : UD_INTENTION_MAP) {
63914cf0368Sopenharmony_ci        if (it.second == intention) {
64014cf0368Sopenharmony_ci            return static_cast<Intention>(it.first);
64114cf0368Sopenharmony_ci        }
64214cf0368Sopenharmony_ci    }
64314cf0368Sopenharmony_ci    return UD_INTENTION_BUTT;
64414cf0368Sopenharmony_ci}
64514cf0368Sopenharmony_ci
64614cf0368Sopenharmony_cibool UnifiedDataUtils::IsValidOptions(const std::string &key, std::string &intention)
64714cf0368Sopenharmony_ci{
64814cf0368Sopenharmony_ci    UnifiedKey unifiedKey(key);
64914cf0368Sopenharmony_ci    auto isValidKey = unifiedKey.IsValid();
65014cf0368Sopenharmony_ci    if (key.empty() && IsPersist(intention)) {
65114cf0368Sopenharmony_ci        return true;
65214cf0368Sopenharmony_ci    }
65314cf0368Sopenharmony_ci    if (intention.empty() && isValidKey && IsPersist(unifiedKey.intention)) {
65414cf0368Sopenharmony_ci        return true;
65514cf0368Sopenharmony_ci    }
65614cf0368Sopenharmony_ci    if (isValidKey && unifiedKey.intention == intention && IsPersist(intention)) {
65714cf0368Sopenharmony_ci        intention = "";
65814cf0368Sopenharmony_ci        return true;
65914cf0368Sopenharmony_ci    }
66014cf0368Sopenharmony_ci    return false;
66114cf0368Sopenharmony_ci}
66214cf0368Sopenharmony_ci
66314cf0368Sopenharmony_cistd::shared_ptr<Object> ObjectUtils::ConvertToObject(UDDetails &details)
66414cf0368Sopenharmony_ci{
66514cf0368Sopenharmony_ci    Object object;
66614cf0368Sopenharmony_ci    for (auto [key, value] : details) {
66714cf0368Sopenharmony_ci        ConvertVariant(std::move(value), object.value_[key]);
66814cf0368Sopenharmony_ci    }
66914cf0368Sopenharmony_ci    return std::make_shared<Object>(object);
67014cf0368Sopenharmony_ci}
67114cf0368Sopenharmony_ci
67214cf0368Sopenharmony_ciUDDetails ObjectUtils::ConvertToUDDetails(std::shared_ptr<Object> object)
67314cf0368Sopenharmony_ci{
67414cf0368Sopenharmony_ci    UDDetails details;
67514cf0368Sopenharmony_ci    for (auto [key, value] : object->value_) {
67614cf0368Sopenharmony_ci        if (!ConvertVariant(std::move(value), details[key])) {
67714cf0368Sopenharmony_ci            LOG_ERROR(UnifiedRecord, "object convert to UDDetails failed, object key is %{public}s", key.c_str());
67814cf0368Sopenharmony_ci        }
67914cf0368Sopenharmony_ci    }
68014cf0368Sopenharmony_ci    return details;
68114cf0368Sopenharmony_ci}
68214cf0368Sopenharmony_ci} // namespace UDMF
68314cf0368Sopenharmony_ci} // namespace OHOS