blob: 951bdbf16a34f8a04b2245c125b1abec67bb979a [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>ParameterBuilder (Apache SIS 1.4 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-10-05">
<meta name="description" content="declaration: module: org.apache.sis.referencing, package: org.apache.sis.parameter, class: ParameterBuilder">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.parameter.ParameterBuilder class">
<meta name="keywords" content="setRequired()">
<meta name="keywords" content="create()">
<meta name="keywords" content="createStrictlyPositive()">
<meta name="keywords" content="createBounded()">
<meta name="keywords" content="createEnumerated()">
<meta name="keywords" content="createGroup()">
<meta name="keywords" content="createGroupWithSameParameters()">
<meta name="keywords" content="createGroupForMapProjection()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">org.apache.sis.referencing</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.parameter</a></div>
<h1 title="Class ParameterBuilder" class="title">Class ParameterBuilder</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance"><a href="../referencing/Builder.html" title="class in org.apache.sis.referencing">Builder</a>&lt;<a href="ParameterBuilder.html" title="class in org.apache.sis.parameter">ParameterBuilder</a>&gt;
<div class="inheritance">ParameterBuilder</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ParameterBuilder</span>
<span class="extends-implements">extends <a href="../referencing/Builder.html" title="class in org.apache.sis.referencing">Builder</a>&lt;<a href="ParameterBuilder.html" title="class in org.apache.sis.parameter">ParameterBuilder</a>&gt;</span></div>
<div class="block">Helper class for <a href="DefaultParameterDescriptor.html" title="class in org.apache.sis.parameter">parameter descriptor</a> instantiations.
This builder can be helpful to operation or process <em>providers</em> (e.g. map projection
implementers). Operation <em>users</em> do not need this builder since they can invoke
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html#createValue()" title="class or interface in org.opengis.parameter" class="external-link"><code>Parameter­Descriptor​.create­Value()</code></a> on the descriptor provided by the implementer.
<h2 id="identification-properties-heading">Identification properties</h2>
The following properties are cleared after a call to any <code>create­XXX(…)</code> method,
since those properties are specific to the each parameter. Other properties like codespace,
version and multiplicity are left unchanged because they may be shared by many parameters.
<ul class="verbose">
<li><b><a href="../referencing/AbstractIdentifiedObject.html#getName()">Names</a>:</b>
each parameter must have a name, which can be specified by any of the <a href="../referencing/Builder.html#addName(java.lang.CharSequence)"><code>add­Name(…)</code></a> methods. Parameters can optionally have an arbitrary number of aliases, which are also specified
by the <code>add­Name(…)</code> methods. Each call after the first one adds an alias.</li>
<li><b><a href="../referencing/AbstractIdentifiedObject.html#getIdentifiers()">Identifiers</a>:</b>
parameters can also have an arbitrary number of identifiers, which are specified by any of the
<a href="../referencing/Builder.html#addIdentifier(java.lang.String)"><code>add­Identifier(…)</code></a> methods. Like names, more than one identifier can be
added by invoking the method many time.</li>
<li><b><a href="../referencing/AbstractIdentifiedObject.html#getRemarks()">Remarks</a>:</b>
parameters can have at most one remark, which is specified by the <code>set­Remarks(…)</code> method.</li>
</ul>
<h2 id="usage-example-heading">Usage example</h2>
Parameter descriptors are typically grouped in a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link"><code>Parameter­Descriptor­Group</code></a>.
All parameters usually have the same namespace, which can be declared only once.
The following example creates parameters for <cite>"Mercator (variant A)"</cite>
projection method (EPSG:9804), previously known as <cite>"Mercator (1SP)"</cite>,
centered by default on (0°,0°) with no scale factor and no false easting/northing.
The projection is valid from 80°S to 84°N and on all the longitude range (±180°).
In this example, the <cite>"Longitude of natural origin"</cite> parameter is giving different aliases
for illustrating the case of different software libraries or standards using different conventions.
<div class="snippet-container"><button class="copy snippet-copy" aria-label="Copy snippet" onclick="copySnippet(this)"><span data-copied="Copied!">Copy</span><img src="../../../../../copy.svg" alt="Copy snippet"></button>
<pre class="snippet"><code class="language-java">public class MyOperation {
public static final ParameterDescriptorGroup PARAMETERS;
static {
ParameterBuilder builder = new ParameterBuilder();
builder.setCodeSpace(Citations.EPSG, "EPSG") // The default namespace to be used below.
.setRequired(true); // All parameters will be considered mandatory.
// Constructs the list of parameters.
ParameterDescriptor&lt;?&gt;[] parameters = {
builder.addName("Latitude of natural origin") // Name in the default namespace ("EPSG" in this example).
.createBounded( -80, +84, 0, Units.DEGREE), // Latitude of Mercator projection cannot go to the poles.
builder.addIdentifier("8802") // Primary key in default namespace ("EPSG" in this example).
.addName("Longitude of natural origin") // Primary name in default namespace ("EPSG" in this example).
.addName(Citations.OGC, "central_meridian") // First alias in "OGC" namespace.
.addName(Citations.GEOTIFF, "NatOriginLong") // Second alias in "GeoTIFF" namespace.
.createBounded(-180, +180, 0, Units.DEGREE), // Projection is valid on all the longitude range (±180°).
builder.addName("Scale factor at natural origin")
.createStrictlyPositive(1, Units.UNITY),
builder.addName("False easting")
.create(0, Units.METRE),
builder.addName("False northing")
.create(0, Units.METRE)
};
// Put all above parameters in a group.
PARAMETERS = ParameterDescriptorGroup group = builder
.addIdentifier("9804") // Defined in implicit "EPSG" namespace.
.addName ("Mercator (variant A)") // Defined in implicit "EPSG" namespace.
.addName ("Mercator (1SP)") // Defined in implicit "EPSG" namespace.
.addName (Citations.OGC, "Mercator_1SP") // "OGC" namespace explicitly shown by toString().
.addName (Citations.GEOTIFF, "CT_Mercator") // "GeoTIFF" namespace explicitly shown by toString().
.addIdentifier(Citations.GEOTIFF, "7")
.setRemarks ("The “Mercator (1SP)” method name was used prior to October 2010.")
.createGroupForMapProjection(parameters);
}
}
</code></pre>
</div>
</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.4</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-Builder">Fields inherited from class&nbsp;<a href="../referencing/Builder.html" title="class in org.apache.sis.referencing">Builder</a></h3>
<code><a href="../referencing/Builder.html#properties">properties</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Parameter­Builder</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new builder.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.opengis.parameter.GeneralParameterDescriptor)" class="member-name-link">Parameter­Builder</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">General­Parameter­Descriptor</a>&nbsp;descriptor)</code></div>
<div class="col-last odd-row-color">
<div class="block">Creates a new builder initialized to properties of the given object.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#create(double,javax.measure.Unit)" class="member-name-link">create</a><wbr>(double&nbsp;default­Value,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for floating point values without domain restriction.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;T&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#create(java.lang.Class,T)" class="member-name-link">create</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;value­Class,
T&nbsp;default­Value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for values of the given type without domain restriction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createBounded(double,double,double,javax.measure.Unit)" class="member-name-link">create­Bounded</a><wbr>(double&nbsp;minimum­Value,
double&nbsp;maximum­Value,
double&nbsp;default­Value,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for floating point values restricted to the given domain.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createBounded(int,int,int)" class="member-name-link">create­Bounded</a><wbr>(int&nbsp;minimum­Value,
int&nbsp;maximum­Value,
int&nbsp;default­Value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for integer values restricted to the given domain.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;? super T&gt;&gt;<br><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;T&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createBounded(java.lang.Class,T,T,T)" class="member-name-link">create­Bounded</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;value­Class,
T&nbsp;minimum­Value,
T&nbsp;maximum­Value,
T&nbsp;default­Value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for values of the given type restricted to the given domain.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;? super T&gt;&gt;<br><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;T&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createBounded(org.apache.sis.measure.Range,T)" class="member-name-link">create­Bounded</a><wbr>(<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/Range.html" title="class in org.apache.sis.measure">Range</a>&lt;T&gt;&nbsp;value­Domain,
T&nbsp;default­Value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for values in the domain represented by the given <code>Range</code> object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T&gt;&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;T&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createEnumerated(java.lang.Class,T%5B%5D,T)" class="member-name-link">create­Enumerated</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;value­Class,
T[]&nbsp;valid­Values,
T&nbsp;default­Value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for a parameter restricted to a set of valid values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor­Group</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createGroup(int,int,org.opengis.parameter.GeneralParameterDescriptor...)" class="member-name-link">create­Group</a><wbr>(int&nbsp;minimum­Occurs,
int&nbsp;maximum­Occurs,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">General­Parameter­Descriptor</a>...&nbsp;parameters)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor group for the given multiplicity and parameters.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor­Group</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createGroup(org.opengis.parameter.GeneralParameterDescriptor...)" class="member-name-link">create­Group</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">General­Parameter­Descriptor</a>...&nbsp;parameters)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor group for the given parameters.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor­Group</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createGroupForMapProjection(org.opengis.parameter.ParameterDescriptor...)" class="member-name-link">create­Group­For­Map­Projection</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a>&lt;?&gt;...&nbsp;parameters)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor group for a map projection.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor­Group</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createGroupWithSameParameters(org.opengis.parameter.ParameterDescriptorGroup)" class="member-name-link">create­Group­With­Same­Parameters</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor­Group</a>&nbsp;parameters)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor group with the same parameters than another group.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">Parameter­Descriptor</a><wbr>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createStrictlyPositive(double,javax.measure.Unit)" class="member-name-link">create­Strictly­Positive</a><wbr>(double&nbsp;default­Value,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a descriptor for floating point values greater than zero.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ParameterBuilder.html" title="class in org.apache.sis.parameter">Parameter­Builder</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setRequired(boolean)" class="member-name-link">set­Required</a><wbr>(boolean&nbsp;required)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether the parameter is mandatory or optional.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Builder">Methods inherited from class&nbsp;<a href="../referencing/Builder.html" title="class in org.apache.sis.referencing">Builder</a></h3>
<code><a href="../referencing/Builder.html#addIdentifier(java.lang.String)">add­Identifier</a>, <a href="../referencing/Builder.html#addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)">add­Identifier</a>, <a href="../referencing/Builder.html#addIdentifier(org.opengis.referencing.ReferenceIdentifier)">add­Identifier</a>, <a href="../referencing/Builder.html#addName(java.lang.CharSequence)">add­Name</a>, <a href="../referencing/Builder.html#addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)">add­Name</a>, <a href="../referencing/Builder.html#addName(org.opengis.referencing.ReferenceIdentifier)">add­Name</a>, <a href="../referencing/Builder.html#addName(org.opengis.util.GenericName)">add­Name</a>, <a href="../referencing/Builder.html#addNameAndIdentifier(org.opengis.metadata.citation.Citation,org.opengis.referencing.IdentifiedObject)">add­Name­And­Identifier</a>, <a href="../referencing/Builder.html#addNamesAndIdentifiers(org.opengis.referencing.IdentifiedObject)">add­Names­And­Identifiers</a>, <a href="../referencing/Builder.html#onCreate(boolean)">on­Create</a>, <a href="../referencing/Builder.html#reidentify(org.opengis.metadata.citation.Citation,java.lang.String...)">reidentify</a>, <a href="../referencing/Builder.html#rename(org.opengis.metadata.citation.Citation,java.lang.CharSequence...)">rename</a>, <a href="../referencing/Builder.html#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">set­Code­Space</a>, <a href="../referencing/Builder.html#setDeprecated(boolean)">set­Deprecated</a>, <a href="../referencing/Builder.html#setDescription(java.lang.CharSequence)">set­Description</a>, <a href="../referencing/Builder.html#setRemarks(java.lang.CharSequence)">set­Remarks</a>, <a href="../referencing/Builder.html#setVersion(java.lang.String)">set­Version</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#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/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ParameterBuilder</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ParameterBuilder</span>()</div>
<div class="block">Creates a new builder.</div>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.parameter.GeneralParameterDescriptor)">
<h3>ParameterBuilder</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ParameterBuilder</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">GeneralParameterDescriptor</a>&nbsp;descriptor)</span></div>
<div class="block">Creates a new builder initialized to properties of the given object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>descriptor</code> - the descriptor from which to inherit properties, or <code>null</code>.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="setRequired(boolean)">
<h3>setRequired</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ParameterBuilder.html" title="class in org.apache.sis.parameter">ParameterBuilder</a></span>&nbsp;<span class="element-name">setRequired</span><wbr><span class="parameters">(boolean&nbsp;required)</span></div>
<div class="block">Sets whether the parameter is mandatory or optional.
This property determines the <a href="AbstractParameterDescriptor.html#getMinimumOccurs()">minimum number
of times</a> that values are required, which will be 0 for an optional parameter and 1 for a mandatory one.
<p><b>Default value:</b>
If this method is never invoked, then the default value is <code>false</code>.</p>
<p><b>Lifetime:</b>
this property is kept unchanged until this <code>set­Required(…)</code> method is invoked again.</p>
<h4 id="api-note-heading">API note</h4>
The <a href="AbstractParameterDescriptor.html#getMaximumOccurs()"><code>maximum number of occurrences</code></a> is fixed to 1 and cannot be changed with this builder
(except for <a href="#createGroup(int,int,org.opengis.parameter.GeneralParameterDescriptor...)">parameters group</a>)
because <a href="DefaultParameterValueGroup.html#parameter(java.lang.String)"><code>Default­Parameter­Value­Group​.parameter(String)</code></a> can return only one value.
Allowing to return more than one value would complicate the API for an uncommon case.
If nevertheless a maximum number of occurrences greater than 1 is really desired, Apache SIS supports
this feature but users have to create the <a href="DefaultParameterDescriptor.html" title="class in org.apache.sis.parameter"><code>Default­Parameter­Descriptor</code></a> instance themselves.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>required</code> - <code>true</code> for a mandatory parameter, or <code>false</code> for an optional one.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="create(java.lang.Class,T)">
<h3 id="create(java.lang.Class,java.lang.Object)">create</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;T&gt;</span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;valueClass,
T&nbsp;defaultValue)</span></div>
<div class="block">Creates a descriptor for values of the given type without domain restriction.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the compile-time type of the <code>value­Class</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>value­Class</code> - the class that describe the type of the parameter values.</dd>
<dd><code>default­Value</code> - the default value for the parameter, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given default value and unit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="create(double,javax.measure.Unit)">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(double&nbsp;defaultValue,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</span></div>
<div class="block">Creates a descriptor for floating point values without domain restriction.
All <code>double</code> values are considered valid.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>default­Value</code> - the default value for the parameter, or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link"><code>Double​.Na­N</code></a> if none.</dd>
<dd><code>unit</code> - the default unit, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given default value and unit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createStrictlyPositive(double,javax.measure.Unit)">
<h3>createStrictlyPositive</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</span>&nbsp;<span class="element-name">createStrictlyPositive</span><wbr><span class="parameters">(double&nbsp;defaultValue,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</span></div>
<div class="block">Creates a descriptor for floating point values greater than zero.
The zero value is not considered valid. There is no maximal value.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>default­Value</code> - the default value for the parameter, or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link"><code>Double​.Na­N</code></a> if none.</dd>
<dd><code>unit</code> - the default unit, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given default value and unit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createBounded(double,double,double,javax.measure.Unit)">
<h3>createBounded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&gt;</span>&nbsp;<span class="element-name">createBounded</span><wbr><span class="parameters">(double&nbsp;minimumValue,
double&nbsp;maximumValue,
double&nbsp;defaultValue,
<a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link">Unit</a>&lt;?&gt;&nbsp;unit)</span></div>
<div class="block">Creates a descriptor for floating point values restricted to the given domain.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>minimum­Value</code> - the minimum parameter value (inclusive), or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html#NEGATIVE_INFINITY" title="class or interface in java.lang" class="external-link"><code>Double​.NEGATIVE_INFINITY</code></a> if none.</dd>
<dd><code>maximum­Value</code> - the maximum parameter value (inclusive), or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html#POSITIVE_INFINITY" title="class or interface in java.lang" class="external-link"><code>Double​.POSITIVE_INFINITY</code></a> if none.</dd>
<dd><code>default­Value</code> - the default value for the parameter, or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link"><code>Double​.Na­N</code></a> if none.</dd>
<dd><code>unit</code> - the unit for default, minimum and maximum values, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given domain of values.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createBounded(int,int,int)">
<h3>createBounded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&gt;</span>&nbsp;<span class="element-name">createBounded</span><wbr><span class="parameters">(int&nbsp;minimumValue,
int&nbsp;maximumValue,
int&nbsp;defaultValue)</span></div>
<div class="block">Creates a descriptor for integer values restricted to the given domain.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>minimum­Value</code> - the minimum parameter value (inclusive).</dd>
<dd><code>maximum­Value</code> - the maximum parameter value (inclusive).</dd>
<dd><code>default­Value</code> - the default value for the parameter.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given domain of values.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createBounded(java.lang.Class,T,T,T)">
<h3 id="createBounded(java.lang.Class,java.lang.Comparable,java.lang.Comparable,java.lang.Comparable)">createBounded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;? super T&gt;&gt;</span>
<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;T&gt;</span>&nbsp;<span class="element-name">createBounded</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;valueClass,
T&nbsp;minimumValue,
T&nbsp;maximumValue,
T&nbsp;defaultValue)</span></div>
<div class="block">Creates a descriptor for values of the given type restricted to the given domain.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the compile-time type of the <code>value­Class</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>value­Class</code> - the class that describe the type of the parameter values.</dd>
<dd><code>minimum­Value</code> - the minimum parameter value (inclusive), or <code>null</code> if none.</dd>
<dd><code>maximum­Value</code> - the maximum parameter value (inclusive), or <code>null</code> if none.</dd>
<dd><code>default­Value</code> - the default value for the parameter, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given domain of values.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createBounded(org.apache.sis.measure.Range,T)">
<h3 id="createBounded(org.apache.sis.measure.Range,java.lang.Comparable)">createBounded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;? super T&gt;&gt;</span>
<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;T&gt;</span>&nbsp;<span class="element-name">createBounded</span><wbr><span class="parameters">(<a href="../../../../../org.apache.sis.util/org/apache/sis/measure/Range.html" title="class in org.apache.sis.measure">Range</a>&lt;T&gt;&nbsp;valueDomain,
T&nbsp;defaultValue)</span></div>
<div class="block">Creates a descriptor for values in the domain represented by the given <code>Range</code> object.
This method allows to specify whether the minimum and maximum values are inclusive or not.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the type of the parameter values.</dd>
<dt>Parameters:</dt>
<dd><code>value­Domain</code> - the minimum value, maximum value and unit of measurement.</dd>
<dd><code>default­Value</code> - the default value for the parameter, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given domain of values.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createEnumerated(java.lang.Class,T[],T)">
<h3 id="createEnumerated(java.lang.Class,java.lang.Object[],java.lang.Object)">createEnumerated</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;T&gt;</span>&nbsp;<span class="element-name">createEnumerated</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;valueClass,
T[]&nbsp;validValues,
T&nbsp;defaultValue)</span></div>
<div class="block">Creates a descriptor for a parameter restricted to a set of valid values.
The descriptor has no minimal or maximal value and no unit.
<p>The <code>valid­Values</code> property is mostly for restricting values to
a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/CodeList.html" title="class or interface in org.opengis.util" class="external-link">code list</a> or <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">enumeration</a> subset.
It is not necessary to provide this property when all values from the code list or enumeration are valid.</p></div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the compile-time type of the <code>value­Class</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>value­Class</code> - the class that describe the type of the parameter values.</dd>
<dd><code>valid­Values</code> - a finite set of valid values (usually from a code list or enumeration)
or <code>null</code> if it doesn't apply.</dd>
<dd><code>default­Value</code> - the default value for the parameter, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor for the given set of valid values.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createGroup(int,int,org.opengis.parameter.GeneralParameterDescriptor...)">
<h3>createGroup</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></span>&nbsp;<span class="element-name">createGroup</span><wbr><span class="parameters">(int&nbsp;minimumOccurs,
int&nbsp;maximumOccurs,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">GeneralParameterDescriptor</a>...&nbsp;parameters)</span></div>
<div class="block">Creates a descriptor group for the given multiplicity and parameters.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>minimum­Occurs</code> - the <a href="AbstractParameterDescriptor.html#getMinimumOccurs()">minimum</a>
number of times that values for this parameter group are required.</dd>
<dd><code>maximum­Occurs</code> - the <a href="AbstractParameterDescriptor.html#getMaximumOccurs()">maximum</a>
number of times that values for this parameter group are required.</dd>
<dd><code>parameters</code> - the <a href="DefaultParameterDescriptorGroup.html#descriptors()">parameter descriptors</a>
for the group to create.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor group.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createGroup(org.opengis.parameter.GeneralParameterDescriptor...)">
<h3>createGroup</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></span>&nbsp;<span class="element-name">createGroup</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/GeneralParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">GeneralParameterDescriptor</a>...&nbsp;parameters)</span></div>
<div class="block">Creates a descriptor group for the given parameters. This is a convenience method for
<a href="#createGroup(int,int,org.opengis.parameter.GeneralParameterDescriptor...)"><code>create­Group(int, int, General­Parameter­Descriptor[])</code></a> with a multiplicity of [0 … 1]
or [1 … 1] depending on the value given to the last call to <a href="#setRequired(boolean)"><code>set­Required(boolean)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parameters</code> - the <a href="DefaultParameterDescriptorGroup.html#descriptors()">parameter descriptors</a>
for the group to create.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor group.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createGroupWithSameParameters(org.opengis.parameter.ParameterDescriptorGroup)">
<h3>createGroupWithSameParameters</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></span>&nbsp;<span class="element-name">createGroupWithSameParameters</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a>&nbsp;parameters)</span></div>
<div class="block">Creates a descriptor group with the same parameters than another group. This is a convenience constructor
for operations that expect the same parameters than another operation, but perform a different process.
<h4 id="example-heading">Example</h4>
The various <cite>"Coordinate Frame Rotation"</cite> variants (EPSG codes 1032, 1038 and 9607)
expect the same parameters than their <cite>"Position Vector transformation"</cite> counterpart
(EPSG codes 1033, 1037 and 9606) but perform the rotation in the opposite direction.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parameters</code> - the existing group from which to copy the parameters.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor group.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createGroupForMapProjection(org.opengis.parameter.ParameterDescriptor...)">
<h3>createGroupForMapProjection</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></span>&nbsp;<span class="element-name">createGroupForMapProjection</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptor.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptor</a>&lt;?&gt;...&nbsp;parameters)</span></div>
<div class="block">Creates a descriptor group for a map projection. This method automatically adds mandatory parameters
for the <cite>semi-major</cite> and <cite>semi-minor axis length</cite>. Those parameters are usually
not explicitly included in parameter definitions since the axis lengths can be inferred from the
<a href="../referencing/datum/DefaultEllipsoid.html" title="class in org.apache.sis.referencing.datum">ellipsoid</a>.
However, <a href="../referencing/operation/transform/DefaultMathTransformFactory.html" title="class in org.apache.sis.referencing.operation.transform"><code>Default­Math­Transform­Factory</code></a> needs them.
<p>In addition, this method adds hidden parameters for alternative ways to express some standard parameters.
Those hidden parameters never appear in the <a href="DefaultParameterDescriptorGroup.html#descriptors()">list
of parameters</a>. However, when one of those parameters is read or written, the work will be delegated to the
standard parameters.</p>
<table class="sis">
<caption>Parameters automatically added by this method</caption>
<tr><th>Name</th> <th>Visibility</th> <th>Comment</th></tr>
<tr><td><code>"semi_major"</code></td> <td>Always</td> <td>Standard parameter defined by WKT 1.</td></tr>
<tr><td><code>"semi_minor"</code></td> <td>Always</td> <td>Standard parameter defined by WKT 1.</td></tr>
<tr><td><code>"earth_radius"</code></td> <td>Hidden</td> <td>Mapped to <code>"semi_major"</code> and <code>"semi_minor"</code> parameters.</td></tr>
<tr><td><code>"inverse_flattening"</code></td> <td>Hidden</td> <td>Computed from the <code>"semi_major"</code> and <code>"semi_minor"</code> parameters.</td></tr>
<tr><td><code>"standard_parallel"</code></td> <td>Hidden</td>
<td>Array of 1 or 2 elements mapped to <code>"standard_parallel_1"</code> and <code>"standard_parallel_2"</code>.</td></tr>
</table>
<b>Notes:</b>
<ul>
<li>The <code>"standard_parallel"</code> parameter descriptor is added only if the <code>parameters</code> argument
contains <code>"standard_parallel_1"</code> and <code>"standard_parallel_2"</code> descriptors.</li>
<li>When the <code>"earth_radius"</code> parameter is read, its value is the
<a href="../referencing/datum/DefaultEllipsoid.html#getAuthalicRadius()">authalic radius</a>
computed from the semi-major and semi-minor axis lengths.</li>
</ul>
Map projection parameter groups always have a <a href="AbstractParameterDescriptor.html#getMinimumOccurs()">minimum</a> and <a href="AbstractParameterDescriptor.html#getMaximumOccurs()">maximum occurrence</a> of 1,
regardless the value given to <a href="#setRequired(boolean)"><code>set­Required(boolean)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>parameters</code> - the <a href="DefaultParameterDescriptorGroup.html#descriptors()">parameter descriptors</a>
for the group to create.</dd>
<dt>Returns:</dt>
<dd>the parameter descriptor group for a map projection.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>