blob: 398a63a7c140a2438a2d126989db4399e98d228e [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>AttributeTypeBuilder (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.feature, package: org.apache.sis.feature.builder, class: AttributeTypeBuilder">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.feature.builder.AttributeTypeBuilder class">
<meta name="keywords" content="setName()">
<meta name="keywords" content="setMinimumOccurs()">
<meta name="keywords" content="setMaximumOccurs()">
<meta name="keywords" content="getValueClass()">
<meta name="keywords" content="setValueClass()">
<meta name="keywords" content="getDefaultValue()">
<meta name="keywords" content="setDefaultValue()">
<meta name="keywords" content="getValidValues()">
<meta name="keywords" content="setValidValues()">
<meta name="keywords" content="getMaximalLength()">
<meta name="keywords" content="setMaximalLength()">
<meta name="keywords" content="getUnit()">
<meta name="keywords" content="setUnit()">
<meta name="keywords" content="getCRS()">
<meta name="keywords" content="setCRS()">
<meta name="keywords" content="getCharacteristic()">
<meta name="keywords" content="addCharacteristic()">
<meta name="keywords" content="characteristics()">
<meta name="keywords" content="roles()">
<meta name="keywords" content="addRole()">
<meta name="keywords" content="setDefinition()">
<meta name="keywords" content="setDesignation()">
<meta name="keywords" content="setDescription()">
<meta name="keywords" content="setDeprecated()">
<meta name="keywords" content="remove()">
<meta name="keywords" content="build()">
<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>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">org.apache.sis.feature</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.feature.builder</a></div>
<h1 title="Class AttributeTypeBuilder" class="title">Class AttributeTypeBuilder&lt;V&gt;</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="TypeBuilder.html" title="class in org.apache.sis.feature.builder">TypeBuilder</a>
<div class="inheritance"><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">PropertyTypeBuilder</a>
<div class="inheritance">AttributeTypeBuilder&lt;V&gt;</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>V</code> - the class of attribute values.</dd>
</dl>
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../../../../../org.apache.sis.util/org/apache/sis/util/Localized.html" title="interface in org.apache.sis.util">Localized</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">AttributeTypeBuilder&lt;V&gt;</span>
<span class="extends-implements">extends <a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">PropertyTypeBuilder</a></span></div>
<div class="block">Describes one <code>Attribute­Type</code> which will be part of the feature type to be built by
a <code>Feature­Type­Builder</code>. An attribute can be for example a city name, a temperature
(together with its units of measurement and uncertainty if desired) or a geometric shape.
Attribute types contain the following information:
<ul>
<li>the name — a unique name which can be defined within a scope (or namespace).</li>
<li>the definition — a concise definition of the element.</li>
<li>the designation — a natural language designator for the element for user interfaces.</li>
<li>the description — information beyond that required for concise definition of the element.</li>
<li>the value class — often <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html" title="class or interface in java.lang" class="external-link"><code>Float</code></a> or <code>Geometry</code>.
Must be specified at <a href="FeatureTypeBuilder.html#addAttribute(java.lang.Class)">construction time</a>.</li>
<li>a default value — to be used when an attribute instance does not provide an explicit value.</li>
<li>characteristics — for example the units of measurement for all attributes of the same type.</li>
<li>multiplicity — the minimum and maximum occurrences of attribute values.</li>
</ul></div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.8</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="FeatureTypeBuilder.html#addAttribute(java.lang.Class)"><code>Feature­Type­Builder​.add­Attribute(Class)</code></a></li>
<li><a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature"><code>Default­Attribute­Type</code></a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-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>&lt;C&gt;&nbsp;<a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">Characteristic­Type­Builder</a><wbr>&lt;C&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCharacteristic(java.lang.Class)" class="member-name-link">add­Characteristic</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;C&gt;&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds another attribute type that describes this attribute type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;C&gt;&nbsp;<a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">Characteristic­Type­Builder</a><wbr>&lt;C&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCharacteristic(org.apache.sis.feature.DefaultAttributeType)" class="member-name-link">add­Characteristic</a><wbr>(<a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature">Default­Attribute­Type</a>&lt;C&gt;&nbsp;template)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds another attribute type that describes this attribute type, using an existing one as a template.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addRole(org.apache.sis.feature.builder.AttributeRole)" class="member-name-link">add­Role</a><wbr>(<a href="AttributeRole.html" title="enum class in org.apache.sis.feature.builder">Attribute­Role</a>&nbsp;role)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Flags this attribute as an input of one of the predefined operations managed by <code>Attribute­Type­Builder</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature">Default­Attribute­Type</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#build()" class="member-name-link">build</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Builds the attribute type from the information specified to this builder.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><wbr>&lt;<a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">Characteristic­Type­Builder</a>&lt;?&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#characteristics()" class="member-name-link">characteristics</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a view of all characteristics added to the <code>Attribute­Type</code> to build.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">Characteristic­Type­Builder</a><wbr>&lt;?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCharacteristic(java.lang.String)" class="member-name-link">get­Characteristic</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the builder for the characteristic of the given name.</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/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">Coordinate­Reference­System</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCRS()" class="member-name-link">get­CRS</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the coordinate reference system associated to attribute values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDefaultValue()" class="member-name-link">get­Default­Value</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the default value for the attribute, or <code>null</code> if none.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMaximalLength()" class="member-name-link">get­Maximal­Length</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the maximal length that characterizes the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> values of this attribute.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><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><wbr>&lt;?&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUnit()" class="member-name-link">get­Unit</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the unit of measurement associated to attribute values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValidValues()" class="member-name-link">get­Valid­Values</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns an enumeration of valid values for the attribute, or an empty array if none.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#getValueClass()" class="member-name-link">get­Value­Class</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the class of attribute values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#remove()" class="member-name-link">remove</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Removes this property from the <code>Feature­Type­Builder</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><wbr>&lt;<a href="AttributeRole.html" title="enum class in org.apache.sis.feature.builder">Attribute­Role</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="#roles()" class="member-name-link">roles</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the roles that the attribute play in the predefined operations managed by <code>Attribute­Type­Builder</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setCRS(org.opengis.referencing.crs.CoordinateReferenceSystem)" class="member-name-link">set­CRS</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">Coordinate­Reference­System</a>&nbsp;crs)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the coordinate reference system that characterizes the values of this attribute.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setDefaultValue(V)" class="member-name-link">set­Default­Value</a><wbr>(<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the default value for the attribute.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setDefinition(java.lang.CharSequence)" class="member-name-link">set­Definition</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;definition)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets a concise definition of the element.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setDeprecated(boolean)" class="member-name-link">set­Deprecated</a><wbr>(boolean&nbsp;deprecated)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether the type is deprecated.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setDescription(java.lang.CharSequence)" class="member-name-link">set­Description</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;description)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets optional information beyond that required for concise definition of the element.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setDesignation(java.lang.CharSequence)" class="member-name-link">set­Designation</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;designation)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets a natural language designator for the element.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setMaximalLength(java.lang.Integer)" class="member-name-link">set­Maximal­Length</a><wbr>(<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>&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the maximal length that characterizes the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> values of this attribute.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setMaximumOccurs(int)" class="member-name-link">set­Maximum­Occurs</a><wbr>(int&nbsp;occurs)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the maximum number of attribute values.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setMinimumOccurs(int)" class="member-name-link">set­Minimum­Occurs</a><wbr>(int&nbsp;occurs)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the minimum number of attribute values.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setName(java.lang.CharSequence)" class="member-name-link">set­Name</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;local­Part)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the <code>Attribute­Type</code> name as a simple string (local name).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setName(java.lang.CharSequence...)" class="member-name-link">set­Name</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>...&nbsp;components)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the <code>Attribute­Type</code> name as a string in the given scope.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setName(org.opengis.util.GenericName)" class="member-name-link">set­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">Generic­Name</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the <code>Attribute­Type</code> name as a generic name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setUnit(javax.measure.Unit)" class="member-name-link">set­Unit</a><wbr>(<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">Sets the unit of measurement that characterizes the values of this attribute.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</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="#setValidValues(V...)" class="member-name-link">set­Valid­Values</a><wbr>(<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>...&nbsp;values)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets an enumeration of valid values for the attribute.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;N&gt;&nbsp;<a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">Attribute­Type­Builder</a><wbr>&lt;N&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setValueClass(java.lang.Class)" class="member-name-link">set­Value­Class</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;N&gt;&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the class of attribute values.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-PropertyTypeBuilder">Methods inherited from class&nbsp;<a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">PropertyTypeBuilder</a></h3>
<code><a href="PropertyTypeBuilder.html#getMaximumOccurs()">get­Maximum­Occurs</a>, <a href="PropertyTypeBuilder.html#getMinimumOccurs()">get­Minimum­Occurs</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-TypeBuilder">Methods inherited from class&nbsp;<a href="TypeBuilder.html" title="class in org.apache.sis.feature.builder">TypeBuilder</a></h3>
<code><a href="TypeBuilder.html#getDefinition()">get­Definition</a>, <a href="TypeBuilder.html#getDescription()">get­Description</a>, <a href="TypeBuilder.html#getDesignation()">get­Designation</a>, <a href="TypeBuilder.html#getLocale()">get­Locale</a>, <a href="TypeBuilder.html#getName()">get­Name</a>, <a href="TypeBuilder.html#isDeprecated()">is­Deprecated</a>, <a href="TypeBuilder.html#toString()">to­String</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#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">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="setName(org.opengis.util.GenericName)">
<h3>setName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/GenericName.html" title="class or interface in org.opengis.util" class="external-link">GenericName</a>&nbsp;name)</span></div>
<div class="block">Sets the <code>Attribute­Type</code> name as a generic name.
If another name was defined before this method call, that previous value will be discarded.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setName(org.opengis.util.GenericName)">set­Name</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>name</code> - the attribute name (cannot be <code>null</code>).</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getName()"><code>Type­Builder​.get­Name()</code></a></li>
<li><a href="TypeBuilder.html#setName(java.lang.CharSequence)"><code>Type­Builder​.set­Name(Char­Sequence)</code></a></li>
<li><a href="../AbstractIdentifiedType.html#NAME_KEY"><code>Abstract­Identified­Type​.NAME_KEY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setName(java.lang.CharSequence)">
<h3>setName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setName</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;localPart)</span></div>
<div class="block">Sets the <code>Attribute­Type</code> name as a simple string (local name).
The namespace will be the value specified by the last call to <a href="FeatureTypeBuilder.html#setNameSpace(java.lang.CharSequence)"><code>Feature­Type­Builder​.set­Name­Space(Char­Sequence)</code></a>,
but that namespace will not be visible in the <a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/DefaultLocalName.html#toString()">string representation</a> unless the <a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#toFullyQualifiedName()">fully qualified name</a> is requested.
<p>This convenience method creates a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html" title="class or interface in org.opengis.util" class="external-link"><code>Local­Name</code></a> instance from
the given <code>Char­Sequence</code>, then delegates to <a href="#setName(org.opengis.util.GenericName)"><code>set­Name(Generic­Name)</code></a>.</p></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setName(java.lang.CharSequence)">set­Name</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>local­Part</code> - the local part of the generic name as a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>International­String</code></a>.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getName()"><code>Type­Builder​.get­Name()</code></a></li>
<li><a href="TypeBuilder.html#setName(java.lang.CharSequence...)"><code>Type­Builder​.set­Name(Char­Sequence...)</code></a></li>
<li><a href="FeatureTypeBuilder.html#getNameSpace()"><code>Feature­Type­Builder​.get­Name­Space()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setName(java.lang.CharSequence...)">
<h3>setName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setName</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>...&nbsp;components)</span></div>
<div class="block">Sets the <code>Attribute­Type</code> name as a string in the given scope.
The <code>components</code> array must contain at least one element.
The last component (the <a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#tip()">tip</a>) will be sufficient
in many cases for calls to the <a href="../AbstractFeature.html#getProperty(java.lang.String)"><code>Abstract­Feature​.get­Property(String)</code></a> method.
The other elements before the last one are optional and can be used for resolving ambiguity.
They will be visible as the name <a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/DefaultScopedName.html#path()">path</a>.
<div class="note"><b>Example:</b>
a call to <code>set­Name("A", "B", "C")</code> will create a "A:B:C" name.
An attribute built with this name can be obtained from a feature by a call to <code>feature​.get­Property("C")</code>
if there is no ambiguity, or otherwise by a call to <code>feature​.get­Property("B:C")</code> (if non-ambiguous) or
<code>feature​.get­Property("A:B:C")</code>.</div>
In addition to the path specified by the <code>components</code> array, the name may also contain
a namespace specified by the last call to <a href="FeatureTypeBuilder.html#setNameSpace(java.lang.CharSequence)"><code>Feature­Type­Builder​.set­Name­Space(Char­Sequence)</code></a>.
But contrarily to the specified components, the namespace will not be visible in the name
<a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#toString()">string representation</a> unless the
<a href="../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#toFullyQualifiedName()">fully qualified name</a> is requested.
<p>This convenience method creates a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/LocalName.html" title="class or interface in org.opengis.util" class="external-link"><code>Local­Name</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/ScopedName.html" title="class or interface in org.opengis.util" class="external-link"><code>Scoped­Name</code></a>
instance depending on whether the <code>names</code> array contains exactly 1 element or more than 1 element, then
delegates to <a href="#setName(org.opengis.util.GenericName)"><code>set­Name(Generic­Name)</code></a>.</p></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setName(java.lang.CharSequence...)">set­Name</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>components</code> - the name components as an array of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> or <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/InternationalString.html" title="class or interface in org.opengis.util" class="external-link"><code>International­String</code></a> instances.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getName()"><code>Type­Builder​.get­Name()</code></a></li>
<li><a href="TypeBuilder.html#setName(java.lang.CharSequence)"><code>Type­Builder​.set­Name(Char­Sequence)</code></a></li>
<li><a href="FeatureTypeBuilder.html#getNameSpace()"><code>Feature­Type­Builder​.get­Name­Space()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMinimumOccurs(int)">
<h3>setMinimumOccurs</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setMinimumOccurs</span><wbr><span class="parameters">(int&nbsp;occurs)</span></div>
<div class="block">Sets the minimum number of attribute values. If the given number is greater than the
<a href="PropertyTypeBuilder.html#getMaximumOccurs()">maximal number</a> of attribute values, than the maximum
is also set to that value.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setMinimumOccurs(int)">set­Minimum­Occurs</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>occurs</code> - the new minimum number of attribute values.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="PropertyTypeBuilder.html#getMinimumOccurs()"><code>Property­Type­Builder​.get­Minimum­Occurs()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMaximumOccurs(int)">
<h3>setMaximumOccurs</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setMaximumOccurs</span><wbr><span class="parameters">(int&nbsp;occurs)</span></div>
<div class="block">Sets the maximum number of attribute values. If the given number is less than the
<a href="PropertyTypeBuilder.html#getMinimumOccurs()">minimal number</a> of attribute values, than the minimum
is also set to that value. <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html#MAX_VALUE" title="class or interface in java.lang" class="external-link"><code>Integer​.MAX_VALUE</code></a> means that there is no maximum.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setMaximumOccurs(int)">set­Maximum­Occurs</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>occurs</code> - the new maximum number of attribute values.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="PropertyTypeBuilder.html#getMaximumOccurs()"><code>Property­Type­Builder​.get­Maximum­Occurs()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValueClass()">
<h3>getValueClass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">getValueClass</span>()</div>
<div class="block">Returns the class of attribute values.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the class of attribute values.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#setValueClass(java.lang.Class)"><code>set­Value­Class(Class)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setValueClass(java.lang.Class)">
<h3>setValueClass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;N&gt;</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;N&gt;</span>&nbsp;<span class="element-name">setValueClass</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;N&gt;&nbsp;type)</span>
throws <span class="exceptions"><a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnconvertibleObjectException.html" title="class in org.apache.sis.util">UnconvertibleObjectException</a></span></div>
<div class="block">Sets the class of attribute values. Callers <strong>must</strong> use the builder returned by this method
instead of <code>this</code> builder after this method call, since the returned builder may be a new instance.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>N</code> - the compile-time value of the <code>type</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>type</code> - the new class of attribute values.</dd>
<dt>Returns:</dt>
<dd>the attribute builder — <em>not necessarily this instance.</em></dd>
<dt>Throws:</dt>
<dd><code><a href="../../../../../../org.apache.sis.util/org/apache/sis/util/UnconvertibleObjectException.html" title="class in org.apache.sis.util">Unconvertible­Object­Exception</a></code> - if the <a href="#getDefaultValue()">default value</a>
cannot be converted to the given <code>&lt;N&gt;</code> class.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getValueClass()"><code>get­Value­Class()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDefaultValue()">
<h3>getDefaultValue</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a></span>&nbsp;<span class="element-name">getDefaultValue</span>()</div>
<div class="block">Returns the default value for the attribute, or <code>null</code> if none.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the default attribute value, or <code>null</code> if none.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#setDefaultValue(V)"><code>set­Default­Value(Object)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDefaultValue(V)">
<h3 id="setDefaultValue(java.lang.Object)">setDefaultValue</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setDefaultValue</span><wbr><span class="parameters">(<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&nbsp;value)</span></div>
<div class="block">Sets the default value for the attribute.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - default attribute value, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getDefaultValue()"><code>get­Default­Value()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValidValues()">
<h3>getValidValues</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>[]</span>&nbsp;<span class="element-name">getValidValues</span>()</div>
<div class="block">Returns an enumeration of valid values for the attribute, or an empty array if none.
This convenience method returns the value of the characteristic set by <a href="#setValidValues(V...)"><code>set­Valid­Values(Object...)</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>valid values for the attribute, or an empty array if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setValidValues(V...)">
<h3 id="setValidValues(java.lang.Object[])">setValidValues</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SafeVarargs.html" title="class or interface in java.lang" class="external-link">@SafeVarargs</a>
</span><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setValidValues</span><wbr><span class="parameters">(<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>...&nbsp;values)</span></div>
<div class="block">Sets an enumeration of valid values for the attribute.
<p>This is a convenience method for <a href="#addCharacteristic(java.lang.Class)"><code>add­Characteristic(Class)</code></a> with a value
of type <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link"><code>Set</code></a> and a conventional name.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>values</code> - valid values.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMaximalLength()">
<h3>getMaximalLength</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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></span>&nbsp;<span class="element-name">getMaximalLength</span>()</div>
<div class="block">Returns the maximal length that characterizes the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> values of this attribute.
This convenience method returns the value of the characteristic set by <a href="#setMaximalLength(java.lang.Integer)"><code>set­Maximal­Length(Integer)</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the maximal length of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> attribute values, or <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMaximalLength(java.lang.Integer)">
<h3>setMaximalLength</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setMaximalLength</span><wbr><span class="parameters">(<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>&nbsp;length)</span></div>
<div class="block">Sets the maximal length that characterizes the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> values of this attribute.
While this characteristic can be applied to any kind of attribute, it is meaningful only with
character sequences.
<p>This is a convenience method for <a href="#addCharacteristic(java.lang.Class)"><code>add­Characteristic(Class)</code></a> with a value
of type <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"><code>Integer</code></a> and a conventional name.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>length</code> - maximal length of <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link"><code>Char­Sequence</code></a> attribute values, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getUnit()">
<h3>getUnit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><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;</span>&nbsp;<span class="element-name">getUnit</span>()</div>
<div class="block">Returns the unit of measurement associated to attribute values.
This convenience method returns the value of the characteristic set by <a href="#setUnit(javax.measure.Unit)"><code>set­Unit(Unit)</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the unit of measurement associated to attribute values, or <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setUnit(javax.measure.Unit)">
<h3>setUnit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setUnit</span><wbr><span class="parameters">(<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">Sets the unit of measurement that characterizes the values of this attribute.
While this characteristic can be applied to any kind of attribute, it is meaningful
only with numeric values.
<p>This is a convenience method for <a href="#addCharacteristic(java.lang.Class)"><code>add­Characteristic(Class)</code></a> with a value
of type <a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Unit.html" title="class or interface in javax.measure" class="external-link"><code>Unit</code></a> and a conventional name.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>unit</code> - unit of measurement associated to attribute values, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCRS()">
<h3>getCRS</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/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CoordinateReferenceSystem</a></span>&nbsp;<span class="element-name">getCRS</span>()</div>
<div class="block">Returns the coordinate reference system associated to attribute values.
This convenience method returns the value of the characteristic set by <a href="#setCRS(org.opengis.referencing.crs.CoordinateReferenceSystem)"><code>set­CRS(Coordinate­Reference­System)</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the coordinate reference system associated to attribute values, or <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setCRS(org.opengis.referencing.crs.CoordinateReferenceSystem)">
<h3>setCRS</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setCRS</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CoordinateReferenceSystem</a>&nbsp;crs)</span></div>
<div class="block">Sets the coordinate reference system that characterizes the values of this attribute.
While this characteristic can be applied to any kind of attribute, it is meaningful
only with georeferenced values like geometries or coverages.
<p>This is a convenience method for <a href="#addCharacteristic(java.lang.Class)"><code>add­Characteristic(Class)</code></a> with a value
of type <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link"><code>Coordinate­Reference­System</code></a> and a conventional name.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>crs</code> - coordinate reference system associated to attribute values, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCharacteristic(java.lang.String)">
<h3>getCharacteristic</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">CharacteristicTypeBuilder</a>&lt;?&gt;</span>&nbsp;<span class="element-name">getCharacteristic</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Returns the builder for the characteristic of the given name. The given name does not need to contains
all elements of a <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/ScopedName.html" title="class or interface in org.opengis.util" class="external-link"><code>Scoped­Name</code></a>; it is okay to specify only the tip (for example
<code>"my­Name"</code> instead of <code>"my­Scope:my­Name"</code>) provided that ignoring the name head does not
create ambiguity.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the characteristic to search.</dd>
<dt>Returns:</dt>
<dd>characteristic of the given name, or <code>null</code> if none.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given name is ambiguous.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addCharacteristic(java.lang.Class)">
<h3>addCharacteristic</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;C&gt;</span>&nbsp;<span class="return-type"><a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">CharacteristicTypeBuilder</a>&lt;C&gt;</span>&nbsp;<span class="element-name">addCharacteristic</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;C&gt;&nbsp;type)</span></div>
<div class="block">Adds another attribute type that describes this attribute type.
See <cite>"Attribute characterization"</cite> in <a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature"><code>Default­Attribute­Type</code></a> Javadoc for more information.
<h4 id="usage-example-heading">Usage example</h4>
<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">attribute.addCharacteristic(Unit.class).setName("Unit of measurement").setDefaultValue(Units.CELSIUS);
</code></pre>
</div>
The default characteristic name is the name of the given type, but callers should invoke one
of the <code>Characteristic­Type­Builder​.set­Name(…)</code> methods on the returned instance with a better name.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>C</code> - the compile-time type of <code>type</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>type</code> - the class of characteristic values.</dd>
<dt>Returns:</dt>
<dd>a builder for a characteristic of this attribute.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addCharacteristic(org.apache.sis.feature.DefaultAttributeType)">
<h3>addCharacteristic</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;C&gt;</span>&nbsp;<span class="return-type"><a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">CharacteristicTypeBuilder</a>&lt;C&gt;</span>&nbsp;<span class="element-name">addCharacteristic</span><wbr><span class="parameters">(<a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature">DefaultAttributeType</a>&lt;C&gt;&nbsp;template)</span></div>
<div class="block">Adds another attribute type that describes this attribute type, using an existing one as a template.
See <cite>"Attribute characterization"</cite> in <a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature"><code>Default­Attribute­Type</code></a> Javadoc for more information.
<div class="warning"><b>Warning:</b>
The <code>template</code> argument type will be changed to <code>Attribute­Type</code> if and when such interface
will be defined in GeoAPI.</div></div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>C</code> - the compile-time type of values in the <code>template</code> argument.</dd>
<dt>Parameters:</dt>
<dd><code>template</code> - an existing attribute type to use as a template.</dd>
<dt>Returns:</dt>
<dd>a builder for a characteristic of this attribute, initialized with the values of the given template.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#characteristics()"><code>characteristics()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="characteristics()">
<h3>characteristics</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="CharacteristicTypeBuilder.html" title="class in org.apache.sis.feature.builder">CharacteristicTypeBuilder</a>&lt;?&gt;&gt;</span>&nbsp;<span class="element-name">characteristics</span>()</div>
<div class="block">Returns a view of all characteristics added to the <code>Attribute­Type</code> to build.
The returned list is <em>live</em>: changes in this builder are reflected in that list and conversely.
However, the returned list allows only <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html#remove(java.lang.Object)" title="class or interface in java.util" class="external-link">remove</a> operations;
new characteristics can be added only by calls to one of the <code>set/add­Characteristic(…)</code> methods.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a live list over the characteristics declared to this builder.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#getCharacteristic(java.lang.String)"><code>get­Characteristic(String)</code></a></li>
<li><a href="#addCharacteristic(java.lang.Class)"><code>add­Characteristic(Class)</code></a></li>
<li><a href="#addCharacteristic(org.apache.sis.feature.DefaultAttributeType)"><code>add­Characteristic(Default­Attribute­Type)</code></a></li>
<li><a href="#setValidValues(V...)"><code>set­Valid­Values(Object...)</code></a></li>
<li><a href="#setCRS(org.opengis.referencing.crs.CoordinateReferenceSystem)"><code>set­CRS(Coordinate­Reference­System)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="roles()">
<h3>roles</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="AttributeRole.html" title="enum class in org.apache.sis.feature.builder">AttributeRole</a>&gt;</span>&nbsp;<span class="element-name">roles</span>()</div>
<div class="block">Returns the roles that the attribute play in the predefined operations managed by <code>Attribute­Type­Builder</code>.
The set returned by this method is <em>live</em>: additions or removal on that set are reflected back on
this builder, and conversely.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the roles that the attribute play in the predefined operations managed by <code>Attribute­Type­Builder</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addRole(org.apache.sis.feature.builder.AttributeRole)">
<h3>addRole</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">addRole</span><wbr><span class="parameters">(<a href="AttributeRole.html" title="enum class in org.apache.sis.feature.builder">AttributeRole</a>&nbsp;role)</span></div>
<div class="block">Flags this attribute as an input of one of the predefined operations managed by <code>Attribute­Type­Builder</code>.
Invoking this method is equivalent to invoking <code><a href="#roles()">roles()</a>.add(role)</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>role</code> - the role to add to the attribute (shall not be null).</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given role has been added to the attribute.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDefinition(java.lang.CharSequence)">
<h3>setDefinition</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setDefinition</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;definition)</span></div>
<div class="block">Sets a concise definition of the element.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setDefinition(java.lang.CharSequence)">set­Definition</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>definition</code> - a concise definition of the element, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getDefinition()"><code>Type­Builder​.get­Definition()</code></a></li>
<li><a href="../AbstractIdentifiedType.html#DEFINITION_KEY"><code>Abstract­Identified­Type​.DEFINITION_KEY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDesignation(java.lang.CharSequence)">
<h3>setDesignation</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setDesignation</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;designation)</span></div>
<div class="block">Sets a natural language designator for the element.
This can be used as an alternative to the <a href="TypeBuilder.html#getName()">name</a> in user interfaces.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setDesignation(java.lang.CharSequence)">set­Designation</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>designation</code> - a natural language designator for the element, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getDesignation()"><code>Type­Builder​.get­Designation()</code></a></li>
<li><a href="../AbstractIdentifiedType.html#DESIGNATION_KEY"><code>Abstract­Identified­Type​.DESIGNATION_KEY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDescription(java.lang.CharSequence)">
<h3>setDescription</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setDescription</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;description)</span></div>
<div class="block">Sets optional information beyond that required for concise definition of the element.
The description may assist in understanding the feature scope and application.
If the type <a href="TypeBuilder.html#isDeprecated()">is deprecated</a>, then the description should
give indication about the replacement (e.g. <cite>"superceded by …"</cite>).</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setDescription(java.lang.CharSequence)">set­Description</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>description</code> - information beyond that required for concise definition of the element, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#getDescription()"><code>Type­Builder​.get­Description()</code></a></li>
<li><a href="../AbstractIdentifiedType.html#DESCRIPTION_KEY"><code>Abstract­Identified­Type​.DESCRIPTION_KEY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDeprecated(boolean)">
<h3>setDeprecated</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AttributeTypeBuilder.html" title="class in org.apache.sis.feature.builder">AttributeTypeBuilder</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">setDeprecated</span><wbr><span class="parameters">(boolean&nbsp;deprecated)</span></div>
<div class="block">Sets whether the type is deprecated.
If the type is deprecated, then the <a href="TypeBuilder.html#setDescription(java.lang.CharSequence)">description</a>
should be set to an indication about the replacement (e.g. <cite>"superceded by …"</cite>).</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#setDeprecated(boolean)">set­Deprecated</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Parameters:</dt>
<dd><code>deprecated</code> - whether this type is deprecated.</dd>
<dt>Returns:</dt>
<dd><code>this</code> for allowing method calls chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="TypeBuilder.html#isDeprecated()"><code>Type­Builder​.is­Deprecated()</code></a></li>
<li><a href="../AbstractIdentifiedType.html#DEPRECATED_KEY"><code>Abstract­Identified­Type​.DEPRECATED_KEY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remove()">
<h3>remove</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">remove</span>()</div>
<div class="block">Removes this property from the <code>Feature­Type­Builder</code>.
After this method has been invoked, this <code>Property­Type­Builder</code> instance
is no longer in the list returned by <a href="FeatureTypeBuilder.html#properties()"><code>Feature­Type­Builder​.properties()</code></a>
and attempts to invoke any setter method on <code>this</code> will cause an
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link"><code>Illegal­State­Exception</code></a> to be thrown.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="PropertyTypeBuilder.html#remove()">remove</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="build()">
<h3>build</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../DefaultAttributeType.html" title="class in org.apache.sis.feature">DefaultAttributeType</a>&lt;<a href="AttributeTypeBuilder.html" title="type parameter in AttributeTypeBuilder">V</a>&gt;</span>&nbsp;<span class="element-name">build</span>()</div>
<div class="block">Builds the attribute type from the information specified to this builder.
If a type has already been built and this builder state has not changed since the type creation,
then the previously created <code>Attribute­Type</code> instance is returned.
<h4 id="example-heading">Example</h4>
The following lines of code add a "name" attribute to a "City" feature, then get the corresponding
<code>Attribute­Type&lt;String&gt;</code> instance. If no setter method is invoked on the builder of the "name"
attribute after those lines, then the <code>name</code> variable below will reference the same instance
than the "name" attribute in the <code>city</code> type.
<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">FeatureTypeBuilder builder = new FeatureTypeBuilder().setName("City");
AttributeType&lt;String&gt; name = builder.addAttribute(String.class).setName("name").build();
FeatureType city = builder.build();
assert city.getProperty("name") == name : "AttributeType instance should be the same.";
</code></pre>
</div>
Note that <code>city​.get­Property("name")</code> returns <code>Attribute­Type&lt;?&gt;</code>,
i.e. the <a href="#getValueClass()">value class</a> is lost at compile-time.
By comparison, this <code>build()</code> method has a more accurate return type.
<div class="warning"><b>Warning:</b> In a future SIS version, the return type may be changed to the
<code>org​.opengis​.feature​.Attribute­Type</code> interface. This change is pending GeoAPI revision.</div></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="PropertyTypeBuilder.html#build()">build</a></code>&nbsp;in class&nbsp;<code><a href="PropertyTypeBuilder.html" title="class in org.apache.sis.feature.builder">Property­Type­Builder</a></code></dd>
<dt>Returns:</dt>
<dd>the attribute type.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>