blob: 2f6cfd309fb0cf5aec692a6870684ddfe9218af2 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>DefaultTypeName (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.metadata, package: org.apache.sis.util.iso, class: DefaultTypeName">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.util.iso.DefaultTypeName class">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="toJavaType()">
<meta name="keywords" content="equals()">
<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><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></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><a href="#constructor-summary">Constr</a>&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><a href="#constructor-detail">Constr</a>&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.metadata</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.util.iso</a></div>
<h1 title="Class DefaultTypeName" class="title">Class DefaultTypeName</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="AbstractName.html" title="class in org.apache.sis.util.iso">AbstractName</a>
<div class="inheritance"><a href="DefaultLocalName.html" title="class in org.apache.sis.util.iso">DefaultLocalName</a>
<div class="inheritance">DefaultTypeName</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<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">Generic­Name</a>&gt;</code>, <code><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">Generic­Name</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html" title="class or interface in org.opengis.util" class="external-link">Local­Name</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/TypeName.html" title="class or interface in org.opengis.util" class="external-link">Type­Name</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DefaultTypeName</span>
<span class="extends-implements">extends <a href="DefaultLocalName.html" title="class in org.apache.sis.util.iso">DefaultLocalName</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/TypeName.html" title="class or interface in org.opengis.util" class="external-link">TypeName</a></span></div>
<div class="block">The name of an attribute type associated to a <a href="DefaultMemberName.html" title="class in org.apache.sis.util.iso">member name</a>.
<code>Default­Type­Name</code> can be instantiated by any of the following methods:
<ul>
<li><a href="DefaultNameFactory.html#createTypeName(org.opengis.util.NameSpace,java.lang.CharSequence)"><code>Default­Name­Factory​.create­Type­Name(Name­Space, Char­Sequence)</code></a></li>
<li><a href="DefaultNameFactory.html#toTypeName(java.lang.Class)"><code>Default­Name­Factory​.to­Type­Name(Class)</code></a></li>
</ul>
<h2 id="mapping-java-classes-to-type-names-heading">Mapping Java classes to type names</h2>
A bidirectional mapping is defined between <code>Type­Name</code> and Java <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>.
When an UML identifier from an OGC standard exists for a given <code>Class</code>,
Apache SIS uses that identifier prefixed by the <code>"OGC"</code> namespace.
Note that this is <strong>not</strong> a standard practice.
A more standard practice would be to use the
<a href="https://schemas.opengis.net/definitions/1.1.0/dataType.xml">data type URN standard values</a>
(third column in the table below), but the set of data type identifiers defined by OGC is currently
small and is sometimes not an exact match.
<table class="sis">
<caption>Mapping from Java classes to type names (non-exhaustive list)</caption>
<tr>
<th>Java class</th>
<th>Scoped type name</th>
<th class="sep">Data type URN standard values</th>
<th>URL in Web Services</th>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>InternationalString</code></a></td>
<td><code>OGC:FreeText</code></td>
<td class="sep"></td>
<td></td>
</tr><tr>
<td><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"><code>String</code></a></td>
<td><code>OGC:CharacterString</code></td>
<td class="sep"><code>urn:ogc:def:dataType:OGC::string</code></td>
<td><code>http://www.w3.org/2001/XMLSchema#string</code></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URI.html" title="class or interface in java.net" class="external-link"><code>URI</code></a></td>
<td><code>OGC:URI</code></td>
<td class="sep"><code>urn:ogc:def:dataType:OGC::anyURI</code></td>
<td></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link"><code>Boolean</code></a></td>
<td><code>OGC:Boolean</code></td>
<td class="sep"><code>urn:ogc:def:dataType:OGC::boolean</code></td>
<td><code>http://www.w3.org/2001/XMLSchema#boolean</code></td>
</tr><tr>
<td><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"><code>Integer</code></a></td>
<td><code>OGC:Integer</code></td>
<td class="sep"><code>urn:ogc:def:dataType:OGC::nonNegativeInteger</code></td>
<td><code>http://www.w3.org/2001/XMLSchema#integer</code></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html" title="class or interface in java.math" class="external-link"><code>BigDecimal</code></a></td>
<td><code>OGC:Decimal</code></td>
<td class="sep"></td>
<td><code>http://www.w3.org/2001/XMLSchema#decimal</code></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link"><code>Double</code></a></td>
<td><code>OGC:Real</code></td>
<td class="sep"></td>
<td><code>http://www.w3.org/2001/XMLSchema#double</code></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html" title="class or interface in java.lang" class="external-link"><code>Float</code></a></td>
<td><code>OGC:Real</code></td>
<td class="sep"></td>
<td><code>http://www.w3.org/2001/XMLSchema#float</code></td>
</tr><tr>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link"><code>Date</code></a></td>
<td><code>OGC:DateTime</code></td>
<td class="sep"></td>
<td></td>
</tr><tr>
<td><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"><code>Locale</code></a></td>
<td><code>OGC:PT_Locale</code></td>
<td class="sep"></td>
<td></td>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Metadata.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Metadata</code></a></td>
<td><code>OGC:MD_Metadata</code></td>
<td class="sep"></td>
<td></td>
</tr><tr>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/Geometry.html" title="class or interface in org.opengis.geometry" class="external-link"><code>Geometry</code></a></td>
<td><code>OGC:Geometry</code></td>
<td class="sep"></td>
<td></td>
</tr><tr>
<td>Unknown Java class</td>
<td><code>class:</code>&lt;the class name&gt;</td>
<td class="sep"></td>
<td></td>
</tr>
</table>
The mapping defined by Apache SIS may change in any future version depending on standardization progress.
To protect against such changes, users are encouraged to rely on methods or constructors like
<a href="#toJavaType()"><code>to­Java­Type()</code></a> or <a href="DefaultNameFactory.html#toTypeName(java.lang.Class)"><code>Default­Name­Factory​.to­Type­Name(Class)</code></a> instead of parsing the name.
<h2 id="immutability-and-thread-safety-heading">Immutability and thread safety</h2>
This class is immutable and thus inherently thread-safe if the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html" title="class or interface in org.opengis.util" class="external-link"><code>Name­Space</code></a> and <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a>
arguments given to the constructor are also immutable. Subclasses shall make sure that any overridden methods
remain safe to call from multiple threads and do not change any public <code>Type­Name</code> state.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="DefaultMemberName.html" title="class in org.apache.sis.util.iso"><code>Default­Member­Name</code></a></li>
<li><a href="DefaultNameFactory.html" title="class in org.apache.sis.util.iso"><code>Default­Name­Factory</code></a></li>
<li><a href="../../../../../../serialized-form.html#org.apache.sis.util.iso.DefaultTypeName">Serialized Form</a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.opengis.util.NameSpace,java.lang.CharSequence)" class="member-name-link">Default­Type­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html" title="class or interface in org.opengis.util" class="external-link">Name­Space</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;name)</code></div>
<div class="col-last even-row-color">
<div class="block">Constructs a type name from the given character sequence and infers automatically a Java type.</div>
</div>
<div class="col-first odd-row-color"><code>protected </code></div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.opengis.util.NameSpace,java.lang.CharSequence,java.lang.reflect.Type)" class="member-name-link">Default­Type­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html" title="class or interface in org.opengis.util" class="external-link">Name­Space</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Type.html" title="class or interface in java.lang.reflect" class="external-link">Type</a>&nbsp;java­Type)</code></div>
<div class="col-last odd-row-color">
<div class="block">Constructs a type name from the given character sequence and explicit Java type.</div>
</div>
</div>
</section>
</li>
<!-- ========== 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-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance 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="DefaultTypeName.html" title="class in org.apache.sis.util.iso">Default­Type­Name</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#castOrCopy(org.opengis.util.TypeName)" class="member-name-link">cast­Or­Copy</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/TypeName.html" title="class or interface in org.opengis.util" class="external-link">Type­Name</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 a SIS type name implementation with the values of the given arbitrary implementation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<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>&nbsp;object)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compares this type name with the specified object for equality.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Type.html" title="class or interface in java.lang.reflect" class="external-link">Type</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toJavaType()" class="member-name-link">to­Java­Type</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the Java type represented by this name.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-DefaultLocalName">Methods inherited from class&nbsp;<a href="DefaultLocalName.html" title="class in org.apache.sis.util.iso">DefaultLocalName</a></h3>
<code><a href="DefaultLocalName.html#castOrCopy(org.opengis.util.LocalName)">cast­Or­Copy</a>, <a href="DefaultLocalName.html#compareTo(org.opengis.util.GenericName)">compare­To</a>, <a href="DefaultLocalName.html#depth()">depth</a>, <a href="DefaultLocalName.html#getParsedNames()">get­Parsed­Names</a>, <a href="DefaultLocalName.html#head()">head</a>, <a href="DefaultLocalName.html#scope()">scope</a>, <a href="DefaultLocalName.html#tip()">tip</a>, <a href="DefaultLocalName.html#toInternationalString()">to­International­String</a>, <a href="DefaultLocalName.html#toString()">to­String</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AbstractName">Methods inherited from class&nbsp;<a href="AbstractName.html" title="class in org.apache.sis.util.iso">AbstractName</a></h3>
<code><a href="AbstractName.html#castOrCopy(org.opengis.util.GenericName)">cast­Or­Copy</a>, <a href="AbstractName.html#hashCode()">hash­Code</a>, <a href="AbstractName.html#push(org.opengis.util.GenericName)">push</a>, <a href="AbstractName.html#toFullyQualifiedName()">to­Fully­Qualified­Name</a></code></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#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#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#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>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Comparable">Methods inherited from interface&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html#compareTo(T)" title="class or interface in java.lang" class="external-link">compare­To</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-GenericName">Methods inherited from interface&nbsp;<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">GenericName</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#push(org.opengis.util.GenericName)" title="class or interface in org.opengis.util" class="external-link">push</a>, <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">scope</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html#toFullyQualifiedName()" title="class or interface in org.opengis.util" class="external-link">to­Fully­Qualified­Name</a>, <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">to­International­String</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-LocalName">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html" title="class or interface in org.opengis.util" class="external-link">LocalName</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html#depth()" title="class or interface in org.opengis.util" class="external-link">depth</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html#getParsedNames()" title="class or interface in org.opengis.util" class="external-link">get­Parsed­Names</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html#head()" title="class or interface in org.opengis.util" class="external-link">head</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html#tip()" title="class or interface in org.opengis.util" class="external-link">tip</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html#toString()" title="class or interface in org.opengis.util" class="external-link">to­String</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.util.NameSpace,java.lang.CharSequence)">
<h3>DefaultTypeName</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">DefaultTypeName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html" title="class or interface in org.opengis.util" class="external-link">NameSpace</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;name)</span>
throws <span class="exceptions"><a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnknownNameException.html" title="class in org.apache.sis.util">UnknownNameException</a></span></div>
<div class="block">Constructs a type name from the given character sequence and infers automatically a Java type.
The scope and name arguments are given unchanged to the
<a href="DefaultLocalName.html#%3Cinit%3E(org.opengis.util.NameSpace,java.lang.CharSequence)">super-class constructor</a>.
Then the Java type is inferred in a way that depends on the specified scope:
<ul>
<li>If the scope is <code>"OGC"</code>, then:
<ul>
<li>If the name is <code>"Character­String"</code>, <code>"Integer"</code>, <code>"Real"</code> or other recognized names
(see <a href="DefaultTypeName.html" title="class in org.apache.sis.util.iso">class javadoc</a>),
then the corresponding Java class is associated to this type name.</li>
<li>Otherwise <a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnknownNameException.html" title="class in org.apache.sis.util"><code>Unknown­Name­Exception</code></a> is thrown.</li>
</ul>
</li>
<li>Else if the scope is <code>"class"</code>, then:
<ul>
<li>If the name is accepted by <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html#forName(java.lang.String)" title="class or interface in java.lang" class="external-link"><code>Class​.for­Name(String)</code></a>,
then that Java class is associated to this type name.</li>
<li>Otherwise <a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnknownNameException.html" title="class in org.apache.sis.util"><code>Unknown­Name­Exception</code></a> is thrown.</li>
</ul>
</li>
<li>Else if the scope <a href="DefaultNameSpace.html#isGlobal()">is global</a>, then:
<ul>
<li>If the name is one of the names recognized in <code>"OGC"</code> scope (see above),
then the corresponding class is associated to this type name.</li>
<li>Otherwise no Java class is associated to this type name.
No exception is thrown because names in the global namespace could be anything;
this constructor cannot know if the given name was wrong.</li>
</ul>
</li>
<li>Otherwise no Java class is associated to this type name,
because this method cannot check the validity of names in other namespaces.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scope</code> - the scope of this name, or <code>null</code> for a global scope.</dd>
<dd><code>name</code> - the local name (never <code>null</code>).</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnknownNameException.html" title="class in org.apache.sis.util">Unknown­Name­Exception</a></code> - if a mapping from this name to a Java class was expected to exist
(because the specified scope is "OGC" or "class") but the associated Java class cannot be found.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="DefaultNameFactory.html#createTypeName(org.opengis.util.NameSpace,java.lang.CharSequence)"><code>Default­Name­Factory​.create­Type­Name(Name­Space, Char­Sequence)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.util.NameSpace,java.lang.CharSequence,java.lang.reflect.Type)">
<h3>DefaultTypeName</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">DefaultTypeName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameSpace.html" title="class or interface in org.opengis.util" class="external-link">NameSpace</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Type.html" title="class or interface in java.lang.reflect" class="external-link">Type</a>&nbsp;javaType)</span></div>
<div class="block">Constructs a type name from the given character sequence and explicit Java type.
The scope and name arguments are given unchanged to the
<a href="DefaultLocalName.html#%3Cinit%3E(org.opengis.util.NameSpace,java.lang.CharSequence)">super-class constructor</a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scope</code> - the scope of this name, or <code>null</code> for a global scope.</dd>
<dd><code>name</code> - the local name (never <code>null</code>).</dd>
<dd><code>java­Type</code> - the value type to be returned by <a href="#toJavaType()"><code>to­Java­Type()</code></a>, or <code>null</code> if none.</dd>
<dt>Since:</dt>
<dd>1.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="DefaultNameFactory.html#createTypeName(org.opengis.util.NameSpace,java.lang.CharSequence,java.lang.reflect.Type)"><code>Default­Name­Factory​.create­Type­Name(Name­Space, Char­Sequence, Type)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="castOrCopy(org.opengis.util.TypeName)">
<h3>castOrCopy</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="DefaultTypeName.html" title="class in org.apache.sis.util.iso">DefaultTypeName</a></span>&nbsp;<span class="element-name">castOrCopy</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/TypeName.html" title="class or interface in org.opengis.util" class="external-link">TypeName</a>&nbsp;object)</span></div>
<div class="block">Returns a SIS type name implementation with the values of the given arbitrary implementation.
This method performs the first applicable action in the following choices:
<ul>
<li>If the given object is <code>null</code>, then this method returns <code>null</code>.</li>
<li>Otherwise if the given object is already an instance of <code>Default­Type­Name</code>,
then it is returned unchanged.</li>
<li>Otherwise a new <code>Default­Type­Name</code> instance is created
with the same values than the given name.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object to get as a SIS implementation, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>a SIS implementation containing the values of the given object (may be the
given object itself), or <code>null</code> if the argument was null.</dd>
<dt>Since:</dt>
<dd>0.5</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toJavaType()">
<h3>toJavaType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Type.html" title="class or interface in java.lang.reflect" class="external-link">Type</a>&gt;</span>&nbsp;<span class="element-name">toJavaType</span>()</div>
<div class="block">Returns the Java type represented by this name.
This is the type either specified explicitly at construction time or inferred from the type name.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the Java type (usually a <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>) for this type name.</dd>
<dt>Since:</dt>
<dd>1.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="Names.html#toClass(org.opengis.util.TypeName)"><code>Names​.to­Class(Type­Name)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<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>&nbsp;object)</span></div>
<div class="block">Compares this type name with the specified object for equality.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="DefaultLocalName.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="DefaultLocalName.html" title="class in org.apache.sis.util.iso">Default­Local­Name</a></code></dd>
<dt>Parameters:</dt>
<dd><code>object</code> - the object to compare with this type for equality.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given object is equal to this name.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>