blob: e1ef3b43ab4c38308043f4546306ebf843c71568 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 20:48:08 PDT 2021 -->
<title>BaseSharedObject (Eclipse Communication Framework (ECF) 3.14.22 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="dc.created" content="2021-06-15">
<meta name="description" content="declaration: package: org.eclipse.ecf.core.sharedobject, class: BaseSharedObject">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= 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/BaseSharedObject.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-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.ecf.core.sharedobject</a></div>
<h1 title="Class BaseSharedObject" class="title">Class BaseSharedObject</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.eclipse.ecf.core.sharedobject.BaseSharedObject</div>
</div>
<section class="description">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>org.eclipse.core.runtime.IAdaptable</code>, <code><a href="../identity/IIdentifiable.html" title="interface in org.eclipse.ecf.core.identity">IIdentifiable</a></code>, <code><a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../remoteservice/eventadmin/DistributedEventAdmin.html" title="class in org.eclipse.ecf.remoteservice.eventadmin">DistributedEventAdmin</a></code>, <code><a href="OptimisticSharedObject.html" title="class in org.eclipse.ecf.core.sharedobject">OptimisticSharedObject</a></code>, <code><a href="../../provider/remoteservice/generic/RegistrySharedObject.html" title="class in org.eclipse.ecf.provider.remoteservice.generic">RegistrySharedObject</a></code>, <code><a href="TransactionSharedObject.html" title="class in org.eclipse.ecf.core.sharedobject">TransactionSharedObject</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">BaseSharedObject</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a>, <a href="../identity/IIdentifiable.html" title="interface in org.eclipse.ecf.core.identity">IIdentifiable</a></pre>
<div class="block">Base class for shared object classes. This base class provides a number of
utility method for subclasses to use for tracing (e.g.
<a href="#traceCatching(java.lang.String,java.lang.Throwable)"><code>traceCatching(String, Throwable)</code></a>, <a href="#traceEntering(java.lang.String)"><code>traceEntering(String)</code></a>,
<a href="#traceExiting(java.lang.String)"><code>traceExiting(String)</code></a>) logging (e.g.
<a href="#log(int,java.lang.String,java.lang.Throwable)"><code>log(int, String, Throwable)</code></a>), as well as methods to access the
<a href="ISharedObjectContext.html" title="interface in org.eclipse.ecf.core.sharedobject"><code>ISharedObjectContext</code></a> for the shared object instance (e.g.
<a href="#getID()"><code>getID()</code></a>, <a href="#getHomeContainerID()"><code>getHomeContainerID()</code></a>, <a href="#getContext()"><code>getContext()</code></a>,
<a href="#getConfig()"><code>getConfig()</code></a>, <a href="#getProperties()"><code>getProperties()</code></a>, <a href="#isConnected()"><code>isConnected()</code></a>,
<a href="#isPrimary()"><code>isPrimary()</code></a>, etc). Also provided are a number of methods for
sending messages to remote replica shared objects (e.g.
<a href="#sendSharedObjectMsgTo(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.SharedObjectMsg)"><code>sendSharedObjectMsgTo(ID, SharedObjectMsg)</code></a>,
<a href="#sendSharedObjectMsgToPrimary(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)"><code>sendSharedObjectMsgToPrimary(SharedObjectMsg)</code></a>,
<a href="#sendSharedObjectMsgToSelf(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)"><code>sendSharedObjectMsgToSelf(SharedObjectMsg)</code></a>) and methods for
replicating oneself to remote containers (e.g.
<a href="#replicateToRemoteContainers(org.eclipse.ecf.core.identity.ID%5B%5D)"><code>replicateToRemoteContainers(ID[])</code></a>). Finally, object lifecycle
methods are also provided (e.g. <a href="#initialize()"><code>initialize()</code></a>,
<a href="#creationCompleted()"><code>creationCompleted()</code></a>, <a href="#dispose(org.eclipse.ecf.core.identity.ID)"><code>dispose(ID)</code></a>).
Subclasses may use and override these methods as appropriate.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DESTROYREMOTE_CODE">DESTROYREMOTE_CODE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DESTROYSELFLOCAL_CODE">DESTROYSELFLOCAL_CODE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BaseSharedObject</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<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>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addEventProcessor(org.eclipse.ecf.core.util.IEventProcessor)">addEventProcessor</a></span>&#8203;(<a href="../util/IEventProcessor.html" title="interface in org.eclipse.ecf.core.util">IEventProcessor</a>&nbsp;proc)</code></th>
<td class="colLast">
<div class="block">Add an event processor to the set of event processors available.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearEventProcessors()">clearEventProcessors</a></span>()</code></th>
<td class="colLast">
<div class="block">Clear event processors.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#creationCompleted()">creationCompleted</a></span>()</code></th>
<td class="colLast">
<div class="block">Called by replication strategy code (e.g.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroyRemote(org.eclipse.ecf.core.identity.ID)">destroyRemote</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;remoteID)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroySelf()">destroySelf</a></span>()</code></th>
<td class="colLast">
<div class="block">Destroy this shared object in the context of the current container.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroySelfLocal()">destroySelfLocal</a></span>()</code></th>
<td class="colLast">
<div class="block">Destroy the local copy of this shared object in the current container.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispose(org.eclipse.ecf.core.identity.ID)">dispose</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;containerID)</code></th>
<td class="colLast">
<div class="block">Method called by the ISharedObjectContainer upon ISharedObject
destruction.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fireEventProcessors(org.eclipse.ecf.core.util.Event)">fireEventProcessors</a></span>&#8203;(<a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Fire the current set of event processors with given event.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/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="#getAdapter(java.lang.Class)">getAdapter</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;adapter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>protected <a href="ISharedObjectConfig.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfig()">getConfig</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the config for this shared object.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>protected <a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConnectedID()">getConnectedID</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>protected <a href="ISharedObjectContext.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the shared object context for this object.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code>protected <a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupMemberIDs()">getGroupMemberIDs</a></span>()</code></th>
<td class="colLast">
<div class="block">Get IDs of remote containers currently in this group.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code>protected <a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHomeContainerID()">getHomeContainerID</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getID()">getID</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the ID for this 'identifiable' object.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>protected <a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocalContainerID()">getLocalContainerID</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code>protected <a href="ReplicaSharedObjectDescription.html" title="class in org.eclipse.ecf.core.sharedobject">ReplicaSharedObjectDescription</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReplicaDescription(org.eclipse.ecf.core.identity.ID)">getReplicaDescription</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;receiver)</code></th>
<td class="colLast">
<div class="block">Get a ReplicaSharedObjectDescription for a replica to be created on a
given receiver.</div>
</td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code>protected <a href="ReplicaSharedObjectDescription.html" title="class in org.eclipse.ecf.core.sharedobject">ReplicaSharedObjectDescription</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReplicaDescriptions(org.eclipse.ecf.core.identity.ID%5B%5D)">getReplicaDescriptions</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;receivers)</code></th>
<td class="colLast">
<div class="block">This method is called by replicateToRemoteContainers to determine the
ReplicaSharedObjectDescriptions associated with the given receivers.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code>protected <a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSharedObjectMsgFromEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectMessageEvent)">getSharedObjectMsgFromEvent</a></span>&#8203;(<a href="events/ISharedObjectMessageEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectMessageEvent</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Get SharedObjectMsg from ISharedObjectMessageEvent.</div>
</td>
</tr>
<tr class="altColor" id="i20">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleEvent(org.eclipse.ecf.core.util.Event)">handleEvent</a></span>&#8203;(<a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Handle Event passed to this IEventHandler.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleEvents(org.eclipse.ecf.core.util.Event%5B%5D)">handleEvents</a></span>&#8203;(<a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>[]&nbsp;events)</code></th>
<td class="colLast">
<div class="block">Handle Events passed to this IEventHandler.</div>
</td>
</tr>
<tr class="altColor" id="i22">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleSharedObjectCreateResponseEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectCreateResponseEvent)">handleSharedObjectCreateResponseEvent</a></span>&#8203;(<a href="events/ISharedObjectCreateResponseEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectCreateResponseEvent</a>&nbsp;createResponseEvent)</code></th>
<td class="colLast">
<div class="block">Handle a ISharedObjectCreateResponseEvent.</div>
</td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleSharedObjectMsg(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">handleSharedObjectMsg</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;fromID,
<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i24">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleSharedObjectMsg(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">handleSharedObjectMsg</a></span>&#8203;(<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</code></th>
<td class="colLast">
<div class="block">SharedObjectMsg handler method.</div>
</td>
</tr>
<tr class="rowColor" id="i25">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleSharedObjectMsgEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectMessageEvent)">handleSharedObjectMsgEvent</a></span>&#8203;(<a href="events/ISharedObjectMessageEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectMessageEvent</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Handle a ISharedObjectMessageEvent.</div>
</td>
</tr>
<tr class="altColor" id="i26">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleUnhandledEvent(org.eclipse.ecf.core.util.Event)">handleUnhandledEvent</a></span>&#8203;(<a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</code></th>
<td class="colLast">
<div class="block">Method called when an event is not handled by any event processor.</div>
</td>
</tr>
<tr class="rowColor" id="i27">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)">init</a></span>&#8203;(<a href="ISharedObjectConfig.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectConfig</a>&nbsp;initData)</code></th>
<td class="colLast">
<div class="block">Initialize this ISharedObject.</div>
</td>
</tr>
<tr class="altColor" id="i28">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialize()">initialize</a></span>()</code></th>
<td class="colLast">
<div class="block">Initialize this shared object.</div>
</td>
</tr>
<tr class="rowColor" id="i29">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConnected()">isConnected</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i30">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPrimary()">isPrimary</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i31">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#log(int,java.lang.String,java.lang.Throwable)">log</a></span>&#8203;(int&nbsp;code,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i32">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#log(java.lang.String,java.lang.Throwable)">log</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i33">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeEventProcessor(org.eclipse.ecf.core.util.IEventProcessor)">removeEventProcessor</a></span>&#8203;(<a href="../util/IEventProcessor.html" title="interface in org.eclipse.ecf.core.util">IEventProcessor</a>&nbsp;proc)</code></th>
<td class="colLast">
<div class="block">Remove an event processor from the set of event processors available to this object.</div>
</td>
</tr>
<tr class="altColor" id="i34">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replicateToRemoteContainers(org.eclipse.ecf.core.identity.ID%5B%5D)">replicateToRemoteContainers</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;remoteContainers)</code></th>
<td class="colLast">
<div class="block">Replicate this shared object to a given set of remote containers.</div>
</td>
</tr>
<tr class="rowColor" id="i35">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSharedObjectMsgTo(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgTo</a></span>&#8203;(<a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;toID,
<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</code></th>
<td class="colLast">
<div class="block">Send SharedObjectMessage to container with given ID.</div>
</td>
</tr>
<tr class="altColor" id="i36">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSharedObjectMsgToPrimary(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgToPrimary</a></span>&#8203;(<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</code></th>
<td class="colLast">
<div class="block">Send SharedObjectMsg to this shared object's primary instance.</div>
</td>
</tr>
<tr class="rowColor" id="i37">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSharedObjectMsgToSelf(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgToSelf</a></span>&#8203;(<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</code></th>
<td class="colLast">
<div class="block">Send SharedObjectMsg to local shared object.</div>
</td>
</tr>
<tr class="altColor" id="i38">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.String,java.lang.String)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i39">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceCatching(java.lang.String,java.lang.Throwable)">traceCatching</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;t)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i40">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceEntering(java.lang.String)">traceEntering</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i41">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceEntering(java.lang.String,java.lang.Object)">traceEntering</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;param)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i42">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceEntering(java.lang.String,java.lang.Object%5B%5D)">traceEntering</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;params)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i43">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceExiting(java.lang.String)">traceExiting</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i44">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#traceExiting(java.lang.String,java.lang.Object)">traceExiting</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;result)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/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/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="DESTROYREMOTE_CODE">DESTROYREMOTE_CODE</a></h3>
<div class="memberSignature"><span class="modifiers">protected static final</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">DESTROYREMOTE_CODE</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.ecf.core.sharedobject.BaseSharedObject.DESTROYREMOTE_CODE">Constant Field Values</a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="DESTROYSELFLOCAL_CODE">DESTROYSELFLOCAL_CODE</a></h3>
<div class="memberSignature"><span class="modifiers">protected static final</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">DESTROYSELFLOCAL_CODE</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.ecf.core.sharedobject.BaseSharedObject.DESTROYSELFLOCAL_CODE">Constant Field Values</a></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;()">BaseSharedObject</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">BaseSharedObject</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)">init</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">init</span>&#8203;(<span class="arguments"><a href="ISharedObjectConfig.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectConfig</a>&nbsp;initData)</span>
throws <span class="exceptions"><a href="SharedObjectInitException.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectInitException</a></span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ISharedObject.html#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)">ISharedObject</a></code></span></div>
<div class="block">Initialize this ISharedObject. The ISharedObjectContainer for this
ISharedObject must call this method with a non-null instance of
ISharedObjectConfig. ISharedObject implementations can use this
initialization to perform any initialization necessary prior to receiving
any events (via handleEvent/s). Note that the ISharedObjectContext
provided via the ISharedObjectConfig.getSharedObjectContext() method is
not guaranteed to allow any method calls until after this init() method
call has completed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISharedObject.html#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)">init</a></code>&nbsp;in interface&nbsp;<code><a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initData</code> - the initialization data passed by the ISharedObjectContainer
upon initialization</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="SharedObjectInitException.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectInitException</a></code> - thrown by ISharedObject to halt initialization.
ISharedObjectContainers must respond to such an exception
by halting the addition of the ISharedObject instance and
treating it as <b>not </b> in the container.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="initialize()">initialize</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">initialize</span>()
throws <span class="exceptions"><a href="SharedObjectInitException.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectInitException</a></span></div>
<div class="block">Initialize this shared object. Subclasses may override as appropriate to
define custom initialization behavior. If initialization should fail,
then a SharedObjectInitException should be thrown by implementing code.
Also, subclasses overriding this method should call super.initialize()
before running their own code.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="SharedObjectInitException.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectInitException</a></code> - if initialization should throw</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="creationCompleted()">creationCompleted</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">creationCompleted</span>()</div>
<div class="block">Called by replication strategy code (e.g. two phase commit) when creation
is completed (i.e. when transactional replication completed
successfully). Subclasses that need to be notified when creation is
completed should override this method.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="dispose(org.eclipse.ecf.core.identity.ID)">dispose</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">dispose</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;containerID)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ISharedObject.html#dispose(org.eclipse.ecf.core.identity.ID)">ISharedObject</a></code></span></div>
<div class="block">Method called by the ISharedObjectContainer upon ISharedObject
destruction. Once this method is called, no more Events will be passed to
a ISharedObject until the init method is called again.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISharedObject.html#dispose(org.eclipse.ecf.core.identity.ID)">dispose</a></code>&nbsp;in interface&nbsp;<code><a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>containerID</code> - the ID of the container that is disposing this ISharedObject</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getAdapter(java.lang.Class)">getAdapter</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></span>&nbsp;<span class="memberName">getAdapter</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;adapter)</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getAdapter</code>&nbsp;in interface&nbsp;<code>org.eclipse.core.runtime.IAdaptable</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleEvent(org.eclipse.ecf.core.util.Event)">handleEvent</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">handleEvent</span>&#8203;(<span class="arguments"><a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ISharedObject.html#handleEvent(org.eclipse.ecf.core.util.Event)">ISharedObject</a></code></span></div>
<div class="block">Handle Event passed to this IEventHandler.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISharedObject.html#handleEvent(org.eclipse.ecf.core.util.Event)">handleEvent</a></code>&nbsp;in interface&nbsp;<code><a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the Event for the implementer to handle</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="addEventProcessor(org.eclipse.ecf.core.util.IEventProcessor)">addEventProcessor</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">addEventProcessor</span>&#8203;(<span class="arguments"><a href="../util/IEventProcessor.html" title="interface in org.eclipse.ecf.core.util">IEventProcessor</a>&nbsp;proc)</span></div>
<div class="block">Add an event processor to the set of event processors available.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proc</code> - the event processor to add. Must not be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if actually added, <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeEventProcessor(org.eclipse.ecf.core.util.IEventProcessor)">removeEventProcessor</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">removeEventProcessor</span>&#8203;(<span class="arguments"><a href="../util/IEventProcessor.html" title="interface in org.eclipse.ecf.core.util">IEventProcessor</a>&nbsp;proc)</span></div>
<div class="block">Remove an event processor from the set of event processors available to this object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proc</code> - the event processor to remove. Must not be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if actually removed, <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="clearEventProcessors()">clearEventProcessors</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">clearEventProcessors</span>()</div>
<div class="block">Clear event processors.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleUnhandledEvent(org.eclipse.ecf.core.util.Event)">handleUnhandledEvent</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">handleUnhandledEvent</span>&#8203;(<span class="arguments"><a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</span></div>
<div class="block">Method called when an event is not handled by any event processor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the event that was not handled.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="fireEventProcessors(org.eclipse.ecf.core.util.Event)">fireEventProcessors</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">fireEventProcessors</span>&#8203;(<span class="arguments"><a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>&nbsp;event)</span></div>
<div class="block">Fire the current set of event processors with given event.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the event to deliver to event processors.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleEvents(org.eclipse.ecf.core.util.Event[])">handleEvents</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">handleEvents</span>&#8203;(<span class="arguments"><a href="../util/Event.html" title="interface in org.eclipse.ecf.core.util">Event</a>[]&nbsp;events)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ISharedObject.html#handleEvents(org.eclipse.ecf.core.util.Event%5B%5D)">ISharedObject</a></code></span></div>
<div class="block">Handle Events passed to this IEventHandler.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISharedObject.html#handleEvents(org.eclipse.ecf.core.util.Event%5B%5D)">handleEvents</a></code>&nbsp;in interface&nbsp;<code><a href="ISharedObject.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObject</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>events</code> - the Events [] for the implementer to handle</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getID()">getID</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></span>&nbsp;<span class="memberName">getID</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../identity/IIdentifiable.html#getID()">IIdentifiable</a></code></span></div>
<div class="block">Return the ID for this 'identifiable' object. The returned ID should be
unique within its namespace. May return <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../identity/IIdentifiable.html#getID()">getID</a></code>&nbsp;in interface&nbsp;<code><a href="../identity/IIdentifiable.html" title="interface in org.eclipse.ecf.core.identity">IIdentifiable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ID for this identifiable object. May return <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getConfig()">getConfig</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="ISharedObjectConfig.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectConfig</a></span>&nbsp;<span class="memberName">getConfig</span>()</div>
<div class="block">Get the config for this shared object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ISharedObjectConfig for this object. The ISharedObjectConfig is
set within <a href="#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)"><code>init(ISharedObjectConfig)</code></a>. Will not be <code>null</code> as long as the init method
is called prior to this method being called.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getContext()">getContext</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="ISharedObjectContext.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectContext</a></span>&nbsp;<span class="memberName">getContext</span>()</div>
<div class="block">Get the shared object context for this object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ISharedObjectContext the context. Will not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getHomeContainerID()">getHomeContainerID</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></span>&nbsp;<span class="memberName">getHomeContainerID</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID that is the home container ID (primary) for this shared object. Will not be <code>null</code>
as long as the <a href="#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)"><code>init(ISharedObjectConfig)</code></a> method has been called (by container) as a result
of <a href="ISharedObjectManager.html#addSharedObject(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.ISharedObject,java.util.Map)"><code>ISharedObjectManager.addSharedObject(ID, ISharedObject, Map)</code></a>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getLocalContainerID()">getLocalContainerID</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></span>&nbsp;<span class="memberName">getLocalContainerID</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID that is the local container ID for this shared object. Will be <code>null</code> if
the shared object is *not* in a local container (i.e. has been removed from the container).</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getConnectedID()">getConnectedID</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a></span>&nbsp;<span class="memberName">getConnectedID</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID the connected ID for the container that contains this shared object. Will be non-<code>null</code>
if the surrounding container is not currently connected.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isConnected()">isConnected</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isConnected</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the surrounding container is currently connected, <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isPrimary()">isPrimary</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isPrimary</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this shared object replica is the <b>primary</b>. The definition of primary
is whether the <a href="#getLocalContainerID()"><code>getLocalContainerID()</code></a> and <a href="#getHomeContainerID()"><code>getHomeContainerID()</code></a> values are equal.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getProperties()">getProperties</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;?&gt;</span>&nbsp;<span class="memberName">getProperties</span>()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map any properties associated with this shared object via the ISharedObjectConfig provided
upon <a href="#init(org.eclipse.ecf.core.sharedobject.ISharedObjectConfig)"><code>init(ISharedObjectConfig)</code></a>.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="destroySelf()">destroySelf</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">destroySelf</span>()</div>
<div class="block">Destroy this shared object in the context of the current container. Destroys both local copy and
any replicas present in remote containers.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="destroySelfLocal()">destroySelfLocal</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">destroySelfLocal</span>()</div>
<div class="block">Destroy the local copy of this shared object in the current container.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="destroyRemote(org.eclipse.ecf.core.identity.ID)">destroyRemote</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">destroyRemote</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;remoteID)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>remoteID</code> - the ID of the remote container where the replica should be destroyed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if the destroy message cannot be sent (i.e. due to disconnection, etc).</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sendSharedObjectMsgTo(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgTo</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">sendSharedObjectMsgTo</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;toID,
<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></span></div>
<div class="block">Send SharedObjectMessage to container with given ID. The toID parameter
may be null, and if null the message will be delivered to <b>all</b>
containers in group. The second parameter may not be null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>toID</code> - the target container ID for the SharedObjectMsg. If null, the
given message is sent to all other containers currently in
group</dd>
<dd><code>msg</code> - the message instance to send</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - thrown if the local container is not connected or unable to
send for other reason</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sendSharedObjectMsgToPrimary(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgToPrimary</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">sendSharedObjectMsgToPrimary</span>&#8203;(<span class="arguments"><a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></span></div>
<div class="block">Send SharedObjectMsg to this shared object's primary instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>msg</code> - the message instance to send</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - throws if the local container is not connect or unable to
send for other reason</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sendSharedObjectMsgToSelf(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">sendSharedObjectMsgToSelf</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">sendSharedObjectMsgToSelf</span>&#8203;(<span class="arguments"><a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</span></div>
<div class="block">Send SharedObjectMsg to local shared object. This places the given
message at the end of this shared object's message queue for processing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>msg</code> - the message instance to send.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getSharedObjectMsgFromEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectMessageEvent)">getSharedObjectMsgFromEvent</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a></span>&nbsp;<span class="memberName">getSharedObjectMsgFromEvent</span>&#8203;(<span class="arguments"><a href="events/ISharedObjectMessageEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectMessageEvent</a>&nbsp;event)</span></div>
<div class="block">Get SharedObjectMsg from ISharedObjectMessageEvent.
ISharedObjectMessageEvents can come from both local and remote sources.
In the remote case, the SharedObjectMsg has to be retrieved from the
RemoteSharedObjectEvent rather than the
ISharedObjectMessageEvent.getData() directly. This method will provide a
non-null SharedObjectMsg if it's provided either via remotely or locally.
Returns null if the given event does not provide a valid SharedObjectMsg.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SharedObjectMsg the SharedObjectMsg delivered by the given event</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleSharedObjectMsgEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectMessageEvent)">handleSharedObjectMsgEvent</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">handleSharedObjectMsgEvent</span>&#8203;(<span class="arguments"><a href="events/ISharedObjectMessageEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectMessageEvent</a>&nbsp;event)</span></div>
<div class="block">Handle a ISharedObjectMessageEvent. This method will be automatically
called by the SharedObjectMsgEventProcessor when a
ISharedObjectMessageEvent is received. The SharedObjectMsgEventProcessor
is associated with this object via the initialize() method</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the event to handle</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the provided event should receive no further processing.
If false the provided Event should be passed to subsequent event
processors.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleSharedObjectMsg(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">handleSharedObjectMsg</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">handleSharedObjectMsg</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;fromID,
<a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</span></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleSharedObjectCreateResponseEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectCreateResponseEvent)">handleSharedObjectCreateResponseEvent</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">handleSharedObjectCreateResponseEvent</span>&#8203;(<span class="arguments"><a href="events/ISharedObjectCreateResponseEvent.html" title="interface in org.eclipse.ecf.core.sharedobject.events">ISharedObjectCreateResponseEvent</a>&nbsp;createResponseEvent)</span></div>
<div class="block">Handle a ISharedObjectCreateResponseEvent. This handler is called by
handleSharedObjectMsgEvent when the ISharedObjectMessageEvent is of type
ISharedObjectCreateResponseEvent. This default implementation simply
returns false. Subclasses may override as appropriate. Note that if
return value is true, it will prevent subsequent event processors from
having a chance to process event</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>createResponseEvent</code> - the ISharedObjectCreateResponseEvent received</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the provided event should receive no further processing.
If false the provided Event should be passed to subsequent event
processors.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="handleSharedObjectMsg(org.eclipse.ecf.core.sharedobject.SharedObjectMsg)">handleSharedObjectMsg</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">handleSharedObjectMsg</span>&#8203;(<span class="arguments"><a href="SharedObjectMsg.html" title="class in org.eclipse.ecf.core.sharedobject">SharedObjectMsg</a>&nbsp;msg)</span></div>
<div class="block">SharedObjectMsg handler method. This method will be called by
<a href="#handleSharedObjectMsgEvent(org.eclipse.ecf.core.sharedobject.events.ISharedObjectMessageEvent)"><code>handleSharedObjectMsgEvent(ISharedObjectMessageEvent)</code></a> when a
SharedObjectMsg is received either from a local source or a remote
source. This default implementation simply returns false so that other
processing of of the given msg can occur. Subclasses should override this
behavior to define custom logic for handling SharedObjectMsgs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>msg</code> - the SharedObjectMsg received</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the msg has been completely handled and subsequent
processing should stop. False if processing should continue</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getReplicaDescription(org.eclipse.ecf.core.identity.ID)">getReplicaDescription</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="ReplicaSharedObjectDescription.html" title="class in org.eclipse.ecf.core.sharedobject">ReplicaSharedObjectDescription</a></span>&nbsp;<span class="memberName">getReplicaDescription</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;receiver)</span></div>
<div class="block">Get a ReplicaSharedObjectDescription for a replica to be created on a
given receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>receiver</code> - the receiver the ReplicaSharedObjectDescription is for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ReplicaSharedObjectDescription to be associated with given
receiver. A non-null ReplicaSharedObjectDescription <b>must</b>
be returned.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getReplicaDescriptions(org.eclipse.ecf.core.identity.ID[])">getReplicaDescriptions</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="ReplicaSharedObjectDescription.html" title="class in org.eclipse.ecf.core.sharedobject">ReplicaSharedObjectDescription</a>[]</span>&nbsp;<span class="memberName">getReplicaDescriptions</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;receivers)</span></div>
<div class="block">This method is called by replicateToRemoteContainers to determine the
ReplicaSharedObjectDescriptions associated with the given receivers.
Receivers may be null (meaning that all in group are to be receivers),
and if so then this method should return a ReplicaSharedObjectDescription []
of length 1 with a single ReplicaSharedObjectDescription that will be
used for all receivers. If receivers is non-null, then the
ReplicaSharedObjectDescription [] result must be of <b>same length</b>
as the receivers array. This method calls the getReplicaDescription
method to create a replica description for each receiver. If this method
returns null, <b>null replication is done</b>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>receivers</code> - an ID[] of the intended receivers for the resulting
ReplicaSharedObjectDescriptions. If null, then the <b>entire
current group</b> is assumed to be the target, and this
method should return a ReplicaSharedObjectDescriptions array
of length 1, with a single ReplicaSharedObjectDescriptions for
all target receivers.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ReplicaSharedObjectDescription[] to determine replica
descriptions for each receiver. A null return value indicates
that no replicas are to be created. If the returned array is not
null, then it <b>must</b> be of same length as the receivers
parameter.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getGroupMemberIDs()">getGroupMemberIDs</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]</span>&nbsp;<span class="memberName">getGroupMemberIDs</span>()</div>
<div class="block">Get IDs of remote containers currently in this group. This method
consults the current container context to retrieve the current group
membership</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID[] of current group membership. Will not return null;</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ISharedObjectContext.html#getGroupMemberIDs()"><code>ISharedObjectContext.getGroupMemberIDs()</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="replicateToRemoteContainers(org.eclipse.ecf.core.identity.ID[])">replicateToRemoteContainers</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">replicateToRemoteContainers</span>&#8203;(<span class="arguments"><a href="../identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;remoteContainers)</span></div>
<div class="block">Replicate this shared object to a given set of remote containers. This
method will invoke the method getReplicaDescriptions in order to
determine the set of ReplicaSharedObjectDescriptions to send to remote
containers.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>remoteContainers</code> - the set of remote containers to replicate to. If null, <b>all</b>
containers in the current group are sent a message to create a
replica of this shared object.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="log(int,java.lang.String,java.lang.Throwable)">log</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">log</span>&#8203;(<span class="arguments">int&nbsp;code,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="log(java.lang.String,java.lang.Throwable)">log</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">log</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceEntering(java.lang.String)">traceEntering</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceEntering</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceEntering(java.lang.String,java.lang.Object[])">traceEntering</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceEntering</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;params)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceEntering(java.lang.String,java.lang.Object)">traceEntering</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceEntering</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;param)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceExiting(java.lang.String)">traceExiting</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceExiting</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceExiting(java.lang.String,java.lang.Object)">traceExiting</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceExiting</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;methodName,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;result)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="traceCatching(java.lang.String,java.lang.Throwable)">traceCatching</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">traceCatching</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;t)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="trace(java.lang.String,java.lang.String)">trace</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">trace</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</span></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.2</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseSharedObject.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-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>