blob: be045b884f4e15f0e3891cdb4468b9b8fc64a011 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>Builder (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.referencing, class: Builder">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.Builder class">
<meta name="keywords" content="properties">
<meta name="keywords" content="setCodeSpace()">
<meta name="keywords" content="setVersion()">
<meta name="keywords" content="addName()">
<meta name="keywords" content="addIdentifier()">
<meta name="keywords" content="addNamesAndIdentifiers()">
<meta name="keywords" content="addNameAndIdentifier()">
<meta name="keywords" content="rename()">
<meta name="keywords" content="reidentify()">
<meta name="keywords" content="setDescription()">
<meta name="keywords" content="setRemarks()">
<meta name="keywords" content="setDeprecated()">
<meta name="keywords" content="onCreate()">
<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><a href="#field-detail">Field</a></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><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<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.referencing</a></div>
<h1 title="Class Builder" class="title">Class Builder&lt;B extends Builder&lt;B&gt;&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">Builder&lt;B&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>B</code> - the builder subclass.</dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../parameter/ParameterBuilder.html" title="class in org.apache.sis.parameter">Parameter­Builder</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">Builder&lt;B extends Builder&lt;B&gt;&gt;</span>
<span class="extends-implements">extends <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></span></div>
<div class="block">Base class of builders for various kinds of <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link"><code>Identified­Object</code></a>. This class provides convenience methods
for filling the <a href="#properties"><code>properties</code></a> map to be given to an <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ObjectFactory.html" title="class or interface in org.opengis.referencing" class="external-link"><code>Object­Factory</code></a>.
The main properties are:
<ul class="verbose">
<li><b><a href="AbstractIdentifiedObject.html#getName()">Name</a>:</b><br>
each <code>Identified­Object</code> shall have a name, which can be specified by a call to any of the
<a href="#addName(java.lang.CharSequence)"><code>add­Name(…)</code></a> methods defined in this class.</li>
<li><b><a href="AbstractIdentifiedObject.html#getAlias()">Aliases</a>:</b><br>
<code>Identified­Object</code>s 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="AbstractIdentifiedObject.html#getIdentifiers()">Identifiers</a>:</b><br>
<code>Identified­Object</code>s can also have an arbitrary number of identifiers, which are specified by any
of the <a href="#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="ImmutableIdentifier.html#getCodeSpace()">Code space</a>:</b><br>
<code>Identified­Object</code> names and identifiers can be local to a code space defined by an authority.
Both the authority and code space can be specified by the <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)"><code>set­Code­Space(Citation, String)</code></a> method,
and usually (but not necessarily) apply to all <code>Identifier</code> instances.</li>
<li><b><a href="ImmutableIdentifier.html#getVersion()">Version</a>:</b><br>
<code>Identifier</code>s can optionally have a version specified by the <a href="#setVersion(java.lang.String)"><code>set­Version(String)</code></a> method.
The version usually (but not necessarily) applies to all <code>Identifier</code> instances.</li>
<li><b><a href="ImmutableIdentifier.html#getDescription()">Description</a>:</b><br>
<code>Identifier</code>s can optionally have a description specified by the <a href="#setDescription(java.lang.CharSequence)"><code>set­Description(Char­Sequence)</code></a> method.
The description applies only to the next identifier to create.</li>
<li><b><a href="AbstractIdentifiedObject.html#getRemarks()">Remarks</a>:</b><br>
<code>Identified­Object</code>s can have at most one remark, which is specified by the
<a href="#setRemarks(java.lang.CharSequence)"><code>code set­Remarks(…)</code></a> method.</li>
</ul>
<h2 id="namespaces-and-scopes-heading">Namespaces and scopes</h2>
The <code>add­Name(…)</code> and <code>add­Identifier(…)</code> methods come in three flavors:
<ul class="verbose">
<li>The <a href="#addIdentifier(java.lang.String)"><code>add­Identifier(String)</code></a> and <a href="#addName(java.lang.CharSequence)"><code>add­Name(Char­Sequence)</code></a> methods combine the given argument
with the above-cited authority, code space, version and description information.
The result is a <a href="../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/DefaultLocalName.html" title="class in org.apache.sis.util.iso">local name</a> or identifier,
in which the code space information is stored but not shown by the <code>to­String()</code> method.</li>
<li>The <a href="#addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)"><code>add­Identifier(Citation, String)</code></a> and <a href="#addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)"><code>add­Name(Citation, Char­Sequence)</code></a> methods use the given
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link"><code>Citation</code></a> argument, ignoring any authority or code space information given to this <code>Builder</code>.
The result is a <a href="../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/DefaultScopedName.html" title="class in org.apache.sis.util.iso">scoped name</a> or identifier,
in which the code space information is shown by the <code>to­String()</code> method.</li>
<li>The <code>add­Identifier(Identifier)</code>, <code>add­Name(Identifier)</code> and <a href="#addName(org.opengis.util.GenericName)"><code>add­Name(Generic­Name)</code></a>
methods take the given object <cite>as-is</cite>. Any authority, code space, version or description
information given to the <code>Builder</code> are ignored.</li>
</ul>
<h2 id="example-heading">Example</h2>
The EPSG database defines a projection named <cite>"Mercator (variant A)"</cite> (EPSG:9804).
This projection was named <cite>"Mercator (1SP)"</cite> in older EPSG database versions.
The same projection was also named "<code>Mercator_1SP</code>" by OGC some specifications.
If we choose EPSG as our primary naming authority, then those three names can be declared as below:
<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">builder.setCodespace (Citations.EPSG, "EPSG")
.addName("Mercator (variant A)")
.addName("Mercator (1SP)")
.addName(Citations.OGC, "Mercator_1SP")
</code></pre>
</div>
The <code>to­String()</code> representation of those three names are <code>"Mercator (variant A)"</code>,
<code>"Mercator (1SP)"</code> (note the absence of <code>"EPSG:"</code> prefix, which is stored as the
name <a href="../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/DefaultLocalName.html#scope()">scope</a> but not shown) and
<code>"<b>OGC:</b>Mercator_1SP"</code> respectively.
<h2 id="builder-property-lifetimes-heading">Builder property lifetimes</h2>
Some complex objects require the creation of many components. For example, constructing a
<a href="crs/AbstractCRS.html" title="class in org.apache.sis.referencing.crs">Coordinate Reference System</a> (CRS) may require constructing a
<a href="cs/AbstractCS.html" title="class in org.apache.sis.referencing.cs">coordinate system</a>, a
<a href="datum/AbstractDatum.html" title="class in org.apache.sis.referencing.datum">datum</a> and an
<a href="datum/DefaultEllipsoid.html" title="class in org.apache.sis.referencing.datum">ellipsoid</a> among other components.
However, all those components often (but not necessarily) share the same authority, code space and version information.
In order to simplify that common usage, two groups of properties have different lifetimes in the <code>Builder</code> class:
<ul>
<li>
<a href="ImmutableIdentifier.html#getAuthority()">Authority</a>,
<a href="ImmutableIdentifier.html#getCodeSpace()">code space</a> and
<a href="ImmutableIdentifier.html#getVersion()">version</a>:<br>
Kept until they are specified again, because those properties are typically shared by all components.
</li><li>
<a href="AbstractIdentifiedObject.html#getName()">Name</a>,
<a href="AbstractIdentifiedObject.html#getAlias()">aliases</a>,
<a href="AbstractIdentifiedObject.html#getIdentifiers()">identifiers</a>,
<a href="ImmutableIdentifier.html#getDescription()">description</a> and
<a href="AbstractIdentifiedObject.html#getRemarks()">remarks</a>:<br>
Cleared after each call to a <code>create­XXX(…)</code> method, because those properties are usually specific
to a particular <code>Identified­Object</code> or <code>Identifier</code> instance.
</li>
</ul>
<h2 id="usage-examples-heading">Usage examples</h2>
See <a href="../parameter/ParameterBuilder.html" title="class in org.apache.sis.parameter"><code>Parameter­Builder</code></a> class javadoc for more examples with the
<cite>Mercator</cite> projection parameters.
<h2 id="note-for-subclass-implementers-heading">Note for subclass implementers</h2>
<ul>
<li>The type <code>&lt;B&gt;</code> shall be exactly the subclass type.
For performance reasons, this is verified only if Java assertions are enabled.</li>
<li>All <code>create­XXX(…)</code> methods shall invoke <a href="#onCreate(boolean)"><code>on­Create(boolean)</code></a> before and after
usage of <a href="#properties"><code>properties</code></a> map by the factory.</li>
</ul>
<p>Example:</p>
<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 MyBuilder extends Builder&lt;MyBuilder&gt; {
public Foo createFoo() {
onCreate(false);
Foo foo = factory.createFoo(properties);
onCreate(true);
return foo;
}
}
</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="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><wbr>&lt;<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>,<wbr><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>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#properties" class="member-name-link">properties</a></code></div>
<div class="col-last even-row-color">
<div class="block">The properties to be given to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ObjectFactory.html" title="class or interface in org.opengis.referencing" class="external-link"><code>Object­Factory</code></a> methods.</div>
</div>
</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 three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Builder</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new builder.</div>
</div>
<div class="col-first odd-row-color"><code>protected </code></div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.opengis.referencing.IdentifiedObject)" class="member-name-link">Builder</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</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="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addIdentifier(java.lang.String)" class="member-name-link">add­Identifier</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;identifier)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> identifier given by a <code>String</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)" class="member-name-link">add­Identifier</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;identifier)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> identifier in an alternative namespace.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addIdentifier(org.opengis.referencing.ReferenceIdentifier)" class="member-name-link">add­Identifier</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link">Reference­Identifier</a>&nbsp;identifier)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> identifier fully specified by the given identifier.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addName(java.lang.CharSequence)" class="member-name-link">add­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;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> name given by a <code>String</code> or <code>International­String</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)" class="member-name-link">add­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> name in an alternative namespace.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addName(org.opengis.referencing.ReferenceIdentifier)" class="member-name-link">add­Name</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link">Reference­Identifier</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">Adds an <code>Identified­Object</code> name fully specified by the given identifier.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addName(org.opengis.util.GenericName)" class="member-name-link">add­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 even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an <code>Identified­Object</code> name fully specified by the given generic name.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addNameAndIdentifier(org.opengis.metadata.citation.Citation,org.opengis.referencing.IdentifiedObject)" class="member-name-link">add­Name­And­Identifier</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds the non-deprecated names and identifiers from the given object for the specified authority.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addNamesAndIdentifiers(org.opengis.referencing.IdentifiedObject)" class="member-name-link">add­Names­And­Identifiers</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">Identified­Object</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds all non-deprecated names and identifiers from the given object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onCreate(boolean)" class="member-name-link">on­Create</a><wbr>(boolean&nbsp;cleanup)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Initializes/cleanups the <a href="#properties"><code>properties</code></a> map before/after a <code>create­XXX(…)</code> execution.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reidentify(org.opengis.metadata.citation.Citation,java.lang.String...)" class="member-name-link">reidentify</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;replacements)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Replaces the identifiers associated to the given authority by the given new identifiers.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#rename(org.opengis.metadata.citation.Citation,java.lang.CharSequence...)" class="member-name-link">rename</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;replacements)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Replaces the names associated to the given authority by the given new names.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)" class="member-name-link">set­Code­Space</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;codespace)</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>Identifier</code> authority and code space.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></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 next <code>Generic­Name</code>s, <code>Identifier</code>s or <code>Identified­Object</code>s
to create shall be considered deprecated.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></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 an <code>Identifier</code> or <code>Identified­Object</code> description.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setRemarks(java.lang.CharSequence)" class="member-name-link">set­Remarks</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;remarks)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets remarks as a <code>String</code> or <code>International­String</code> instance.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Builder.html" title="type parameter in Builder">B</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setVersion(java.lang.String)" class="member-name-link">set­Version</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;version)</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>Identifier</code> version of object definitions.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/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">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="properties">
<h3>properties</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<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>,<wbr><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>&gt;</span>&nbsp;<span class="element-name">properties</span></div>
<div class="block">The properties to be given to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ObjectFactory.html" title="class or interface in org.opengis.referencing" class="external-link"><code>Object­Factory</code></a> methods.
This map may contain values for the
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#NAME_KEY" title="class or interface in org.opengis.referencing" class="external-link">"name"</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#ALIAS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"alias"</a>,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#IDENTIFIERS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"identifiers"</a> and
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html#REMARKS_KEY" title="class or interface in org.opengis.referencing" class="external-link">"remarks"</a> keys.
Subclasses may add other entries like
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceSystem.html#DOMAIN_OF_VALIDITY_KEY" title="class or interface in org.opengis.referencing" class="external-link">"domainOfValidity"</a> and
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceSystem.html#SCOPE_KEY" title="class or interface in org.opengis.referencing" class="external-link">"scope"</a> keys.
<p>See <cite>Notes for subclass implementers</cite> in class javadoc for usage conditions.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#onCreate(boolean)"><code>on­Create(boolean)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= 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>Builder</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">Builder</span>()</div>
<div class="block">Creates a new builder.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">Assertion­Error</a></code> - if assertions are enabled and the <code>&lt;B&gt;</code> type is not the type of <code>this</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.opengis.referencing.IdentifiedObject)">
<h3>Builder</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">Builder</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span></div>
<div class="block">Creates a new builder initialized to properties of the given object.
The properties recognized by this constructor are documented
<a href="IdentifiedObjects.html#getProperties(org.opengis.referencing.IdentifiedObject,java.lang.String...)">here</a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the identified object 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="setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">
<h3>setCodeSpace</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">setCodeSpace</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;codespace)</span></div>
<div class="block">Sets the <code>Identifier</code> authority and code space.
The code space is often the authority's abbreviation, but not necessarily.
<div class="note"><b>Example:</b> Coordinate Reference System (CRS) objects identified by codes from the
EPSG database are maintained by the <cite>International Association of Oil &amp; Gas producers</cite> (IOGP)
authority, but the code space is <code>"EPSG"</code> for historical reasons.</div>
This method is typically invoked only once, since a compound object often uses the same code space
for all individual components.
<p><b>Condition:</b>
this method cannot be invoked after one or more names or identifiers have been added (by calls to the
<code>add­Name(…)</code> or <code>add­Identifier(…)</code> methods) for the next object to create. This method can be
invoked again after the name, aliases and identifiers have been cleared by a call to <code>create­XXX(…)</code>.</p>
<p><b>Lifetime:</b>
this property is kept unchanged until this <code>set­Code­Space(…)</code> method is invoked again.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - bibliographic reference to the authority defining the codes, or <code>null</code> if none.</dd>
<dd><code>codespace</code> - the <code>Identified­Object</code> codespace, or <code>null</code> for inferring it from the authority.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Throws:</dt>
<dd><code><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">Illegal­State­Exception</a></code> - if <code>add­Name(…)</code> or <code>add­Identifier(…)</code> has been invoked at least
once since builder construction or since the last call to a <code>create­XXX(…)</code> method.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="ImmutableIdentifier.html#getAuthority()"><code>Immutable­Identifier​.get­Authority()</code></a></li>
<li><a href="ImmutableIdentifier.html#getCodeSpace()"><code>Immutable­Identifier​.get­Code­Space()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setVersion(java.lang.String)">
<h3>setVersion</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">setVersion</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;version)</span></div>
<div class="block">Sets the <code>Identifier</code> version of object definitions. This method is typically invoked only once,
since a compound object often uses the same version for all individual components.
<p><b>Condition:</b>
this method cannot be invoked after one or more names or identifiers have been added (by calls to the
<code>add­Name(…)</code> or <code>add­Identifier(…)</code> methods) for the next object to create. This method can be
invoked again after the name, aliases and identifiers have been cleared by a call to <code>create­XXX(…)</code>.</p>
<p><b>Lifetime:</b>
this property is kept unchanged until this <code>set­Version(…)</code> method is invoked again.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>version</code> - the version of code definitions, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Throws:</dt>
<dd><code><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">Illegal­State­Exception</a></code> - if <code>add­Name(…)</code> or <code>add­Identifier(…)</code> has been invoked at least
once since builder construction or since the last call to a <code>create­XXX(…)</code> method.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addName(java.lang.CharSequence)">
<h3>addName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addName</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;name)</span></div>
<div class="block">Adds an <code>Identified­Object</code> name given by a <code>String</code> or <code>International­String</code>.
The given string will be combined with the authority, <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">code space</a> and <a href="#setVersion(java.lang.String)">version</a> information for creating the
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Identifier</code></a> or <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"><code>Generic­Name</code></a> object.
<h4 id="name-and-aliases-heading">Name and aliases</h4>
This method can be invoked many times. The first invocation sets the
<a href="AbstractIdentifiedObject.html#getName()">primary name</a>, and
all subsequent invocations add an <a href="AbstractIdentifiedObject.html#getAlias()">alias</a>.
<h4 id="deprecated-names-heading">Deprecated names</h4>
Some names may exist for historical reasons but have their use discouraged.
If <code><a href="#setDeprecated(boolean)">set­Deprecated</a>(true)</code> has been invoked, then this
method creates a deprecated alias with the current <a href="#setRemarks(java.lang.CharSequence)">remarks</a>.
The remark should suggest a replacement, for example with a sentence like
<cite>"Superseded by &lt;new-name&gt;"</cite>.
<p>Note that deprecated names are always added as aliases, never as the primary name of an identified object.</p>
<p><b>Lifetime:</b>
the name and all aliases are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the <code>Identified­Object</code> 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> instance.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)">
<h3>addName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;name)</span></div>
<div class="block">Adds an <code>Identified­Object</code> name in an alternative namespace. This method is typically invoked for
<a href="AbstractIdentifiedObject.html#getAlias()">aliases</a> defined after the primary name.
<h4 id="example-heading1">Example</h4>
The <cite>"Longitude of natural origin"</cite> parameter defined by EPSG is named differently
by OGC and GeoTIFF. Those alternative names can be defined as below:
<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">builder.setCodespace(Citations.EPSG, "EPSG") // Sets the default namespace to "EPSG".
.addName("Longitude of natural origin") // Primary name in builder default namespace.
.addName(Citations.OGC, "central_meridian") // First alias in "OGC" namespace.
.addName(Citations.GEOTIFF, "NatOriginLong"); // Second alias in "GeoTIFF" namespace.
</code></pre>
</div>
In this example, <code>"central_meridian"</code> will be the
<a href="../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#tip()">tip</a> and <code>"OGC"</code> will be the
<a href="../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractName.html#head()">head</a> of the first alias.
<h4 id="lifetime-heading">Lifetime</h4>
The name and all aliases are cleared after a <code>create­XXX(…)</code> method has been invoked.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - bibliographic reference to the authority defining the codes, or <code>null</code> if none.</dd>
<dd><code>name</code> - the <code>Identified­Object</code> alias as a name in the namespace of the given authority.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)"><code>add­Identifier(Citation, String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addName(org.opengis.referencing.ReferenceIdentifier)">
<h3>addName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addName</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link">ReferenceIdentifier</a>&nbsp;name)</span></div>
<div class="block">Adds an <code>Identified­Object</code> name fully specified by the given identifier.
This method ignores the authority, <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">code space</a>,
<a href="#setVersion(java.lang.String)">version</a> and <a href="#setDescription(java.lang.CharSequence)">description</a>
specified to this builder (if any), since the given identifier may already contain those information.
<h4 id="name-and-aliases-heading1">Name and aliases</h4>
This method can be invoked many times. The first invocation sets the
<a href="AbstractIdentifiedObject.html#getName()">primary name</a> to the given value, and
all subsequent invocations add an <a href="AbstractIdentifiedObject.html#getAlias()">alias</a>.
<p><b>Lifetime:</b>
the name and all aliases are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the <code>Identified­Object</code> name as an identifier.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addName(org.opengis.util.GenericName)">
<h3>addName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addName</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">Adds an <code>Identified­Object</code> name fully specified by the given generic name.
This method ignores the authority, <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">code space</a>,
<a href="#setVersion(java.lang.String)">version</a> and <a href="#setDescription(java.lang.CharSequence)">description</a>
specified to this builder (if any), since the given generic name may already contain those information.
<h4 id="name-and-aliases-heading2">Name and aliases</h4>
This method can be invoked many times. The first invocation sets the
<a href="AbstractIdentifiedObject.html#getName()">primary name</a> to the given value, and
all subsequent invocations add an <a href="AbstractIdentifiedObject.html#getAlias()">alias</a>.
<p><b>Lifetime:</b>
the name and all aliases are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - the <code>Identified­Object</code> name as an identifier.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addIdentifier(java.lang.String)">
<h3>addIdentifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addIdentifier</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;identifier)</span></div>
<div class="block">Adds an <code>Identified­Object</code> identifier given by a <code>String</code>.
The given string will be combined with the authority, <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">code space</a>
<a href="#setVersion(java.lang.String)">version</a> and <a href="#setDescription(java.lang.CharSequence)">description</a> information
for creating the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Identifier.html" title="class or interface in org.opengis.metadata" class="external-link"><code>Identifier</code></a> object.
<h4 id="deprecated-identifiers-heading">Deprecated identifiers</h4>
Some identifiers may exist for historical reasons but have their use discouraged.
If <code><a href="#setDeprecated(boolean)">set­Deprecated</a>(true)</code> has been invoked, then this
method creates a deprecated identifier with the current <a href="#setRemarks(java.lang.CharSequence)">remarks</a>.
The remark should suggest a replacement, for example with a sentence like
<cite>"Superseded by &lt;new-code&gt;"</cite>.
<p><b>Lifetime:</b>
all identifiers are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>identifier</code> - the <code>Identified­Object</code> identifier.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)">
<h3>addIdentifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addIdentifier</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;identifier)</span></div>
<div class="block">Adds an <code>Identified­Object</code> identifier in an alternative namespace.
This method is typically invoked in complement to <a href="#addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)"><code>add­Name(Citation, Char­Sequence)</code></a>.
<p><b>Lifetime:</b>
all identifiers are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - bibliographic reference to the authority defining the codes, or <code>null</code> if none.</dd>
<dd><code>identifier</code> - the <code>Identified­Object</code> identifier as a code in the namespace of the given authority.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#addName(org.opengis.metadata.citation.Citation,java.lang.CharSequence)"><code>add­Name(Citation, Char­Sequence)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addIdentifier(org.opengis.referencing.ReferenceIdentifier)">
<h3>addIdentifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addIdentifier</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/ReferenceIdentifier.html" title="class or interface in org.opengis.referencing" class="external-link">ReferenceIdentifier</a>&nbsp;identifier)</span></div>
<div class="block">Adds an <code>Identified­Object</code> identifier fully specified by the given identifier.
This method ignores the authority, <a href="#setCodeSpace(org.opengis.metadata.citation.Citation,java.lang.String)">code space</a>,
<a href="#setVersion(java.lang.String)">version</a> and <a href="#setDescription(java.lang.CharSequence)">description</a>
specified to this builder (if any), since the given identifier already contains those information.
<p><b>Lifetime:</b>
all identifiers are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>identifier</code> - the <code>Identified­Object</code> identifier.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addNamesAndIdentifiers(org.opengis.referencing.IdentifiedObject)">
<h3>addNamesAndIdentifiers</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addNamesAndIdentifiers</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span></div>
<div class="block">Adds all non-deprecated names and identifiers from the given object.
Other properties like description and remarks are ignored.
<p>This is a convenience method for using an existing object as a template, before to modify
some names by calls to <a href="#rename(org.opengis.metadata.citation.Citation,java.lang.CharSequence...)"><code>rename(Citation, Char­Sequence[])</code></a>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - the object from which to copy the names and identifiers.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addNameAndIdentifier(org.opengis.metadata.citation.Citation,org.opengis.referencing.IdentifiedObject)">
<h3>addNameAndIdentifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">addNameAndIdentifier</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/IdentifiedObject.html" title="class or interface in org.opengis.referencing" class="external-link">IdentifiedObject</a>&nbsp;object)</span></div>
<div class="block">Adds the non-deprecated names and identifiers from the given object for the specified authority.
This is a convenience method for reusing name and identifier already declared for another object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - the authority for which to copy the name and identifier.</dd>
<dd><code>object</code> - the object from which to copy the name and identifier.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Since:</dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="rename(org.opengis.metadata.citation.Citation,java.lang.CharSequence...)">
<h3>rename</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">rename</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;replacements)</span></div>
<div class="block">Replaces the names associated to the given authority by the given new names.
More specifically:
<ul>
<li>The first occurrence of a name associated to <code>authority</code> will be replaced by a new name
with the same authority and the local part defined by <code>replacements[0]</code>.</li>
<li>The second occurrence of a name associated to <code>authority</code> will be replaced by a new name
with the same authority and the local part defined by <code>replacements[1]</code>.</li>
<li><i>etc.</i> until one of the following conditions is met:
<ul>
<li>There are no more names associated to the given authority in this <code>Builder</code>, in which case
new names are inserted for all remaining elements in the <code>replacements</code> array.</li>
<li>There are no more elements in the <code>replacements</code> array, in which case all remaining
names associated to the given authority in this <code>Builder</code> are removed.</li>
</ul>
</li>
</ul>
This method could also be understood as a <code>set­Names(Citation, ...)</code> method, except that it modifies
only the names associated to the given authority and preserves the same order than previous names.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - the authority of the names to replaces.</dd>
<dd><code>replacements</code> - the new local parts for the names to replace,
or <code>null</code> or an empty array for removing all names associated to the given authority.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="reidentify(org.opengis.metadata.citation.Citation,java.lang.String...)">
<h3>reidentify</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">reidentify</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/citation/Citation.html" title="class or interface in org.opengis.metadata.citation" class="external-link">Citation</a>&nbsp;authority,
<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;replacements)</span></div>
<div class="block">Replaces the identifiers associated to the given authority by the given new identifiers.
More specifically:
<ul>
<li>The first occurrence of an identifier associated to <code>authority</code> will be replaced by
a new identifier with the same authority and the code defined by <code>replacements[0]</code>.</li>
<li>The second occurrence of an identifier associated to <code>authority</code> will be replaced by a
new identifier with the same authority and the local part defined by <code>replacements[1]</code>.</li>
<li><i>etc.</i> until one of the following conditions is met:
<ul>
<li>There are no more identifiers associated to the given authority in this <code>Builder</code>, in which case
new identifiers are inserted for all remaining elements in the <code>replacements</code> array.</li>
<li>There are no more elements in the <code>replacements</code> array, in which case all remaining
identifiers associated to the given authority in this <code>Builder</code> are removed.</li>
</ul>
</li>
</ul>
This method could also be understood as a <code>set­Identifiers(Citation, ...)</code> method, except that it modifies
only the identifiers associated to the given authority and preserves the same order than previous identifiers.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>authority</code> - the authority of the names to replaces.</dd>
<dd><code>replacements</code> - the new local parts for the names to replace,
or <code>null</code> or an empty array for removing all names associated to the given authority.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Since:</dt>
<dd>0.8</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="Builder.html" title="type parameter in Builder">B</a></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 an <code>Identifier</code> or <code>Identified­Object</code> description.
Descriptions can be used in various contexts:
<ul>
<li>Before calls to <a href="#addIdentifier(java.lang.String)"><code>add­Identifier(String)</code></a> or <a href="#addIdentifier(org.opengis.metadata.citation.Citation,java.lang.String)"><code>add­Identifier(Citation, String)</code></a>
for specifying a natural language description of the meaning of the code value.
<div class="note"><b>Example:</b>
<code>set­Description("World Geodetic System 1984").add­Identifier("4326")</code></div></li>
<li>Before calls to a <code>create­XXX(…)</code> method for providing a narrative explanation
of the role of the object. Not all <code>Identified­Object</code> supports description.</li>
</ul>
Calls to this method overwrite any previous value.
<p><b>Lifetime:</b>
previous descriptions are discarded by calls to <code>set­Description(…)</code>.
Descriptions are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>description</code> - the description 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> instance, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="ImmutableIdentifier.html#getDescription()"><code>Immutable­Identifier​.get­Description()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setRemarks(java.lang.CharSequence)">
<h3>setRemarks</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">setRemarks</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;remarks)</span></div>
<div class="block">Sets remarks as a <code>String</code> or <code>International­String</code> instance.
Calls to this method overwrite any previous value.
<p><b>Lifetime:</b>
previous remarks are discarded by calls to <code>set­Remarks(…)</code>.
Remarks are cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>remarks</code> - the remarks 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> instance, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</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="Builder.html" title="type parameter in Builder">B</a></span>&nbsp;<span class="element-name">setDeprecated</span><wbr><span class="parameters">(boolean&nbsp;deprecated)</span></div>
<div class="block">Sets whether the next <code>Generic­Name</code>s, <code>Identifier</code>s or <code>Identified­Object</code>s
to create shall be considered deprecated.
Deprecated objects exist in some <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/AuthorityFactory.html" title="class or interface in org.opengis.referencing" class="external-link">authority factories</a>
like the EPSG database.
<p><b>Lifetime:</b>
Deprecation status is cleared after a <code>create­XXX(…)</code> method has been invoked.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>deprecated</code> - <code>true</code> if the next names, identifiers and identified
objects should be considered deprecated, or <code>false</code> otherwise.</dd>
<dt>Returns:</dt>
<dd><code>this</code>, for method call chaining.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="AbstractIdentifiedObject.html#isDeprecated()"><code>Abstract­Identified­Object​.is­Deprecated()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="onCreate(boolean)">
<h3>onCreate</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">onCreate</span><wbr><span class="parameters">(boolean&nbsp;cleanup)</span></div>
<div class="block">Initializes/cleanups the <a href="#properties"><code>properties</code></a> map before/after a <code>create­XXX(…)</code> execution.
Subclasses shall invoke this method in their <code>create­XXX(…)</code> methods as below:
<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 Foo createFoo() {
final Foo foo;
onCreate(false);
try {
foo = factory.createFoo(properties);
} finally {
onCreate(true);
}
return foo;
}
</code></pre>
</div>
If <code>cleanup</code> is <code>true</code>, then this method clears the identification information
(name, aliases, identifiers, description, remarks and deprecation status) for preparing the
builder to the construction of another object.
The authority, codespace and version properties are not cleared by this method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>cleanup</code> - <code>false</code> when this method is invoked before object creation, and
<code>true</code> when this method is invoked after object creation.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#properties"><code>properties</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>