| 705 | /************************************************************************/ |
| 706 | |
| 707 | static void GDALVectorInfoReportMetadata(CPLString &osRet, CPLJSONObject &oRoot, |
| 708 | const GDALVectorInfoOptions *psOptions, |
| 709 | GDALMajorObject *poMajorObject, |
| 710 | bool bListMDD, bool bShowMetadata, |
| 711 | CSLConstList papszExtraMDDomains) |
| 712 | { |
| 713 | const char *pszIndent = ""; |
| 714 | auto hObject = GDALMajorObject::ToHandle(poMajorObject); |
| 715 | |
| 716 | const bool bJson = psOptions->eFormat == FORMAT_JSON; |
| 717 | /* -------------------------------------------------------------------- */ |
| 718 | /* Report list of Metadata domains */ |
| 719 | /* -------------------------------------------------------------------- */ |
| 720 | if (bListMDD) |
| 721 | { |
| 722 | const CPLStringList aosMDDList(GDALGetMetadataDomainList(hObject)); |
| 723 | |
| 724 | CPLJSONArray metadataDomains; |
| 725 | |
| 726 | if (!aosMDDList.empty() && !bJson) |
| 727 | Concat(osRet, psOptions->bStdoutOutput, "%sMetadata domains:\n", |
| 728 | pszIndent); |
| 729 | for (const char *pszDomain : aosMDDList) |
| 730 | { |
| 731 | if (EQUAL(pszDomain, "")) |
| 732 | { |
| 733 | if (bJson) |
| 734 | metadataDomains.Add(""); |
| 735 | else |
| 736 | Concat(osRet, psOptions->bStdoutOutput, "%s (default)\n", |
| 737 | pszIndent); |
| 738 | } |
| 739 | else |
| 740 | { |
| 741 | if (bJson) |
| 742 | metadataDomains.Add(pszDomain); |
| 743 | else |
| 744 | Concat(osRet, psOptions->bStdoutOutput, "%s %s\n", |
| 745 | pszIndent, pszDomain); |
| 746 | } |
| 747 | } |
| 748 | |
| 749 | if (bJson) |
| 750 | oRoot.Add("metadataDomains", metadataDomains); |
| 751 | } |
| 752 | |
| 753 | if (!bShowMetadata) |
| 754 | return; |
| 755 | |
| 756 | /* -------------------------------------------------------------------- */ |
| 757 | /* Report default Metadata domain. */ |
| 758 | /* -------------------------------------------------------------------- */ |
| 759 | CPLJSONObject oMetadata; |
| 760 | oRoot.Add("metadata", oMetadata); |
| 761 | GDALVectorInfoPrintMetadata(osRet, oMetadata, psOptions, hObject, nullptr, |
| 762 | "Metadata", pszIndent); |
| 763 | |
| 764 | /* -------------------------------------------------------------------- */ |
no test coverage detected