blob: f49105c27b34de0bdc09ed6cabbf79338eee7ea6 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>ObjectConverters (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, class: ObjectConverters">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.util.ObjectConverters class">
<meta name="keywords" content="identity()">
<meta name="keywords" content="find()">
<meta name="keywords" content="convert()">
<meta name="keywords" content="derivedSet()">
<meta name="keywords" content="derivedMap()">
<meta name="keywords" content="derivedKeys()">
<meta name="keywords" content="derivedValues()">
<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/ObjectConverters.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>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.util</a></div>
<h1 title="Class ObjectConverters" class="title">Class ObjectConverters</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"><a href="Static.html" title="class in org.apache.sis.util">Static</a>
<div class="inheritance">ObjectConverters</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ObjectConverters</span>
<span class="extends-implements">extends <a href="Static.html" title="class in org.apache.sis.util">Static</a></span></div>
<div class="block">Static methods for creating <a href="ObjectConverter.html" title="interface in org.apache.sis.util"><code>Object­Converter</code></a> instances or collection views based on converters.
Converters are created by the following methods:
<ul>
<li><a href="#identity(java.lang.Class)"><code>identity(Class)</code></a></li>
<li><a href="#find(java.lang.Class,java.lang.Class)"><code>find(Class, Class)</code></a></li>
</ul>
Converters can be used for creating derived collections by the following methods:
<ul>
<li><a href="#derivedSet(java.util.Set,org.apache.sis.util.ObjectConverter)"><code>derived­Set(Set, Object­Converter)</code></a></li>
<li><a href="#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>derived­Map(Map, Object­Converter, Object­Converter)</code></a></li>
<li><a href="#derivedKeys(java.util.Map,org.apache.sis.util.ObjectConverter,java.lang.Class)"><code>derived­Keys(Map, Object­Converter, Class)</code></a></li>
<li><a href="#derivedValues(java.util.Map,java.lang.Class,org.apache.sis.util.ObjectConverter)"><code>derived­Values(Map, Class, Object­Converter)</code></a></li>
</ul>
<div class="note"><b>Example:</b>
the following code converts instances in a collection from type <code>S</code> to type <code>T</code>,
where the types are unknown at compile-time. Note that the converter is obtained only once
before to be applied to every elements in the loop.
<blockquote><pre>Class&lt;S&gt; sourceType = ...
Class&lt;T&gt; targetType = ...
Collection&lt;S&gt; sources = ...;
Collection&lt;T&gt; targets = ...;
ObjectConverter&lt;S,T&gt; converter = ObjectConverters.<b>find</b>(sourceType, targetType);
<font color="green">for</font> (S source : sources) {
targets.<b>add</b>(converter.<b>apply</b>(source));
}</pre></blockquote>
</div></div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="ObjectConverter.html" title="interface in org.apache.sis.util"><code>Object­Converter</code></a></li>
</ul>
</dd>
<p><font size="-1">Defined in the <code>sis-utility</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;T&gt;&nbsp;T</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#convert(java.lang.Object,java.lang.Class)" class="member-name-link">convert</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;value,
<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">Class</a>&lt;T&gt;&nbsp;target)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Converts the given value to the given type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;SK,<wbr>
K,<wbr>
V&gt;&nbsp;<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;K,<wbr>V&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#derivedKeys(java.util.Map,org.apache.sis.util.ObjectConverter,java.lang.Class)" class="member-name-link">derived­Keys</a><wbr>(<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;SK,<wbr>V&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;SK,<wbr>K&gt;&nbsp;key­Converter,
<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">Class</a>&lt;V&gt;&nbsp;value­Type)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a map whose keys are derived <cite>on-the-fly</cite> from the given map.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;SK,<wbr>
SV,<wbr>
K,<wbr>
V&gt;<br><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;K,<wbr>V&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)" class="member-name-link">derived­Map</a><wbr>(<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;SK,<wbr>SV&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;SK,<wbr>K&gt;&nbsp;key­Converter,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;SV,<wbr>V&gt;&nbsp;value­Converter)</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 map whose keys and values are derived <cite>on-the-fly</cite> from the given map.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;S,<wbr>
E&gt;&nbsp;<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;E&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#derivedSet(java.util.Set,org.apache.sis.util.ObjectConverter)" class="member-name-link">derived­Set</a><wbr>(<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;S&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;S,<wbr>E&gt;&nbsp;converter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a set whose elements are derived <cite>on-the-fly</cite> from the given set.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
SV,<wbr>
V&gt;&nbsp;<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;K,<wbr>V&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#derivedValues(java.util.Map,java.lang.Class,org.apache.sis.util.ObjectConverter)" class="member-name-link">derived­Values</a><wbr>(<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;K,<wbr>SV&gt;&nbsp;storage,
<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">Class</a>&lt;K&gt;&nbsp;key­Type,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;SV,<wbr>V&gt;&nbsp;value­Converter)</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 map whose values are derived <cite>on-the-fly</cite> from the given map.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;S,<wbr>
T&gt;&nbsp;<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;? super S,<wbr>? extends T&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#find(java.lang.Class,java.lang.Class)" class="member-name-link">find</a><wbr>(<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">Class</a>&lt;S&gt;&nbsp;source,
<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">Class</a>&lt;T&gt;&nbsp;target)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a converter for the specified source and target classes.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;T&gt;&nbsp;<a href="ObjectConverter.html" title="interface in org.apache.sis.util">Object­Converter</a>&lt;T,<wbr>T&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#identity(java.lang.Class)" class="member-name-link">identity</a><wbr>(<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">Class</a>&lt;T&gt;&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an identity converter for objects of the given type.</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#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/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#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</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#toString()" title="class or interface in java.lang" class="external-link">to­String</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">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="identity(java.lang.Class)">
<h3>identity</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type"><a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;T,<wbr>T&gt;</span>&nbsp;<span class="element-name">identity</span><wbr><span class="parameters">(<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">Class</a>&lt;T&gt;&nbsp;type)</span></div>
<div class="block">Returns an identity converter for objects of the given type.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the object type.</dd>
<dt>Parameters:</dt>
<dd><code>type</code> - the object type.</dd>
<dt>Returns:</dt>
<dd>an identity converter for objects of the given type.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="find(java.lang.Class,java.lang.Class)">
<h3>find</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;S,<wbr>
T&gt;</span>
<span class="return-type"><a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;? super S,<wbr>? extends T&gt;</span>&nbsp;<span class="element-name">find</span><wbr><span class="parameters">(<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">Class</a>&lt;S&gt;&nbsp;source,
<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">Class</a>&lt;T&gt;&nbsp;target)</span>
throws <span class="exceptions"><a href="UnconvertibleObjectException.html" title="class in org.apache.sis.util">UnconvertibleObjectException</a></span></div>
<div class="block">Returns a converter for the specified source and target classes.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>S</code> - the source class.</dd>
<dd><code>T</code> - the target class.</dd>
<dt>Parameters:</dt>
<dd><code>source</code> - the source class.</dd>
<dd><code>target</code> - the target class, or <code>Object​.class</code> for any.</dd>
<dt>Returns:</dt>
<dd>the converter from the specified source class to the target class.</dd>
<dt>Throws:</dt>
<dd><code><a href="UnconvertibleObjectException.html" title="class in org.apache.sis.util">Unconvertible­Object­Exception</a></code> - if no converter is found.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convert(java.lang.Object,java.lang.Class)">
<h3>convert</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">convert</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;value,
<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">Class</a>&lt;T&gt;&nbsp;target)</span>
throws <span class="exceptions"><a href="UnconvertibleObjectException.html" title="class in org.apache.sis.util">UnconvertibleObjectException</a></span></div>
<div class="block">Converts the given value to the given type. This convenience method shall be used only for
rare conversions. For converting many instances between the same source and target classes,
consider invoking <a href="#find(java.lang.Class,java.lang.Class)"><code>find(Class, Class)</code></a> instead in order to reuse the same converter
for all values to convert.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the type of the <code>target</code> class.</dd>
<dt>Parameters:</dt>
<dd><code>value</code> - the value to convert, or <code>null</code>.</dd>
<dd><code>target</code> - the target class.</dd>
<dt>Returns:</dt>
<dd>the converted value (may be <code>null</code>).</dd>
<dt>Throws:</dt>
<dd><code><a href="UnconvertibleObjectException.html" title="class in org.apache.sis.util">Unconvertible­Object­Exception</a></code> - if the given value cannot be converted.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="derivedSet(java.util.Set,org.apache.sis.util.ObjectConverter)">
<h3>derivedSet</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;S,<wbr>
E&gt;</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;E&gt;</span>&nbsp;<span class="element-name">derivedSet</span><wbr><span class="parameters">(<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;S&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;S,<wbr>E&gt;&nbsp;converter)</span></div>
<div class="block">Returns a set whose elements are derived <cite>on-the-fly</cite> from the given set.
Conversions from the original elements to the derived elements are performed when needed
by invoking the <a href="ObjectConverter.html#apply(S)"><code>Object­Converter​.apply(Object)</code></a> method on the given converter.
<p>This convenience method delegates to
<a href="collection/Containers.html#derivedSet(java.util.Set,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Set(…)</code></a>.
See the javadoc of the above method for more information.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>S</code> - the type of elements in the storage (original) set.</dd>
<dd><code>E</code> - the type of elements in the derived set.</dd>
<dt>Parameters:</dt>
<dd><code>storage</code> - the storage set containing the original elements, or <code>null</code>.</dd>
<dd><code>converter</code> - the converter from the elements in the storage set to the elements in the derived set.</dd>
<dt>Returns:</dt>
<dd>a view over the <code>storage</code> set containing all elements converted by the given converter, or
<code>null</code> if <code>storage</code> was null.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="collection/Containers.html#derivedSet(java.util.Set,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Set(Set, Object­Converter)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)">
<h3>derivedMap</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;SK,<wbr>
SV,<wbr>
K,<wbr>
V&gt;</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;K,<wbr>V&gt;</span>&nbsp;<span class="element-name">derivedMap</span><wbr><span class="parameters">(<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;SK,<wbr>SV&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;SK,<wbr>K&gt;&nbsp;keyConverter,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;SV,<wbr>V&gt;&nbsp;valueConverter)</span></div>
<div class="block">Returns a map whose keys and values are derived <cite>on-the-fly</cite> from the given map.
Conversions from the original entries to the derived entries are performed when needed
by invoking the <a href="ObjectConverter.html#apply(S)"><code>Object­Converter​.apply(Object)</code></a> method on the given converters.
<p>This convenience method delegates to
<a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(…)</code></a>.
See the javadoc of the above method for more information.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>SK</code> - the type of keys in the storage map.</dd>
<dd><code>SV</code> - the type of values in the storage map.</dd>
<dd><code>K</code> - the type of keys in the derived map.</dd>
<dd><code>V</code> - the type of values in the derived map.</dd>
<dt>Parameters:</dt>
<dd><code>storage</code> - the storage map containing the original entries, or <code>null</code>.</dd>
<dd><code>key­Converter</code> - the converter from the keys in the storage map to the keys in the derived map.</dd>
<dd><code>value­Converter</code> - the converter from the values in the storage map to the values in the derived map.</dd>
<dt>Returns:</dt>
<dd>a view over the <code>storage</code> map containing all entries converted by the given converters, or
<code>null</code> if <code>storage</code> was null.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(Map, Object­Converter, Object­Converter)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="derivedKeys(java.util.Map,org.apache.sis.util.ObjectConverter,java.lang.Class)">
<h3>derivedKeys</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;SK,<wbr>
K,<wbr>
V&gt;</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;K,<wbr>V&gt;</span>&nbsp;<span class="element-name">derivedKeys</span><wbr><span class="parameters">(<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;SK,<wbr>V&gt;&nbsp;storage,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;SK,<wbr>K&gt;&nbsp;keyConverter,
<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">Class</a>&lt;V&gt;&nbsp;valueType)</span></div>
<div class="block">Returns a map whose keys are derived <cite>on-the-fly</cite> from the given map.
Conversions from the original keys to the derived keys are performed when needed by
invoking the <a href="ObjectConverter.html#apply(S)"><code>Object­Converter​.apply(Object)</code></a> method on the given converter.
<p>This convenience method delegates to
<a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(…)</code></a>.
See the javadoc of the above method for more information.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>SK</code> - the type of keys in the storage map.</dd>
<dd><code>K</code> - the type of keys in the derived map.</dd>
<dd><code>V</code> - the type of values in the storage and derived map.</dd>
<dt>Parameters:</dt>
<dd><code>storage</code> - the storage map containing the original entries, or <code>null</code>.</dd>
<dd><code>key­Converter</code> - the converter from the keys in the storage map to the keys in the derived map.</dd>
<dd><code>value­Type</code> - the type of values in the storage and derived map.</dd>
<dt>Returns:</dt>
<dd>a view over the <code>storage</code> map containing all entries with the keys converted
by the given converter, or <code>null</code> if <code>storage</code> was null.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(Map, Object­Converter, Object­Converter)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="derivedValues(java.util.Map,java.lang.Class,org.apache.sis.util.ObjectConverter)">
<h3>derivedValues</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
SV,<wbr>
V&gt;</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;K,<wbr>V&gt;</span>&nbsp;<span class="element-name">derivedValues</span><wbr><span class="parameters">(<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;K,<wbr>SV&gt;&nbsp;storage,
<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">Class</a>&lt;K&gt;&nbsp;keyType,
<a href="ObjectConverter.html" title="interface in org.apache.sis.util">ObjectConverter</a>&lt;SV,<wbr>V&gt;&nbsp;valueConverter)</span></div>
<div class="block">Returns a map whose values are derived <cite>on-the-fly</cite> from the given map.
Conversions from the original values to the derived values are performed when needed by
invoking the <a href="ObjectConverter.html#apply(S)"><code>Object­Converter​.apply(Object)</code></a> method on the given converter.
<p>This convenience method delegates to
<a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(…)</code></a>.
See the javadoc of the above method for more information.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - the type of keys in the storage and derived map.</dd>
<dd><code>SV</code> - the type of values in the storage map.</dd>
<dd><code>V</code> - the type of values in the derived map.</dd>
<dt>Parameters:</dt>
<dd><code>storage</code> - the storage map containing the original entries, or <code>null</code>.</dd>
<dd><code>key­Type</code> - the type of keys in the storage and derived map.</dd>
<dd><code>value­Converter</code> - the converter from the values in the storage map to the values in the derived map.</dd>
<dt>Returns:</dt>
<dd>a view over the <code>storage</code> map containing all entries with the values converted by the given
converter, or <code>null</code> if <code>storage</code> was null.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="collection/Containers.html#derivedMap(java.util.Map,org.apache.sis.util.ObjectConverter,org.apache.sis.util.ObjectConverter)"><code>Containers​.derived­Map(Map, Object­Converter, Object­Converter)</code></a></li>
</ul>
</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>