blob: 246f27399a8d36f93f829b4658c7f34062a523ec [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_112) on Mon Oct 14 11:36:19 MSK 2019 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EventBridge (cayenne-doc: Cayenne Documentation 4.0.2 API)</title>
<meta name="date" content="2019-10-14">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.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.0.2 API)";
}
}
catch(err) {
}
//-->
var methods = {"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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cayenne/event/DefaultEventManager.html" title="class in org.apache.cayenne.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/cayenne/event/EventBridgeFactory.html" title="interface in org.apache.cayenne.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cayenne/event/EventBridge.html" target="_top">Frames</a></li>
<li><a href="EventBridge.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.cayenne.event</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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/cayenne/event/NoopEventBridge.html" title="class in org.apache.cayenne.event">NoopEventBridge</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">EventBridge</span>
extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">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 =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#eventManager">eventManager</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#externalEventSource">externalEventSource</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#externalSubject">externalSubject</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#localSubjects">localSubjects</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#mode">mode</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#RECEIVE_EXTERNAL">RECEIVE_EXTERNAL</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#RECEIVE_LOCAL">RECEIVE_LOCAL</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#RECEIVE_LOCAL_EXTERNAL">RECEIVE_LOCAL_EXTERNAL</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#EventBridge-java.util.Collection-java.lang.String-">EventBridge</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;&nbsp;localSubjects,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;externalSubject)</code>
<div class="block">Creates an EventBridge with multiple local subjects and a single external subject.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#EventBridge-org.apache.cayenne.event.EventSubject-java.lang.String-">EventBridge</a></span>(<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;externalSubject)</code>
<div class="block">Creates an EventBridge with a single local subject.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#convertToExternalSubject-org.apache.cayenne.event.EventSubject-">convertToExternalSubject</a></span>(<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject)</code>
<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="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#getEventManager--">getEventManager</a></span>()</code>
<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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#getExternalEventSource--">getExternalEventSource</a></span>()</code>
<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/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#getExternalSubject--">getExternalSubject</a></span>()</code>
<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/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#getLocalSubjects--">getLocalSubjects</a></span>()</code>
<div class="block">Returns a Collection of local EventSubjects.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#isRunning--">isRunning</a></span>()</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#onExternalEvent-org.apache.cayenne.event.CayenneEvent-">onExternalEvent</a></span>(<a href="../../../../org/apache/cayenne/event/CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;event)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#receivesExternalEvents--">receivesExternalEvents</a></span>()</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#receivesLocalEvents--">receivesLocalEvents</a></span>()</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#sendExternalEvent-org.apache.cayenne.event.CayenneEvent-">sendExternalEvent</a></span>(<a href="../../../../org/apache/cayenne/event/CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;localEvent)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#shutdown--">shutdown</a></span>()</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#shutdownExternal--">shutdownExternal</a></span>()</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#startup-org.apache.cayenne.event.EventManager-int-">startup</a></span>(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#startup-org.apache.cayenne.event.EventManager-int-java.lang.Object-">startup</a></span>(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;localEventSource)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#startup-org.apache.cayenne.event.EventManager-int-java.lang.Object-java.lang.Object-">startup</a></span>(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;localEventSource,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;remoteEventSource)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/cayenne/event/EventBridge.html#startupExternal--">startupExternal</a></span>()</code>
<div class="block">Starts an external interface of the EventBridge.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="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 name="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 name="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 name="externalSubject">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>externalSubject</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> externalSubject</pre>
</li>
</ul>
<a name="localSubjects">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localSubjects</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt; localSubjects</pre>
</li>
</ul>
<a name="eventManager">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eventManager</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a> eventManager</pre>
</li>
</ul>
<a name="mode">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mode</h4>
<pre>protected&nbsp;int mode</pre>
</li>
</ul>
<a name="externalEventSource">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>externalEventSource</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> externalEventSource</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="EventBridge-org.apache.cayenne.event.EventSubject-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EventBridge</h4>
<pre>public&nbsp;EventBridge(<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&nbsp;localSubject,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;externalSubject)</pre>
<div class="block">Creates an EventBridge with a single local subject.</div>
</li>
</ul>
<a name="EventBridge-java.util.Collection-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EventBridge</h4>
<pre>public&nbsp;EventBridge(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/EventSubject.html" title="class in org.apache.cayenne.event">EventSubject</a>&gt;&nbsp;localSubjects,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">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>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="convertToExternalSubject-org.apache.cayenne.event.EventSubject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertToExternalSubject</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;convertToExternalSubject(<a href="../../../../org/apache/cayenne/event/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 name="getExternalSubject--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExternalSubject</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getExternalSubject()</pre>
<div class="block">Returns a String subject used to post distributed events.</div>
</li>
</ul>
<a name="isRunning--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunning</h4>
<pre>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 name="getLocalSubjects--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalSubjects</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/cayenne/event/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 name="getEventManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEventManager</h4>
<pre>public&nbsp;<a href="../../../../org/apache/cayenne/event/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 name="getExternalEventSource--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExternalEventSource</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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 name="receivesLocalEvents--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receivesLocalEvents</h4>
<pre>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 name="receivesExternalEvents--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receivesExternalEvents</h4>
<pre>public&nbsp;boolean&nbsp;receivesExternalEvents()</pre>
<div class="block">Returns true if the bridge is configured to receive external events.</div>
</li>
</ul>
<a name="startup-org.apache.cayenne.event.EventManager-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre>public&nbsp;void&nbsp;startup(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="startup-org.apache.cayenne.event.EventManager-int-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre>public&nbsp;void&nbsp;startup(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;localEventSource)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="startup-org.apache.cayenne.event.EventManager-int-java.lang.Object-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startup</h4>
<pre>public&nbsp;void&nbsp;startup(<a href="../../../../org/apache/cayenne/event/EventManager.html" title="interface in org.apache.cayenne.event">EventManager</a>&nbsp;eventManager,
int&nbsp;mode,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;localEventSource,
<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;remoteEventSource)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a name="startupExternal--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startupExternal</h4>
<pre>protected abstract&nbsp;void&nbsp;startupExternal()
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;shutdown()
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="shutdownExternal--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdownExternal</h4>
<pre>protected abstract&nbsp;void&nbsp;shutdownExternal()
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="onExternalEvent-org.apache.cayenne.event.CayenneEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onExternalEvent</h4>
<pre>protected&nbsp;void&nbsp;onExternalEvent(<a href="../../../../org/apache/cayenne/event/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 name="sendExternalEvent-org.apache.cayenne.event.CayenneEvent-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sendExternalEvent</h4>
<pre>protected abstract&nbsp;void&nbsp;sendExternalEvent(<a href="../../../../org/apache/cayenne/event/CayenneEvent.html" title="class in org.apache.cayenne.event">CayenneEvent</a>&nbsp;localEvent)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">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/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cayenne/event/DefaultEventManager.html" title="class in org.apache.cayenne.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/cayenne/event/EventBridgeFactory.html" title="interface in org.apache.cayenne.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cayenne/event/EventBridge.html" target="_top">Frames</a></li>
<li><a href="EventBridge.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2019 <a href="http://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</body>
</html>