\hypertarget{metadata_8hpp_source}{}\doxysection{metadata.\+hpp}
\label{metadata_8hpp_source}\index{include/proj/metadata.hpp@{include/proj/metadata.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/******************************************************************************}}
\DoxyCodeLine{2 \textcolor{comment}{ *}}
\DoxyCodeLine{3 \textcolor{comment}{ * Project:  PROJ}}
\DoxyCodeLine{4 \textcolor{comment}{ * Purpose:  ISO19111:2019 implementation}}
\DoxyCodeLine{5 \textcolor{comment}{ * Author:   Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{6 \textcolor{comment}{ *}}
\DoxyCodeLine{7 \textcolor{comment}{ ******************************************************************************}}
\DoxyCodeLine{8 \textcolor{comment}{ * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{9 \textcolor{comment}{ *}}
\DoxyCodeLine{10 \textcolor{comment}{ * Permission is hereby granted, free of charge, to any person obtaining a}}
\DoxyCodeLine{11 \textcolor{comment}{ * copy of this software and associated documentation files (the "{}Software"{}),}}
\DoxyCodeLine{12 \textcolor{comment}{ * to deal in the Software without restriction, including without limitation}}
\DoxyCodeLine{13 \textcolor{comment}{ * the rights to use, copy, modify, merge, publish, distribute, sublicense,}}
\DoxyCodeLine{14 \textcolor{comment}{ * and/or sell copies of the Software, and to permit persons to whom the}}
\DoxyCodeLine{15 \textcolor{comment}{ * Software is furnished to do so, subject to the following conditions:}}
\DoxyCodeLine{16 \textcolor{comment}{ *}}
\DoxyCodeLine{17 \textcolor{comment}{ * The above copyright notice and this permission notice shall be included}}
\DoxyCodeLine{18 \textcolor{comment}{ * in all copies or substantial portions of the Software.}}
\DoxyCodeLine{19 \textcolor{comment}{ *}}
\DoxyCodeLine{20 \textcolor{comment}{ * THE SOFTWARE IS PROVIDED "{}AS IS"{}, WITHOUT WARRANTY OF ANY KIND, EXPRESS}}
\DoxyCodeLine{21 \textcolor{comment}{ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,}}
\DoxyCodeLine{22 \textcolor{comment}{ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL}}
\DoxyCodeLine{23 \textcolor{comment}{ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER}}
\DoxyCodeLine{24 \textcolor{comment}{ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING}}
\DoxyCodeLine{25 \textcolor{comment}{ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER}}
\DoxyCodeLine{26 \textcolor{comment}{ * DEALINGS IN THE SOFTWARE.}}
\DoxyCodeLine{27 \textcolor{comment}{ ****************************************************************************/}}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{preprocessor}{\#ifndef METADATA\_HH\_INCLUDED}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#define METADATA\_HH\_INCLUDED}}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{preprocessor}{\#include "{}io.hpp"{}}}
\DoxyCodeLine{37 \textcolor{preprocessor}{\#include "{}util.hpp"{}}}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 NS\_PROJ\_START}
\DoxyCodeLine{40 }
\DoxyCodeLine{41 \textcolor{keyword}{namespace }common \{}
\DoxyCodeLine{42 \textcolor{keyword}{class }UnitOfMeasure;}
\DoxyCodeLine{43 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_aaceb0025e7d31df0fc219145b6a59908}{UnitOfMeasurePtr}} = std::shared\_ptr<UnitOfMeasure>;}
\DoxyCodeLine{44 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{UnitOfMeasureNNPtr}} = util::nn<UnitOfMeasurePtr>;}
\DoxyCodeLine{45 \textcolor{keyword}{class }IdentifiedObject;}
\DoxyCodeLine{46 \} \textcolor{comment}{// namespace common}}
\DoxyCodeLine{47 }
\DoxyCodeLine{52 \textcolor{keyword}{namespace }metadata \{}
\DoxyCodeLine{53 }
\DoxyCodeLine{54 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{55 }
\DoxyCodeLine{64 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}} \{}
\DoxyCodeLine{65   \textcolor{keyword}{public}:}
\DoxyCodeLine{66     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}}(\textcolor{keyword}{const} std::string \&titleIn);}
\DoxyCodeLine{68     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}}();}
\DoxyCodeLine{69     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}} \&other);}
\DoxyCodeLine{70     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{\string~Citation}}();}
\DoxyCodeLine{72 }
\DoxyCodeLine{73     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&title() PROJ\_PURE\_DECL;}
\DoxyCodeLine{74 }
\DoxyCodeLine{75   \textcolor{keyword}{protected}:}
\DoxyCodeLine{76     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}});}
\DoxyCodeLine{77     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Citation}{Citation}} \&other);}
\DoxyCodeLine{78 }
\DoxyCodeLine{79   \textcolor{keyword}{private}:}
\DoxyCodeLine{80     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{81 \};}
\DoxyCodeLine{82 }
\DoxyCodeLine{83 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{84 }
\DoxyCodeLine{85 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent}{GeographicExtent}};}
\DoxyCodeLine{87 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a2af0f341306925be5ae59967276bbeef}{GeographicExtentPtr}} = std::shared\_ptr<GeographicExtent>;}
\DoxyCodeLine{89 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} = util::nn<GeographicExtentPtr>;}
\DoxyCodeLine{90 }
\DoxyCodeLine{97 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent}{GeographicExtent}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}},}
\DoxyCodeLine{98                                       \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} \{}
\DoxyCodeLine{99   \textcolor{keyword}{public}:}
\DoxyCodeLine{101     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent}{\string~GeographicExtent}}() \textcolor{keyword}{override};}
\DoxyCodeLine{103 }
\DoxyCodeLine{104     \textcolor{comment}{// GeoAPI has a getInclusion() method. We assume that it is included for our}}
\DoxyCodeLine{105     \textcolor{comment}{// use}}
\DoxyCodeLine{106 }
\DoxyCodeLine{108     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{109         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{110         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{111             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{112         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override} = 0;}
\DoxyCodeLine{114 }
\DoxyCodeLine{116     PROJ\_DLL \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool}}
\DoxyCodeLine{117     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent_a79e85ffd16aa9523bdf24e6f9099b6be}{contains}}(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{118 }
\DoxyCodeLine{120     PROJ\_DLL \textcolor{keyword}{virtual} \textcolor{keywordtype}{bool}}
\DoxyCodeLine{121     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent_a3a46090c2c63bb2b80879d3796c1d809}{intersects}}(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{122 }
\DoxyCodeLine{124     PROJ\_DLL \textcolor{keyword}{virtual} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a2af0f341306925be5ae59967276bbeef}{GeographicExtentPtr}}}
\DoxyCodeLine{125     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent_a8c123577aed7bfdd43c47bc183e2e60b}{intersection}}(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const} = 0;}
\DoxyCodeLine{126 }
\DoxyCodeLine{127   \textcolor{keyword}{protected}:}
\DoxyCodeLine{128     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent}{GeographicExtent}}();}
\DoxyCodeLine{129 }
\DoxyCodeLine{130   \textcolor{keyword}{private}:}
\DoxyCodeLine{131     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{132 \};}
\DoxyCodeLine{133 }
\DoxyCodeLine{134 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{135 }
\DoxyCodeLine{136 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicBoundingBox}{GeographicBoundingBox}};}
\DoxyCodeLine{138 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a4a58e6c0007f2b5f103d9eef3bc3308a}{GeographicBoundingBoxPtr}} = std::shared\_ptr<GeographicBoundingBox>;}
\DoxyCodeLine{140 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_adb2463f90b3a052b079941a26c20cd19}{GeographicBoundingBoxNNPtr}} = util::nn<GeographicBoundingBoxPtr>;}
\DoxyCodeLine{141 }
\DoxyCodeLine{151 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicBoundingBox}{GeographicBoundingBox}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicExtent}{GeographicExtent}} \{}
\DoxyCodeLine{152   \textcolor{keyword}{public}:}
\DoxyCodeLine{154     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicBoundingBox}{\string~GeographicBoundingBox}}() \textcolor{keyword}{override};}
\DoxyCodeLine{156 }
\DoxyCodeLine{157     PROJ\_DLL \textcolor{keywordtype}{double} westBoundLongitude() PROJ\_PURE\_DECL;}
\DoxyCodeLine{158     PROJ\_DLL \textcolor{keywordtype}{double} southBoundLatitude() PROJ\_PURE\_DECL;}
\DoxyCodeLine{159     PROJ\_DLL \textcolor{keywordtype}{double} eastBoundLongitude() PROJ\_PURE\_DECL;}
\DoxyCodeLine{160     PROJ\_DLL \textcolor{keywordtype}{double} northBoundLatitude() PROJ\_PURE\_DECL;}
\DoxyCodeLine{161 }
\DoxyCodeLine{162     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_adb2463f90b3a052b079941a26c20cd19}{GeographicBoundingBoxNNPtr}}}
\DoxyCodeLine{163     create(\textcolor{keywordtype}{double} west, \textcolor{keywordtype}{double} south, \textcolor{keywordtype}{double} east, \textcolor{keywordtype}{double} north);}
\DoxyCodeLine{164 }
\DoxyCodeLine{166     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{167         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{168         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{169             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{170         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{172 }
\DoxyCodeLine{173     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{174     contains(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const override};}
\DoxyCodeLine{175 }
\DoxyCodeLine{176     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{177     intersects(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const override};}
\DoxyCodeLine{178 }
\DoxyCodeLine{179     PROJ\_INTERNAL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a2af0f341306925be5ae59967276bbeef}{GeographicExtentPtr}}}
\DoxyCodeLine{180     intersection(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a6464c1736a2af44ef917a8888cb6d6fb}{GeographicExtentNNPtr}} \&other) \textcolor{keyword}{const override};}
\DoxyCodeLine{181 }
\DoxyCodeLine{182   \textcolor{keyword}{protected}:}
\DoxyCodeLine{183     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1GeographicBoundingBox}{GeographicBoundingBox}}(\textcolor{keywordtype}{double} west, \textcolor{keywordtype}{double} south, \textcolor{keywordtype}{double} east,}
\DoxyCodeLine{184                                         \textcolor{keywordtype}{double} north);}
\DoxyCodeLine{185     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{186 }
\DoxyCodeLine{187   \textcolor{keyword}{private}:}
\DoxyCodeLine{188     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{189 \};}
\DoxyCodeLine{190 }
\DoxyCodeLine{191 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{192 }
\DoxyCodeLine{193 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1TemporalExtent}{TemporalExtent}};}
\DoxyCodeLine{195 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aecd1e12a1563f016a235b69ac2f530b0}{TemporalExtentPtr}} = std::shared\_ptr<TemporalExtent>;}
\DoxyCodeLine{197 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a304153f91ed6d2063b7a066d453349ab}{TemporalExtentNNPtr}} = util::nn<TemporalExtentPtr>;}
\DoxyCodeLine{198 }
\DoxyCodeLine{205 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1TemporalExtent}{TemporalExtent}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}},}
\DoxyCodeLine{206                                     \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} \{}
\DoxyCodeLine{207   \textcolor{keyword}{public}:}
\DoxyCodeLine{209     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1TemporalExtent}{\string~TemporalExtent}}() \textcolor{keyword}{override};}
\DoxyCodeLine{211 }
\DoxyCodeLine{212     PROJ\_DLL \textcolor{keyword}{const} std::string \&start() PROJ\_PURE\_DECL;}
\DoxyCodeLine{213     PROJ\_DLL \textcolor{keyword}{const} std::string \&stop() PROJ\_PURE\_DECL;}
\DoxyCodeLine{214 }
\DoxyCodeLine{215     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a304153f91ed6d2063b7a066d453349ab}{TemporalExtentNNPtr}} create(\textcolor{keyword}{const} std::string \&start,}
\DoxyCodeLine{216                                                \textcolor{keyword}{const} std::string \&stop);}
\DoxyCodeLine{217 }
\DoxyCodeLine{219     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{220         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{221         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{222             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{223         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{225 }
\DoxyCodeLine{226     PROJ\_DLL \textcolor{keywordtype}{bool} contains(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a304153f91ed6d2063b7a066d453349ab}{TemporalExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{227 }
\DoxyCodeLine{228     PROJ\_DLL \textcolor{keywordtype}{bool} intersects(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a304153f91ed6d2063b7a066d453349ab}{TemporalExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{229 }
\DoxyCodeLine{230   \textcolor{keyword}{protected}:}
\DoxyCodeLine{231     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1TemporalExtent}{TemporalExtent}}(\textcolor{keyword}{const} std::string \&start,}
\DoxyCodeLine{232                                  \textcolor{keyword}{const} std::string \&stop);}
\DoxyCodeLine{233     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{234 }
\DoxyCodeLine{235   \textcolor{keyword}{private}:}
\DoxyCodeLine{236     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{237 \};}
\DoxyCodeLine{238 }
\DoxyCodeLine{239 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{240 }
\DoxyCodeLine{241 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1VerticalExtent}{VerticalExtent}};}
\DoxyCodeLine{243 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a552909ae18763a39ecf5845f7e165307}{VerticalExtentPtr}} = std::shared\_ptr<VerticalExtent>;}
\DoxyCodeLine{245 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aac464d7cdc2ed6ff6e2df8d7defa33bc}{VerticalExtentNNPtr}} = util::nn<VerticalExtentPtr>;}
\DoxyCodeLine{246 }
\DoxyCodeLine{253 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1VerticalExtent}{VerticalExtent}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}},}
\DoxyCodeLine{254                                     \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} \{}
\DoxyCodeLine{255   \textcolor{keyword}{public}:}
\DoxyCodeLine{257     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1VerticalExtent}{\string~VerticalExtent}}() \textcolor{keyword}{override};}
\DoxyCodeLine{259 }
\DoxyCodeLine{260     PROJ\_DLL \textcolor{keywordtype}{double} minimumValue() PROJ\_PURE\_DECL;}
\DoxyCodeLine{261     PROJ\_DLL \textcolor{keywordtype}{double} maximumValue() PROJ\_PURE\_DECL;}
\DoxyCodeLine{262     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{common::UnitOfMeasureNNPtr}} \&unit() PROJ\_PURE\_DECL;}
\DoxyCodeLine{263 }
\DoxyCodeLine{264     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aac464d7cdc2ed6ff6e2df8d7defa33bc}{VerticalExtentNNPtr}}}
\DoxyCodeLine{265     create(\textcolor{keywordtype}{double} minimumValue, \textcolor{keywordtype}{double} maximumValue,}
\DoxyCodeLine{266            \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{common::UnitOfMeasureNNPtr}} \&unitIn);}
\DoxyCodeLine{267 }
\DoxyCodeLine{269     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{270         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{271         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{272             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{273         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{275 }
\DoxyCodeLine{276     PROJ\_DLL \textcolor{keywordtype}{bool} contains(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aac464d7cdc2ed6ff6e2df8d7defa33bc}{VerticalExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{277 }
\DoxyCodeLine{278     PROJ\_DLL \textcolor{keywordtype}{bool} intersects(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aac464d7cdc2ed6ff6e2df8d7defa33bc}{VerticalExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{279 }
\DoxyCodeLine{280   \textcolor{keyword}{protected}:}
\DoxyCodeLine{281     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1VerticalExtent}{VerticalExtent}}(\textcolor{keywordtype}{double} minimumValue, \textcolor{keywordtype}{double} maximumValue,}
\DoxyCodeLine{282                                  \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{common::UnitOfMeasureNNPtr}} \&unitIn);}
\DoxyCodeLine{283     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{284 }
\DoxyCodeLine{285   \textcolor{keyword}{private}:}
\DoxyCodeLine{286     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{287 \};}
\DoxyCodeLine{288 }
\DoxyCodeLine{289 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{290 }
\DoxyCodeLine{291 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}};}
\DoxyCodeLine{293 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{ExtentPtr}} = std::shared\_ptr<Extent>;}
\DoxyCodeLine{295 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} = util::nn<ExtentPtr>;}
\DoxyCodeLine{296 }
\DoxyCodeLine{303 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}}, \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} \{}
\DoxyCodeLine{304   \textcolor{keyword}{public}:}
\DoxyCodeLine{306     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}} \&other);}
\DoxyCodeLine{307     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{\string~Extent}}() \textcolor{keyword}{override};}
\DoxyCodeLine{309 }
\DoxyCodeLine{310     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&description() PROJ\_PURE\_DECL;}
\DoxyCodeLine{311     PROJ\_DLL \textcolor{keyword}{const} std::vector<GeographicExtentNNPtr> \&}
\DoxyCodeLine{312     geographicElements() PROJ\_PURE\_DECL;}
\DoxyCodeLine{313     PROJ\_DLL \textcolor{keyword}{const} std::vector<TemporalExtentNNPtr> \&}
\DoxyCodeLine{314     temporalElements() PROJ\_PURE\_DECL;}
\DoxyCodeLine{315     PROJ\_DLL \textcolor{keyword}{const} std::vector<VerticalExtentNNPtr> \&}
\DoxyCodeLine{316     verticalElements() PROJ\_PURE\_DECL;}
\DoxyCodeLine{317 }
\DoxyCodeLine{318     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}}}
\DoxyCodeLine{319     create(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&descriptionIn,}
\DoxyCodeLine{320            \textcolor{keyword}{const} std::vector<GeographicExtentNNPtr> \&geographicElementsIn,}
\DoxyCodeLine{321            \textcolor{keyword}{const} std::vector<VerticalExtentNNPtr> \&verticalElementsIn,}
\DoxyCodeLine{322            \textcolor{keyword}{const} std::vector<TemporalExtentNNPtr> \&temporalElementsIn);}
\DoxyCodeLine{323 }
\DoxyCodeLine{324     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}}}
\DoxyCodeLine{325     createFromBBOX(\textcolor{keywordtype}{double} west, \textcolor{keywordtype}{double} south, \textcolor{keywordtype}{double} east, \textcolor{keywordtype}{double} north,}
\DoxyCodeLine{326                    \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&descriptionIn =}
\DoxyCodeLine{327                        \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}}());}
\DoxyCodeLine{328 }
\DoxyCodeLine{330     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{331         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{332         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{333             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{334         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{336 }
\DoxyCodeLine{337     PROJ\_DLL \textcolor{keywordtype}{bool} contains(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{338 }
\DoxyCodeLine{339     PROJ\_DLL \textcolor{keywordtype}{bool} intersects(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{340 }
\DoxyCodeLine{341     PROJ\_DLL \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{ExtentPtr}} intersection(\textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} \&other) \textcolor{keyword}{const};}
\DoxyCodeLine{342 }
\DoxyCodeLine{343     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_af1a3c8cdeaecefe3e24f6d6b88b084f3}{ExtentNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent_a2df22953a1ae181c19526b06fc3ae1ae}{WORLD}};}
\DoxyCodeLine{344 }
\DoxyCodeLine{345   \textcolor{keyword}{protected}:}
\DoxyCodeLine{346     PROJ\_INTERNAL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}}();}
\DoxyCodeLine{347     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{348 }
\DoxyCodeLine{349   \textcolor{keyword}{private}:}
\DoxyCodeLine{350     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{351     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Extent}{Extent}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{352 \};}
\DoxyCodeLine{353 }
\DoxyCodeLine{354 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{355 }
\DoxyCodeLine{356 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}};}
\DoxyCodeLine{358 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a76512bb8ca0cd79f0a2470cb679e5444}{IdentifierPtr}} = std::shared\_ptr<Identifier>;}
\DoxyCodeLine{360 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa56f3dbff085fc0fceea708365b3f1be}{IdentifierNNPtr}} = util::nn<IdentifierPtr>;}
\DoxyCodeLine{361 }
\DoxyCodeLine{367 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}},}
\DoxyCodeLine{368                                 \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable}{io::IWKTExportable}},}
\DoxyCodeLine{369                                 \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IJSONExportable}{io::IJSONExportable}} \{}
\DoxyCodeLine{370   \textcolor{keyword}{public}:}
\DoxyCodeLine{372     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}} \&other);}
\DoxyCodeLine{373     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{\string~Identifier}}() \textcolor{keyword}{override};}
\DoxyCodeLine{375 }
\DoxyCodeLine{376     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa56f3dbff085fc0fceea708365b3f1be}{IdentifierNNPtr}}}
\DoxyCodeLine{377     create(\textcolor{keyword}{const} std::string \&codeIn = std::string(),}
\DoxyCodeLine{378            \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util::PropertyMap}} \&properties =}
\DoxyCodeLine{379                \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util::PropertyMap}}()); \textcolor{comment}{// throw(InvalidValueTypeException)}}
\DoxyCodeLine{380 }
\DoxyCodeLine{381     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_ae4b7ba00c3cc174db90ebcdcc083f202}{AUTHORITY\_KEY}};}
\DoxyCodeLine{382     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_adead8852011814afec16a03989ff14f7}{CODE\_KEY}};}
\DoxyCodeLine{383     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_ac565fad2dbc1f480cc31fa8a2ff9aba9}{CODESPACE\_KEY}};}
\DoxyCodeLine{384     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_ab5679044d62e16c447447f1b6000a55e}{VERSION\_KEY}};}
\DoxyCodeLine{385     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_af6dee2b9afdad9fba780a01cdde4f39a}{DESCRIPTION\_KEY}};}
\DoxyCodeLine{386     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_a2ce093bce8812891cdfce84ebed1b283}{URI\_KEY}};}
\DoxyCodeLine{387 }
\DoxyCodeLine{388     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_a3d107064807be557a470f4a019933948}{EPSG}};}
\DoxyCodeLine{389     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier_ac293dc0c24a1a24353ad1880d2c36df3}{OGC}};}
\DoxyCodeLine{390 }
\DoxyCodeLine{391     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<Citation>}} \&authority() PROJ\_PURE\_DECL;}
\DoxyCodeLine{392     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&code() PROJ\_PURE\_DECL;}
\DoxyCodeLine{393     PROJ\_DLL const util::optional<std::\textcolor{keywordtype}{string}> \&codeSpace() PROJ\_PURE\_DECL;}
\DoxyCodeLine{394     PROJ\_DLL const util::optional<std::\textcolor{keywordtype}{string}> \&version() PROJ\_PURE\_DECL;}
\DoxyCodeLine{395     PROJ\_DLL const util::optional<std::\textcolor{keywordtype}{string}> \&description() PROJ\_PURE\_DECL;}
\DoxyCodeLine{396     PROJ\_DLL const util::optional<std::\textcolor{keywordtype}{string}> \&uri() PROJ\_PURE\_DECL;}
\DoxyCodeLine{397 }
\DoxyCodeLine{398     PROJ\_DLL static \textcolor{keywordtype}{bool} isEquivalentName(const \textcolor{keywordtype}{char} *a,}
\DoxyCodeLine{399                                           const \textcolor{keywordtype}{char} *b) noexcept;}
\DoxyCodeLine{400 }
\DoxyCodeLine{401     PROJ\_PRIVATE :}
\DoxyCodeLine{403         PROJ\_INTERNAL static std::\textcolor{keywordtype}{string}}
\DoxyCodeLine{404         canonicalizeName(const std::\textcolor{keywordtype}{string} \&str);}
\DoxyCodeLine{405 }
\DoxyCodeLine{406     PROJ\_INTERNAL \textcolor{keywordtype}{void} \_exportToWKT(io::WKTFormatter *formatter)}
\DoxyCodeLine{407         const override; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{408 }
\DoxyCodeLine{409     PROJ\_INTERNAL \textcolor{keywordtype}{void} \_exportToJSON(io::JSONFormatter *formatter)}
\DoxyCodeLine{410         const override; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{411 }
\DoxyCodeLine{413 }
\DoxyCodeLine{414   protected:}
\DoxyCodeLine{415     PROJ\_INTERNAL explicit \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}}(const std::\textcolor{keywordtype}{string} \&codeIn,}
\DoxyCodeLine{416                                       const util::PropertyMap \&properties);}
\DoxyCodeLine{417     PROJ\_INTERNAL explicit \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}}();}
\DoxyCodeLine{418 }
\DoxyCodeLine{419     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}});}
\DoxyCodeLine{420     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{421     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}} \&operator=(const \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1Identifier}{Identifier}} \&other) = delete;}
\DoxyCodeLine{422 }
\DoxyCodeLine{423     PROJ\_FRIEND(common::IdentifiedObject);}
\DoxyCodeLine{424 }
\DoxyCodeLine{425     PROJ\_INTERNAL static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa56f3dbff085fc0fceea708365b3f1be}{IdentifierNNPtr}}}
\DoxyCodeLine{426     createFromDescription(const std::\textcolor{keywordtype}{string} \&descriptionIn);}
\DoxyCodeLine{427 }
\DoxyCodeLine{428   private:}
\DoxyCodeLine{429     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{430 \};}
\DoxyCodeLine{431 }
\DoxyCodeLine{432 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{433 }
\DoxyCodeLine{434 class \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}};}
\DoxyCodeLine{436 using \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a34d18f8ebb3c1228ea42cf2e55fccf15}{PositionalAccuracyPtr}} = std::shared\_ptr<\mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}}>;}
\DoxyCodeLine{438 using \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{PositionalAccuracyNNPtr}} = util::nn<\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a34d18f8ebb3c1228ea42cf2e55fccf15}{PositionalAccuracyPtr}}>;}
\DoxyCodeLine{439 }
\DoxyCodeLine{446 class PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}} : public util::BaseObject \{}
\DoxyCodeLine{447   \textcolor{keyword}{public}:}
\DoxyCodeLine{449     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{\string~PositionalAccuracy}}() \textcolor{keyword}{override};}
\DoxyCodeLine{451 }
\DoxyCodeLine{452     PROJ\_DLL \textcolor{keyword}{const} std::string \&value() PROJ\_PURE\_DECL;}
\DoxyCodeLine{453 }
\DoxyCodeLine{454     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{PositionalAccuracyNNPtr}} create(\textcolor{keyword}{const} std::string \&valueIn);}
\DoxyCodeLine{455 }
\DoxyCodeLine{456   \textcolor{keyword}{protected}:}
\DoxyCodeLine{457     PROJ\_INTERNAL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}}(\textcolor{keyword}{const} std::string \&valueIn);}
\DoxyCodeLine{458     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{459 }
\DoxyCodeLine{460   \textcolor{keyword}{private}:}
\DoxyCodeLine{461     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{462     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{463     \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1metadata_1_1PositionalAccuracy}{PositionalAccuracy}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{464 \};}
\DoxyCodeLine{465 }
\DoxyCodeLine{466 \} \textcolor{comment}{// namespace metadata}}
\DoxyCodeLine{467 }
\DoxyCodeLine{468 NS\_PROJ\_END}
\DoxyCodeLine{469 }
\DoxyCodeLine{470 \textcolor{preprocessor}{\#endif }\textcolor{comment}{//  METADATA\_HH\_INCLUDED}}

\end{DoxyCode}
