blob: 6846051bfdfcbff0cc6cc33c5f522ca3e2d21f38 [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>EventBridge (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="EventBridge (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":6,"i10":10,"i11":6,"i12":10,"i13":10,"i14":10,"i15":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete 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/EventBridge.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.event</a></div>
<h2 title="Class EventBridge" class="title">Class EventBridge</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.cayenne.event.EventBridge</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util" class="externalLink">EventListener</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="NoopEventBridge.html" title="class in org.apache.cayenne.event">NoopEventBridge</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">EventBridge</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util" class="externalLink">EventListener</a></pre>
<div class="block"><p>An object that passes events between a local EventManager and some other event dispatch
mechanism. The most common example is sending local events to remote JVMs and receiving
remote events dispatched by those VMs. EventBridge makes possible to connect a network
of regular EventManagers in a single "virtual" distributed EventManager.
</p>
<p>
EventBridge encapsulates a transport agreed upon by all paries (such as JMS) and
maintains an array of "local" subjects to communicate with local EventManager, and a
single "remote" subject - to use for "external" communications that are
transport-specific.
<p>
Subclasses that require special setup to listen for external events should implement
<code>startupExternal()</code> method accordingly.
</p>
<p>
This class is an example of <a href="http://en.wikipedia.org/wiki/Bridge_pattern">"bridge" design pattern</a>, hence
the name.
</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</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>protected <a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eventManager">eventManager</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#externalEventSource">externalEventSource</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#externalSubject">externalSubject</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localSubjects">localSubjects</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mode">mode</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="#RECEIVE_EXTERNAL">RECEIVE_EXTERNAL</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RECEIVE_LOCAL">RECEIVE_LOCAL</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="#RECEIVE_LOCAL_EXTERNAL">RECEIVE_LOCAL_EXTERNAL</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Collection,java.lang.String)">EventBridge</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;&nbsp;localSubjects,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;externalSubject)</code></th>
<td class="colLast">
<div class="block">Creates an EventBridge with multiple local subjects and a single external subject.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.cayenne.event.EventSubject,java.lang.String)">EventBridge</a></span>&#8203;(<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;externalSubject)</code></th>
<td class="colLast">
<div class="block">Creates an EventBridge with a single local subject.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertToExternalSubject(org.apache.cayenne.event.EventSubject)">convertToExternalSubject</a></span>&#8203;(<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject)</code></th>
<td class="colLast">
<div class="block">A utility method that performs consistent translation from an EventSubject to a
String that can be used by external transport as subject for distributed
communications.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="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 local EventManager used by the bridge.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExternalEventSource()">getExternalEventSource</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an object used as a source of local events posted in response to remote
events.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExternalSubject()">getExternalSubject</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a String subject used to post distributed events.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocalSubjects()">getLocalSubjects</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a Collection of local EventSubjects.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRunning()">isRunning</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this bridge is active.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onExternalEvent(org.apache.cayenne.event.CayenneEvent)">onExternalEvent</a></span>&#8203;(<a href="CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Helper method intended to be called explicitly by subclasses to asynchronously post
an event obtained from a remote source.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#receivesExternalEvents()">receivesExternalEvents</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the bridge is configured to receive external events.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#receivesLocalEvents()">receivesLocalEvents</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the bridge is configured to receive local events from its internal
EventManager.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendExternalEvent(org.apache.cayenne.event.CayenneEvent)">sendExternalEvent</a></span>&#8203;(<a href="CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;localEvent)</code></th>
<td class="colLast">
<div class="block">Sends a Cayenne event over the transport supported by this bridge.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdown()">shutdown</a></span>()</code></th>
<td class="colLast">
<div class="block">Stops listening for events on both local and external interfaces.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdownExternal()">shutdownExternal</a></span>()</code></th>
<td class="colLast">
<div class="block">Shuts down the external interface of the EventBridge, cleaning up and releasing any
resources used to communicate external events.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startup(org.apache.cayenne.event.EventManager,int)">startup</a></span>&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode)</code></th>
<td class="colLast">
<div class="block">Starts EventBridge in the specified mode and locally listening to all event sources
that post on a preconfigured subject.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startup(org.apache.cayenne.event.EventManager,int,java.lang.Object)">startup</a></span>&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;localEventSource)</code></th>
<td class="colLast">
<div class="block">Starts EventBridge in the specified mode and locally listening to a specified event
source.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startup(org.apache.cayenne.event.EventManager,int,java.lang.Object,java.lang.Object)">startup</a></span>&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;localEventSource,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;remoteEventSource)</code></th>
<td class="colLast">
<div class="block">Starts EventBridge in the specified mode.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startupExternal()">startupExternal</a></span>()</code></th>
<td class="colLast">
<div class="block">Starts an external interface of the EventBridge.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</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="RECEIVE_LOCAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVE_LOCAL</h4>
<pre>public static final&nbsp;int RECEIVE_LOCAL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.event.EventBridge.RECEIVE_LOCAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="RECEIVE_EXTERNAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVE_EXTERNAL</h4>
<pre>public static final&nbsp;int RECEIVE_EXTERNAL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.event.EventBridge.RECEIVE_EXTERNAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="RECEIVE_LOCAL_EXTERNAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECEIVE_LOCAL_EXTERNAL</h4>
<pre>public static final&nbsp;int RECEIVE_LOCAL_EXTERNAL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.event.EventBridge.RECEIVE_LOCAL_EXTERNAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="externalSubject">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>externalSubject</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> externalSubject</pre>
</li>
</ul>
<a id="localSubjects">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localSubjects</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt; localSubjects</pre>
</li>
</ul>
<a id="eventManager">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eventManager</h4>
<pre>protected&nbsp;<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a> eventManager</pre>
</li>
</ul>
<a id="mode">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mode</h4>
<pre>protected&nbsp;int mode</pre>
</li>
</ul>
<a id="externalEventSource">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>externalEventSource</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> externalEventSource</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.apache.cayenne.event.EventSubject,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EventBridge</h4>
<pre>public&nbsp;EventBridge&#8203;(<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;externalSubject)</pre>
<div class="block">Creates an EventBridge with a single local subject.</div>
</li>
</ul>
<a id="&lt;init&gt;(java.util.Collection,java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EventBridge</h4>
<pre>public&nbsp;EventBridge&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;&nbsp;localSubjects,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;externalSubject)</pre>
<div class="block">Creates an EventBridge with multiple local subjects and a single external subject.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</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="convertToExternalSubject(org.apache.cayenne.event.EventSubject)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertToExternalSubject</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;convertToExternalSubject&#8203;(<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject)</pre>
<div class="block">A utility method that performs consistent translation from an EventSubject to a
String that can be used by external transport as subject for distributed
communications. Substitutes all chars that can be incorrectly interpreted by
whoever (JNDI, ...?).</div>
</li>
</ul>
<a id="getExternalSubject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExternalSubject</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getExternalSubject()</pre>
<div class="block">Returns a String subject used to post distributed events.</div>
</li>
</ul>
<a id="isRunning()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunning</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isRunning()</pre>
<div class="block">Returns true if this bridge is active.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="getLocalSubjects()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalSubjects</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;&nbsp;getLocalSubjects()</pre>
<div class="block">Returns a Collection of local EventSubjects.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="getEventManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventManager</h4>
<pre class="methodSignature">public&nbsp;<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;getEventManager()</pre>
<div class="block">Returns local EventManager used by the bridge. Returned value will be null before
the bridge is started and after it is shutdown.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="getExternalEventSource()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExternalEventSource</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getExternalEventSource()</pre>
<div class="block">Returns an object used as a source of local events posted in response to remote
events. If externalEventSource wasn't setup during bridge startup (or if the bridge
is not started), returns this object.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="receivesLocalEvents()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receivesLocalEvents</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;receivesLocalEvents()</pre>
<div class="block">Returns true if the bridge is configured to receive local events from its internal
EventManager.</div>
</li>
</ul>
<a id="receivesExternalEvents()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receivesExternalEvents</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;receivesExternalEvents()</pre>
<div class="block">Returns true if the bridge is configured to receive external events.</div>
</li>
</ul>
<a id="startup(org.apache.cayenne.event.EventManager,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;startup&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Starts EventBridge in the specified mode and locally listening to all event sources
that post on a preconfigured subject. Remote events reposted locally will have this
EventBridge as their source.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eventManager</code> - EventManager used to send and receive local events.</dd>
<dd><code>mode</code> - One of the possible modes of operation - RECEIVE_EXTERNAL,
RECEIVE_LOCAL, RECEIVE_LOCAL_EXTERNAL.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="startup(org.apache.cayenne.event.EventManager,int,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;startup&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;localEventSource)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Starts EventBridge in the specified mode and locally listening to a specified event
source. Remote events reposted locally will have this EventBridge as their source.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eventManager</code> - EventManager used to send and receive local events.</dd>
<dd><code>mode</code> - One of the possible modes of operation - RECEIVE_EXTERNAL,
RECEIVE_LOCAL, RECEIVE_LOCAL_EXTERNAL.</dd>
<dd><code>localEventSource</code> - If not null, only events originating from localEventSource
object will be processed by this bridge.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="startup(org.apache.cayenne.event.EventManager,int,java.lang.Object,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;startup&#8203;(<a href="EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;localEventSource,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;remoteEventSource)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Starts EventBridge in the specified mode.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eventManager</code> - EventManager used to send and receive local events.</dd>
<dd><code>mode</code> - One of the possible modes of operation - RECEIVE_EXTERNAL,
RECEIVE_LOCAL, RECEIVE_LOCAL_EXTERNAL.</dd>
<dd><code>localEventSource</code> - If not null, only events originating from localEventSource
object will be processed by this bridge.</dd>
<dd><code>remoteEventSource</code> - If not null, remoteEventSource object will be used as
standby source of local events posted by this EventBridge in response to
remote events.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a id="startupExternal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startupExternal</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;startupExternal()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Starts an external interface of the EventBridge.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="shutdown()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;shutdown()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Stops listening for events on both local and external interfaces.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="shutdownExternal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdownExternal</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;shutdownExternal()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Shuts down the external interface of the EventBridge, cleaning up and releasing any
resources used to communicate external events.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="onExternalEvent(org.apache.cayenne.event.CayenneEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onExternalEvent</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;onExternalEvent&#8203;(<a href="CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;event)</pre>
<div class="block">Helper method intended to be called explicitly by subclasses to asynchronously post
an event obtained from a remote source. Subclasses do not have to use this method,
but they probably should for consistency.</div>
</li>
</ul>
<a id="sendExternalEvent(org.apache.cayenne.event.CayenneEvent)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sendExternalEvent</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;sendExternalEvent&#8203;(<a href="CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;localEvent)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">Sends a Cayenne event over the transport supported by this bridge.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></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/EventBridge.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>