blob: 98a33c93d3fe431ceab9eb02cdba409d00244f9b [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>MetadataStandard (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.metadata.MetadataStandard class">
<meta name="keywords" content="ISO_19111">
<meta name="keywords" content="ISO_19115">
<meta name="keywords" content="ISO_19123">
<meta name="keywords" content="forClass()">
<meta name="keywords" content="getCitation()">
<meta name="keywords" content="isMetadata()">
<meta name="keywords" content="getInterface()">
<meta name="keywords" content="getImplementation()">
<meta name="keywords" content="asNameMap()">
<meta name="keywords" content="asTypeMap()">
<meta name="keywords" content="asInformationMap()">
<meta name="keywords" content="asIndexMap()">
<meta name="keywords" content="asValueMap()">
<meta name="keywords" content="asTreeTable()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<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="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MetadataStandard (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MetadataStandard.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.metadata</a></div>
<h2 title="Class MetadataStandard" class="title">Class MetadataStandard</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li>MetadataStandard</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">MetadataStandard</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">Enumeration of some metadata standards. A standard is defined by a set of Java interfaces
in a specific package or sub-packages. For example the <a href="#ISO_19115">ISO 19115</a>
standard is defined by <a href="http://www.geoapi.org">GeoAPI</a> interfaces in the
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.metadata</code></a> package and sub-packages.
<p>This class provides some methods operating on metadata instances through
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/package-summary.html?is-external=true" class="externalLink">Java reflection</a>. The following rules are assumed:</p>
<ul>
<li>Metadata properties are defined by the collection of following getter methods found
<strong>in the interface</strong>, ignoring implementation methods:
<ul>
<li><code>get*()</code> methods with arbitrary return type;</li>
<li>or <code>is*()</code> methods with boolean return type.</li>
</ul></li>
<li>All properties are <cite>readable</cite>.</li>
<li>A property is also <cite>writable</cite> if a <code>set*(…)</code> method is defined
<strong>in the implementation class</strong> for the corresponding getter method.
The setter method doesn't need to be defined in the interface.</li>
</ul>
An instance of <code>Metadata­Standard</code> is associated to every <a href="AbstractMetadata.html" title="class in org.apache.sis.metadata"><code>Abstract­Metadata</code></a> objects.
The <code>Abstract­Metadata</code> base class usually form the basis of ISO 19115 implementations but
can also be used for other standards.
<div class="section">Defining new <code>Metadata­Standard</code> instances</div>
Users should use the pre-defined constants when applicable.
However if new instances need to be defined, then there is a choice:
<ul>
<li>For <em>read-only</em> metadata, <code>Metadata­Standard</code> can be instantiated directly.
Only getter methods will be used and all operations that modify the metadata properties
will throw an <a href="UnmodifiableMetadataException.html" title="class in org.apache.sis.metadata"><code>Unmodifiable­Metadata­Exception</code></a>.</li>
<li>For <em>read/write</em> metadata, the <a href="#getImplementation(java.lang.Class)"><code>get­Implementation(Class)</code></a>
method must be overridden in a <code>Metadata­Standard</code> subclass.</li>
</ul>
<div class="section">Thread safety</div>
The same <code>Metadata­Standard</code> instance can be safely used by many threads without synchronization
on the part of the caller. Subclasses shall make sure that any overridden methods remain safe to call
from multiple threads, because the same <code>Metadata­Standard</code> instances are typically referenced
by a large amount of <a href="ModifiableMetadata.html" title="class in org.apache.sis.metadata"><code>Modifiable­Metadata</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html" title="class in org.apache.sis.metadata"><code>Abstract­Metadata</code></a>,
<a href="../../../../serialized-form.html#org.apache.sis.metadata.MetadataStandard">Serialized Form</a></dd>
<p><font size="-1">Defined in the <code>sis-metadata</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ISO_19111">ISO_19111</a></span></code></th>
<td class="colLast">
<div class="block">An instance working on ISO 19111 standard as defined by GeoAPI interfaces
in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.referencing</code></a> package and sub-packages.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ISO_19115">ISO_19115</a></span></code></th>
<td class="colLast">
<div class="block">An instance working on ISO 19115 standard as defined by GeoAPI interfaces
in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.metadata</code></a> package and sub-packages.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ISO_19123">ISO_19123</a></span></code></th>
<td class="colLast">
<div class="block">An instance working on ISO 19123 standard as defined by GeoAPI interfaces
in the <code>org​.opengis​.coverage</code> package and sub-packages.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.metadata.citation.Citation,java.lang.Package,org.apache.sis.metadata.MetadataStandard...)">MetadataStandard</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Citation.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Citation</a>&nbsp;citation,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Package.html?is-external=true" title="class or interface in java.lang" class="externalLink">Package</a>&nbsp;interfacePackage,
<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a>...&nbsp;dependencies)</code></th>
<td class="colLast">
<div class="block">Creates a new instance working on implementation of interfaces defined in the specified package.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asIndexMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy)">asIndexMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy)</code></th>
<td class="colLast">
<div class="block">Returns indices for all properties defined in the given metadata type.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/ExtendedElementInformation.html?is-external=true" title="class or interface in org.opengis.metadata" class="externalLink">ExtendedElementInformation</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asInformationMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy)">asInformationMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy)</code></th>
<td class="colLast">
<div class="block">Returns information about all properties defined in the given metadata type.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asNameMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.KeyNamePolicy)">asNameMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;valuePolicy)</code></th>
<td class="colLast">
<div class="block">Returns the names of all properties defined in the given metadata type.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../util/collection/TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asTreeTable(java.lang.Object,java.lang.Class,org.apache.sis.metadata.ValueExistencePolicy)">asTreeTable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;baseType,
<a href="ValueExistencePolicy.html" title="enum in org.apache.sis.metadata">ValueExistencePolicy</a>&nbsp;valuePolicy)</code></th>
<td class="colLast">
<div class="block">Returns the specified metadata object as a tree table.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asTypeMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.TypeValuePolicy)">asTypeMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="TypeValuePolicy.html" title="enum in org.apache.sis.metadata">TypeValuePolicy</a>&nbsp;valuePolicy)</code></th>
<td class="colLast">
<div class="block">Returns the type of all properties, or their declaring type, defined in the given metadata type.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asValueMap(java.lang.Object,java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.ValueExistencePolicy)">asValueMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;baseType,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="ValueExistencePolicy.html" title="enum in org.apache.sis.metadata">ValueExistencePolicy</a>&nbsp;valuePolicy)</code></th>
<td class="colLast">
<div class="block">Returns a view of the specified metadata object as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata2,
<a href="../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</code></th>
<td class="colLast">
<div class="block">Compares the two specified metadata objects.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forClass(java.lang.Class)">forClass</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns the metadata standard for the given class.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Citation.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Citation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCitation()">getCitation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a bibliographical reference to the international standard.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getImplementation(java.lang.Class)">getImplementation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns the implementation class for the given interface, or <code>null</code> if none.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? super T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInterface(java.lang.Class)">getInterface</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns the metadata interface implemented by the specified implementation class.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode(java.lang.Object)">hashCode</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata)</code></th>
<td class="colLast">
<div class="block">Computes a hash code for the specified metadata.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMetadata(java.lang.Class)">isMetadata</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if the given type is assignable to a type from this standard or one of its dependencies.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this metadata standard.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="ISO_19111">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ISO_19111</h4>
<pre>public static final&nbsp;<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a> ISO_19111</pre>
<div class="block">An instance working on ISO 19111 standard as defined by GeoAPI interfaces
in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.referencing</code></a> package and sub-packages.</div>
</li>
</ul>
<a id="ISO_19115">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ISO_19115</h4>
<pre>public static final&nbsp;<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a> ISO_19115</pre>
<div class="block">An instance working on ISO 19115 standard as defined by GeoAPI interfaces
in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.metadata</code></a> package and sub-packages.</div>
</li>
</ul>
<a id="ISO_19123">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ISO_19123</h4>
<pre>public static final&nbsp;<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a> ISO_19123</pre>
<div class="block">An instance working on ISO 19123 standard as defined by GeoAPI interfaces
in the <code>org​.opengis​.coverage</code> package and sub-packages.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.opengis.metadata.citation.Citation,java.lang.Package,org.apache.sis.metadata.MetadataStandard...)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MetadataStandard</h4>
<pre>public&nbsp;MetadataStandard&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Citation.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Citation</a>&nbsp;citation,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Package.html?is-external=true" title="class or interface in java.lang" class="externalLink">Package</a>&nbsp;interfacePackage,
<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a>...&nbsp;dependencies)</pre>
<div class="block">Creates a new instance working on implementation of interfaces defined in the specified package.
<div class="note"><b>Example:</b>: For the ISO 19115 standard reflected by GeoAPI interfaces,
<code>interface­Package</code> shall be the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/package-summary.html?is-external=true" class="externalLink"><code>org​.opengis​.metadata</code></a> package.</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>citation</code> - bibliographical reference to the international standard.</dd>
<dd><code>interface­Package</code> - the root package for metadata interfaces.</dd>
<dd><code>dependencies</code> - the dependencies to other metadata standards.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="forClass(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forClass</h4>
<pre class="methodSignature">public static&nbsp;<a href="MetadataStandard.html" title="class in org.apache.sis.metadata">MetadataStandard</a>&nbsp;forClass&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
<div class="block">Returns the metadata standard for the given class. The argument given to this method can be
either an interface defined by the standard, or a class implementing such interface. If the
class implements more than one interface, then the first interface recognized by this method,
in declaration order, will be retained.
<p>The current implementation recognizes only the standards defined by the public static
constants defined in this class. A future SIS version may recognize user-defined constants.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the metadata standard interface, or an implementation class.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the metadata standard for the given type, or <code>null</code> if not found.</dd>
</dl>
</li>
</ul>
<a id="getCitation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCitation</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Citation.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Citation</a>&nbsp;getCitation()</pre>
<div class="block">Returns a bibliographical reference to the international standard.
The default implementation return the citation given at construction time.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>bibliographical reference to the international standard.</dd>
</dl>
</li>
</ul>
<a id="isMetadata(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMetadata</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isMetadata&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
<div class="block">Returns <code>true</code> if the given type is assignable to a type from this standard or one of its dependencies.
If this method returns <code>true</code>, then invoking <a href="#getInterface(java.lang.Class)"><code>get­Interface(Class)</code></a> is guaranteed to succeed
without throwing an exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the implementation class (can be <code>null</code>).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given class is an interface of this standard,
or implements an interface of this standard.</dd>
</dl>
</li>
</ul>
<a id="getInterface(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterface</h4>
<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? super T&gt;&nbsp;getInterface&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns the metadata interface implemented by the specified implementation class.
If the given type is already an interface from this standard, then it is returned
unchanged.
<div class="note"><b>Note:</b>
The word "interface" may be taken in a looser sense than the usual Java sense because
if the given type is defined in this standard package, then it is returned unchanged.
The standard package is usually made of interfaces and code lists only, but this is
not verified by this method.</div></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the compile-time <code>type</code>.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the implementation class.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the interface implemented by the given implementation class.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the specified implementation class does not implement an interface of this standard.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html#getInterface()"><code>Abstract­Metadata​.get­Interface()</code></a></dd>
</dl>
</li>
</ul>
<a id="getImplementation(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImplementation</h4>
<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends T&gt;&nbsp;getImplementation&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
<div class="block">Returns the implementation class for the given interface, or <code>null</code> if none.
If non-null, the returned class must have a public no-argument constructor and the
metadata instance created by that constructor must be initially empty (no default value).
That no-argument constructor should never throw any checked exception.
<p>The default implementation returns <code>null</code> in every cases. Subclasses shall
override this method in order to map GeoAPI interfaces to their implementation.</p></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the compile-time <code>type</code>.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the interface, typically from the <code>org​.opengis​.metadata</code> package.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the implementation class, or <code>null</code> if none.</dd>
</dl>
</li>
</ul>
<a id="asNameMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.KeyNamePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asNameMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;asNameMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;valuePolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns the names of all properties defined in the given metadata type.
The property names appears both as keys and as values, but may be written differently.
The names may be <a href="KeyNamePolicy.html#UML_IDENTIFIER">standard identifiers</a> (e.g.
as defined by ISO 19115), <a href="KeyNamePolicy.html#JAVABEANS_PROPERTY">JavaBeans names</a>,
<a href="KeyNamePolicy.html#METHOD_NAME">method names</a> or <a href="KeyNamePolicy.html#SENTENCE">sentences</a> (usually in English).
<div class="note"><b>Example:</b>
The following code prints <code>"alternate­Title<u>s</u>"</code> (note the plural):
<blockquote><pre>MetadataStandard standard = MetadataStandard.ISO_19115;
Map&lt;String, String&gt; names = standard.<b>asNameMap</b>(Citation.<font color="green">class</font>, UML_IDENTIFIER, JAVABEANS_PROPERTY);
String value = names.<b>get</b>(<font color="orangered">"alternateTitle"</font>);
System.out.<b>println</b>(value); <i><font color="gray">// alternateTitles</font></i></pre></blockquote>
</div>
The <code>key­Policy</code> argument specify only the string representation of keys returned by the iterators.
No matter the key name policy, the <code>key</code> argument given to any <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> method can be any of the
above-cited forms of property names.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the interface or implementation class of a metadata.</dd>
<dd><code>key­Policy</code> - determines the string representation of map keys.</dd>
<dd><code>value­Policy</code> - determines the string representation of map values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the names of all properties defined by the given metadata type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the specified interface or implementation class does
not extend or implement a metadata interface of the expected package.</dd>
</dl>
</li>
</ul>
<a id="asTypeMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.TypeValuePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asTypeMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;asTypeMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="TypeValuePolicy.html" title="enum in org.apache.sis.metadata">TypeValuePolicy</a>&nbsp;valuePolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns the type of all properties, or their declaring type, defined in the given metadata type.
The keys in the returned map are the same than the keys in the above <a href="#asNameMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.KeyNamePolicy)">name map</a>.
The values are determined by the <code>value­Policy</code> argument, which can be
<a href="TypeValuePolicy.html#ELEMENT_TYPE">element type</a> or the
<a href="TypeValuePolicy.html#DECLARING_INTERFACE">declaring interface</a> among others.
<div class="note"><b>Example:</b>
the following code prints the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/InternationalString.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink"><code>International­String</code></a> class name:
<blockquote><pre>MetadataStandard standard = MetadataStandard.ISO_19115;
Map&lt;String,Class&lt;?&gt;&gt; types = standard.<b>asTypeMap</b>(Citation.<font color="green">class</font>, UML_IDENTIFIER, ELEMENT_TYPE);
Class&lt;?&gt; value = types.<b>get</b>(<font color="orangered">"alternateTitle"</font>);
System.out.<b>println</b>(value); <i><font color="gray">// class org.opengis.util.InternationalString</font></i></pre></blockquote>
</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the interface or implementation class of a metadata.</dd>
<dd><code>key­Policy</code> - determines the string representation of map keys.</dd>
<dd><code>value­Policy</code> - whether the values shall be property types, the element types
(same as property types except for collections) or the declaring interface or class.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the types or declaring type of all properties defined in the given metadata type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the specified interface or implementation class does
not extend or implement a metadata interface of the expected package.</dd>
</dl>
</li>
</ul>
<a id="asInformationMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asInformationMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/ExtendedElementInformation.html?is-external=true" title="class or interface in org.opengis.metadata" class="externalLink">ExtendedElementInformation</a>&gt;&nbsp;asInformationMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns information about all properties defined in the given metadata type.
The keys in the returned map are the same than the keys in the above
<a href="#asNameMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.KeyNamePolicy)">name map</a>. The values contain information inferred from
the ISO names, the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/annotation/Obligation.html?is-external=true" title="class or interface in org.opengis.annotation" class="externalLink"><code>Obligation</code></a> enumeration and the
<a href="../measure/ValueRange.html" title="annotation in org.apache.sis.measure"><code>Value­Range</code></a> annotations.
<p>In the particular case of Apache SIS implementation, all values in the information map
additionally implement the following interfaces:</p>
<ul>
<li><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/ReferenceIdentifier.html?is-external=true" title="class or interface in org.opengis.referencing" class="externalLink"><code>Reference­Identifier</code></a> with the following properties:
<ul>
<li>The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/Identifier.html?is-external=true#getAuthority()" title="class or interface in org.opengis.metadata" class="externalLink">authority</a> is this metadata standard <a href="#getCitation()">citation</a>.</li>
<li>The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/ReferenceIdentifier.html?is-external=true#getCodeSpace()" title="class or interface in org.opengis.referencing" class="externalLink">codespace</a> is the standard name of the interface that contain the property.</li>
<li>The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/Identifier.html?is-external=true#getCode()" title="class or interface in org.opengis.metadata" class="externalLink">code</a> is the standard name of the property.</li>
</ul>
</li>
<li><a href="../util/collection/CheckedContainer.html" title="interface in org.apache.sis.util.collection"><code>Checked­Container</code></a> with the following properties:
<ul>
<li>The <a href="../util/collection/CheckedContainer.html#getElementType()">element type</a> is the type of property values
as defined by <a href="TypeValuePolicy.html#ELEMENT_TYPE"><code>Type­Value­Policy​.ELEMENT_TYPE</code></a>.</li>
</ul>
</li>
</ul>
<div class="note"><b>Note:</b>
the rational for implementing <code>Checked­Container</code> is to consider each <code>Extended­Element­Information</code>
instance as the set of all possible values for the property. If the information had a <code>contains(E)</code> method,
it would return <code>true</code> if the given value is valid for that property.</div>
In addition, for each map entry the value returned by <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/ExtendedElementInformation.html?is-external=true#getDomainValue()" title="class or interface in org.opengis.metadata" class="externalLink"><code>Extended­Element­Information​.get­Domain­Value()</code></a>
may optionally be an instance of any of the following classes:
<ul>
<li><a href="../measure/NumberRange.html" title="class in org.apache.sis.measure"><code>Number­Range</code></a> if the valid values are constrained to some specific range.</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the metadata interface or implementation class.</dd>
<dd><code>key­Policy</code> - determines the string representation of map keys.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>information about all properties defined in the given metadata type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the given type does not implement a metadata interface of the expected package.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="iso/DefaultExtendedElementInformation.html" title="class in org.apache.sis.metadata.iso"><code>Default­Extended­Element­Information</code></a></dd>
</dl>
</li>
</ul>
<a id="asIndexMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asIndexMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;asIndexMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns indices for all properties defined in the given metadata type.
The keys in the returned map are the same than the keys in the above <a href="#asNameMap(java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.KeyNamePolicy)">name map</a>.
The values are arbitrary indices numbered from 0 inclusive to <var>n</var> exclusive, where <var>n</var>
is the number of properties declared in the given metadata type.
<p>Property indices may be used as an alternative to property names by some applications doing their own storage.
Such index usages are fine for temporary storage during the Java Virtual Machine lifetime, but indices should not
be used in permanent storage. The indices are stable as long as the metadata implementation does not change,
but may change when the implementation is upgraded to a newer version.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the interface or implementation class of a metadata.</dd>
<dd><code>key­Policy</code> - determines the string representation of map keys.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>indices of all properties defined by the given metadata type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the specified interface or implementation class does
not extend or implement a metadata interface of the expected package.</dd>
</dl>
</li>
</ul>
<a id="asValueMap(java.lang.Object,java.lang.Class,org.apache.sis.metadata.KeyNamePolicy,org.apache.sis.metadata.ValueExistencePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asValueMap</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;asValueMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;baseType,
<a href="KeyNamePolicy.html" title="enum in org.apache.sis.metadata">KeyNamePolicy</a>&nbsp;keyPolicy,
<a href="ValueExistencePolicy.html" title="enum in org.apache.sis.metadata">ValueExistencePolicy</a>&nbsp;valuePolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns a view of the specified metadata object as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.
The map is backed by the metadata object using Java reflection, so changes in the
underlying metadata object are immediately reflected in the map and conversely.
<p>The map content is determined by the arguments: <code>metadata</code> determines the set of
keys, <code>key­Policy</code> determines their <code>String</code> representations of those keys and
<code>value­Policy</code> determines whether entries having a null value or an empty collection
shall be included in the map.</p>
<div class="section">Supported operations</div>
The map supports the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put(K,V)" title="class or interface in java.util" class="externalLink"><code>put(…)</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink"><code>remove(…)</code></a> operations if the underlying metadata object contains setter methods.
The <code>remove(…)</code> method is implemented by a call to <code>put(…, null)</code>.
Note that whether the entry appears as effectively removed from the map or just cleared
(i.e. associated to a null value) depends on the <code>value­Policy</code> argument.
<div class="section">Keys and values</div>
The keys are case-insensitive and can be either the JavaBeans property name, the getter method name
or the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/annotation/UML.html?is-external=true#identifier()" title="class or interface in org.opengis.annotation" class="externalLink">UML identifier</a>. The value given to a call
to the <code>put(…)</code> method shall be an instance of the type expected by the corresponding setter method,
or an instance of a type <a href="../util/ObjectConverters.html#find(java.lang.Class,java.lang.Class)">convertible</a>
to the expected type.
<div class="section">Multi-values entries</div>
Calls to <code>put(…)</code> replace the previous value, with one noticeable exception: if the metadata
property associated to the given key is a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Collection</code></a> but the given value is a single
element (not a collection), then the given value is <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#add(E)" title="class or interface in java.util" class="externalLink">added</a>
to the existing collection. In other words, the returned map behaves as a <cite>multi-values map</cite>
for the properties that allow multiple values. If the intent is to unconditionally discard all previous
values, then make sure that the given value is a collection when the associated metadata property expects
such collection.
<div class="section">Disambiguating instances that implement more than one metadata interface</div>
It is some time convenient to implement more than one interface by the same class.
For example an implementation interested only in extents defined by geographic bounding boxes could implement
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/Extent.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink"><code>Extent</code></a> and <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/extent/GeographicBoundingBox.html?is-external=true" title="class or interface in org.opengis.metadata.extent" class="externalLink"><code>Geographic­Bounding­Box</code></a>
by the same class. In such case, it is necessary to tell to this method which one of those two interfaces
shall be reflected in the returned map. This information can be provided by the <code>base­Type</code> argument.
That argument needs to be non-null only in situations where an ambiguity can arise; <code>base­Type</code> can be null
if the given metadata implements only one interface recognized by this <code>Metadata­Standard</code> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - the metadata object to view as a map.</dd>
<dd><code>base­Type</code> - base type of the metadata of interest, or <code>null</code> if unspecified.</dd>
<dd><code>key­Policy</code> - determines the string representation of map keys.</dd>
<dd><code>value­Policy</code> - whether the entries having null value or empty collection shall be included in the map.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a map view over the metadata object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the metadata object does not implement a metadata interface of the expected package.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.8</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html#asMap()"><code>Abstract­Metadata​.as­Map()</code></a></dd>
</dl>
</li>
</ul>
<a id="asTreeTable(java.lang.Object,java.lang.Class,org.apache.sis.metadata.ValueExistencePolicy)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asTreeTable</h4>
<pre class="methodSignature">public&nbsp;<a href="../util/collection/TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a>&nbsp;asTreeTable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;baseType,
<a href="ValueExistencePolicy.html" title="enum in org.apache.sis.metadata">ValueExistencePolicy</a>&nbsp;valuePolicy)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Returns the specified metadata object as a tree table.
The tree table is backed by the metadata object using Java reflection, so changes in the
underlying metadata object are immediately reflected in the tree table and conversely.
<p>The returned <code>Tree­Table</code> instance contains the following columns:</p>
<ul class="verbose">
<li><a href="../util/collection/TableColumn.html#IDENTIFIER"><code>Table­Column​.IDENTIFIER</code></a><br>
The <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/annotation/UML.html?is-external=true#identifier()" title="class or interface in org.opengis.annotation" class="externalLink">UML identifier</a> if any,
or the Java Beans property name otherwise, of a metadata property. For example
in a tree table view of <a href="iso/citation/DefaultCitation.html" title="class in org.apache.sis.metadata.iso.citation"><code>Default­Citation</code></a>,
there is a node having the <code>"title"</code> identifier.</li>
<li><a href="../util/collection/TableColumn.html#INDEX"><code>Table­Column​.INDEX</code></a><br>
If the metadata property is a collection, then the zero-based index of the element in that collection.
Otherwise <code>null</code>. For example in a tree table view of <code>Default­Citation</code>, if the
<code>"alternate­Title"</code> collection contains two elements, then there is a node with index 0
for the first element and an other node with index 1 for the second element.
<div class="note"><b>Note:</b>
The <code>(IDENTIFIER, INDEX)</code> pair can be used as a primary key for uniquely identifying a node
in a list of children. That uniqueness is guaranteed only for the children of a given node;
the same keys may appear in the children of any other nodes.</div></li>
<li><a href="../util/collection/TableColumn.html#NAME"><code>Table­Column​.NAME</code></a><br>
A human-readable name for the node, derived from the identifier and the index.
This is the column shown in the default <a href="#toString()"><code>to­String()</code></a> implementation and
may be localizable.</li>
<li><a href="../util/collection/TableColumn.html#TYPE"><code>Table­Column​.TYPE</code></a><br>
The base type of the value (usually an interface).</li>
<li><a href="../util/collection/TableColumn.html#VALUE"><code>Table­Column​.VALUE</code></a><br>
The metadata value for the node. Values in this column are writable if the underlying
metadata class have a setter method for the property represented by the node.</li>
<li><a href="../util/collection/TableColumn.html#REMARKS"><code>Table­Column​.REMARKS</code></a><br>
Remarks or warning on the property value. This is rarely present.
It is provided when the value may look surprising, for example the longitude values
in a geographic bounding box spanning the anti-meridian.</li>
</ul>
<div class="section">Write operations</div>
Only the <code>VALUE</code> column may be writable, with one exception: newly created children need
to have their <code>IDENTIFIER</code> set before any other operation. For example the following code
adds a title to a citation:
<blockquote><pre>TreeTable.Node node = ...; <i><font color="gray">// The node for a DefaultCitation.</font></i>
TreeTable.Node child = node.<b>newChild</b>();
child.<b>setValue</b>(TableColumn.IDENTIFIER, <font color="orangered">"title"</font>);
child.<b>setValue</b>(TableColumn.VALUE, <font color="orangered">"Le petit prince"</font>);
<i><font color="gray">// Nothing else to do - the child node has been added.</font></i></pre></blockquote>
Nodes can be removed by invoking the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#remove()" title="class or interface in java.util" class="externalLink"><code>Iterator​.remove()</code></a> method on the
<a href="../util/collection/TreeTable.Node.html#getChildren()">children</a> iterator.
Note that whether the child appears as effectively removed from the node or just cleared
(i.e. associated to a null value) depends on the <code>value­Policy</code> argument.
<div class="section">Disambiguating instances that implement more than one metadata interface</div>
If the given <code>metadata</code> instance implements more than one interface recognized by this
<code>Metadata­Standard</code>, then the <code>base­Type</code> argument need to be non-null in order to
specify which interface to reflect in the tree.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - the metadata object to view as a tree table.</dd>
<dd><code>base­Type</code> - base type of the metadata of interest, or <code>null</code> if unspecified.</dd>
<dd><code>value­Policy</code> - whether the property having null value or empty collection shall be included in the tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a tree table representation of the specified metadata.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the metadata object does not implement a metadata interface of the expected package.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.8</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html#asTreeTable()"><code>Abstract­Metadata​.as­Tree­Table()</code></a></dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata2,
<a href="../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Compares the two specified metadata objects.
The two metadata arguments shall be implementations of a metadata interface defined by
this <code>Metadata­Standard</code>, otherwise an exception will be thrown. However the two
arguments do not need to be the same implementation class.
<div class="section">Shallow or deep comparisons</div>
This method implements a <cite>shallow</cite> comparison in that properties are compared by
invoking their <code>properties​.equals(…)</code> method without <em>explicit</em> recursive call
to this <code>standard​.equals(…)</code> method for children metadata. However the comparison will
do <em>implicit</em> recursive calls if the <code>properties​.equals(…)</code> implementations
delegate their work to this <code>standard​.equals(…)</code> method, as <a href="AbstractMetadata.html" title="class in org.apache.sis.metadata"><code>Abstract­Metadata</code></a> does.
In the later case, the final result is a deep comparison.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata1</code> - the first metadata object to compare.</dd>
<dd><code>metadata2</code> - the second metadata object to compare.</dd>
<dd><code>mode</code> - the strictness level of the comparison.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given metadata objects are equals.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if at least one metadata object does not
implement a metadata interface of the expected package.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)"><code>Abstract­Metadata​.equals(Object, Comparison­Mode)</code></a></dd>
</dl>
</li>
</ul>
<a id="hashCode(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;metadata)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassCastException</a></pre>
<div class="block">Computes a hash code for the specified metadata. The hash code is defined as the sum
of hash code values of all non-empty properties, plus the hash code of the interface.
This is a similar contract than <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink"><code>Set​.hash­Code()</code></a> (except for the interface)
and ensures that the hash code value is insensitive to the ordering of properties.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - the metadata object to compute hash code.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a hash code value for the specified metadata, or 0 if the given metadata is null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class­Cast­Exception</a></code> - if the metadata object does not implement a metadata interface of the expected package.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="AbstractMetadata.html#hashCode()"><code>Abstract­Metadata​.hash­Code()</code></a></dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<div class="block">Returns a string representation of this metadata standard.
This is for debugging purpose only and may change in any future version.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MetadataStandard.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>