blob: 8601f1f1cc831b74966638b258550376adc42044 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>IdentifiedObjects (Apache SIS 1.4 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-10-05">
<meta name="description" content="declaration: module: org.apache.sis.referencing, package: org.apache.sis.referencing, class: IdentifiedObjects">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.IdentifiedObjects class">
<meta name="keywords" content="getProperties()">
<meta name="keywords" content="getNames()">
<meta name="keywords" content="getName()">
<meta name="keywords" content="getIdentifier()">
<meta name="keywords" content="getIdentifierOrName()">
<meta name="keywords" content="getSimpleNameOrIdentifier()">
<meta name="keywords" content="getDisplayName()">
<meta name="keywords" content="lookupURN()">
<meta name="keywords" content="lookupEPSG()">
<meta name="keywords" content="newFinder()">
<meta name="keywords" content="isHeuristicMatchForName()">
<meta name="keywords" content="toURN()">
<meta name="keywords" content="toString()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">org.apache.sis.referencing</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing</a></div>
<h1 title="Class IdentifiedObjects" class="title">Class IdentifiedObjects</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance"><a href="../../../../../org.apache.sis.util/org/apache/sis/util/Static.html" title="class in org.apache.sis.util">Static</a>
<div class="inheritance">IdentifiedObjects</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">IdentifiedObjects</span>
<span class="extends-implements">extends <a href="../../../../../org.apache.sis.util/org/apache/sis/util/Static.html" title="class in org.apache.sis.util">Static</a></span></div>
<div class="block">Utility methods working on arbitrary implementations of the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link"><code>Identified­Object</code></a> interface.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.4</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="CRS.html" title="class in org.apache.sis.referencing"><code>CRS</code></a></li>
<li><a href="../geometry/Envelopes.html" title="class in org.apache.sis.geometry"><code>Envelopes</code></a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getDisplayName(org.opengis.referencing.IdentifiedObject,java.util.Locale)" class="member-name-link">get­Display­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a name that can be used for display purpose.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getIdentifier(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)" class="member-name-link">get­Identifier</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an identifier for the given object according the given authority.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getIdentifierOrName(org.opengis.referencing.IdentifiedObject)" class="member-name-link">get­Identifier­Or­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the string representation of the first identifier, or the object name if there is no identifier.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getName(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)" class="member-name-link">get­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object name according the given authority.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getNames(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)" class="member-name-link">get­Names</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns every object names and aliases according the given authority.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getProperties(org.opengis.referencing.IdentifiedObject,java.lang.String...)" class="member-name-link">get­Properties</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;excludes)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the information provided in the specified identified object as a map of properties.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getSimpleNameOrIdentifier(org.opengis.referencing.IdentifiedObject)" class="member-name-link">get­Simple­Name­Or­Identifier</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the first name, alias or identifier which is a valid Unicode identifier.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#isHeuristicMatchForName(org.opengis.referencing.IdentifiedObject,java.lang.String)" class="member-name-link">is­Heuristic­Match­For­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns <code>true</code> if either the <a href="AbstractIdentifiedObject.html#getName()">primary name</a> or at least
one <a href="AbstractIdentifiedObject.html#getAlias()">alias</a> matches the given string according heuristic rules.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#lookupEPSG(org.opengis.referencing.IdentifiedObject)" class="member-name-link">lookup­EPSG</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Looks up an EPSG code, such as <code>4326</code>, of the specified object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#lookupURN(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)" class="member-name-link">lookup­URN</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Looks up a URN, such as <code>"urn:ogc:def:crs:EPSG:9.1:4326"</code>, of the specified object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="factory/IdentifiedObjectFinder.html" title="class in org.apache.sis.referencing.factory">Identified­Object­Finder</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#newFinder(java.lang.String)" class="member-name-link">new­Finder</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;authority)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a finder which can be used for looking up unidentified objects.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#toString(org.opengis.metadata.Identifier)" class="member-name-link">to­String</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a>&nbsp;identifier)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a string representation of the given identifier.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#toURN(java.lang.Class,org.opengis.metadata.Identifier)" class="member-name-link">to­URN</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;type,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a>&nbsp;identifier)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the URN of the given identifier, or <code>null</code> if no valid URN can be formed.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getProperties(org.opengis.referencing.IdentifiedObject,java.lang.String...)">
<h3>getProperties</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;</span>&nbsp;<span class="element-name">getProperties</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;excludes)</span></div>
<div class="block">Returns the information provided in the specified identified object as a map of properties.
The returned map contains the following entries for each key not contained in the <code>excludes</code> list
and for which the corresponding method returns a non-null and non-empty value.
<table class="sis">
<caption>Provided properties</caption>
<tr><th>Key</th> <th>Value</th></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#NAME_KEY" title="class or interface in org.opengis.referencing" class="external-link">"name"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getName()" title="class or interface in org.opengis.referencing" class="external-link"><code>IdentifiedObject.getName()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"alias"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getAlias()" title="class or interface in org.opengis.referencing" class="external-link"><code>IdentifiedObject.getAlias()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"identifiers"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getIdentifiers()" title="class or interface in org.opengis.referencing" class="external-link"><code>IdentifiedObject.getIdentifiers()</code></a></td></tr>
<tr><td>"domains"</td>
<td><a href="AbstractIdentifiedObject.html#getDomains()"><code>AbstractIdentifiedObject.getDomains()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"remarks"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getRemarks()" title="class or interface in org.opengis.referencing" class="external-link"><code>IdentifiedObject.getRemarks()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceSystem.html#SCOPE_KEY" title="class or interface in org.opengis.referencing" class="external-link">"scope"</a></td>
<td><a href="DefaultObjectDomain.html#getScope()"><code>DefaultObjectDomain.getScope()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceSystem.html#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing" class="external-link">"domainOfValidity"</a></td>
<td><a href="DefaultObjectDomain.html#getDomainOfValidity()"><code>DefaultObjectDomain.getDomainOfValidity()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#OPERATION_VERSION_KEY" title="class or interface in org.opengis.referencing.operation" class="external-link">"operationVersion"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#getOperationVersion()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>CoordinateOperation.getOperationVersion()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#COORDINATE_OPERATION_ACCURACY_KEY" title="class or interface in org.opengis.referencing.operation" class="external-link">"coordinateOperationAccuracy"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#getCoordinateOperationAccuracy()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>CoordinateOperation.getCoordinateOperationAccuracy()</code></a></td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html#FORMULA_KEY" title="class or interface in org.opengis.referencing.operation" class="external-link">"formula"</a></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html#getFormula()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>OperationMethod.getFormula()</code></a></td></tr>
<tr><td><a href="AbstractIdentifiedObject.html#DEPRECATED_KEY">"deprecated"</a></td>
<td><a href="AbstractIdentifiedObject.html#isDeprecated()"><code>AbstractIdentifiedObject.isDeprecated()</code></a></td></tr>
</table>
<h4 id="implementation-note-heading">Implementation note</h4>
The current implementation does not provide
<a href="cs/DefaultCoordinateSystemAxis.html#MINIMUM_VALUE_KEY">"minimumValue"</a>,
<a href="cs/DefaultCoordinateSystemAxis.html#MAXIMUM_VALUE_KEY">"maximumValue"</a> or
<a href="cs/DefaultCoordinateSystemAxis.html#RANGE_MEANING_KEY">"rangeMeaning"</a> entry for
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystemAxis.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>Coordinate­System­Axis</code></a> instances because the minimum and maximum
values depend on the <a href="cs/DefaultCoordinateSystemAxis.html#getUnit()">units of measurement</a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the identified object to view as a properties map.</dd>
<dd><code>excludes</code> - the keys of properties to exclude from the map.</dd>
<dt>Returns:</dt>
<dd>a view of the identified object properties as an immutable map.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNames(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)">
<h3>getNames</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">getNames</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</span></div>
<div class="block">Returns every object names and aliases according the given authority. This method performs
the same work than <a href="#getName(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>get­Name(Identified­Object, Citation)</code></a>, except that it does not
stop at the first match. This method is useful in the rare cases where the same authority
declares more than one name, and all those names are of interest.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object to get the names and aliases from, or <code>null</code>.</dd>
<dd><code>authority</code> - the authority for the names to return, or <code>null</code> for any authority.</dd>
<dt>Returns:</dt>
<dd>the object's names and aliases, or an empty set if no name or alias matching the
specified authority has been found.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getName(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)">
<h3>getName</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</span></div>
<div class="block">Returns an object name according the given authority.
This method checks first the <a href="AbstractIdentifiedObject.html#getName()">primary name</a>,
then all <a href="AbstractIdentifiedObject.html#getAlias()">aliases</a> in their iteration order.
<ul class="verbose">
<li>If the name or alias implements the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Identifier</code></a> interface,
then this method compares the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html#getAuthority()" title="class or interface in org.opengis.metadata" class="external-link">identifier authority</a> against the specified citation using the
<a href="../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/citation/Citations.html#identifierMatches(org.opengis.metadata.citation.Citation,org.opengis.metadata.citation.Citation)"><code>Citations​.identifier­Matches(Citation, Citation)</code></a> method.
If a matching is found, then this method returns the
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html#getCode()" title="class or interface in org.opengis.metadata" class="external-link">identifier code</a> of that object.</li>
<li>Otherwise, if the alias implements the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name</code></a> interface, then this method
compares the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#scope()" title="class or interface in org.opengis.util" class="external-link">name scope</a> against the specified citation
using the <a href="../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/citation/Citations.html#identifierMatches(org.opengis.metadata.citation.Citation,java.lang.String)"><code>Citations​.identifier­Matches(Citation, String)</code></a> method.
If a matching is found, then this method returns the
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toString()" title="class or interface in org.opengis.util" class="external-link">string representation</a> of that name.</li>
</ul>
Note that alias may implement both the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Identifier</code></a> and <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name</code></a>
interfaces (for example <a href="NamedIdentifier.html" title="class in org.apache.sis.referencing"><code>Named­Identifier</code></a>). In such cases, the identifier view has
precedence.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object to get the name from, or <code>null</code>.</dd>
<dd><code>authority</code> - the authority for the name to return, or <code>null</code> for any authority.</dd>
<dt>Returns:</dt>
<dd>the object's name (either an <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html#getCode()" title="class or interface in org.opengis.metadata" class="external-link">identifier code</a>
or a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toString()" title="class or interface in org.opengis.util" class="external-link">generic name</a>),
or <code>null</code> if no name matching the specified authority has been found.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="AbstractIdentifiedObject.html#getName()"><code>Abstract­Identified­Object​.get­Name()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIdentifier(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)">
<h3>getIdentifier</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a></span>&nbsp;<span class="element-name">getIdentifier</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</span></div>
<div class="block">Returns an identifier for the given object according the given authority.
This method checks all <a href="AbstractIdentifiedObject.html#getIdentifiers()">identifiers</a> in their iteration
order and returns the first identifier with an <a href="ImmutableIdentifier.html#getAuthority()">authority</a> citation
<a href="../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/citation/Citations.html#identifierMatches(org.opengis.metadata.citation.Citation,org.opengis.metadata.citation.Citation)">matching</a> the specified authority.
If the specified authority implements <a href="../../../../../org.apache.sis.metadata/org/apache/sis/xml/IdentifierSpace.html" title="interface in org.apache.sis.xml"><code>Identifier­Space</code></a>, then the authority space name
is also compared to the <a href="ImmutableIdentifier.html#getCodeSpace()">code space</a> of each identifier.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object to get the identifier from, or <code>null</code>.</dd>
<dd><code>authority</code> - the authority for the identifier to return, or <code>null</code> for
the first identifier regardless its authority.</dd>
<dt>Returns:</dt>
<dd>the object's identifier, or <code>null</code> if no identifier matching the specified authority
has been found.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><code>Abstract­Identified­Object​.get­Identifier()</code></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIdentifierOrName(org.opengis.referencing.IdentifiedObject)">
<h3>getIdentifierOrName</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getIdentifierOrName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span></div>
<div class="block">Returns the string representation of the first identifier, or the object name if there is no identifier.
This method searches for the first non-null element in
<code>object.<a href="AbstractIdentifiedObject.html#getIdentifiers()">get­Identifiers()</a></code>. If there is none,
then this method fallback on <code>object.<a href="AbstractIdentifiedObject.html#getName()">get­Name()</a></code>.
The first element found is formatted by <a href="#toString(org.opengis.metadata.Identifier)"><code>to­String(Identifier)</code></a>.
<h4 id="recommended-alternatives-heading">Recommended alternatives</h4>
<ul>
<li>If the code of a specific authority is wanted (typically EPSG), then consider
using <a href="#getIdentifier(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>get­Identifier(Identified­Object, Citation)</code></a> instead.</li>
<li>In many cases, the identifier is not specified. For an exhaustive scan of the EPSG
database looking for a match, use one of the search methods defined below.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the identified object, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>a string representation of the first identifier or name, or <code>null</code> if none.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#getIdentifier(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>get­Identifier(Identified­Object, Citation)</code></a></li>
<li><a href="#lookupURN(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>lookup­URN(Identified­Object, Citation)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSimpleNameOrIdentifier(org.opengis.referencing.IdentifiedObject)">
<h3>getSimpleNameOrIdentifier</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getSimpleNameOrIdentifier</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span></div>
<div class="block">Returns the first name, alias or identifier which is a valid Unicode identifier. This method considers a
name or identifier as valid if <a href="../../../../../org.apache.sis.util/org/apache/sis/util/CharSequences.html#isUnicodeIdentifier(java.lang.CharSequence)"><code>Char­Sequences​.is­Unicode­Identifier(Char­Sequence)</code></a> returns <code>true</code>.
This method performs the search in the following order:
<ul>
<li><code>object.<a href="AbstractIdentifiedObject.html#getName()">get­Name()</a></code></li>
<li><code>object.<a href="AbstractIdentifiedObject.html#getAlias()">get­Alias()</a></code> in iteration order</li>
<li><code>object.<a href="AbstractIdentifiedObject.html#getIdentifiers()">get­Identifiers()</a></code> in iteration order</li>
</ul>
This method is can be used for fetching a more human-friendly identifier than the numerical values
typically returned by <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#getIdentifiers()" title="class or interface in org.opengis.referencing" class="external-link"><code>Identified­Object​.get­Identifiers()</code></a>. However, the returned value is not
guaranteed to be unique.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the identified object, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>the first name, alias or identifier which is a valid Unicode identifier, or <code>null</code> if none.</dd>
<dt>Since:</dt>
<dd>1.0</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="ImmutableIdentifier.html" title="class in org.apache.sis.referencing"><code>Immutable­Identifier</code></a></li>
<li><a href="../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/citation/Citations.html#toCodeSpace(org.opengis.metadata.citation.Citation)"><code>Citations​.to­Code­Space(Citation)</code></a></li>
<li><a href="../../../../../org.apache.sis.util/org/apache/sis/util/CharSequences.html#isUnicodeIdentifier(java.lang.CharSequence)"><code>Char­Sequences​.is­Unicode­Identifier(Char­Sequence)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDisplayName(org.opengis.referencing.IdentifiedObject,java.util.Locale)">
<h3>getDisplayName</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getDisplayName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale)</span></div>
<div class="block">Returns a name that can be used for display purpose. This method checks the non-blank
<a href="AbstractIdentifiedObject.html#getName()">name</a>,
<a href="AbstractIdentifiedObject.html#getAlias()">alias</a> or
<a href="AbstractIdentifiedObject.html#getIdentifiers()">identifier</a>, in that order.
If the primary name seems to be the <a href="../../../../../org.apache.sis.util/org/apache/sis/util/CharSequences.html#isAcronymForWords(java.lang.CharSequence,java.lang.CharSequence)">acronym</a> of an alias,
then the alias is returned. For example if the name is <cite>"WGS 84"</cite> and an alias is
<cite>"World Geodetic System 1984"</cite>, then that later alias is returned.
<p>The name should never be missing, but this method nevertheless
fallbacks on identifiers as a safety against incomplete implementations.
If an identifier implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name</code></a> (as with <a href="NamedIdentifier.html" title="class in org.apache.sis.referencing"><code>Named­Identifier</code></a>),
its <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toInternationalString()" title="class or interface in org.opengis.util" class="external-link"><code>to­International­String()</code></a> method will be used.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the identified object, or <code>null</code>.</dd>
<dd><code>locale</code> - the locale for the name to return, or <code>null</code> for the default.</dd>
<dt>Returns:</dt>
<dd>a name for human reading, or <code>null</code> if none were found.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lookupURN(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)">
<h3>lookupURN</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">lookupURN</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority)</span>
throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div>
<div class="block">Looks up a URN, such as <code>"urn:ogc:def:crs:EPSG:9.1:4326"</code>, of the specified object.
This method searches in all <a href="factory/GeodeticAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">geodetic
authority factories</a> known to SIS for an object <a href="../../../../../org.apache.sis.util/org/apache/sis/util/ComparisonMode.html#APPROXIMATE">approximately equals</a> to the specified object. Then there is a choice:
<ul>
<li>If a single matching object is found in the specified authority factory, then its URN is returned.</li>
<li>Otherwise if the given object is a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CompoundCRS.html" title="class or interface in org.opengis.referencing.crs" class="external-link"><code>Compound­CRS</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/ConcatenatedOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Concatenated­Operation</code></a>
and all components have an URN, then this method returns a combined URN.</li>
<li>Otherwise this method returns <code>null</code>.</li>
</ul>
<p><strong>Note that this method checks the identifier validity.</strong>
If the given object declares explicitly an identifier, then this method will instantiate an object from the
authority factory using that identifier and compare it with the given object. If the comparison fails, then
this method returns <code>null</code>. Consequently, this method may return <code>null</code> even if the given object
declares explicitly its identifier. If the declared identifier is wanted unconditionally,
one can use the following pattern instead:
<div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button>
<pre class="snippet"><code class="language-java">String urn = toURN(object.getClass(), getIdentifier(object, authority));
</code></pre>
</div>
This method can be seen as a converse of <a href="CRS.html#forCode(java.lang.String)"><code>CRS​.for­Code(String)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object (usually a <a href="crs/AbstractCRS.html" title="class in org.apache.sis.referencing.crs">coordinate reference system</a>) whose identifier is to be found, or <code>null</code>.</dd>
<dd><code>authority</code> - the authority for the identifier to return, or <code>null</code> for
the first identifier regardless its authority.</dd>
<dt>Returns:</dt>
<dd>the identifier, or <code>null</code> if none was found without ambiguity or if the given object was null.</dd>
<dt>Throws:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">Factory­Exception</a></code> - if an error occurred during the search.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#newFinder(java.lang.String)"><code>new­Finder(String)</code></a></li>
<li><a href="#toURN(java.lang.Class,org.opengis.metadata.Identifier)"><code>to­URN(Class, Identifier)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lookupEPSG(org.opengis.referencing.IdentifiedObject)">
<h3>lookupEPSG</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></span>&nbsp;<span class="element-name">lookupEPSG</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span>
throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div>
<div class="block">Looks up an EPSG code, such as <code>4326</code>, of the specified object. This method searches in EPSG factories
known to SIS for an object <a href="../../../../../org.apache.sis.util/org/apache/sis/util/ComparisonMode.html#APPROXIMATE">approximately equals</a>
to the specified object. If such an object is found, then its EPSG identifier is returned.
Otherwise or if there is ambiguity, this method returns <code>null</code>.
<p><strong>Note that this method checks the identifier validity.</strong>
If the given object declares explicitly an identifier, then this method will instantiate an object from the
EPSG factory using that identifier and compare it with the given object. If the comparison fails, then this
method returns <code>null</code>. Consequently, this method may return <code>null</code> even if the given object
declares explicitly its identifier. If the declared identifier is wanted unconditionally,
one can use the following pattern instead:
<div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button>
<pre class="snippet"><code class="language-java">String code = toString(getIdentifier(object, Citations.EPSG));
</code></pre>
</div>
This method can be seen as a converse of <a href="CRS.html#forCode(java.lang.String)"><code>CRS​.for­Code(String)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object (usually a <a href="crs/AbstractCRS.html" title="class in org.apache.sis.referencing.crs">coordinate reference system</a>) whose EPSG code is to be found, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>the EPSG code, or <code>null</code> if none was found without ambiguity or if the given object was null.</dd>
<dt>Throws:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">Factory­Exception</a></code> - if an error occurred during the search.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#newFinder(java.lang.String)"><code>new­Finder(String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newFinder(java.lang.String)">
<h3>newFinder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="factory/IdentifiedObjectFinder.html" title="class in org.apache.sis.referencing.factory">IdentifiedObjectFinder</a></span>&nbsp;<span class="element-name">newFinder</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;authority)</span>
throws <span class="exceptions"><a href="factory/NoSuchAuthorityFactoryException.html" title="class in org.apache.sis.referencing.factory">NoSuchAuthorityFactoryException</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div>
<div class="block">Creates a finder which can be used for looking up unidentified objects.
This method is an alternative to <code>lookup(…)</code> methods when more control are desired.
<h4 id="example-1-be-lenient-regarding-axis-order-heading">Example 1: be lenient regarding axis order</h4>
By default, <code>lookup(…)</code> methods require that objects in the dataset have their axes in the
same order than the given object. For relaxing this condition, one can use the following Java code.
This example assumes that at most one object from the dataset will match the given object.
If more than one object may match, then the call to <code>find­Singleton(…)</code> should be replaced
by <code>find(…)</code>.
<div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button>
<pre class="snippet"><code class="language-java">IdentifiedObjectFinder finder = IdentifiedObjects.newFinder(null);
finder.setIgnoringAxes(true);
IdentifiedObject found = finder.findSingleton(object);
</code></pre>
</div>
<h4 id="example-2-extend-the-search-to-deprecated-definitions-heading">Example 2: extend the search to deprecated definitions</h4>
By default, <code>lookup(…)</code> methods exclude deprecated objects from the search.
To search also among deprecated objects, one can use the following Java code:
This example does not use the <code>find­Singleton(…)</code> convenience method on the assumption
that the search may find both deprecated and non-deprecated objects.
<div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button>
<pre class="snippet"><code class="language-java">IdentifiedObjectFinder finder = IdentifiedObjects.newFinder(null);
finder.setSearchDomain(IdentifiedObjectFinder.Domain.ALL_DATASET);
Set&lt;IdentifiedObject&gt; found = finder.find(object);
</code></pre>
</div>
</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - the authority of the objects to search (typically <code>"EPSG"</code> or <code>"OGC"</code>),
or <code>null</code> for searching among the objects created by all authorities.</dd>
<dt>Returns:</dt>
<dd>a finder to use for looking up unidentified objects.</dd>
<dt>Throws:</dt>
<dd><code><a href="factory/NoSuchAuthorityFactoryException.html" title="class in org.apache.sis.referencing.factory">No­Such­Authority­Factory­Exception</a></code> - if the given authority is not found.</dd>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">Factory­Exception</a></code> - if the finder cannot be created for another reason.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#lookupEPSG(org.opengis.referencing.IdentifiedObject)"><code>lookup­EPSG(Identified­Object)</code></a></li>
<li><a href="#lookupURN(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>lookup­URN(Identified­Object, Citation)</code></a></li>
<li><a href="factory/GeodeticAuthorityFactory.html#newIdentifiedObjectFinder()"><code>Geodetic­Authority­Factory​.new­Identified­Object­Finder()</code></a></li>
<li><a href="factory/IdentifiedObjectFinder.html#find(org.opengis.referencing.IdentifiedObject)"><code>Identified­Object­Finder​.find(Identified­Object)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isHeuristicMatchForName(org.opengis.referencing.IdentifiedObject,java.lang.String)">
<h3>isHeuristicMatchForName</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isHeuristicMatchForName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Returns <code>true</code> if either the <a href="AbstractIdentifiedObject.html#getName()">primary name</a> or at least
one <a href="AbstractIdentifiedObject.html#getAlias()">alias</a> matches the given string according heuristic rules.
If the given object is an instance of <a href="AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing"><code>Abstract­Identified­Object</code></a>, then this method delegates to its
<a href="AbstractIdentifiedObject.html#isHeuristicMatchForName(java.lang.String)"><code>is­Heuristic­Match­For­Name(String)</code></a> method
in order to leverage the additional rules implemented by sub-classes.
Otherwise the fallback implementation returns <code>true</code> if the given <code>name</code> is equal,
ignoring aspects documented below, to one of the following names:
<ul>
<li>The <a href="AbstractIdentifiedObject.html#getName()">primary name</a>'s <a href="ImmutableIdentifier.html#getCode()">code</a>
(without <a href="ImmutableIdentifier.html#getCodeSpace()">codespace</a>).</li>
<li>Any <a href="AbstractIdentifiedObject.html#getAlias()">alias</a>'s <a href="NamedIdentifier.html#tip()">tip</a>
(without <a href="NamedIdentifier.html#scope()">scope</a> and namespace).</li>
</ul>
The comparison ignores the following aspects:
<ul>
<li>Lower/upper cases.</li>
<li>Some Latin diacritical signs (e.g. <code>"Réunion"</code> and <code>"Reunion"</code> are considered equal).</li>
<li>All characters that are not <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html#isLetterOrDigit(int)" title="class or interface in java.lang" class="external-link">letters or digits</a>
(e.g. <code>"Mercator (1SP)"</code> and <code>"Mercator_1SP"</code> are considered equal).</li>
<li>Namespaces or scopes, because this method is typically invoked with either the value of another
<code>Identified­Object​.get­Name()​.get­Code()</code> or with the <cite>Well Known Text</cite> (WKT)
projection or parameter name.</li>
</ul>
If the <code>object</code> argument is <code>null</code>, then this method returns <code>false</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object for which to check the name or alias, or <code>null</code>.</dd>
<dd><code>name</code> - the name to compare with the object name or aliases.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the primary name or at least one alias matches the specified <code>name</code>.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="AbstractIdentifiedObject.html#isHeuristicMatchForName(java.lang.String)"><code>Abstract­Identified­Object​.is­Heuristic­Match­For­Name(String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toURN(java.lang.Class,org.opengis.metadata.Identifier)">
<h3>toURN</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toURN</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;type,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a>&nbsp;identifier)</span></div>
<div class="block">Returns the URN of the given identifier, or <code>null</code> if no valid URN can be formed.
This method builds a URN from the <a href="ImmutableIdentifier.html#getCodeSpace()">codespace</a>,
<a href="ImmutableIdentifier.html#getVersion()">version</a> and <a href="ImmutableIdentifier.html#getCode()">code</a>
of the given identifier, completed by the given <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link"><code>Class</code></a> argument.
<p>First, this method starts the URN with <code>"urn:"</code> followed by a namespace determined
from the identifier <a href="ImmutableIdentifier.html#getCodeSpace()">codespace</a> (which is usually
an abbreviation of the identifier <a href="ImmutableIdentifier.html#getAuthority()">authority</a>).
The recognized namespaces are listed in the following table
(note that the list of authorities that can be used in the <code>"urn:ogc:def"</code> namespace
is specified by the <a href="https://www.ogc.org/ogcna">OGC Naming Authority</a>).
If this method cannot determine a namespace for the given identifier, it returns <code>null</code>.</p>
<table class="sis">
<caption>Valid values for the authority component in URN</caption>
<tr><th>Namespace</th> <th>Authority in URN</th> <th>Description</th></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>EPSG</code></td> <td>EPSG dataset</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>OGC</code></td> <td>Open Geospatial Consortium</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>OGC-WFS</code></td> <td>OGC Web Feature Service</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>SI</code></td> <td>Système International d'Unités</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>UCUM</code></td> <td>Unified Code for Units of Measure</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>UNSD</code></td> <td>United Nations Statistics Division</td></tr>
<tr><td><code>urn:ogc:def</code></td> <td><code>USNO</code></td> <td>United States Naval Observatory</td></tr>
</table>
The namespace is followed by the authority, then by a type determined from the given <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link"><code>Class</code></a> argument.
That class is usually determined simply by <code>Identified­Object​.get­Class()</code>.
The given class shall be assignable to one of the following types, otherwise this method returns <code>null</code>:
<table class="sis">
<caption>Valid values for the type component in URN</caption>
<tr><th>Interface</th> <th>Type in URN</th> <th>Description</th></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystemAxis.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>CoordinateSystemAxis</code></a></td> <td><code>axis</code></td> <td>Coordinate system axe definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>CoordinateOperation</code></a></td> <td><code>coordinateOperation</code></td> <td>Coordinate operation definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link"><code>CoordinateReferenceSystem</code></a></td> <td><code>crs</code></td> <td>Coordinate reference system definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>CoordinateSystem</code></a></td> <td><code>cs</code></td> <td>Coordinate system definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Datum</code></a></td> <td><code>datum</code></td> <td>Datum definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Ellipsoid.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Ellipsoid</code></a></td> <td><code>ellipsoid</code></td> <td>Ellipsoid definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/PrimeMeridian.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>PrimeMeridian</code></a></td> <td><code>meridian</code></td> <td>Prime meridian definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>OperationMethod</code></a></td> <td><code>method</code></td> <td>Operation method definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link"><code>ParameterDescriptor</code></a></td> <td><code>parameter</code></td> <td>Operation parameter definition</td></tr>
<tr><td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceSystem.html" title="class or interface in org.opengis.referencing" class="external-link"><code>ReferenceSystem</code></a></td> <td><code>referenceSystem</code></td> <td>Value reference system definition</td></tr>
<tr><td><a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link"><code>Unit</code></a></td> <td><code>uom</code></td> <td>Unit of measure definition</td></tr>
</table>
The type is followed by the <a href="ImmutableIdentifier.html#getVersion()">codespace version</a> if available,
and finally by the <a href="ImmutableIdentifier.html#getCode()">code</a> value.
<p>The above tables may be expanded in any future SIS version.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>type</code> - a type assignable to one of the types listed in above table.</dd>
<dd><code>identifier</code> - the identifier for which to format a URN, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>the URN for the given identifier, or <code>null</code> if the given identifier was null
or cannot be formatted by this method.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#lookupURN(org.opengis.referencing.IdentifiedObject,org.opengis.metadata.citation.Citation)"><code>lookup­URN(Identified­Object, Citation)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString(org.opengis.metadata.Identifier)">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link">Identifier</a>&nbsp;identifier)</span></div>
<div class="block">Returns a string representation of the given identifier.
This method applies the following rules:
<ul>
<li>If the given identifier implements the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name</code></a> interface,
then this method delegates to the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toString()" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name​.to­String()</code></a> method.</li>
<li>Otherwise if the given identifier has a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html#getCodeSpace()" title="class or interface in org.opengis.referencing" class="external-link">code space</a>,
then formats the identifier as "<code>codespace:code</code>".</li>
<li>Otherwise if the given identifier has an <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html#getAuthority()" title="class or interface in org.opengis.metadata" class="external-link">authority</a>,
then formats the identifier as "<code>authority:code</code>".</li>
<li>Otherwise returns the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html#getCode()" title="class or interface in org.opengis.metadata" class="external-link">identifier code</a>.</li>
</ul>
This method is provided because the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toString()" title="class or interface in org.opengis.util" class="external-link"><code>Generic­Name​.to­String()</code></a> behavior is specified by its javadoc,
while <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Identifier</code></a> has no such contract. For example, like most ISO 19115 objects in SIS,
the <a href="../../../../../org.apache.sis.metadata/org/apache/sis/metadata/iso/DefaultIdentifier.html" title="class in org.apache.sis.metadata.iso"><code>Default­Identifier</code></a> implementation is formatted as a tree.
This static method can be used when a "name-like" representation is needed for any implementation.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>identifier</code> - the identifier, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>a string representation of the given identifier, or <code>null</code>.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="../io/wkt/FormattableObject.html#toString()"><code>Formattable­Object​.to­String()</code></a></li>
<li><a href="NamedIdentifier.html#toString()"><code>Named­Identifier​.to­String()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>