blob: 28f9a64a2b2910a593957c92594d932a216c27e8 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Sun Dec 23 12:06:05 CET 2018 -->
<title>ComponentContext</title>
<meta name="date" content="2018-12-23">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ComponentContext";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="class in org.apache.felix.dm.context"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/context/ComponentContext.html" target="_top">Frames</a></li>
<li><a href="ComponentContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>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>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.dm.context</div>
<h2 title="Interface ComponentContext" class="title">Interface ComponentContext</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ComponentContext</span>
extends <a href="../../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></pre>
<div class="block">This interface is the entry point to the Component implementation context.
It is used by all DependencyManager Dependency implementations.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context"><code>interface</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.felix.dm.Component">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.felix.dm.<a href="../../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></h3>
<code><a href="../../../../../org/apache/felix/dm/Component.ServiceScope.html" title="enum in org.apache.felix.dm">Component.ServiceScope</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;U</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#createConfigurationType-java.lang.Class-java.util.Dictionary-">createConfigurationType</a></span>(java.lang.Class&lt;U&gt;&nbsp;type,
java.util.Dictionary&lt;?,?&gt;&nbsp;config)</code>
<div class="block">Creates a configuration for a given type backed by a given dictionary.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getAutoConfig-java.lang.Class-">getAutoConfig</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz)</code>
<div class="block">Indicates if an object of the given class can be injected in one field of the component</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getAutoConfigInstance-java.lang.Class-">getAutoConfigInstance</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz)</code>
<div class="block">Returns the component instance field that is assignable to a given class type</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>Bundle</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getBundle--">getBundle</a></span>()</code>
<div class="block">Returns the Compoent's bundle.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>BundleContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getBundleContext--">getBundleContext</a></span>()</code>
<div class="block">Returns the Component's bundle context</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getDependencies--">getDependencies</a></span>()</code>
<div class="block">Returns the list of dependencies that has been registered on this component</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getDependencyEvent-org.apache.felix.dm.context.DependencyContext-">getDependencyEvent</a></span>(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc)</code>
<div class="block">Returns the highest ranked dependency service instance for a given dependency</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getDependencyEvents-org.apache.felix.dm.context.DependencyContext-">getDependencyEvents</a></span>(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc)</code>
<div class="block">Returns all the available dependency services for a given dependency</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.util.concurrent.Executor</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getExecutor--">getExecutor</a></span>()</code>
<div class="block">Returns the Component Executor gate that can be used to ensure proper component event serialization.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.Object[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getInstances--">getInstances</a></span>()</code>
<div class="block">Returns the component instances</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/Logger.html" title="class in org.apache.felix.dm">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#getLogger--">getLogger</a></span>()</code>
<div class="block">Returns the logger which can be used by the DependencyManager Dependencies implementations.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#handleEvent-org.apache.felix.dm.context.DependencyContext-org.apache.felix.dm.context.EventType-org.apache.felix.dm.context.Event...-">handleEvent</a></span>(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc,
<a href="../../../../../org/apache/felix/dm/context/EventType.html" title="enum in org.apache.felix.dm.context">EventType</a>&nbsp;type,
<a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>...&nbsp;event)</code>
<div class="block">Notifies the Component about a dependency event.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#injectionDisabled--">injectionDisabled</a></span>()</code>
<div class="block">Indicates if the component fields and methods injections are disabled.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#instantiateComponent--">instantiateComponent</a></span>()</code>
<div class="block">Instantiates the component instances.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#invokeCallback-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.util.function.Supplier:A:A-boolean-">invokeCallback</a></span>(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.util.function.Supplier&lt;?&gt;[][]&nbsp;paramsSupplier,
boolean&nbsp;logIfNotFound)</code>
<div class="block">Invokes a callback method on a given set of objects.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#invokeCallbackMethod-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.lang.Object:A:A-">invokeCallbackMethod</a></span>(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.lang.Object[][]&nbsp;parameters)</code>
<div class="block">Invokes a callback method on a given set of objects.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#invokeCallbackMethod-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.lang.Object:A:A-boolean-">invokeCallbackMethod</a></span>(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.lang.Object[][]&nbsp;parameters,
boolean&nbsp;logIfNotFound)</code>
<div class="block">Invokes a callback method on a given set of objects.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#isActive--">isActive</a></span>()</code>
<div class="block">Is this component already started ?</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#isAvailable--">isAvailable</a></span>()</code>
<div class="block">Is this component available (all required dependencies are available) ?</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#setThreadPool-java.util.concurrent.Executor-">setThreadPool</a></span>(java.util.concurrent.Executor&nbsp;threadPool)</code>
<div class="block">Sets a threadpool that the component will use when handling external events</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#start--">start</a></span>()</code>
<div class="block">Starts the component.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html#stop--">stop</a></span>()</code>
<div class="block">Stops the component.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.felix.dm.Component">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.felix.dm.<a href="../../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></h3>
<code><a href="../../../../../org/apache/felix/dm/Component.html#add-org.apache.felix.dm.ComponentStateListener-">add</a>, <a href="../../../../../org/apache/felix/dm/Component.html#add-org.apache.felix.dm.Dependency...-">add</a>, <a href="../../../../../org/apache/felix/dm/Component.html#getComponentDeclaration--">getComponentDeclaration</a>, <a href="../../../../../org/apache/felix/dm/Component.html#getDependencyManager--">getDependencyManager</a>, <a href="../../../../../org/apache/felix/dm/Component.html#getInstance--">getInstance</a>, <a href="../../../../../org/apache/felix/dm/Component.html#getServiceProperties--">getServiceProperties</a>, <a href="../../../../../org/apache/felix/dm/Component.html#getServiceRegistration--">getServiceRegistration</a>, <a href="../../../../../org/apache/felix/dm/Component.html#remove-org.apache.felix.dm.ComponentStateListener-">remove</a>, <a href="../../../../../org/apache/felix/dm/Component.html#remove-org.apache.felix.dm.Dependency-">remove</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setAutoConfig-java.lang.Class-boolean-">setAutoConfig</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setAutoConfig-java.lang.Class-java.lang.String-">setAutoConfig</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setComposition-java.lang.Object-java.lang.String-">setComposition</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setComposition-java.lang.String-">setComposition</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setDebug-java.lang.String-">setDebug</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setFactory-java.lang.Object-java.lang.String-">setFactory</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setFactory-java.lang.String-">setFactory</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setImplementation-java.lang.Object-">setImplementation</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.Class:A-java.util.Dictionary-">setInterface</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.Class-java.util.Dictionary-">setInterface</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.String:A-java.util.Dictionary-">setInterface</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setInterface-java.lang.String-java.util.Dictionary-">setInterface</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setScope-org.apache.felix.dm.Component.ServiceScope-">setScope</a>, <a href="../../../../../org/apache/felix/dm/Component.html#setServiceProperties-java.util.Dictionary-">setServiceProperties</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getExecutor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutor</h4>
<pre>java.util.concurrent.Executor&nbsp;getExecutor()</pre>
<div class="block">Returns the Component Executor gate that can be used to ensure proper component event serialization.
When you schedule a task in the component executor, your task is executed safely and you do not need
to managed synchronization (other external events, like service dependency events) will be queued
until your task has been executed).</div>
</li>
</ul>
<a name="getLogger--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogger</h4>
<pre><a href="../../../../../org/apache/felix/dm/Logger.html" title="class in org.apache.felix.dm">Logger</a>&nbsp;getLogger()</pre>
<div class="block">Returns the logger which can be used by the DependencyManager Dependencies implementations.</div>
</li>
</ul>
<a name="getBundleContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBundleContext</h4>
<pre>BundleContext&nbsp;getBundleContext()</pre>
<div class="block">Returns the Component's bundle context</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Component's bundle context</dd>
</dl>
</li>
</ul>
<a name="getBundle--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBundle</h4>
<pre>Bundle&nbsp;getBundle()</pre>
<div class="block">Returns the Compoent's bundle.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Compoent's bundle.</dd>
</dl>
</li>
</ul>
<a name="setThreadPool-java.util.concurrent.Executor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setThreadPool</h4>
<pre>void&nbsp;setThreadPool(java.util.concurrent.Executor&nbsp;threadPool)</pre>
<div class="block">Sets a threadpool that the component will use when handling external events</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threadPool</code> - a threadpool used to handle component events and invoke the component's lifecycle callbacks</dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>void&nbsp;start()</pre>
<div class="block">Starts the component. All initial dependencies previously added to the component will be started.</div>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>void&nbsp;stop()</pre>
<div class="block">Stops the component.</div>
</li>
</ul>
<a name="isActive--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isActive</h4>
<pre>boolean&nbsp;isActive()</pre>
<div class="block">Is this component already started ?</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this component has been started</dd>
</dl>
</li>
</ul>
<a name="isAvailable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAvailable</h4>
<pre>boolean&nbsp;isAvailable()</pre>
<div class="block">Is this component available (all required dependencies are available) ?</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this component is available (all dependencies are available), or false</dd>
</dl>
</li>
</ul>
<a name="handleEvent-org.apache.felix.dm.context.DependencyContext-org.apache.felix.dm.context.EventType-org.apache.felix.dm.context.Event...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleEvent</h4>
<pre>void&nbsp;handleEvent(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc,
<a href="../../../../../org/apache/felix/dm/context/EventType.html" title="enum in org.apache.felix.dm.context">EventType</a>&nbsp;type,
<a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>...&nbsp;event)</pre>
<div class="block">Notifies the Component about a dependency event.
An event is for example fired when:<p>
<ul>
<li> a dependency service becomes available <a href="../../../../../org/apache/felix/dm/context/EventType.html#ADDED"><code>EventType.ADDED</code></a>)
<li> a dependenc service has changed is changed <a href="../../../../../org/apache/felix/dm/context/EventType.html#CHANGED"><code>EventType.CHANGED</code></a>)
<li> a dependency service has been lost <a href="../../../../../org/apache/felix/dm/context/EventType.html#REMOVED"><code>EventType.REMOVED</code></a>)
<li> a dependency service has been swapped by another <a href="../../../../../org/apache/felix/dm/context/EventType.html#SWAPPED"><code>EventType.SWAPPED</code></a>)
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dc</code> - the dependency</dd>
<dd><code>type</code> - the dependency event type</dd>
<dd><code>e</code> - the dependency event</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/context/EventType.html" title="enum in org.apache.felix.dm.context"><code>EventType</code></a></dd>
</dl>
</li>
</ul>
<a name="getDependencies--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDependencies</h4>
<pre>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&gt;&nbsp;getDependencies()</pre>
<div class="block">Returns the list of dependencies that has been registered on this component</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of dependencies that has been registered on this component</dd>
</dl>
</li>
</ul>
<a name="invokeCallbackMethod-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.lang.Object:A:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeCallbackMethod</h4>
<pre>void&nbsp;invokeCallbackMethod(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.lang.Object[][]&nbsp;parameters)</pre>
<div class="block">Invokes a callback method on a given set of objects. An error is logged if the callback is not found in any of the object instances.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instances</code> - the component instances</dd>
<dd><code>methodName</code> - the method name</dd>
<dd><code>signatures</code> - the method signatures (types)</dd>
<dd><code>parameters</code> - the method parameters</dd>
</dl>
</li>
</ul>
<a name="invokeCallbackMethod-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.lang.Object:A:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeCallbackMethod</h4>
<pre>void&nbsp;invokeCallbackMethod(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.lang.Object[][]&nbsp;parameters,
boolean&nbsp;logIfNotFound)</pre>
<div class="block">Invokes a callback method on a given set of objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instances</code> - the component instances</dd>
<dd><code>methodName</code> - the method name</dd>
<dd><code>signatures</code> - the method signatures (types)</dd>
<dd><code>parameters</code> - the method parameters</dd>
<dd><code>logIfNotFound</code> - true if a warning message should be logged in case the callback is not found in any of the object instances.</dd>
</dl>
</li>
</ul>
<a name="invokeCallback-java.lang.Object:A-java.lang.String-java.lang.Class:A:A-java.util.function.Supplier:A:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeCallback</h4>
<pre>void&nbsp;invokeCallback(java.lang.Object[]&nbsp;instances,
java.lang.String&nbsp;methodName,
java.lang.Class&lt;?&gt;[][]&nbsp;signatures,
java.util.function.Supplier&lt;?&gt;[][]&nbsp;paramsSupplier,
boolean&nbsp;logIfNotFound)</pre>
<div class="block">Invokes a callback method on a given set of objects. An error is logged if the callback is not found in any of the object instances.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instances</code> - the component instances</dd>
<dd><code>methodName</code> - the method name</dd>
<dd><code>signatures</code> - the method signatures (types)</dd>
<dd><code>paramsSupplier</code> - the supplier for the method parameters</dd>
<dd><code>logIfNotFound</code> - true if a warning message should be logged in case the callback is not found in any of the object instances.</dd>
</dl>
</li>
</ul>
<a name="getInstances--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstances</h4>
<pre>java.lang.Object[]&nbsp;getInstances()</pre>
<div class="block">Returns the component instances</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Component.html#getInstances--">getInstances</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Component.html" title="interface in org.apache.felix.dm">Component</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the component instances</dd>
</dl>
</li>
</ul>
<a name="getAutoConfigInstance-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoConfigInstance</h4>
<pre>java.lang.String&nbsp;getAutoConfigInstance(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block">Returns the component instance field that is assignable to a given class type</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the type of an object that has to be injected in the component instance field</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the name of the component instance field that can be assigned to an object having the same type as
the "clazz" parameter</dd>
</dl>
</li>
</ul>
<a name="getAutoConfig-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoConfig</h4>
<pre>boolean&nbsp;getAutoConfig(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block">Indicates if an object of the given class can be injected in one field of the component</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the class of an object that has to be injected in one of the component fields</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the component can be injected with an object having the specified "clazz" type.</dd>
</dl>
</li>
</ul>
<a name="getDependencyEvent-org.apache.felix.dm.context.DependencyContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDependencyEvent</h4>
<pre><a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>&nbsp;getDependencyEvent(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc)</pre>
<div class="block">Returns the highest ranked dependency service instance for a given dependency</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dc</code> - the dependency</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the highest ranked dependency service instance for a given dependency</dd>
</dl>
</li>
</ul>
<a name="getDependencyEvents-org.apache.felix.dm.context.DependencyContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDependencyEvents</h4>
<pre>java.util.Set&lt;<a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>&gt;&nbsp;getDependencyEvents(<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;dc)</pre>
<div class="block">Returns all the available dependency services for a given dependency</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dc</code> - the dependency</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>all the available dependency services for a given dependency</dd>
</dl>
</li>
</ul>
<a name="createConfigurationType-java.lang.Class-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConfigurationType</h4>
<pre>&lt;U&gt;&nbsp;U&nbsp;createConfigurationType(java.lang.Class&lt;U&gt;&nbsp;type,
java.util.Dictionary&lt;?,?&gt;&nbsp;config)</pre>
<div class="block">Creates a configuration for a given type backed by a given dictionary.
This method can be used by any custom Dependency Manager dependency that
needs to expose some configuration through a dynamic proxy interface.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the configuration class, cannot be <code>null</code>;</dd>
<dd><code>config</code> - the configuration to wrap, cannot be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of the given type that wraps the given configuration.</dd>
</dl>
</li>
</ul>
<a name="instantiateComponent--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>instantiateComponent</h4>
<pre><a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a>&nbsp;instantiateComponent()</pre>
<div class="block">Instantiates the component instances.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this component context.</dd>
</dl>
</li>
</ul>
<a name="injectionDisabled--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>injectionDisabled</h4>
<pre>boolean&nbsp;injectionDisabled()</pre>
<div class="block">Indicates if the component fields and methods injections are disabled.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="class in org.apache.felix.dm.context"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/context/ComponentContext.html" target="_top">Frames</a></li>
<li><a href="ComponentContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>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>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>