blob: f7962401b58c52b02e62c6f1aee4287f00864008 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>org.apache.sis.feature (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.feature 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="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.apache.sis.feature (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.sis.feature</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!-- -->
</a>
<div class="block">Defines the structure and content of views of real-world phenomenon.
The phenomenon to represent (or a fundamental unit of information) is called <cite>a feature</cite>.
The term “feature” may be used in different contexts:
<ul class="verbose">
<li><b><a href="DefaultFeatureType.html" title="class in org.apache.sis.feature">Feature types</a></b><br>
Define the <em>structure</em> of real-world representations. A feature type lists the
<a href="DefaultAttributeType.html" title="class in org.apache.sis.feature">attributes</a>,
<a href="AbstractOperation.html" title="class in org.apache.sis.feature">operations</a> or
<a href="DefaultAssociationRole.html" title="class in org.apache.sis.feature">associations to other features</a>
(collectively called “<a href="DefaultFeatureType.html#getProperties(boolean)">properties</a>
or “characteristics”) that a feature can have.
<div class="note"><b>Analogy:</b> a <code>Feature­Type</code> in a Spatial Information System is equivalent to a
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Class</code></a> in the Java language. By extension, <code>Attribute­Type</code> and <code>Operation</code> are
equivalent to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>Field</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>Method</code></a> respectively.</div></li>
<li><b><a href="AbstractFeature.html" title="class in org.apache.sis.feature">Feature instances</a></b> (often called only Features)<br>
Hold the <em>content</em> (or values) that describe one specific real-world object.
<div class="note"><b>Example:</b> the “Eiffel tower” is a <em>feature instance</em> belonging
to the “Tower” <em>feature type</em>.</div></li>
<li><b><a href="DefaultFeatureType.html#isSimple()">Simple features</a></b><br>
Are instances of a feature type with no association to other features, and where all attributes
have [1 … 1] multiplicity. Such simple features are very common.</li>
</ul>
In addition, a feature type can inherit the properties of one or more other feature types.
Properties defined in the sub-type can override properties of the same name defined in the
<a href="DefaultFeatureType.html#getSuperTypes()">super-types</a>, provided
that values of the sub-type property are assignable to the super-type property.
<div class="section">Naming</div>
Each feature type has a <a href="AbstractIdentifiedType.html#getName()">name</a>,
which should be unique. Those names are the main criterion used for checking if a feature type
<a href="DefaultFeatureType.html#isAssignableFrom(org.apache.sis.feature.DefaultFeatureType)">is assignable from</a> another type.
Names can be <a href="../util/iso/DefaultScopedName.html" title="class in org.apache.sis.util.iso">scoped</a> for avoiding name collision.
<div class="section">Class hierarchy</div>
The class hierarchy for feature <cite>types</cite> is derived from ISO 19109 specification.
The class hierarchy for feature <cite>instances</cite> is closely related:
<table class="sis">
<caption>Feature class hierarchy</caption>
<tr>
<th>Types</th>
<th class="sep">Instances</th>
</tr><tr><td style="width: 50%; white-space: nowrap">
<a href="AbstractIdentifiedType.html" title="class in org.apache.sis.feature">Identified type</a><br>
<code> ├─</code> <a href="DefaultFeatureType.html" title="class in org.apache.sis.feature">Feature type</a><br>
<code> └─</code> Property type<br>
<code>     ├─</code> <a href="DefaultAttributeType.html" title="class in org.apache.sis.feature">Attribute type</a><br>
<code>     ├─</code> <a href="DefaultAssociationRole.html" title="class in org.apache.sis.feature">Feature association role</a><br>
<code>     └─</code> <a href="AbstractOperation.html" title="class in org.apache.sis.feature">Operation</a><br>
</td><td class="sep" style="width: 50%; white-space: nowrap">
Object<br>
<code> ├─</code> <a href="AbstractFeature.html" title="class in org.apache.sis.feature">Feature</a> (<cite>sparse</cite> or <cite>dense</cite>)<br>
<code> └─</code> Property<br>
<code>     ├─</code> <a href="AbstractAttribute.html" title="class in org.apache.sis.feature">Attribute</a> (<cite>singleton</cite> or <cite>multi-valued</cite>)<br>
<code>     └─</code> <a href="AbstractAssociation.html" title="class in org.apache.sis.feature">Feature association</a> (<cite>singleton</cite> or <cite>multi-valued</cite>)<br>
</td></tr></table>
<div class="section">Instantiation</div>
Classes defined in this package are rarely instantiated directly (by a <code>new</code> statement).
Instead those classes are instantiated indirectly by invoking a method on a parent container,
or by using a builder. The starting point is <code>Feature­Type</code>, which may be created by a
<a href="builder/FeatureTypeBuilder.html" title="class in org.apache.sis.feature.builder"><code>Feature­Type­Builder</code></a> or may be provided by a
<a href="../storage/DataStore.html" title="class in org.apache.sis.storage"><code>Data­Store</code></a> reading a data file.
Once a <code>Feature­Type</code> has been obtained, <code>Feature</code>s can be instantiated by calls to the
<a href="DefaultFeatureType.html#newInstance()"><code>Feature­Type​.new­Instance()</code></a> method.
Once a <code>Feature</code> instance has been obtained, <code>Attribute</code>s can be instantiated indirectly
by calls to the <a href="AbstractFeature.html#setPropertyValue(java.lang.String,java.lang.Object)"><code>Feature​.set­Property­Value(…)</code></a> method.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.5</dd>
<p><font size="-1">Defined in the <code>sis-feature</code> module</font></p>
</dl>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractAssociation.html" title="class in org.apache.sis.feature">AbstractAssociation</a></th>
<td class="colLast">
<div class="block">An instance of an <a href="DefaultAssociationRole.html" title="class in org.apache.sis.feature">feature association role</a> containing the associated feature.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="AbstractAttribute.html" title="class in org.apache.sis.feature">AbstractAttribute</a>&lt;V&gt;</th>
<td class="colLast">
<div class="block">An instance of an <a href="DefaultAttributeType.html" title="class in org.apache.sis.feature">attribute type</a> containing the value of an attribute in a feature.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractFeature.html" title="class in org.apache.sis.feature">AbstractFeature</a></th>
<td class="colLast">
<div class="block">An instance of a <a href="DefaultFeatureType.html" title="class in org.apache.sis.feature">feature type</a> containing values for a real-world phenomena.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="AbstractIdentifiedType.html" title="class in org.apache.sis.feature">AbstractIdentifiedType</a></th>
<td class="colLast">
<div class="block">Identification and description information inherited by property types and feature types.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractOperation.html" title="class in org.apache.sis.feature">AbstractOperation</a></th>
<td class="colLast">
<div class="block">Describes the behaviour of a feature type as a function or a method.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultAssociationRole.html" title="class in org.apache.sis.feature">DefaultAssociationRole</a></th>
<td class="colLast">
<div class="block">Indicates the role played by the association between two features.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultAttributeType.html" title="class in org.apache.sis.feature">DefaultAttributeType</a>&lt;V&gt;</th>
<td class="colLast">
<div class="block">Definition of an attribute in a feature type.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultFeatureType.html" title="class in org.apache.sis.feature">DefaultFeatureType</a></th>
<td class="colLast">
<div class="block">Abstraction of a real-world phenomena.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="FeatureFormat.html" title="class in org.apache.sis.feature">FeatureFormat</a></th>
<td class="colLast">
<div class="block">Formats <a href="AbstractFeature.html" title="class in org.apache.sis.feature">features</a> or <a href="DefaultFeatureType.html" title="class in org.apache.sis.feature">feature types</a> in a tabular format.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="FeatureOperations.html" title="class in org.apache.sis.feature">FeatureOperations</a></th>
<td class="colLast">
<div class="block">A set of pre-defined operations expecting a <code>Feature</code> as input and producing an <code>Attribute</code> as output.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Features.html" title="class in org.apache.sis.feature">Features</a></th>
<td class="colLast">
<div class="block">Static methods working on features or attributes.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="FeatureFormat.Column.html" title="enum in org.apache.sis.feature">FeatureFormat.Column</a></th>
<td class="colLast">
<div class="block">Identifies the columns to include in the table formatted by <code>Feature­Format</code>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="FoliationRepresentation.html" title="enum in org.apache.sis.feature">FoliationRepresentation</a></th>
<td class="colLast">
<div class="block">Specifies whether trajectories are represented in a single <cite>moving feature</cite> instance
or fragmented in distinct static feature instances.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>