blob: f5e94812d48dfd4feceb8f2f2946ca4822a1cd59 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>DataBag (Apache Jena ARQ)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: org.apache.jena.arq, package: org.apache.jena.atlas.data, interface: DataBag">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.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 evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
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">
<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="../../../../../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="class-use/DataBag.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</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.jena.arq</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.jena.atlas.data</a></div>
<h1 title="Interface DataBag" class="title">Interface DataBag&lt;T&gt;</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code>org.apache.jena.atlas.lib.Closeable</code>, <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;T&gt;</code>, <code>org.apache.jena.atlas.lib.Sink&lt;T&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractDataBag.html" title="class in org.apache.jena.atlas.data">AbstractDataBag</a></code>, <code><a href="DefaultDataBag.html" title="class in org.apache.jena.atlas.data">DefaultDataBag</a></code>, <code><a href="DistinctDataBag.html" title="class in org.apache.jena.atlas.data">DistinctDataBag</a></code>, <code><a href="DistinctDataNet.html" title="class in org.apache.jena.atlas.data">DistinctDataNet</a></code>, <code><a href="SortedDataBag.html" title="class in org.apache.jena.atlas.data">SortedDataBag</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">DataBag&lt;T&gt;</span><span class="extends-implements">
extends org.apache.jena.atlas.lib.Sink&lt;T&gt;, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;T&gt;, org.apache.jena.atlas.lib.Closeable</span></div>
<div class="block">A collection of Tuples. A DataBag may or may not fit into memory.
It proactively spills to disk when its size exceeds the threshold.
When it spills, it takes whatever it has in memory, opens a spill file,
and writes the contents out. This may happen multiple times. The bag
tracks all of the files it's spilled to.
<p>
DataBag provides an Iterator interface, that allows callers to read
through the contents. The iterators are aware of the data spilling.
They have to be able to handle reading from files.
<p>
The DataBag interface assumes that all data is written before any is
read. That is, a DataBag cannot be used as a queue. If data is written
after data is read, the results are undefined. This condition is not
checked on each add or read, for reasons of speed. Caveat emptor.
<p>
DataBags come in several types, default, sorted, and distinct. The type
must be chosen up front, there is no way to convert a bag on the fly.
Default data bags do not guarantee any particular order of retrieval for
the tuples and may contain duplicate tuples. Sorted data bags guarantee
that tuples will be retrieved in order, where "in order" is defined either
by the default comparator for Tuple or the comparator provided by the
caller when the bag was created. Sorted bags may contain duplicates.
Distinct bags do not guarantee any particular order of retrieval, but do
guarantee that they will not contain duplicate tuples.
<p>
Inspired by Apache Pig</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="http://svn.apache.org/repos/asf/pig/tags/release-0.9.0/src/org/apache/pig/data/DataBag.java">DataBag from Apache Pig</a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default 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-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#add(T)" class="member-name-link">add</a><wbr>(<a href="DataBag.html" title="type parameter in DataBag">T</a>&nbsp;t)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Add a tuple to the bag.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#addAll(java.lang.Iterable)" class="member-name-link">addAll</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="DataBag.html" title="type parameter in DataBag">T</a>&gt;&nbsp;it)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Add contents of an Iterable to the bag.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#addAll(java.util.Iterator)" class="member-name-link">addAll</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;? extends <a href="DataBag.html" title="type parameter in DataBag">T</a>&gt;&nbsp;it)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Add contents of an Iterator to the bag.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isDistinct()" class="member-name-link">isDistinct</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Find out if the bag is distinct.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isSorted()" class="member-name-link">isSorted</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Find out if the bag is sorted.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#size()" class="member-name-link">size</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the number of elements in the bag, both in memory and on disk.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jena.atlas.lib.Closeable">Methods inherited from interface&nbsp;org.apache.jena.atlas.lib.Closeable</h3>
<code>close</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Iterable">Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="external-link">forEach</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#iterator()" title="class or interface in java.lang" class="external-link">iterator</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#spliterator()" title="class or interface in java.lang" class="external-link">spliterator</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jena.atlas.lib.Sink">Methods inherited from interface&nbsp;org.apache.jena.atlas.lib.Sink</h3>
<code>flush, send</code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="size()">
<h3>size</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name">size</span>()</div>
<div class="block">Get the number of elements in the bag, both in memory and on disk.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>number of elements in the bag</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isSorted()">
<h3>isSorted</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isSorted</span>()</div>
<div class="block">Find out if the bag is sorted.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if this is a sorted data bag, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isDistinct()">
<h3>isDistinct</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isDistinct</span>()</div>
<div class="block">Find out if the bag is distinct.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if the bag is a distinct bag, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="add(T)">
<h3 id="add(java.lang.Object)">add</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">add</span><wbr><span class="parameters">(<a href="DataBag.html" title="type parameter in DataBag">T</a>&nbsp;t)</span></div>
<div class="block">Add a tuple to the bag.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>t</code> - tuple to add.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addAll(java.lang.Iterable)">
<h3>addAll</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAll</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="DataBag.html" title="type parameter in DataBag">T</a>&gt;&nbsp;it)</span></div>
<div class="block">Add contents of an Iterable to the bag.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>it</code> - iterable to add contents of.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addAll(java.util.Iterator)">
<h3>addAll</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAll</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;? extends <a href="DataBag.html" title="type parameter in DataBag">T</a>&gt;&nbsp;it)</span></div>
<div class="block">Add contents of an Iterator to the bag.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>it</code> - iterator to add contents of.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Licensed under the Apache License, Version 2.0</small></p>
</footer>
</div>
</div>
</body>
</html>