blob: f533eb02237bc0859dcbb6a91377caa8749b966d [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
<title>DataChannel (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-12-05">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.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.5.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="DataChannel (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataChannel.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 class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</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>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.cayenne</a></div>
<h2 title="Interface DataChannel" class="title">Interface DataChannel</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="BaseContext.html" title="class in org.apache.cayenne">BaseContext</a></code>, <code><a href="remote/ClientChannel.html" title="class in org.apache.cayenne.remote">ClientChannel</a></code>, <code><a href="access/ClientServerChannel.html" title="class in org.apache.cayenne.access">ClientServerChannel</a></code>, <code><a href="access/DataContext.html" title="class in org.apache.cayenne.access">DataContext</a></code>, <code><a href="access/DataDomain.html" title="class in org.apache.cayenne.access">DataDomain</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">DataChannel</span></pre>
<div class="block">DataChannel is an abstraction used by ObjectContexts to obtain mapping metadata and
access a persistent store. There is rarely a need to use it directly.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLUSH_CASCADE_SYNC">FLUSH_CASCADE_SYNC</a></span></code></th>
<td class="colLast">
<div class="block">A synchronization type that results in changes from an ObjectContext to be recorded
in the parent DataChannel.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FLUSH_NOCASCADE_SYNC">FLUSH_NOCASCADE_SYNC</a></span></code></th>
<td class="colLast">
<div class="block">A synchronization type that results in changes from an ObjectContext to be recorded
in the parent DataChannel.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#GRAPH_CHANGED_SUBJECT">GRAPH_CHANGED_SUBJECT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#GRAPH_FLUSHED_SUBJECT">GRAPH_FLUSHED_SUBJECT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#GRAPH_ROLLEDBACK_SUBJECT">GRAPH_ROLLEDBACK_SUBJECT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ROLLBACK_CASCADE_SYNC">ROLLBACK_CASCADE_SYNC</a></span></code></th>
<td class="colLast">
<div class="block">A synchronization type that results in cascading rollback of changes through the
DataChannel stack.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="map/EntityResolver.html" title="class in org.apache.cayenne.map">EntityResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityResolver()">getEntityResolver</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an EntityResolver instance that contains runtime mapping information.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEventManager()">getEventManager</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an EventManager associated with this channel.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="QueryResponse.html" title="interface in org.apache.cayenne">QueryResponse</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onQuery(org.apache.cayenne.ObjectContext,org.apache.cayenne.query.Query)">onQuery</a></span>&#8203;(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;originatingContext,
<a href="query/Query.html" title="interface in org.apache.cayenne.query">Query</a>&nbsp;query)</code></th>
<td class="colLast">
<div class="block">Executes a query, using provided <em>context</em> to register persistent objects if
query returns any objects.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="graph/GraphDiff.html" title="interface in org.apache.cayenne.graph">GraphDiff</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSync(org.apache.cayenne.ObjectContext,org.apache.cayenne.graph.GraphDiff,int)">onSync</a></span>&#8203;(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;originatingContext,
<a href="graph/GraphDiff.html" title="interface in org.apache.cayenne.graph">GraphDiff</a>&nbsp;changes,
int&nbsp;syncType)</code></th>
<td class="colLast">
<div class="block">Processes synchronization request from a child ObjectContext, returning a GraphDiff
that describes changes to objects made on the receiving end as a result of
synchronization.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="FLUSH_NOCASCADE_SYNC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FLUSH_NOCASCADE_SYNC</h4>
<pre>static final&nbsp;int FLUSH_NOCASCADE_SYNC</pre>
<div class="block">A synchronization type that results in changes from an ObjectContext to be recorded
in the parent DataChannel. If the parent is itself an ObjectContext, changes are
NOT propagated any further.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.apache.cayenne.DataChannel.FLUSH_NOCASCADE_SYNC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FLUSH_CASCADE_SYNC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FLUSH_CASCADE_SYNC</h4>
<pre>static final&nbsp;int FLUSH_CASCADE_SYNC</pre>
<div class="block">A synchronization type that results in changes from an ObjectContext to be recorded
in the parent DataChannel. If the parent is itself an ObjectContext, it is expected
to send its own sync message to its parent DataChannel to cascade synchronization
all the way down the stack.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.apache.cayenne.DataChannel.FLUSH_CASCADE_SYNC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="ROLLBACK_CASCADE_SYNC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ROLLBACK_CASCADE_SYNC</h4>
<pre>static final&nbsp;int ROLLBACK_CASCADE_SYNC</pre>
<div class="block">A synchronization type that results in cascading rollback of changes through the
DataChannel stack.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#org.apache.cayenne.DataChannel.ROLLBACK_CASCADE_SYNC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="GRAPH_CHANGED_SUBJECT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GRAPH_CHANGED_SUBJECT</h4>
<pre>static final&nbsp;<a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a> GRAPH_CHANGED_SUBJECT</pre>
</li>
</ul>
<a id="GRAPH_FLUSHED_SUBJECT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GRAPH_FLUSHED_SUBJECT</h4>
<pre>static final&nbsp;<a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a> GRAPH_FLUSHED_SUBJECT</pre>
</li>
</ul>
<a id="GRAPH_ROLLEDBACK_SUBJECT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GRAPH_ROLLEDBACK_SUBJECT</h4>
<pre>static final&nbsp;<a href="event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a> GRAPH_ROLLEDBACK_SUBJECT</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getEventManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventManager</h4>
<pre class="methodSignature"><a href="event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;getEventManager()</pre>
<div class="block">Returns an EventManager associated with this channel. Channel may return null if
EventManager is not available for any reason.</div>
</li>
</ul>
<a id="getEntityResolver()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntityResolver</h4>
<pre class="methodSignature"><a href="map/EntityResolver.html" title="class in org.apache.cayenne.map">EntityResolver</a>&nbsp;getEntityResolver()</pre>
<div class="block">Returns an EntityResolver instance that contains runtime mapping information.</div>
</li>
</ul>
<a id="onQuery(org.apache.cayenne.ObjectContext,org.apache.cayenne.query.Query)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onQuery</h4>
<pre class="methodSignature"><a href="QueryResponse.html" title="interface in org.apache.cayenne">QueryResponse</a>&nbsp;onQuery&#8203;(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;originatingContext,
<a href="query/Query.html" title="interface in org.apache.cayenne.query">Query</a>&nbsp;query)</pre>
<div class="block">Executes a query, using provided <em>context</em> to register persistent objects if
query returns any objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>originatingContext</code> - an ObjectContext that originated the query, used to
register result objects.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a generic response object that encapsulates result of the execution.</dd>
</dl>
</li>
</ul>
<a id="onSync(org.apache.cayenne.ObjectContext,org.apache.cayenne.graph.GraphDiff,int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onSync</h4>
<pre class="methodSignature"><a href="graph/GraphDiff.html" title="interface in org.apache.cayenne.graph">GraphDiff</a>&nbsp;onSync&#8203;(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;originatingContext,
<a href="graph/GraphDiff.html" title="interface in org.apache.cayenne.graph">GraphDiff</a>&nbsp;changes,
int&nbsp;syncType)</pre>
<div class="block">Processes synchronization request from a child ObjectContext, returning a GraphDiff
that describes changes to objects made on the receiving end as a result of
synchronization.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>originatingContext</code> - an ObjectContext that initiated the sync. Can be null.</dd>
<dd><code>changes</code> - diff from the context that initiated the sync.</dd>
<dd><code>syncType</code> - One of <a href="#FLUSH_NOCASCADE_SYNC"><code>FLUSH_NOCASCADE_SYNC</code></a>, <a href="#FLUSH_CASCADE_SYNC"><code>FLUSH_CASCADE_SYNC</code></a>,
<a href="#ROLLBACK_CASCADE_SYNC"><code>ROLLBACK_CASCADE_SYNC</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataChannel.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 class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</footer>
</body>
</html>