blob: 9ab2b000df24b7ef7f184f11d9b6bf7ad278dcb0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 21:55:05 PDT 2021 -->
<title>IContainer (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, interface: IContainer">
<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":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
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/IContainer.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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</a></div>
<h1 title="Interface IContainer" class="title">Interface IContainer</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</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></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="IReliableContainer.html" title="interface in org.eclipse.ecf.core">IReliableContainer</a></code>, <code><a href="sharedobject/ISharedObjectContainer.html" title="interface in org.eclipse.ecf.core.sharedobject">ISharedObjectContainer</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../remoteservice/client/AbstractClientContainer.html" title="class in org.eclipse.ecf.remoteservice.client">AbstractClientContainer</a></code>, <code><a href="AbstractContainer.html" title="class in org.eclipse.ecf.core">AbstractContainer</a></code>, <code><a href="../discovery/AbstractDiscoveryContainerAdapter.html" title="class in org.eclipse.ecf.discovery">AbstractDiscoveryContainerAdapter</a></code>, <code><a href="../remoteservice/rest/client/AbstractRestClientContainer.html" title="class in org.eclipse.ecf.remoteservice.rest.client">AbstractRestClientContainer</a></code>, <code><a href="../remoteservice/client/AbstractRSAClientContainer.html" title="class in org.eclipse.ecf.remoteservice.client">AbstractRSAClientContainer</a></code>, <code><a href="../remoteservice/AbstractRSAContainer.html" title="class in org.eclipse.ecf.remoteservice">AbstractRSAContainer</a></code>, <code><a href="BaseContainer.html" title="class in org.eclipse.ecf.core">BaseContainer</a></code>, <code><a href="../provider/generic/ClientSOContainer.html" title="class in org.eclipse.ecf.provider.generic">ClientSOContainer</a></code>, <code><a href="../provider/dnssd/DnsSdDiscoveryAdvertiser.html" title="class in org.eclipse.ecf.provider.dnssd">DnsSdDiscoveryAdvertiser</a></code>, <code><a href="../provider/dnssd/DnsSdDiscoveryContainerAdapter.html" title="class in org.eclipse.ecf.provider.dnssd">DnsSdDiscoveryContainerAdapter</a></code>, <code><a href="../provider/dnssd/DnsSdDiscoveryLocator.html" title="class in org.eclipse.ecf.provider.dnssd">DnsSdDiscoveryLocator</a></code>, <code><a href="../provider/jslp/container/JSLPDiscoveryContainer.html" title="class in org.eclipse.ecf.provider.jslp.container">JSLPDiscoveryContainer</a></code>, <code><a href="../provider/remoteservice/generic/RemoteServiceContainer.html" title="class in org.eclipse.ecf.provider.remoteservice.generic">RemoteServiceContainer</a></code>, <code><a href="../remoteservice/rest/client/RestClientContainer.html" title="class in org.eclipse.ecf.remoteservice.rest.client">RestClientContainer</a></code>, <code><a href="../provider/generic/ServerSOContainer.html" title="class in org.eclipse.ecf.provider.generic">ServerSOContainer</a></code>, <code><a href="../remoteservice/servlet/ServletServerContainer.html" title="class in org.eclipse.ecf.remoteservice.servlet">ServletServerContainer</a></code>, <code><a href="../provider/generic/SOContainer.html" title="class in org.eclipse.ecf.provider.generic">SOContainer</a></code>, <code><a href="../provider/generic/SSLClientSOContainer.html" title="class in org.eclipse.ecf.provider.generic">SSLClientSOContainer</a></code>, <code><a href="../provider/generic/SSLServerSOContainer.html" title="class in org.eclipse.ecf.provider.generic">SSLServerSOContainer</a></code>, <code><a href="../provider/generic/TCPClientSOContainer.html" title="class in org.eclipse.ecf.provider.generic">TCPClientSOContainer</a></code>, <code><a href="../provider/generic/TCPServerSOContainer.html" title="class in org.eclipse.ecf.provider.generic">TCPServerSOContainer</a></code>, <code><a href="../provider/zookeeper/core/ZooDiscoveryContainer.html" title="class in org.eclipse.ecf.provider.zookeeper.core">ZooDiscoveryContainer</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">IContainer</span>
extends org.eclipse.core.runtime.IAdaptable, <a href="identity/IIdentifiable.html" title="interface in org.eclipse.ecf.core.identity">IIdentifiable</a></pre>
<div class="block">Contract for ECF communications container<br>
<br>
IContainer instances are used by clients to define a context for
communications. <br>
<br>
The typical life cycle of an ECF communications container is:
<ol>
<li>Create an IContainer instance via a <a href="ContainerFactory.html" title="class in org.eclipse.ecf.core"><code>ContainerFactory</code></a></li>
<li><b>Optional</b>: Setup client-specific protocol adapters for
communicating via specific protocols</li>
<li>Connect the container to a remote process or group</li>
<li>Engage in communication via protocol adapters</li>
<li>Disconnect</li>
</ol>
For example, to create and connect an ECF "generic client":
<pre>
// Create container instance via factory
IContainer container = ContainerFactory.getDefault().createContainer(
&quot;ecf.generic.client&quot;);
// Get presence protocol adapter
IPresenceContainerAdapter presence = (IPresenceContainerAdapter) container
.getAdapter(IPresenceContainerAdapter.class);
// ... setup presence listeners and local input here using presence
// Connect
container.connect(target, targetConnectContext);
// Engage in appropriate communications here using protocol adapter(s)
// Manage protocol adapters as needed when finished
// Disconnect
container.disconnect();
</pre></div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== 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="t3" class="tableTab" onclick="show(4);">Abstract 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>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addListener(org.eclipse.ecf.core.IContainerListener)">addListener</a></span>&#8203;(<a href="IContainerListener.html" title="interface in org.eclipse.ecf.core">IContainerListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Add listener to IContainer.</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="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)">connect</a></span>&#8203;(<a href="identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;targetID,
<a href="security/IConnectContext.html" title="interface in org.eclipse.ecf.core.security">IConnectContext</a>&nbsp;connectContext)</code></th>
<td class="colLast">
<div class="block">Connect to a target remote process or process group.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disconnect()">disconnect</a></span>()</code></th>
<td class="colLast">
<div class="block">Disconnect.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispose()">dispose</a></span>()</code></th>
<td class="colLast">
<div class="block">Dispose this IContainer instance.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</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>&lt;T&gt;&nbsp;serviceType)</code></th>
<td class="colLast">
<div class="block">This specialization of IAdaptable.getAdapter() returns additional
services supported by this container.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<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="#getConnectedID()">getConnectedID</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the target ID that this container instance has connected to.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConnectNamespace()">getConnectNamespace</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the Namespace for creating a targetID suitable for use as the first
parameter in subsequent calls to <a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(org.eclipse.ecf.core.IContainerListener)">removeListener</a></span>&#8203;(<a href="IContainerListener.html" title="interface in org.eclipse.ecf.core">IContainerListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Remove listener from IContainer.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.ecf.core.identity.<a href="identity/IIdentifiable.html" title="interface in org.eclipse.ecf.core.identity">IIdentifiable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.ecf.core.identity.IIdentifiable">
<!-- -->
</a><code><a href="identity/IIdentifiable.html#getID()">getID</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ 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="connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)">connect</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">connect</span>&#8203;(<span class="arguments"><a href="identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;targetID,
<a href="security/IConnectContext.html" title="interface in org.eclipse.ecf.core.security">IConnectContext</a>&nbsp;connectContext)</span>
throws <span class="exceptions"><a href="ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></span></div>
<div class="block">Connect to a target remote process or process group. The target
identified by the first parameter (targetID) is connected the
implementation class. If authentication information is required, the
required information is given via via the second parameter
(connectContext).
Callers note that depending upon the provider implementation this method
may block. It is suggested that callers use a separate thread to call
this method.
This method provides an implementation independent way for container
implementations to connect, authenticate, and communicate with a remote
service or group of services. Providers are responsible for implementing
this operation in a way appropriate to the given remote service (or
group) via expected protocol.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>targetID</code> - the ID of the remote server or group to connect to. See
<a href="#getConnectNamespace()"><code>getConnectNamespace()</code></a> for a explanation of the
constraints upon this parameter.</dd>
<dd><code>connectContext</code> - any required context to allow this container to authenticate.
May be <code>null</code> if underlying provider does not
have any authentication requirements for connection.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></code> - thrown if communication cannot be established with remote
service. Causes can include network connection failure,
authentication failure, server error, or if container is
already connected.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getConnectedID()">getConnectedID</a></h3>
<div class="memberSignature"><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>
<div class="block">Get the target ID that this container instance has connected to. Returns
null if not connected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID of the target we are connected to. Returns <code>null</code>
if container not connected.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getConnectNamespace()">getConnectNamespace</a></h3>
<div class="memberSignature"><span class="returnType"><a href="identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></span>&nbsp;<span class="memberName">getConnectNamespace</span>()</div>
<div class="block">Get the Namespace for creating a targetID suitable for use as the first
parameter in subsequent calls to <a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a>.
If this method returns <code>null</code>, then it means that
<code>null</code> is expected as a valid parameter in subsequent calls
to <a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a>. If this method returns a non-<code>null</code>
Namespace, then the <code>targetID</code> parameter in
<a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a> must be non-<code>null</code>
instance created of the returned Namespace.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Namespace the namespace associated with subsequent calls to
<a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a>. If <code>null</code>,
then the <code>targetID</code> instances passed to
<a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a> may be <code>null</code>.
If not <code>null</code>, then <code>targetID</code>
instances passed to <a href="#connect(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.security.IConnectContext)"><code>connect(ID, IConnectContext)</code></a> must be
instances of the returned Namespace.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="disconnect()">disconnect</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">disconnect</span>()</div>
<div class="block">Disconnect. This operation will disconnect the local container instance
from any previously joined target or group. Subsequent calls to
getConnectedID() will return <code>null</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getAdapter(java.lang.Class)">getAdapter</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;T&gt;</span>&nbsp;<span class="returnType">T</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>&lt;T&gt;&nbsp;serviceType)</span></div>
<div class="block">This specialization of IAdaptable.getAdapter() returns additional
services supported by this container. A container that supports
additional services over and above the methods on <code>IContainer</code>
should return them using this method. It is recommended that clients use
this method rather than instanceof checks and downcasts to find out about
the capabilities of a specific container.
<p>
Typically, after obtaining an IContainer, a client would use this method
as a means to obtain a more meaningful interface to the container. This
interface may or may not extend IContainer. For example, a client could
use the following code to obtain an instance of ISharedObjectContainer:
</p>
<pre>
IContainer newContainer = ContainerFactory.createContainer(type);
ISharedObjectContainer soContainer = (ISharedObjectContainer) newContainer
.getAdapter(ISharedObjectContainer.class);
if (soContainer == null)
throw new ContainerCreateException(message);
</pre>
<p>
Implementations of this method should delegate to
<code>IAdapterManager.loadAdapter()</code> if the service
cannot be provided directly to ensure extensibility by third-party
plug-ins.
</p></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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceType</code> - the service type to look up</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the service instance castable to the given class, or
<code>null</code> if this container does not support the given
service</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="dispose()">dispose</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">dispose</span>()</div>
<div class="block">Dispose this IContainer instance. The container instance will be made
inactive after the completion of this method and will be unavailable for
subsequent usage.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="addListener(org.eclipse.ecf.core.IContainerListener)">addListener</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">addListener</span>&#8203;(<span class="arguments"><a href="IContainerListener.html" title="interface in org.eclipse.ecf.core">IContainerListener</a>&nbsp;listener)</span></div>
<div class="block">Add listener to IContainer. The listener's handleEvent method will be
synchronously called when container methods are called. Minimally, the
events delivered to the listener are as follows <br>
<table BORDER=1 CELLPADDING=4 CELLSPACING=0>
<caption>Container Events</caption>
<tr>
<td>container action</td>
<td>Event</td>
</tr>
<tr>
<td>connect start</td>
<td>IContainerConnectingEvent</td>
</tr>
<tr>
<td>connect complete</td>
<td>IContainerConnectedEvent</td>
</tr>
<tr>
<td>disconnect start</td>
<td>IContainerDisconnectingEvent</td>
</tr>
<tr>
<td>disconnect complete</td>
<td>IContainerDisconnectedEvent</td>
</tr>
</table></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the IContainerListener to add</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeListener(org.eclipse.ecf.core.IContainerListener)">removeListener</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">removeListener</span>&#8203;(<span class="arguments"><a href="IContainerListener.html" title="interface in org.eclipse.ecf.core">IContainerListener</a>&nbsp;listener)</span></div>
<div class="block">Remove listener from IContainer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the IContainerListener to remove</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/IContainer.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>