<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>DefaultConversion (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.referencing.operation.DefaultConversion class">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="getInterface()">
<meta name="keywords" content="specialize()">
<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="DefaultConversion (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":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/DefaultConversion.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>Field&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.referencing.operation</a></div>
<h2 title="Class DefaultConversion" class="title">Class DefaultConversion</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><a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></li>
<li>
<ul class="inheritance">
<li><a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a></li>
<li>
<ul class="inheritance">
<li><a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">AbstractCoordinateOperation</a></li>
<li>
<ul class="inheritance">
<li>DefaultConversion</li>
</ul>
</li>
</ul>
</li>
</ul>
</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>, <code><a href="../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code>, <code><a href="../../util/Deprecable.html" title="interface in org.apache.sis.util">Deprecable</a></code>, <code><a href="../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true" title="class or interface in org.opengis.referencing" class="externalLink">Identified­Object</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Coordinate­Operation</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Single­Operation</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">DefaultConversion</span>
extends <a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">AbstractCoordinateOperation</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a></pre>
<div class="block">A parameterized mathematical operation that converts coordinates to another CRS without any change of
 <a href="../datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a>.
 The best-known example of a coordinate conversion is a map projection.
 The parameters describing coordinate conversions are defined rather than empirically derived.

 <p>This coordinate operation contains an <a href="DefaultOperationMethod.html" title="class in org.apache.sis.referencing.operation">operation method</a>, usually
 with associated <a href="../../parameter/DefaultParameterValueGroup.html" title="class in org.apache.sis.parameter">parameter values</a>.
 In the SIS implementation, the parameter values can be either inferred from the
 <a href="transform/AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">math transform</a>
 or explicitly provided at construction time in a <cite>defining conversion</cite> (see below).</p>

 <div class="section">Defining conversions</div>
 <code>Operation­Method</code> instances are generally created for a pair of existing <a href="AbstractCoordinateOperation.html#getSourceCRS()">source</a>
 and <a href="AbstractCoordinateOperation.html#getTargetCRS()">target CRS</a>. But <code>Conversion</code> instances without those information may exist
 temporarily while creating a <a href="../crs/DefaultDerivedCRS.html" title="class in org.apache.sis.referencing.crs">derived</a> or
 <a href="../crs/DefaultProjectedCRS.html" title="class in org.apache.sis.referencing.crs">projected CRS</a>.
 Those <cite>defining conversions</cite> have no source and target CRS since those elements are provided by the
 derived or projected CRS themselves. This class provides a <a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)">constructor</a> for such defining conversions.

 <p>After the source and target CRS become known, we can invoke the <a href="#specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)"><code>specialize(…)</code></a> method for
 <a href="transform/DefaultMathTransformFactory.html#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup)">creating a math transform from the parameters</a>,
 instantiate a new <code>Conversion</code> of a more specific type
 (<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/ConicProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Conic­Projection</code></a>,
  <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CylindricalProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Cylindrical­Projection</code></a> or
  <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/PlanarProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Planar­Projection</code></a>) if possible,
 and assign the source and target CRS to it.</p>

 <div class="section">Immutability and thread safety</div>
 This class is immutable and thus thread-safe if the property <em>values</em> (not necessarily the map itself)
 given to the constructor are also immutable. This means that unless otherwise noted in the javadoc,
 <code>Conversion</code> instances created using only SIS factories and static constants can be shared
 by many objects and passed between threads without synchronization.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.6</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultTransformation.html" title="class in org.apache.sis.referencing.operation"><code>Default­Transformation</code></a>, 
<a href="../../../../../serialized-form.html#org.apache.sis.referencing.operation.DefaultConversion">Serialized Form</a></dd>

<p><font size="-1">Defined in the <code>sis-referencing</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>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.AbstractIdentifiedObject">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;<a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a></h3>
<code><a href="../AbstractIdentifiedObject.html#DEPRECATED_KEY">DEPRECATED_KEY</a>, <a href="../AbstractIdentifiedObject.html#LOCALE_KEY">LOCALE_KEY</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.CoordinateOperation">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">CoordinateOperation</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#COORDINATE_OPERATION_ACCURACY_KEY" title="class or interface in org.opengis.referencing.operation" class="externalLink">COORDINATE_OPERATION_ACCURACY_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing.operation" class="externalLink">DOMAIN_OF_VALIDITY_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#OPERATION_VERSION_KEY" title="class or interface in org.opengis.referencing.operation" class="externalLink">OPERATION_VERSION_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#SCOPE_KEY" title="class or interface in org.opengis.referencing.operation" class="externalLink">SCOPE_KEY</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.IdentifiedObject">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true" title="class or interface in org.opengis.referencing" class="externalLink">IdentifiedObject</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="externalLink">ALIAS_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="externalLink">IDENTIFIERS_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#NAME_KEY" title="class or interface in org.opengis.referencing" class="externalLink">NAME_KEY</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="externalLink">REMARKS_KEY</a></code></li>
</ul>
</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">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform)">DefaultConversion</a></span>&#8203;(<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;?&gt;&nbsp;properties,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;sourceCRS,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;targetCRS,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;interpolationCRS,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;transform)</code></th>
<td class="colLast">
<div class="block">Creates a coordinate conversion from the given properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)">DefaultConversion</a></span>&#8203;(<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;?&gt;&nbsp;properties,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;transform,
                 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters)</code></th>
<td class="colLast">
<div class="block">Creates a defining conversion from the given transform and/or parameters.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.opengis.referencing.operation.Conversion)">DefaultConversion</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&nbsp;operation)</code></th>
<td class="colLast">
<div class="block">Creates a new coordinate operation with the same values than the specified one.</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>static <a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">DefaultConversion</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#castOrCopy(org.opengis.referencing.operation.Conversion)">castOrCopy</a></span>&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&nbsp;object)</code></th>
<td class="colLast">
<div class="block">Returns a SIS coordinate operation implementation with the values of the given arbitrary implementation.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(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;object,
      <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 this coordinate operation with the specified object for equality.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><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 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInterface()">getInterface</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the GeoAPI interface implemented by this class.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a description of the operation method, including a list of expected parameter names.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterDescriptors()">getParameterDescriptors</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a description of the parameters.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterValues()">getParameterValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parameter values.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)">specialize</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;baseType,
          <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;sourceCRS,
          <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;targetCRS,
          <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransformFactory</a>&nbsp;factory)</code></th>
<td class="colLast">
<div class="block">Returns a specialization of this conversion with a more specific type, source and target CRS.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractCoordinateOperation">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">AbstractCoordinateOperation</a></h3>
<code><a href="AbstractCoordinateOperation.html#castOrCopy(org.opengis.referencing.operation.CoordinateOperation)">cast­Or­Copy</a>, <a href="AbstractCoordinateOperation.html#computeHashCode()">compute­Hash­Code</a>, <a href="AbstractCoordinateOperation.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a>, <a href="AbstractCoordinateOperation.html#getCoordinateOperationAccuracy()">get­Coordinate­Operation­Accuracy</a>, <a href="AbstractCoordinateOperation.html#getDomainOfValidity()">get­Domain­Of­Validity</a>, <a href="AbstractCoordinateOperation.html#getInterpolationCRS()">get­Interpolation­CRS</a>, <a href="AbstractCoordinateOperation.html#getLinearAccuracy()">get­Linear­Accuracy</a>, <a href="AbstractCoordinateOperation.html#getMathTransform()">get­Math­Transform</a>, <a href="AbstractCoordinateOperation.html#getOperationVersion()">get­Operation­Version</a>, <a href="AbstractCoordinateOperation.html#getScope()">get­Scope</a>, <a href="AbstractCoordinateOperation.html#getSourceCRS()">get­Source­CRS</a>, <a href="AbstractCoordinateOperation.html#getTargetCRS()">get­Target­CRS</a>, <a href="AbstractCoordinateOperation.html#getWrapAroundChanges()">get­Wrap­Around­Changes</a>, <a href="AbstractCoordinateOperation.html#isDefiningConversion()">is­Defining­Conversion</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.AbstractIdentifiedObject">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../AbstractIdentifiedObject.html" title="class in org.apache.sis.referencing">AbstractIdentifiedObject</a></h3>
<code><a href="../AbstractIdentifiedObject.html#castOrCopy(org.opengis.referencing.IdentifiedObject)">cast­Or­Copy</a>, <a href="../AbstractIdentifiedObject.html#equals(java.lang.Object)">equals</a>, <a href="../AbstractIdentifiedObject.html#getAlias()">get­Alias</a>, <a href="../AbstractIdentifiedObject.html#getDescription()">get­Description</a>, <a href="../AbstractIdentifiedObject.html#getIdentifiers()">get­Identifiers</a>, <a href="../AbstractIdentifiedObject.html#getName()">get­Name</a>, <a href="../AbstractIdentifiedObject.html#getRemarks()">get­Remarks</a>, <a href="../AbstractIdentifiedObject.html#hashCode()">hash­Code</a>, <a href="../AbstractIdentifiedObject.html#isDeprecated()">is­Deprecated</a>, <a href="../AbstractIdentifiedObject.html#isHeuristicMatchForName(java.lang.String)">is­Heuristic­Match­For­Name</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.FormattableObject">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></h3>
<code><a href="../../io/wkt/FormattableObject.html#print()">print</a>, <a href="../../io/wkt/FormattableObject.html#toString()">to­String</a>, <a href="../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">to­String</a>, <a href="../../io/wkt/FormattableObject.html#toWKT()">to­WKT</a></code></li>
</ul>
<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#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#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>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Conversion">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true#getOperationVersion()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Operation­Version</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true#getSourceCRS()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Source­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true#getTargetCRS()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Target­CRS</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.CoordinateOperation">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">CoordinateOperation</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#getCoordinateOperationAccuracy()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Coordinate­Operation­Accuracy</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#getDomainOfValidity()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Domain­Of­Validity</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#getMathTransform()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Math­Transform</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#getScope()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Scope</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.IdentifiedObject">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true" title="class or interface in org.opengis.referencing" class="externalLink">IdentifiedObject</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getAlias()" title="class or interface in org.opengis.referencing" class="externalLink">get­Alias</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getIdentifiers()" title="class or interface in org.opengis.referencing" class="externalLink">get­Identifiers</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getName()" title="class or interface in org.opengis.referencing" class="externalLink">get­Name</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#getRemarks()" title="class or interface in org.opengis.referencing" class="externalLink">get­Remarks</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#toWKT()" title="class or interface in org.opengis.referencing" class="externalLink">to­WKT</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.SingleOperation">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">SingleOperation</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getMethod()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Method</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Parameter­Values</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= 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;(java.util.Map,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultConversion</h4>
<pre>public&nbsp;DefaultConversion&#8203;(<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;?&gt;&nbsp;properties,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;sourceCRS,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;targetCRS,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;interpolationCRS,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;transform)</pre>
<div class="block">Creates a coordinate conversion from the given properties.
 The properties given in argument follow the same rules than for the
 <a href="AbstractCoordinateOperation.html#%3Cinit%3E(java.util.Map,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransform)">super-class constructor</a>.
 The following table is a reminder of main (not all) properties:

 <table class="sis">
   <caption>Recognized properties (non exhaustive list)</caption>
   <tr>
     <th>Property name</th>
     <th>Value type</th>
     <th>Returned by</th>
   </tr>
   <tr>
     <td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#NAME_KEY" title="class or interface in org.opengis.referencing" class="externalLink">"name"</a></td>
     <td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/Identifier.html?is-external=true" title="class or interface in org.opengis.metadata" class="externalLink"><code>Identifier</code></a> or <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"><code>String</code></a></td>
     <td><a href="../AbstractIdentifiedObject.html#getName()"><code>AbstractIdentifiedObject.getName()</code></a></td>
   </tr>
   <tr>
     <td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/IdentifiedObject.html?is-external=true#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="externalLink">"identifiers"</a></td>
     <td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/Identifier.html?is-external=true" title="class or interface in org.opengis.metadata" class="externalLink"><code>Identifier</code></a> (optionally as array)</td>
     <td><a href="../AbstractIdentifiedObject.html#getIdentifiers()"><code>AbstractIdentifiedObject.getIdentifiers()</code></a></td>
   </tr>
   <tr>
     <td><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CoordinateOperation.html?is-external=true#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing.operation" class="externalLink">"domainOfValidity"</a></td>
     <td><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></td>
     <td><a href="AbstractCoordinateOperation.html#getDomainOfValidity()"><code>AbstractCoordinateOperation.getDomainOfValidity()</code></a></td>
   </tr>
 </table>

 <div class="section">Relationship between datum</div>
 By definition, coordinate <b>conversions</b> do not change the datum. Consequently the given <code>source­CRS</code>
 and <code>target­CRS</code> should use the same datum. If the datum is not the same, then the coordinate operation
 should probably be a <a href="DefaultTransformation.html" title="class in org.apache.sis.referencing.operation">transformation</a> instead.
 However Apache SIS does not enforce that condition, but we encourage users to follow it.
 The reason why SIS is tolerant is because some gray areas may exist about whether an operation
 should be considered as a conversion or a transformation.

 <div class="note"><b>Example:</b>
 converting time instants from a <a href="../crs/DefaultTemporalCRS.html" title="class in org.apache.sis.referencing.crs">temporal CRS</a> using
 the <cite>January 1st, 1950</cite> epoch to another temporal CRS using the <cite>January 1st, 1970</cite> epoch
 is a datum change, since the epoch is part of <a href="../datum/DefaultTemporalDatum.html" title="class in org.apache.sis.referencing.datum">temporal datum</a> definition. However such operation does not have all the accuracy issues of transformations
 between geodetic datum (empirically determined, over-determined systems, stochastic nature of the parameters).
 Consequently some users may consider sufficient to represent temporal epoch changes as conversions instead
 than transformations.</div>

 Note that while Apache SIS accepts to construct <code>Default­Conversion</code> instances
 with different source and target datum, it does not accept to use such instances for
 <a href="../crs/DefaultDerivedCRS.html" title="class in org.apache.sis.referencing.crs">derived CRS</a> construction.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the properties to be given to the identified object.</dd>
<dd><code>source­CRS</code> - the source CRS.</dd>
<dd><code>target­CRS</code> - the target CRS, which shall use a datum <a href="../../util/Utilities.html#equalsIgnoreMetadata(java.lang.Object,java.lang.Object)">equals (ignoring metadata)</a> to the source CRS datum.</dd>
<dd><code>interpolation­CRS</code> - the CRS of additional coordinates needed for the operation, or <code>null</code> if none.</dd>
<dd><code>method</code> - the coordinate operation method (mandatory in all cases).</dd>
<dd><code>transform</code> - transform from positions in the source CRS to positions in the target CRS.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultConversion</h4>
<pre>public&nbsp;DefaultConversion&#8203;(<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;?&gt;&nbsp;properties,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;method,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransform</a>&nbsp;transform,
                         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;parameters)</pre>
<div class="block">Creates a defining conversion from the given transform and/or parameters.
 This conversion has no source and target CRS since those elements are usually unknown
 at <cite>defining conversion</cite> construction time.
 The source and target CRS will become known later, at the
 <a href="../crs/DefaultDerivedCRS.html" title="class in org.apache.sis.referencing.crs">Derived CRS</a> or
 <a href="../crs/DefaultProjectedCRS.html" title="class in org.apache.sis.referencing.crs">Projected CRS</a>
 construction time.

 <p>The <code>properties</code> map given in argument follows the same rules than for the
 <a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform)">above constructor</a>.</p>

 <div class="section">Transform and parameters arguments</div>
 At least one of the <code>transform</code> or <code>parameters</code> argument must be non-null.
 If the caller supplies a <code>transform</code> argument, then it shall be a transform expecting
 <a href="../cs/AxesConvention.html#NORMALIZED">normalized</a> input coordinates
 and producing normalized output coordinates. See <a href="../cs/AxesConvention.html" title="enum in org.apache.sis.referencing.cs"><code>Axes­Convention</code></a>
 for more information about what Apache SIS means by "normalized".

 <p>If the caller can not yet supply a <code>Math­Transform</code>, then (s)he shall supply the parameter values needed
 for creating that transform, with the possible omission of <code>"semi_major"</code> and <code>"semi_minor"</code> values.
 The semi-major and semi-minor parameter values will be set automatically when the
 <a href="#specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)"><code>specialize(…)</code></a> method will be invoked.</p>

 <p>If both the <code>transform</code> and <code>parameters</code> arguments are non-null, then the later should describe
 the parameters used for creating the transform. Those parameters will be stored for information purpose and can
 be given back by the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Single­Operation​.get­Parameter­Values()</code></a> method.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the properties to be given to the identified object.</dd>
<dd><code>method</code> - the operation method.</dd>
<dd><code>transform</code> - transform from positions in the source CRS to positions in the target CRS, or <code>null</code>.</dd>
<dd><code>parameters</code> - the <code>transform</code> parameter values, or <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="transform/DefaultMathTransformFactory.html#swapAndScaleAxes(org.opengis.referencing.operation.MathTransform,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>Default­Math­Transform­Factory​.swap­And­Scale­Axes(Math­Transform, Default­Math­Transform­Factory​.Context)</code></a></dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.opengis.referencing.operation.Conversion)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultConversion</h4>
<pre>protected&nbsp;DefaultConversion&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&nbsp;operation)</pre>
<div class="block">Creates a new coordinate operation with the same values than the specified one.
 This copy constructor provides a way to convert an arbitrary implementation into a SIS one
 or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API.

 <p>This constructor performs a shallow copy, i.e. the properties are not cloned.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operation</code> - the coordinate operation to copy.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#castOrCopy(org.opengis.referencing.operation.Conversion)"><code>cast­Or­Copy(Conversion)</code></a></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="castOrCopy(org.opengis.referencing.operation.Conversion)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>castOrCopy</h4>
<pre class="methodSignature">public static&nbsp;<a href="DefaultConversion.html" title="class in org.apache.sis.referencing.operation">DefaultConversion</a>&nbsp;castOrCopy&#8203;(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&nbsp;object)</pre>
<div class="block">Returns a SIS coordinate operation implementation with the values of the given arbitrary implementation.
 This method performs the first applicable action in the following choices:

 <ul>
   <li>If the given object is <code>null</code>, then this method returns <code>null</code>.</li>
   <li>Otherwise if the given object is an instance of
       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Conversion</code></a>,
       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Projection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Projection</code></a>,
       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CylindricalProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Cylindrical­Projection</code></a>,
       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/ConicProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Conic­Projection</code></a> or
       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/PlanarProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Planar­Projection</code></a>,
       then this method delegates to the <code>cast­Or­Copy(…)</code> method of the corresponding SIS subclass.
       Note that if the given object implements more than one of the above-cited interfaces,
       then the <code>cast­Or­Copy(…)</code> method to be used is unspecified.</li>
   <li>Otherwise if the given object is already an instance of
       <code>Default­Conversion</code>, then it is returned unchanged.</li>
   <li>Otherwise a new <code>Default­Conversion</code> instance is created using the
       <a href="#%3Cinit%3E(org.opengis.referencing.operation.Conversion)">copy constructor</a>
       and returned. Note that this is a <cite>shallow</cite> copy operation, since the other
       properties contained in the given object are not recursively copied.</li>
 </ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to get as a SIS implementation, or <code>null</code> if none.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a SIS implementation containing the values of the given object (may be the
         given object itself), or <code>null</code> if the argument was null.</dd>
</dl>
</li>
</ul>
<a id="getInterface()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterface</h4>
<pre class="methodSignature">public&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 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&gt;&nbsp;getInterface()</pre>
<div class="block">Returns the GeoAPI interface implemented by this class.
 The default implementation returns <code>Conversion​.class</code>.
 Subclasses implementing a more specific GeoAPI interface shall override this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractCoordinateOperation.html#getInterface()">get­Interface</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">Abstract­Coordinate­Operation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the conversion interface implemented by this class.</dd>
</dl>
</li>
</ul>
<a id="specialize(java.lang.Class,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.crs.CoordinateReferenceSystem,org.opengis.referencing.operation.MathTransformFactory)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>specialize</h4>
<pre class="methodSignature">public&nbsp;&lt;T extends <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>&gt;&nbsp;T&nbsp;specialize&#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;baseType,
                                           <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;sourceCRS,
                                           <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/crs/CoordinateReferenceSystem.html?is-external=true" title="class or interface in org.opengis.referencing.crs" class="externalLink">CoordinateReferenceSystem</a>&nbsp;targetCRS,
                                           <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransformFactory.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">MathTransformFactory</a>&nbsp;factory)
                                    throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">FactoryException</a></pre>
<div class="block">Returns a specialization of this conversion with a more specific type, source and target CRS.
 This <code>specialize(…)</code> method is typically invoked on <a href="#%3Cinit%3E(java.util.Map,org.opengis.referencing.operation.OperationMethod,org.opengis.referencing.operation.MathTransform,org.opengis.parameter.ParameterValueGroup)">defining conversion</a> instances,
 when more information become available about the conversion to create.

 <p>The given <code>base­Type</code> argument can be one of the following values:</p>
 <ul>
   <li><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Conversion.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conversion</a>.class</code></li>
   <li><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/Projection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Projection</a>.class</code></li>
   <li><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/CylindricalProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Cylindrical­Projection</a>.class</code></li>
   <li><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/ConicProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Conic­Projection</a>.class</code></li>
   <li><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/PlanarProjection.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Planar­Projection</a>.class</code></li>
 </ul>

 This <code>specialize(…)</code> method returns a conversion which implement at least the given <code>base­Type</code>
 interface, but may also implement a more specific GeoAPI interface if <code>specialize(…)</code> has been able
 to infer the type from this operation <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getMethod()" title="class or interface in org.opengis.referencing.operation" class="externalLink">method</a>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - compile-time type of the <code>base­Type</code> argument.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base­Type</code> - the base GeoAPI interface to be implemented by the conversion to return.</dd>
<dd><code>source­CRS</code> - the source CRS.</dd>
<dd><code>target­CRS</code> - the target CRS.</dd>
<dd><code>factory</code> - the factory to use for creating a transform from the parameters or for performing axis changes.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the conversion of the given type between the given CRS.</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 a contradiction is found between the given <code>base­Type</code>,
         the defining <a href="#getInterface()">conversion type</a> and
         the <a href="DefaultOperationMethod.html#getOperationType()">method operation type</a>.</dd>
<dd><code><a href="MismatchedDatumException.html" title="class in org.apache.sis.referencing.operation">Mismatched­Datum­Exception</a></code> - if the given CRS do not use the same datum than the source and target CRS
         of this conversion.</dd>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/FactoryException.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Factory­Exception</a></code> - if the creation of a <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/MathTransform.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink"><code>Math­Transform</code></a> from the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink">parameter values</a>, or a <a href="../cs/CoordinateSystems.html#swapAndScaleAxes(org.opengis.referencing.cs.CoordinateSystem,org.opengis.referencing.cs.CoordinateSystem)">change of axis order or units</a>
         failed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="transform/DefaultMathTransformFactory.html#createParameterizedTransform(org.opengis.parameter.ParameterValueGroup,org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.Context)"><code>Default­Math­Transform­Factory​.create­Parameterized­Transform(Parameter­Value­Group, Default­Math­Transform­Factory​.Context)</code></a></dd>
</dl>
</li>
</ul>
<a id="getMethod()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethod</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/OperationMethod.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">OperationMethod</a>&nbsp;getMethod()</pre>
<div class="block">Returns a description of the operation method, including a list of expected parameter names.
 The returned object does not contains any parameter value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getMethod()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Method</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Single­Operation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a description of the operation method.</dd>
</dl>
</li>
</ul>
<a id="getParameterDescriptors()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterDescriptors</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterDescriptorGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterDescriptorGroup</a>&nbsp;getParameterDescriptors()</pre>
<div class="block">Returns a description of the parameters. The default implementation performs the following choice:

 <ul>
   <li>If parameter values were specified explicitly at construction time,
       then the descriptor of those parameters is returned.</li>
   <li>Otherwise if this method can infer the parameter descriptor from the
       <a href="AbstractCoordinateOperation.html#getMathTransform()">math transform</a>, then that descriptor is returned.</li>
   <li>Otherwise fallback on the <a href="DefaultOperationMethod.html#getParameters()">method parameters</a>.</li>
 </ul>

 <div class="note"><b>Note:</b>
 the two parameter descriptions (from the <code>Math­Transform</code> or from the <code>Operation­Method</code>)
 should be very similar. If they differ, it should be only in minor details like remarks, default
 values or units of measurement.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../parameter/Parameterized.html#getParameterDescriptors()">get­Parameter­Descriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a description of the parameters.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultOperationMethod.html#getParameters()"><code>Default­Operation­Method​.get­Parameters()</code></a>, 
<a href="transform/AbstractMathTransform.html#getParameterDescriptors()"><code>Abstract­Math­Transform​.get­Parameter­Descriptors()</code></a></dd>
</dl>
</li>
</ul>
<a id="getParameterValues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValues</h4>
<pre class="methodSignature">public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/parameter/ParameterValueGroup.html?is-external=true" title="class or interface in org.opengis.parameter" class="externalLink">ParameterValueGroup</a>&nbsp;getParameterValues()</pre>
<div class="block">Returns the parameter values. The default implementation performs the following choice:

 <ul>
   <li>If parameter values were specified explicitly at construction time, then they are returned as an
       <a href="../../parameter/Parameters.html#unmodifiable(org.opengis.parameter.ParameterValueGroup)">unmodifiable parameter group</a>.</li>
   <li>Otherwise if this method can infer the parameter values from the
       <a href="AbstractCoordinateOperation.html#getMathTransform()">math transform</a>, then those parameters are returned.</li>
   <li>Otherwise throw <a href="../../util/UnsupportedImplementationException.html" title="class in org.apache.sis.util"><code>Unsupported­Implementation­Exception</code></a>.</li>
 </ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../parameter/Parameterized.html#getParameterValues()">get­Parameter­Values</a></code>&nbsp;in interface&nbsp;<code><a href="../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="externalLink">get­Parameter­Values</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/operation/SingleOperation.html?is-external=true" title="class or interface in org.opengis.referencing.operation" class="externalLink">Single­Operation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parameter values.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Unsupported­Operation­Exception</a></code> - if the parameter values can not be determined
         for the current math transform implementation.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="transform/AbstractMathTransform.html#getParameterValues()"><code>Abstract­Math­Transform​.get­Parameter­Values()</code></a></dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">
<!--   -->
</a>
<ul class="blockListLast">
<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;object,
                      <a href="../../util/ComparisonMode.html" title="enum in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</pre>
<div class="block">Compares this coordinate operation with the specified object for equality. If the <code>mode</code> argument
 is <a href="../../util/ComparisonMode.html#STRICT"><code>Comparison­Mode​.STRICT</code></a> or <a href="../../util/ComparisonMode.html#BY_CONTRACT"><code>BY_CONTRACT</code></a>, then all available
 properties are compared including the <a href="AbstractCoordinateOperation.html#getDomainOfValidity()">domain of validity</a> and the
 <a href="AbstractCoordinateOperation.html#getScope()">scope</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../util/LenientComparable.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="AbstractCoordinateOperation.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in class&nbsp;<code><a href="AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">Abstract­Coordinate­Operation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to compare to <code>this</code>.</dd>
<dd><code>mode</code> - <a href="../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a> for performing a strict comparison, or
                 <a href="../../util/ComparisonMode.html#IGNORE_METADATA"><code>IGNORE_METADATA</code></a> for ignoring properties
                 that do not make a difference in the numerical results of coordinate operations.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if both objects are equal for the given comparison mode.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../AbstractIdentifiedObject.html#computeHashCode()"><code>Abstract­Identified­Object​.compute­Hash­Code()</code></a>, 
<a href="../../util/Utilities.html#deepEquals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)"><code>Utilities​.deep­Equals(Object, Object, Comparison­Mode)</code></a></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/DefaultConversion.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>Field&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>
