blob: 7c269e09b9b1958701d7a49a6f20c75b589e5c06 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>org.apache.sis.metadata.sql (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.metadata, package: org.apache.sis.metadata.sql">
<meta name="generator" content="javadoc/PackageWriterImpl">
<meta name="keywords" content="org.apache.sis.metadata.sql package">
<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="package-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 class="nav-bar-cell1-rev">Package</li>
<li>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#package">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Package:</p>
<ul>
<li><a href="#package-description">Description</a></li>
<li><a href="#related-package-summary">Related Packages</a></li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</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">
<div class="header">
<div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../../../../../module-summary.html">org.apache.sis.metadata</a></div>
<h1 title="Package org.apache.sis.metadata.sql" class="title">Package org.apache.sis.metadata.sql</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">org.apache.sis.metadata.sql</span></div>
<section class="package-description" id="package-description">
<div class="block">An implementation of <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/Metadata.html" title="class or interface in org.opengis.metadata" class="external-link">Metadata</a> interfaces
fetching the data from an SQL database. Each metadata class is mapped to a table,
and each metadata property is mapped to a column in the table corresponding to the class.
Tables and columns are created only when first needed.
<p>This package is not a replacement for more sophisticated metadata applications.
This package provides only a direct mapping from metadata <i>interfaces</i> and <i>methods</i>
to database <i>tables</i> and <i>columns</i> with limited capability.
This is suitable only for applications wanting a simple metadata schema.
The restrictions are:</p>
<ul>
<li>Interfaces and methods must have <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/annotation/UML.html" title="class or interface in org.opengis.annotation" class="external-link"><code>UML</code></a> annotations.</li>
<li>Collections are not currently supported (only the first element is stored).</li>
<li><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> are stored only for the default locale.</li>
<li>Cyclic graph (<var>A</var> references <var>B</var> which reference <var>A</var>) are not supported,
unless foreigner key constraints are manually disabled for the columns which contain the cyclic references.</li>
</ul>
If the database supports <cite>table inheritance</cite> (like <a href="http://www.postgresql.org">PostgreSQL</a>),
then this package will leverage that feature for the storage of metadata that are sub-interface of other metadata
(for example <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/GeographicDescription.html" title="class or interface in org.opengis.metadata.extent" class="external-link"><code>Geographic­Description</code></a> which extends
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/metadata/extent/GeographicExtent.html" title="class or interface in org.opengis.metadata.extent" class="external-link"><code>Geographic­Extent</code></a>).</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.8</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/factory/sql/package-summary.html"><code>org​.apache​.sis​.referencing​.factory​.sql</code></a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">org.apache.sis.metadata</a></div>
<div class="col-last even-row-color">
<div class="block">Root package for various metadata implementations.</div>
</div>
<div class="col-first odd-row-color"><a href="../iso/package-summary.html">org.apache.sis.metadata.iso</a></div>
<div class="col-last odd-row-color">
<div class="block">Root package for ISO 19115 metadata about resources (data or services).</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button><button id="class-summary-tab5" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab5', 2)" class="table-tab">Exception Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="MetadataSource.html" title="class in org.apache.sis.metadata.sql">MetadataSource</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">A connection to a metadata database in read-only mode.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab5"><a href="MetadataStoreException.html" title="class in org.apache.sis.metadata.sql">MetadataStoreException</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab5">
<div class="block">Thrown when a metadata access failed.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="MetadataWriter.html" title="class in org.apache.sis.metadata.sql">MetadataWriter</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">A connection to a metadata database with write capabilities.</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>