blob: d06d889cd82930c955cdcdf1695354aca29e6cbd [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>DefaultRecordType (Apache SIS 1.3 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="description" content="declaration: package: org.apache.sis.util.iso, class: DefaultRecordType">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.util.iso.DefaultRecordType class">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="getTypeName()">
<meta name="keywords" content="getContainer()">
<meta name="keywords" content="getMemberTypes()">
<meta name="keywords" content="getFieldTypes()">
<meta name="keywords" content="getMembers()">
<meta name="keywords" content="locate()">
<meta name="keywords" content="isInstance()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<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">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.0.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="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/DefaultRecordType.html">Use</a></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="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.util.iso</a></div>
<h1 title="Class DefaultRecordType" class="title">Class DefaultRecordType</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance">DefaultRecordType</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/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DefaultRecordType</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">RecordType</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div>
<div class="block">An immutable definition of the type of a <a href="DefaultRecord.html" title="class in org.apache.sis.util.iso">record</a>.
A <code>Record­Type</code> is identified by a <a href="#getTypeName()">type name</a> and contains an
arbitrary number of <a href="#getMembers()">members</a> (fields) as (<var>name</var>, <var>type</var>) pairs.
A <code>Record­Type</code> may therefore contain another <code>Record­Type</code> as a field.
<div class="note"><b>Comparison with Java reflection:</b>
<code>Record­Type</code> instances can be though as equivalent to instances of the Java <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link"><code>Class</code></a> class.
The set of fields in a <code>Record­Type</code> can be though as equivalent to the set of fields in a class.
</div>
<h2>Instantiation</h2>
The easiest way to create <code>Default­Record­Type</code> instances is to use the
<a href="DefaultRecordSchema.html#createRecordType(java.lang.CharSequence,java.util.Map)"><code>Default­Record­Schema​.create­Record­Type(Char­Sequence, Map)</code></a> method.
Example:
<div class="note">
<blockquote><pre>DefaultRecordSchema schema = <font color="green">new</font> <b>DefaultRecordSchema</b>(<font color="green">null</font>, <font color="green">null</font>, <font color="orangered">"MySchema"</font>);
<i><font color="gray">// The same instance can be reused for all records to create in that schema.</font></i>
Map&lt;CharSequence,Class&lt;?&gt;&gt; fields = <font color="green">new</font> LinkedHashMap&lt;&gt;();
fields.<b>put</b>(<font color="orangered">"city"</font>, String .<font color="green">class</font>);
fields.<b>put</b>(<font color="orangered">"latitude"</font>, Double .<font color="green">class</font>);
fields.<b>put</b>(<font color="orangered">"longitude"</font>, Double .<font color="green">class</font>);
fields.<b>put</b>(<font color="orangered">"population"</font>, Integer.<font color="green">class</font>);
RecordType record = schema.<b>createRecordType</b>(<font color="orangered">"MyRecordType"</font>, fields);</pre></blockquote>
</div>
<h2>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/TypeName.html" title="class or interface in org.opengis.util" class="external-link"><code>Type­Name</code></a>, the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html" title="class or interface in org.opengis.util" class="external-link"><code>Record­Schema</code></a>
and all (<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link"><code>Member­Name</code></a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link"><code>Type</code></a>) entries in the map 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>Record­Type</code> state.
<h2>Serialization</h2>
This class is serializable if all elements given to the constructor are also serializable.
Note in particular that <a href="DefaultRecordSchema.html" title="class in org.apache.sis.util.iso"><code>Default­Record­Schema</code></a> is currently <strong>not</strong> serializable,
so users wanting serialization may need to provide their own schema.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="DefaultRecord.html" title="class in org.apache.sis.util.iso"><code>Default­Record</code></a></li>
<li><a href="DefaultRecordSchema.html" title="class in org.apache.sis.util.iso"><code>Default­Record­Schema</code></a></li>
<li><a href="DefaultMemberName.html" title="class in org.apache.sis.util.iso"><code>Default­Member­Name</code></a></li>
<li><a href="../../../../../serialized-form.html#org.apache.sis.util.iso.DefaultRecordType">Serialized Form</a></li>
</ul>
</dd>
<p><font size="-1">Defined in the <code>sis-metadata</code> module</font></p>
</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 two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.opengis.util.RecordType)" class="member-name-link">Default­Record­Type</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a>&nbsp;other)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new record with the same names and fields than the given one.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.opengis.util.TypeName,org.opengis.util.RecordSchema,java.util.Map)" class="member-name-link">Default­Record­Type</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;type­Name,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html" title="class or interface in org.opengis.util" class="external-link">Record­Schema</a>&nbsp;container,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">Member­Name</a>,<wbr>? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;&nbsp;fields)</code></div>
<div class="col-last odd-row-color">
<div class="block">Creates a new record in the given schema.</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><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated 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="DefaultRecordType.html" title="class in org.apache.sis.util.iso">Default­Record­Type</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.RecordType)" class="member-name-link">cast­Or­Copy</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a>&nbsp;other)</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 implementation with the name and fields 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/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;other)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compares the given object with this <code>Record­Type</code> for equality.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html" title="class or interface in org.opengis.util" class="external-link">Record­Schema</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#getContainer()" class="member-name-link">get­Container</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">The <code>Record­Schema</code> interface has been removed in the 2015 revision of ISO 19103 standard.</div>
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">Member­Name</a>,<wbr><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFieldTypes()" class="member-name-link">get­Field­Types</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the dictionary of all (<var>name</var>, <var>type</var>) pairs in this record type.</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/16/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">Member­Name</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="#getMembers()" class="member-name-link">get­Members</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 set of attribute names defined in this <code>Record­Type</code>'s dictionary.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">Member­Name</a>,<wbr><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#getMemberTypes()" class="member-name-link">get­Member­Types</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Renamed <a href="#getFieldTypes()"><code>get­Field­Types()</code></a> for consistency with the 2015 revision of ISO 19103 standard.</div>
</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><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></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTypeName()" class="member-name-link">get­Type­Name</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 name that identifies this record type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hash­Code</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a hash code value for this <code>Record­Type</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isInstance(org.opengis.util.Record)" class="member-name-link">is­Instance</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Record.html" title="class or interface in org.opengis.util" class="external-link">Record</a>&nbsp;record)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Determines if the given record is compatible with this record type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><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></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#locate(org.opengis.util.MemberName)" class="member-name-link">locate</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">Member­Name</a>&nbsp;field­Name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the type associated to the given attribute name, or <code>null</code> if none.</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/16/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-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">to­String</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 a string representation of this object.</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/16/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/16/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/16/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/16/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/16/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/16/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/16/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/16/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/16/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">
<!-- ========= 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.RecordType)">
<h3>DefaultRecordType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DefaultRecordType</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">RecordType</a>&nbsp;other)</span></div>
<div class="block">Creates a new record with the same names and fields than the given one.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>other</code> - the <code>Record­Type</code> to copy.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.util.TypeName,org.opengis.util.RecordSchema,java.util.Map)">
<h3>DefaultRecordType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DefaultRecordType</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;typeName,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html" title="class or interface in org.opengis.util" class="external-link">RecordSchema</a>&nbsp;container,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">MemberName</a>,<wbr>? extends <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;&nbsp;fields)</span></div>
<div class="block">Creates a new record in the given schema.
It is caller responsibility to add the new <code>Record­Type</code> in the container
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html#getDescription()" title="class or interface in org.opengis.util" class="external-link">description</a> map, if desired.
<p>This constructor is provided mostly for developers who want to create <code>Default­Record­Type</code>
instances in their own <code>Record­Schema</code> implementation. Otherwise if the default record schema
implementation is sufficient, the <a href="DefaultRecordSchema.html#createRecordType(java.lang.CharSequence,java.util.Map)"><code>Default­Record­Schema​.create­Record­Type(Char­Sequence, Map)</code></a>
method provides an easier alternative.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>type­Name</code> - the name that identifies this record type.</dd>
<dd><code>container</code> - the schema that contains this record type.</dd>
<dd><code>fields</code> - the name and type of the fields to be included in this record type.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="DefaultRecordSchema.html#createRecordType(java.lang.CharSequence,java.util.Map)"><code>Default­Record­Schema​.create­Record­Type(Char­Sequence, Map)</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.RecordType)">
<h3>castOrCopy</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="DefaultRecordType.html" title="class in org.apache.sis.util.iso">DefaultRecordType</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/RecordType.html" title="class or interface in org.opengis.util" class="external-link">RecordType</a>&nbsp;other)</span></div>
<div class="block">Returns a SIS implementation with the name and fields 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­Record­Type</code>,
then it is returned unchanged.</li>
<li>Otherwise a new <code>Default­Record­Type</code> instance is created using the
<a href="#%3Cinit%3E(org.opengis.util.RecordType)">copy constructor</a> and returned.
Note that this is a shallow copy operation, since the fields contained
in the given object are not recursively copied.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>other</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 fields of the given object
(may be the given object itself), or <code>null</code> if the argument was <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTypeName()">
<h3>getTypeName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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>&nbsp;<span class="element-name">getTypeName</span>()</div>
<div class="block">Returns the name that identifies this record type. If this <code>Record­Type</code> is contained in a
<a href="DefaultRecordSchema.html" title="class in org.apache.sis.util.iso">record schema</a>, then the record type name shall be valid in the
<a href="DefaultNameSpace.html" title="class in org.apache.sis.util.iso">name space</a> of the record schema:
<blockquote><pre>NameSpace namespace = <b>getContainer</b>().<b>getSchemaName</b>().<b>scope</b>()</pre></blockquote>
<div class="note"><b>Comparison with Java reflection:</b>
If we think about this <code>Record­Type</code> as equivalent to a <code>Class</code> instance,
then this method can be think as the equivalent of the Java <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html#getName()" title="class or interface in java.lang" class="external-link"><code>Class​.get­Name()</code></a> method.
</div></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#getTypeName()" title="class or interface in org.opengis.util" class="external-link">get­Type­Name</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html#getTypeName()" title="class or interface in org.opengis.util" class="external-link">get­Type­Name</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a></code></dd>
<dt>Returns:</dt>
<dd>the name that identifies this record type.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getContainer()">
<h3>getContainer</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordSchema.html" title="class or interface in org.opengis.util" class="external-link">RecordSchema</a></span>&nbsp;<span class="element-name">getContainer</span>()</div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">The <code>Record­Schema</code> interface has been removed in the 2015 revision of ISO 19103 standard.</div>
</div>
<div class="block">Returns the schema that contains this record type.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#getContainer()" title="class or interface in org.opengis.util" class="external-link">get­Container</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Returns:</dt>
<dd>the schema that contains this record type.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMemberTypes()">
<h3>getMemberTypes</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">MemberName</a>,<wbr><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;</span>&nbsp;<span class="element-name">getMemberTypes</span>()</div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Renamed <a href="#getFieldTypes()"><code>get­Field­Types()</code></a> for consistency with the 2015 revision of ISO 19103 standard.</div>
</div>
<div class="block">Returns the dictionary of all (<var>name</var>, <var>type</var>) pairs in this record type.
The returned map is unmodifiable.
<div class="note"><b>Comparison with Java reflection:</b>
If we think about this <code>Record­Type</code> as equivalent to a <code>Class</code> instance, then
this method can be though as the related to the Java <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html#getFields()" title="class or interface in java.lang" class="external-link"><code>Class​.get­Fields()</code></a> method.
</div></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#getMemberTypes()" title="class or interface in org.opengis.util" class="external-link">get­Member­Types</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Returns:</dt>
<dd>the dictionary of (<var>name</var>, <var>type</var>) pairs, or an empty map if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFieldTypes()">
<h3>getFieldTypes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">MemberName</a>,<wbr><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Type.html" title="class or interface in org.opengis.util" class="external-link">Type</a>&gt;</span>&nbsp;<span class="element-name">getFieldTypes</span>()</div>
<div class="block">Returns the dictionary of all (<var>name</var>, <var>type</var>) pairs in this record type.
The returned map is unmodifiable.
<div class="note"><b>Comparison with Java reflection:</b>
If we think about this <code>Record­Type</code> as equivalent to a <code>Class</code> instance, then
this method can be though as the related to the Java <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html#getFields()" title="class or interface in java.lang" class="external-link"><code>Class​.get­Fields()</code></a> method.
</div></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the dictionary of (<var>name</var>, <var>type</var>) pairs, or an empty map if none.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMembers()">
<h3>getMembers</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">MemberName</a>&gt;</span>&nbsp;<span class="element-name">getMembers</span>()</div>
<div class="block">Returns the set of attribute names defined in this <code>Record­Type</code>'s dictionary.
This method is functionally equivalent to the following code, but slightly more efficient:
<blockquote><pre><b>getFieldTypes</b>().<b>keySet</b>();</pre></blockquote></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#getMembers()" title="class or interface in org.opengis.util" class="external-link">get­Members</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Returns:</dt>
<dd>the set of field names, or an empty set if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="locate(org.opengis.util.MemberName)">
<h3>locate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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>&nbsp;<span class="element-name">locate</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/MemberName.html" title="class or interface in org.opengis.util" class="external-link">MemberName</a>&nbsp;fieldName)</span></div>
<div class="block">Returns the type associated to the given attribute name, or <code>null</code> if none.
This method is functionally equivalent to (omitting the check for null value):
<blockquote><pre><b>getFieldTypes</b>().<b>get</b>(name).<b>getTypeName</b>();</pre></blockquote>
<div class="note"><b>Comparison with Java reflection:</b>
If we think about this <code>Record­Type</code> as equivalent to a <code>Class</code> instance, then
this method can be though as related to the Java <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html#getField(java.lang.String)" title="class or interface in java.lang" class="external-link"><code>Class​.get­Field(String)</code></a> method.
</div></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#locate(org.opengis.util.MemberName)" title="class or interface in org.opengis.util" class="external-link">locate</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Parameters:</dt>
<dd><code>field­Name</code> - the attribute name for which to get the associated type name.</dd>
<dt>Returns:</dt>
<dd>the associated type name, or <code>null</code> if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isInstance(org.opengis.util.Record)">
<h3>isInstance</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isInstance</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Record.html" title="class or interface in org.opengis.util" class="external-link">Record</a>&nbsp;record)</span></div>
<div class="block">Determines if the given record is compatible with this record type. This method returns <code>true</code>
if the given <code>record</code> argument is non-null and the following condition holds:
<blockquote><pre>Set&lt;MemberName&gt; attributeNames = record.<b>getAttributes</b>().<b>keySet</b>();
<font color="green">boolean</font> isInstance = <b>getMembers</b>().<b>containsAll</b>(attributeNames);</pre></blockquote>
<div class="note"><b>Implementation note:</b>
We do not require that <code>record​.get­Record­Type() == this</code> in order to allow record
"sub-types" to define additional fields, in a way similar to Java sub-classing.</div></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html#isInstance(org.opengis.util.Record)" title="class or interface in org.opengis.util" class="external-link">is­Instance</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/RecordType.html" title="class or interface in org.opengis.util" class="external-link">Record­Type</a></code></dd>
<dt>Parameters:</dt>
<dd><code>record</code> - the record to test for compatibility.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given record is compatible with this <code>Record­Type</code>.</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/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;other)</span></div>
<div class="block">Compares the given object with this <code>Record­Type</code> for equality.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Parameters:</dt>
<dd><code>other</code> - the object to compare with this <code>Record­Type</code>.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if both objects are equal.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value for this <code>Record­Type</code>.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/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>()</div>
<div class="block">Returns a string representation of this object.
The string representation is for debugging purpose and may change in any future SIS version.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this record type.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>