blob: 314b903227cddad5912ad6d71aa7656187ee50d7 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>EPSGFactory (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.factory.sql, class: EPSGFactory">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.factory.sql.EPSGFactory class">
<meta name="keywords" content="dataSource">
<meta name="keywords" content="nameFactory">
<meta name="keywords" content="datumFactory">
<meta name="keywords" content="csFactory">
<meta name="keywords" content="crsFactory">
<meta name="keywords" content="copFactory">
<meta name="keywords" content="mtFactory">
<meta name="keywords" content="getCodeSpaces()">
<meta name="keywords" content="getLocale()">
<meta name="keywords" content="install()">
<meta name="keywords" content="newDataAccess()">
<meta name="keywords" content="canClose()">
<meta name="keywords" content="isCacheable()">
<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.factory.sql</a></div>
<h1 title="Class EPSGFactory" class="title">Class EPSGFactory</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="../../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a>
<div class="inheritance"><a href="../GeodeticAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">GeodeticAuthorityFactory</a>
<div class="inheritance"><a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">ConcurrentAuthorityFactory</a>&lt;<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGDataAccess</a>&gt;
<div class="inheritance">EPSGFactory</div>
</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">Auto­Closeable</a></code>, <code><a href="../../../../../../../org.apache.sis.util/org/apache/sis/util/Localized.html" title="interface in org.apache.sis.util">Localized</a></code>, <code><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­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CRSAuthority­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CSAuthority­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Datum­Authority­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Coordinate­Operation­Authority­Factory</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html" title="class or interface in org.opengis.util" class="external-link">Factory</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">EPSGFactory</span>
<span class="extends-implements">extends <a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">ConcurrentAuthorityFactory</a>&lt;<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGDataAccess</a>&gt;
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CRSAuthorityFactory</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CSAuthorityFactory</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link">DatumAuthorityFactory</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">CoordinateOperationAuthorityFactory</a>, <a href="../../../../../../../org.apache.sis.util/org/apache/sis/util/Localized.html" title="interface in org.apache.sis.util">Localized</a></span></div>
<div class="block">A geodetic object factory backed by the EPSG database. This class creates JDBC connections to the EPSG database
when first needed using the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/javax/sql/DataSource.html" title="class or interface in javax.sql" class="external-link"><code>Data­Source</code></a> specified at construction time. The geodetic objects are cached
for reuse and the idle connections are closed after a timeout.
<p>If no data source has been specified to the constructor, then <code>EPSGFactory</code> searches for a
default data source in JNDI, or in the directory given by the <code>SIS_DATA</code> environment variable,
or in the directory given by the <code>"derby​.system​.home"</code> property, in that order.
See the <a href="package-summary.html">package documentation</a> for more information.</p>
<h2 id="epsg-dataset-installation-heading">EPSG dataset installation</h2>
This class tries to automatically detect the schema that contains the EPSG tables
(see <a href="SQLTranslator.html" title="class in org.apache.sis.referencing.factory.sql"><code>SQLTranslator</code></a> for examples of tables to look for). If the tables are not found,
then the <a href="#install(java.sql.Connection)"><code>install(Connection)</code></a> method will be invoked for creating the EPSG schema.
The <code>install(…)</code> method can perform its work only if the definition files are reachable
on the module path, or if the directory containing the files have been specified.
<h2 id="data-access-object-dao--heading">Data Access Object (DAO)</h2>
If there is no cached object for a given code, then <code>EPSGFactory</code> creates an <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a> instance
for performing the actual creation work. Developers who need to customize the geodetic object creation can override
the <a href="#newDataAccess(java.sql.Connection,org.apache.sis.referencing.factory.sql.SQLTranslator)"><code>new­Data­Access(Connection, SQLTranslator)</code></a> method in order to return their own <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a>
subclass.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.7</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a></li>
<li><a href="SQLTranslator.html" title="class in org.apache.sis.referencing.factory.sql"><code>SQLTranslator</code></a></li>
<li><a href="https://sis.apache.org/tables/CoordinateReferenceSystems.html">List of authority codes</a></li>
</ul>
</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="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Coordinate­Operation­Factory</a></code></div>
<div class="col-second even-row-color"><code><a href="#copFactory" class="member-name-link">cop­Factory</a></code></div>
<div class="col-last even-row-color">
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation</code></a> instances
from the properties read in the database.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CRSFactory</a></code></div>
<div class="col-second odd-row-color"><code><a href="#crsFactory" class="member-name-link">crs­Factory</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The factory to use for creating <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> instances
from the properties read in the database.</div>
</div>
<div class="col-first even-row-color"><code>protected final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CSFactory</a></code></div>
<div class="col-second even-row-color"><code><a href="#csFactory" class="member-name-link">cs­Factory</a></code></div>
<div class="col-last even-row-color">
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>Coordinate­System</code></a> instances
from the properties read in the database.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/javax/sql/DataSource.html" title="class or interface in javax.sql" class="external-link">Data­Source</a></code></div>
<div class="col-second odd-row-color"><code><a href="#dataSource" class="member-name-link">data­Source</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The factory to use for creating <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link"><code>Connection</code></a>s to the EPSG database.</div>
</div>
<div class="col-first even-row-color"><code>protected final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link">Datum­Factory</a></code></div>
<div class="col-second even-row-color"><code><a href="#datumFactory" class="member-name-link">datum­Factory</a></code></div>
<div class="col-last even-row-color">
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Datum</code></a> instances
from the properties read in the database.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform­Factory</a></code></div>
<div class="col-second odd-row-color"><code><a href="#mtFactory" class="member-name-link">mt­Factory</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Math­Transform</code></a> instances.</div>
</div>
<div class="col-first even-row-color"><code>protected final <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameFactory.html" title="class or interface in org.opengis.util" class="external-link">Name­Factory</a></code></div>
<div class="col-second even-row-color"><code><a href="#nameFactory" class="member-name-link">name­Factory</a></code></div>
<div class="col-last even-row-color">
<div class="block">The factory to use for creating <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> instances.</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 two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.util.Map)" class="member-name-link">EPSGFactory</a><wbr>(<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>?&gt;&nbsp;properties)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a factory using the given configuration.</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>protected boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#canClose(org.apache.sis.referencing.factory.sql.EPSGDataAccess)" class="member-name-link">can­Close</a><wbr>(<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a>&nbsp;factory)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns <code>true</code> if the given Data Access Object (DAO) can be closed.</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="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>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCodeSpaces()" class="member-name-link">get­Code­Spaces</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 namespace of EPSG codes.</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/Locale.html" title="class or interface in java.util" class="external-link">Locale</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLocale()" class="member-name-link">get­Locale</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 locale used by this factory for producing error messages.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#install(java.sql.Connection)" class="member-name-link">install</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link">Connection</a>&nbsp;connection)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates the EPSG schema in the database and populates the tables with geodetic definitions.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isCacheable(java.lang.String,java.lang.Object)" class="member-name-link">is­Cacheable</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;code,
<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>&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">Returns whether the given object can be cached.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newDataAccess()" class="member-name-link">new­Data­Access</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates the factory which will perform the actual geodetic object creation work.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newDataAccess(java.sql.Connection,org.apache.sis.referencing.factory.sql.SQLTranslator)" class="member-name-link">new­Data­Access</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link">Connection</a>&nbsp;connection,
<a href="SQLTranslator.html" title="class in org.apache.sis.referencing.factory.sql">SQLTranslator</a>&nbsp;translator)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates the factory which will perform the actual geodetic object creation from a given connection.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-ConcurrentAuthorityFactory">Methods inherited from class&nbsp;<a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">ConcurrentAuthorityFactory</a></h3>
<code><a href="../ConcurrentAuthorityFactory.html#close()">close</a>, <a href="../ConcurrentAuthorityFactory.html#createCartesianCS(java.lang.String)">create­Cartesian­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createCompoundCRS(java.lang.String)">create­Compound­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createCoordinateOperation(java.lang.String)">create­Coordinate­Operation</a>, <a href="../ConcurrentAuthorityFactory.html#createCoordinateReferenceSystem(java.lang.String)">create­Coordinate­Reference­System</a>, <a href="../ConcurrentAuthorityFactory.html#createCoordinateSystem(java.lang.String)">create­Coordinate­System</a>, <a href="../ConcurrentAuthorityFactory.html#createCoordinateSystemAxis(java.lang.String)">create­Coordinate­System­Axis</a>, <a href="../ConcurrentAuthorityFactory.html#createCylindricalCS(java.lang.String)">create­Cylindrical­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createDatum(java.lang.String)">create­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#createDerivedCRS(java.lang.String)">create­Derived­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createEllipsoid(java.lang.String)">create­Ellipsoid</a>, <a href="../ConcurrentAuthorityFactory.html#createEllipsoidalCS(java.lang.String)">create­Ellipsoidal­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createEngineeringCRS(java.lang.String)">create­Engineering­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createEngineeringDatum(java.lang.String)">create­Engineering­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#createExtent(java.lang.String)">create­Extent</a>, <a href="../ConcurrentAuthorityFactory.html#createFromCoordinateReferenceSystemCodes(java.lang.String,java.lang.String)">create­From­Coordinate­Reference­System­Codes</a>, <a href="../ConcurrentAuthorityFactory.html#createGeocentricCRS(java.lang.String)">create­Geocentric­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createGeodeticDatum(java.lang.String)">create­Geodetic­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#createGeographicCRS(java.lang.String)">create­Geographic­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createImageCRS(java.lang.String)">create­Image­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createImageDatum(java.lang.String)">create­Image­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#createObject(java.lang.String)">create­Object</a>, <a href="../ConcurrentAuthorityFactory.html#createOperationMethod(java.lang.String)">create­Operation­Method</a>, <a href="../ConcurrentAuthorityFactory.html#createParameterDescriptor(java.lang.String)">create­Parameter­Descriptor</a>, <a href="../ConcurrentAuthorityFactory.html#createPolarCS(java.lang.String)">create­Polar­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createPrimeMeridian(java.lang.String)">create­Prime­Meridian</a>, <a href="../ConcurrentAuthorityFactory.html#createProjectedCRS(java.lang.String)">create­Projected­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createSphericalCS(java.lang.String)">create­Spherical­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createTemporalCRS(java.lang.String)">create­Temporal­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createTemporalDatum(java.lang.String)">create­Temporal­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#createTimeCS(java.lang.String)">create­Time­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createUnit(java.lang.String)">create­Unit</a>, <a href="../ConcurrentAuthorityFactory.html#createVerticalCRS(java.lang.String)">create­Vertical­CRS</a>, <a href="../ConcurrentAuthorityFactory.html#createVerticalCS(java.lang.String)">create­Vertical­CS</a>, <a href="../ConcurrentAuthorityFactory.html#createVerticalDatum(java.lang.String)">create­Vertical­Datum</a>, <a href="../ConcurrentAuthorityFactory.html#getAuthority()">get­Authority</a>, <a href="../ConcurrentAuthorityFactory.html#getAuthorityCodes(java.lang.Class)">get­Authority­Codes</a>, <a href="../ConcurrentAuthorityFactory.html#getDescriptionText(java.lang.String)">get­Description­Text</a>, <a href="../ConcurrentAuthorityFactory.html#getTimeout(java.util.concurrent.TimeUnit)">get­Timeout</a>, <a href="../ConcurrentAuthorityFactory.html#newIdentifiedObjectFinder()">new­Identified­Object­Finder</a>, <a href="../ConcurrentAuthorityFactory.html#normalizeCode(java.lang.String)">normalize­Code</a>, <a href="../ConcurrentAuthorityFactory.html#printCacheContent(java.io.PrintWriter)">print­Cache­Content</a>, <a href="../ConcurrentAuthorityFactory.html#setTimeout(long,java.util.concurrent.TimeUnit)">set­Timeout</a>, <a href="../ConcurrentAuthorityFactory.html#toString()">to­String</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-GeodeticAuthorityFactory">Methods inherited from class&nbsp;<a href="../GeodeticAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">GeodeticAuthorityFactory</a></h3>
<code><a href="../GeodeticAuthorityFactory.html#createParametricCRS(java.lang.String)">create­Parametric­CRS</a>, <a href="../GeodeticAuthorityFactory.html#createParametricCS(java.lang.String)">create­Parametric­CS</a>, <a href="../GeodeticAuthorityFactory.html#createParametricDatum(java.lang.String)">create­Parametric­Datum</a>, <a href="../GeodeticAuthorityFactory.html#trimNamespace(java.lang.String)">trim­Namespace</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AbstractFactory">Methods inherited from class&nbsp;<a href="../../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractFactory.html" title="class in org.apache.sis.util.iso">AbstractFactory</a></h3>
<code><a href="../../../../../../../org.apache.sis.metadata/org/apache/sis/util/iso/AbstractFactory.html#getVendor()">get­Vendor</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>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AuthorityFactory">Methods inherited from interface&nbsp;<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">AuthorityFactory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/AuthorityFactory.html#createObject(java.lang.String)" title="class or interface in org.opengis.referencing" class="external-link">create­Object</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/AuthorityFactory.html#getAuthority()" title="class or interface in org.opengis.referencing" class="external-link">get­Authority</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/AuthorityFactory.html#getAuthorityCodes(java.lang.Class)" title="class or interface in org.opengis.referencing" class="external-link">get­Authority­Codes</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/AuthorityFactory.html#getDescriptionText(java.lang.String)" title="class or interface in org.opengis.referencing" class="external-link">get­Description­Text</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-CoordinateOperationAuthorityFactory">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">CoordinateOperationAuthorityFactory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html#createCoordinateOperation(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">create­Coordinate­Operation</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html#createFromCoordinateReferenceSystemCodes(java.lang.String,java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">create­From­Coordinate­Reference­System­Codes</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html#createOperationMethod(java.lang.String)" title="class or interface in org.opengis.referencing.operation" class="external-link">create­Operation­Method</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-CRSAuthorityFactory">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CRSAuthorityFactory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createCompoundCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Compound­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createCoordinateReferenceSystem(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Coordinate­Reference­System</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createDerivedCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Derived­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createEngineeringCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Engineering­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createGeocentricCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Geocentric­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createGeographicCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Geographic­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createImageCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Image­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createProjectedCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Projected­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createTemporalCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Temporal­CRS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html#createVerticalCRS(java.lang.String)" title="class or interface in org.opengis.referencing.crs" class="external-link">create­Vertical­CRS</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-CSAuthorityFactory">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CSAuthorityFactory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createCartesianCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Cartesian­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createCoordinateSystem(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Coordinate­System</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createCoordinateSystemAxis(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Coordinate­System­Axis</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createCylindricalCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Cylindrical­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createEllipsoidalCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Ellipsoidal­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createPolarCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Polar­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createSphericalCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Spherical­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createTimeCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Time­CS</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createUnit(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Unit</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html#createVerticalCS(java.lang.String)" title="class or interface in org.opengis.referencing.cs" class="external-link">create­Vertical­CS</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-DatumAuthorityFactory">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link">DatumAuthorityFactory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Datum</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createEllipsoid(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Ellipsoid</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createEngineeringDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Engineering­Datum</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createGeodeticDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Geodetic­Datum</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createImageDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Image­Datum</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createPrimeMeridian(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Prime­Meridian</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createTemporalDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Temporal­Datum</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html#createVerticalDatum(java.lang.String)" title="class or interface in org.opengis.referencing.datum" class="external-link">create­Vertical­Datum</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Factory">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html" title="class or interface in org.opengis.util" class="external-link">Factory</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/Factory.html#getVendor()" title="class or interface in org.opengis.util" class="external-link">get­Vendor</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="dataSource">
<h3>dataSource</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.sql/javax/sql/DataSource.html" title="class or interface in javax.sql" class="external-link">DataSource</a></span>&nbsp;<span class="element-name">dataSource</span></div>
<div class="block">The factory to use for creating <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link"><code>Connection</code></a>s to the EPSG database.</div>
</section>
</li>
<li>
<section class="detail" id="nameFactory">
<h3>nameFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameFactory.html" title="class or interface in org.opengis.util" class="external-link">NameFactory</a></span>&nbsp;<span class="element-name">nameFactory</span></div>
<div class="block">The factory to use for creating <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> instances.</div>
</section>
</li>
<li>
<section class="detail" id="datumFactory">
<h3>datumFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link">DatumFactory</a></span>&nbsp;<span class="element-name">datumFactory</span></div>
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Datum</code></a> instances
from the properties read in the database.</div>
</section>
</li>
<li>
<section class="detail" id="csFactory">
<h3>csFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link">CSFactory</a></span>&nbsp;<span class="element-name">csFactory</span></div>
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>Coordinate­System</code></a> instances
from the properties read in the database.</div>
</section>
</li>
<li>
<section class="detail" id="crsFactory">
<h3>crsFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link">CRSFactory</a></span>&nbsp;<span class="element-name">crsFactory</span></div>
<div class="block">The factory to use for creating <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> instances
from the properties read in the database.</div>
</section>
</li>
<li>
<section class="detail" id="copFactory">
<h3>copFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">CoordinateOperationFactory</a></span>&nbsp;<span class="element-name">copFactory</span></div>
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation</code></a> instances
from the properties read in the database.</div>
</section>
</li>
<li>
<section class="detail" id="mtFactory">
<h3>mtFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a></span>&nbsp;<span class="element-name">mtFactory</span></div>
<div class="block">The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Math­Transform</code></a> instances.
The math transforms are created as part of <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation</code></a>
creation process.</div>
</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;(java.util.Map)">
<h3>EPSGFactory</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">EPSGFactory</span><wbr><span class="parameters">(<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>?&gt;&nbsp;properties)</span>
throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div>
<div class="block">Creates a factory using the given configuration. The properties recognized by this constructor
are listed in the table below. Any property not listed below will be ignored by this constructor.
All properties are optional and can <code>null</code> or omitted, in which case default values are used.
Those default values are implementation-specific and may change in any future SIS version.
<table class="sis">
<caption>Recognized properties</caption>
<tr>
<th>Key</th>
<th>Value class</th>
<th>Description</th>
</tr><tr>
<td><code>dataSource</code></td>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/javax/sql/DataSource.html" title="class or interface in javax.sql" class="external-link"><code>DataSource</code></a></td>
<td>The factory to use for creating <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link"><code>Connection</code></a>s to the EPSG database.</td>
</tr><tr>
<td><code>nameFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/NameFactory.html" title="class or interface in org.opengis.util" class="external-link"><code>NameFactory</code></a></td>
<td>The factory to use for creating <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> instances.</td>
</tr><tr>
<td><code>datumFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/DatumAuthorityFactory.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>DatumAuthorityFactory</code></a></td>
<td>The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/datum/Datum.html" title="class or interface in org.opengis.referencing.datum" class="external-link"><code>Datum</code></a> instances.</td>
</tr><tr>
<td><code>csFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CSAuthorityFactory.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>CSAuthorityFactory</code></a></td>
<td>The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/cs/CoordinateSystem.html" title="class or interface in org.opengis.referencing.cs" class="external-link"><code>Coordinate­System</code></a> instances.</td>
</tr><tr>
<td><code>crsFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CRSAuthorityFactory.html" title="class or interface in org.opengis.referencing.crs" class="external-link"><code>CRSAuthorityFactory</code></a></td>
<td>The factory to use for creating <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> instances.</td>
</tr><tr>
<td><code>copFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperationAuthorityFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>CoordinateOperationAuthorityFactory</code></a></td>
<td>The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation</code></a> instances.</td>
</tr><tr>
<td><code>mtFactory</code></td>
<td><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>MathTransformFactory</code></a></td>
<td>The factory to use for creating <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Math­Transform</code></a> instances.</td>
</tr><tr>
<td><code>catalog</code></td>
<td><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></td>
<td>The database catalog that contains the EPSG schema (see <a href="#install(java.sql.Connection)">install</a>).</td>
</tr><tr>
<td><code>schema</code></td>
<td><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></td>
<td>The database schema that contains the EPSG tables (see <a href="#install(java.sql.Connection)">install</a>).</td>
</tr><tr>
<td><code>scriptProvider</code></td>
<td><a href="InstallationScriptProvider.html" title="class in org.apache.sis.referencing.factory.sql"><code>InstallationScriptProvider</code></a></td>
<td>A provider of SQL scripts to use if <code>EPSGFactory</code> needs to create the database.</td>
</tr><tr>
<td><code>locale</code></td>
<td><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link"><code>Locale</code></a></td>
<td>The locale for producing error messages on a <cite>best effort</cite> basis.</td>
</tr>
</table>
<p>Default values</p>
<ul>
<li>If no <code>data­Source</code> is specified, this constructor defaults to the search algorithm described
in the <a href="package-summary.html">package documentation</a>.</li>
<li>If no <code>catalog</code> or <code>schema</code> is specified, <a href="SQLTranslator.html" title="class in org.apache.sis.referencing.factory.sql"><code>SQLTranslator</code></a> will try to auto-detect
the schema that contains the EPSG tables.</li>
<li>If no <code>locale</code> is specified, this constructor defaults to the
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html#getDefault(java.util.Locale.Category)" title="class or interface in java.util" class="external-link">display locale</a>.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>properties</code> - the data source, authority factories and other configuration properties,
or <code>null</code> for the default values.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassCastException.html" title="class or interface in java.lang" class="external-link">Class­Cast­Exception</a></code> - if a property value is not of the expected class.</dd>
<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 a property value is invalid.</dd>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">Factory­Exception</a></code> - if an error occurred while creating the EPSG factory.</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="getCodeSpaces()">
<h3>getCodeSpaces</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="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>&gt;</span>&nbsp;<span class="element-name">getCodeSpaces</span>()</div>
<div class="block">Returns the namespace of EPSG codes.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../GeodeticAuthorityFactory.html#getCodeSpaces()">get­Code­Spaces</a></code>&nbsp;in class&nbsp;<code><a href="../GeodeticAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">Geodetic­Authority­Factory</a></code></dd>
<dt>Returns:</dt>
<dd>the <code>"EPSG"</code> string in a singleton map.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLocale()">
<h3>getLocale</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/Locale.html" title="class or interface in java.util" class="external-link">Locale</a></span>&nbsp;<span class="element-name">getLocale</span>()</div>
<div class="block">Returns the locale used by this factory for producing error messages.
This locale does not change the way data are read from the EPSG database.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../../../../../org.apache.sis.util/org/apache/sis/util/Localized.html#getLocale()">get­Locale</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org.apache.sis.util/org/apache/sis/util/Localized.html" title="interface in org.apache.sis.util">Localized</a></code></dd>
<dt>Returns:</dt>
<dd>the locale for error messages.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="install(java.sql.Connection)">
<h3>install</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">install</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link">Connection</a>&nbsp;connection)</span>
throws <span class="exceptions"><a href="../UnavailableFactoryException.html" title="class in org.apache.sis.referencing.factory">UnavailableFactoryException</a></span></div>
<div class="block">Creates the EPSG schema in the database and populates the tables with geodetic definitions.
This method is invoked automatically when <a href="#newDataAccess()"><code>new­Data­Access()</code></a> detects that the EPSG dataset is not installed.
Users can also invoke this method explicitly if they wish to force the dataset installation.
<p>This method uses the following properties from the map specified at
<a href="#%3Cinit%3E(java.util.Map)">construction time</a>:</p>
<ul class="verbose">
<li><b><code>catalog</code>:</b><br>
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> giving the name of the database catalog where to create the EPSG schema.
If non-null, that catalog shall exist prior this method call (this method does not create any catalog).
If no catalog is specified or if the catalog is an empty string,
then the EPSG schema will be created without catalog.
If the database does not <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/DatabaseMetaData.html#supportsCatalogsInTableDefinitions()" title="class or interface in java.sql" class="external-link">support
catalogs in table definitions</a> or in <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/DatabaseMetaData.html#supportsCatalogsInDataManipulation()" title="class or interface in java.sql" class="external-link">data manipulation</a>, then this property is ignored.</li>
<li><b><code>schema</code>:</b><br>
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> giving the name of the database schema where to create the EPSG tables.
That schema shall <strong>not</strong> exist prior this method call;
the schema will be created by this <code>install(…)</code> method.
If the schema is an empty string, then the tables will be created without schema.
If no schema is specified, then the default schema is <code>"EPSG"</code>.
If the database does not <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/DatabaseMetaData.html#supportsSchemasInTableDefinitions()" title="class or interface in java.sql" class="external-link">support
schemas in table definitions</a> or in <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/DatabaseMetaData.html#supportsSchemasInDataManipulation()" title="class or interface in java.sql" class="external-link">data manipulation</a>, then this property is ignored.</li>
<li><b><code>script­Provider</code>:</b><br>
an <a href="InstallationScriptProvider.html" title="class in org.apache.sis.referencing.factory.sql"><code>Installation­Script­Provider</code></a> giving the SQL scripts to execute for creating the EPSG database.
If no provider is specified, then this method searches on the module path (with <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html" title="class or interface in java.util" class="external-link"><code>Service­Loader</code></a>)
for user-provided implementations of <code>Installation­Script­Provider</code>.
If no user-specified provider is found, then this method will search for
<code>"EPSG_*Tables​.sql"</code>, <code>"EPSG_*Data​.sql"</code> and <code>"EPSG_*FKeys​.sql"</code> files in the
<code>$SIS_DATA/Databases/External­Sources</code> directory where <code>*</code> stands for any characters
provided that there is no ambiguity.</li>
</ul>
<h4 id="legal-constraint-heading">Legal constraint</h4>
The EPSG dataset cannot be distributed with Apache SIS for licensing reasons.
Users need to either install the dataset manually (for example with the help of this method),
or add on the module path a separated bundle such as the <code>org​.apache​.sis​.referencing​.epsg</code> module.
See <a href="https://sis.apache.org/epsg.html">How to use EPSG geodetic dataset</a> for more information.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>connection</code> - connection to the database where to create the EPSG schema.</dd>
<dt>Throws:</dt>
<dd><code><a href="../UnavailableFactoryException.html" title="class in org.apache.sis.referencing.factory">Unavailable­Factory­Exception</a></code> - if installation failed. The exception will have a
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileNotFoundException.html" title="class or interface in java.io" class="external-link"><code>File­Not­Found­Exception</code></a> cause if a SQL script has not been found
(typically because a required resource is not on the module path), an
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link"><code>IOException</code></a> if an I/O error occurred while reading a SQL script, or a
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/SQLException.html" title="class or interface in java.sql" class="external-link"><code>SQLException</code></a> if an error occurred while writing to the database.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="InstallationScriptProvider.html" title="class in org.apache.sis.referencing.factory.sql"><code>Installation­Script­Provider</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newDataAccess()">
<h3>newDataAccess</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGDataAccess</a></span>&nbsp;<span class="element-name">newDataAccess</span>()
throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div>
<div class="block">Creates the factory which will perform the actual geodetic object creation work.
This method is invoked automatically when a new worker is required, either because the previous
one has been disposed after its timeout or because a new one is required for concurrency.
<p>The default implementation performs the following steps:</p>
<ol>
<li>Gets a new connection from the <a href="#dataSource"><code>data­Source</code></a>.</li>
<li>If this method is invoked for the first time, verifies if the EPSG tables exists.
If the tables are not found, invokes <a href="#install(java.sql.Connection)"><code>install(Connection)</code></a>.</li>
<li>Delegates to <a href="#newDataAccess(java.sql.Connection,org.apache.sis.referencing.factory.sql.SQLTranslator)"><code>new­Data­Access(Connection, SQLTranslator)</code></a>, which provides an easier
overriding point for subclasses wanting to return a custom <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a> instance.</li>
</ol></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../ConcurrentAuthorityFactory.html#newDataAccess()">new­Data­Access</a></code>&nbsp;in class&nbsp;<code><a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">Concurrent­Authority­Factory</a>&lt;<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a>&gt;</code></dd>
<dt>Returns:</dt>
<dd>Data Access Object (DAO) to use in <code>create­Foo(String)</code> methods.</dd>
<dt>Throws:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">Factory­Exception</a></code> - if the constructor failed to connect to the EPSG database.
This exception usually has a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/SQLException.html" title="class or interface in java.sql" class="external-link"><code>SQLException</code></a> as its cause.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newDataAccess(java.sql.Connection,org.apache.sis.referencing.factory.sql.SQLTranslator)">
<h3>newDataAccess</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGDataAccess</a></span>&nbsp;<span class="element-name">newDataAccess</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Connection.html" title="class or interface in java.sql" class="external-link">Connection</a>&nbsp;connection,
<a href="SQLTranslator.html" title="class in org.apache.sis.referencing.factory.sql">SQLTranslator</a>&nbsp;translator)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/SQLException.html" title="class or interface in java.sql" class="external-link">SQLException</a></span></div>
<div class="block">Creates the factory which will perform the actual geodetic object creation from a given connection.
This method is a convenience hook easier to override than <a href="#newDataAccess()"><code>new­Data­Access()</code></a> for subclasses
wanting to return instances of their own <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a> subclass.
The default implementation is simply:
<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">return new EPSGDataAccess(this, connection, translator);
</code></pre>
</div>
Subclasses can override this method with a similar code but with <code>new EPSGData­Access(…)</code> replaced
by <code>new My­Data­Access­Subclass(…)</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>connection</code> - a connection to the EPSG database.</dd>
<dd><code>translator</code> - the translator from the SQL statements using MS-Access dialect to SQL statements
using the dialect of the actual database.</dd>
<dt>Returns:</dt>
<dd>Data Access Object (DAO) to use in <code>create­Foo(String)</code> methods.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/SQLException.html" title="class or interface in java.sql" class="external-link">SQLException</a></code> - if a problem with the database has been detected.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="EPSGDataAccess.html#%3Cinit%3E(org.apache.sis.referencing.factory.sql.EPSGFactory,java.sql.Connection,org.apache.sis.referencing.factory.sql.SQLTranslator)"><code>EPSGData­Access(EPSGFactory, Connection, SQLTranslator)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="canClose(org.apache.sis.referencing.factory.sql.EPSGDataAccess)">
<h3>canClose</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">canClose</span><wbr><span class="parameters">(<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGDataAccess</a>&nbsp;factory)</span></div>
<div class="block">Returns <code>true</code> if the given Data Access Object (DAO) can be closed. This method is invoked automatically
after the <a href="../ConcurrentAuthorityFactory.html#getTimeout(java.util.concurrent.TimeUnit)">timeout</a> if the given DAO has been idle during all that time. The default
implementation always returns <code>false</code> if a set returned by <a href="EPSGDataAccess.html#getAuthorityCodes(java.lang.Class)"><code>EPSGData­Access​.get­Authority­Codes(Class)</code></a>
is still in use.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../ConcurrentAuthorityFactory.html#canClose(DAO)">can­Close</a></code>&nbsp;in class&nbsp;<code><a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">Concurrent­Authority­Factory</a>&lt;<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>factory</code> - the Data Access Object which is about to be closed.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given Data Access Object can be closed.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="../ConcurrentAuthorityFactory.html#close()"><code>Concurrent­Authority­Factory​.close()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isCacheable(java.lang.String,java.lang.Object)">
<h3>isCacheable</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isCacheable</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;code,
<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>&nbsp;object)</span></div>
<div class="block">Returns whether the given object can be cached.
This method is invoked after <a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql"><code>EPSGData­Access</code></a> created a new object not previously in the cache.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../ConcurrentAuthorityFactory.html#isCacheable(java.lang.String,java.lang.Object)">is­Cacheable</a></code>&nbsp;in class&nbsp;<code><a href="../ConcurrentAuthorityFactory.html" title="class in org.apache.sis.referencing.factory">Concurrent­Authority­Factory</a>&lt;<a href="EPSGDataAccess.html" title="class in org.apache.sis.referencing.factory.sql">EPSGData­Access</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>code</code> - the authority code specified by the caller for creating an object.</dd>
<dd><code>object</code> - the object created for the given authority code.</dd>
<dt>Returns:</dt>
<dd>whether the given object should be cached.</dd>
<dt>Since:</dt>
<dd>0.8</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="../ConcurrentAuthorityFactory.html#printCacheContent(java.io.PrintWriter)"><code>Concurrent­Authority­Factory​.print­Cache­Content(Print­Writer)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>