blob: 19ccbc2373385ad9dd17822a9f24759501c18307 [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_172) on Mon Oct 22 18:34:41 CEST 2018 -->
<title>AbstractDependency</title>
<meta name="date" content="2018-10-22">
<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="AbstractDependency";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":6,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":6,"i14":10,"i15":6,"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};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/felix/dm/context/ComponentContext.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/AbstractDependency.html" target="_top">Frames</a></li>
<li><a href="AbstractDependency.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.dm.context</div>
<h2 title="Class AbstractDependency" class="title">Class AbstractDependency&lt;T extends <a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.felix.dm.context.AbstractDependency&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the interface representing a Dependency Manager Dependency (must extends the Dependency interface).</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>, <a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>, <a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractDependency&lt;T extends <a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>&gt;</span>
extends java.lang.Object
implements <a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a>, <a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></pre>
<div class="block">Abstract class for implementing Dependencies.
You can extends this class in order to supply your own custom dependencies to any Dependency Manager Component.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.util.Dictionary&lt;java.lang.Object,java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#EMPTY_PROPERTIES">EMPTY_PROPERTIES</a></span></code>
<div class="block">Default empty dependency properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_add">m_add</a></span></code>
<div class="block">Component callback used to inject an added dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_autoConfig">m_autoConfig</a></span></code>
<div class="block">Can this Dependency be auto configured in the component instance fields ?</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_autoConfigInstance">m_autoConfigInstance</a></span></code>
<div class="block">The Component field name where the Dependency can be injected (null means any field with a compatible type
will be injected).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_autoConfigInvoked">m_autoConfigInvoked</a></span></code>
<div class="block">Indicates if the setAutoConfig method has been invoked.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_available">m_available</a></span></code>
<div class="block">Is this Dependency available ? Volatile because the getState method (part of the
<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><code>ComponentDependencyDeclaration</code></a> interface) may be called by any thread, at any time.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_callbackInstance">m_callbackInstance</a></span></code>
<div class="block">The object instance on which the dependency callbacks are invoked on.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_change">m_change</a></span></code>
<div class="block">Component callback invoked when the dependency has changed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <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/AbstractDependency.html#m_component">m_component</a></span></code>
<div class="block">The Component implementation is exposed to Dependencies through this interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_instanceBound">m_instanceBound</a></span></code>
<div class="block">Is this Dependency "instance bound" ? A dependency is "instance bound" if it is defined within the component's
init method, meaning that it won't deactivate the component if it is not currently available when being added
from the component's init method.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_isStarted">m_isStarted</a></span></code>
<div class="block">Has this Dependency been started by the Component implementation ? Volatile because the getState method
(part of the <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><code>ComponentDependencyDeclaration</code></a> interface) may be called by any thread, at any time.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_propagate">m_propagate</a></span></code>
<div class="block">Tells if the dependency service properties have to be propagated to the Component service properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_propagateCallbackInstance">m_propagateCallbackInstance</a></span></code>
<div class="block">The propagate callback instance that is invoked in order to supply dynamically some dependency service properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_propagateCallbackMethod">m_propagateCallbackMethod</a></span></code>
<div class="block">The propagate callback method that is invoked in order to supply dynamically some dependency service properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_propagateOverrides">m_propagateOverrides</a></span></code>
<div class="block">Tells if the dependency service properties should override default component service properties (false by default).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_remove">m_remove</a></span></code>
<div class="block">Component callback invoked when the dependency becomes unavailable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#m_required">m_required</a></span></code>
<div class="block">Is this dependency required (false by default) ?</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.felix.dm.ComponentDependencyDeclaration">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.felix.dm.<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></h3>
<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_OPTIONAL">STATE_AVAILABLE_OPTIONAL</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_AVAILABLE_REQUIRED">STATE_AVAILABLE_REQUIRED</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_NAMES">STATE_NAMES</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_OPTIONAL">STATE_OPTIONAL</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_REQUIRED">STATE_REQUIRED</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_OPTIONAL">STATE_UNAVAILABLE_OPTIONAL</a>, <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#STATE_UNAVAILABLE_REQUIRED">STATE_UNAVAILABLE_REQUIRED</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#AbstractDependency--">AbstractDependency</a></span>()</code>
<div class="block">Creates a new Dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#AbstractDependency-org.apache.felix.dm.context.AbstractDependency-">AbstractDependency</a></span>(<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="class in org.apache.felix.dm.context">AbstractDependency</a>&lt;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&gt;&nbsp;prototype)</code>
<div class="block">Create a clone of a given Dependency.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#copyToCollection-java.util.Collection-">copyToCollection</a></span>(java.util.Collection&lt;java.lang.Object&gt;&nbsp;services)</code>
<div class="block">Copy all dependency service instances to the given collection.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#copyToMap-java.util.Map-">copyToMap</a></span>(java.util.Map&lt;java.lang.Object,java.util.Dictionary&lt;?,?&gt;&gt;&nbsp;map)</code>
<div class="block">Copy all dependency service instances to the given map (key = dependency service, value = dependency service properties.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#createCopy--">createCopy</a></span>()</code>
<div class="block">Creates a copy of this Dependency.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#ensureNotActive--">ensureNotActive</a></span>()</code>
<div class="block">Checks if the component dependency is not started.</div>
</td>
</tr>
<tr id="i4" 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/AbstractDependency.html#getAutoConfigName--">getAutoConfigName</a></span>()</code>
<div class="block">Returns the field name when the dependency can be injected to.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract java.lang.Class&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getAutoConfigType--">getAutoConfigType</a></span>()</code>
<div class="block">Returns the type of the field where this dependency can be injected (auto config), or return null
if autoconfig is not supported.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<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/AbstractDependency.html#getComponentContext--">getComponentContext</a></span>()</code>
<div class="block">Returns the component implementation context</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getDefaultService-boolean-">getDefaultService</a></span>(boolean&nbsp;nullObject)</code>
<div class="block">Returns the default service, or null.</div>
</td>
</tr>
<tr id="i8" 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/AbstractDependency.html#getFilter--">getFilter</a></span>()</code>
<div class="block">Returns the dependency filter, if any.</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/AbstractDependency.html#getInstances--">getInstances</a></span>()</code>
<div class="block">Returns the dependency callback instances</div>
</td>
</tr>
<tr id="i10" 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/AbstractDependency.html#getName--">getName</a></span>()</code>
<div class="block">Returns a description of this dependency (like the dependency service class name with associated filters)</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;K,V&gt;&nbsp;java.util.Dictionary&lt;K,V&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getProperties--">getProperties</a></span>()</code>
<div class="block">Returns the dependency service properties (empty by default).</div>
</td>
</tr>
<tr id="i12" 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/AbstractDependency.html#getService--">getService</a></span>()</code>
<div class="block">Get the highest ranked available dependency service, or null.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getSimpleName--">getSimpleName</a></span>()</code>
<div class="block">Returns a simple name for this dependency (like the dependency service class name).</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getState--">getState</a></span>()</code>
<div class="block">Returns this dependency state.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#getType--">getType</a></span>()</code>
<div class="block">Returns the dependency symbolic type.</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/AbstractDependency.html#invokeCallback-org.apache.felix.dm.context.EventType-org.apache.felix.dm.context.Event...-">invokeCallback</a></span>(<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;events)</code>
<div class="block">A Component callback must be invoked with dependency event(s).</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/AbstractDependency.html#isAutoConfig--">isAutoConfig</a></span>()</code>
<div class="block">Can this dependency be injected in a component class field (by reflexion, true by default) ?</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/AbstractDependency.html#isAvailable--">isAvailable</a></span>()</code>
<div class="block">Is this Dependency satisfied and available ?</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#isInstanceBound--">isInstanceBound</a></span>()</code>
<div class="block">Is this Dependency "instance bound" (has been defined within the component's init method) ?</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#isPropagated--">isPropagated</a></span>()</code>
<div class="block">Returns the propagate callback method that is invoked in order to supply dynamically some dependency service properties.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#isRequired--">isRequired</a></span>()</code>
<div class="block">Is this Dependency required (false by default) ?</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#isStarted--">isStarted</a></span>()</code>
<div class="block">Indicates if this dependency has been started by the Component implementation.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#needsInstance--">needsInstance</a></span>()</code>
<div class="block">Tells if the Component must be first instantiated before starting this dependency (false by default).</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#overrideServiceProperties--">overrideServiceProperties</a></span>()</code>
<div class="block">Determines if the propagated dependency properties must override the component service properties.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setAutoConfig-boolean-">setAutoConfig</a></span>(boolean&nbsp;autoConfig)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setAutoConfig-java.lang.String-">setAutoConfig</a></span>(java.lang.String&nbsp;instanceName)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setAvailable-boolean-">setAvailable</a></span>(boolean&nbsp;available)</code>
<div class="block">Called by the Component implementation when the dependency is considered to be available.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;add,
java.lang.String&nbsp;remove)</code>
<div class="block">Sets the callbacks for this service.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;add,
java.lang.String&nbsp;change,
java.lang.String&nbsp;remove)</code>
<div class="block">Sets the callbacks for this service.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setCallbacks-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.String&nbsp;add,
java.lang.String&nbsp;remove)</code>
<div class="block">Sets the add/remove callbacks.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setCallbacks-java.lang.String-java.lang.String-java.lang.String-">setCallbacks</a></span>(java.lang.String&nbsp;add,
java.lang.String&nbsp;change,
java.lang.String&nbsp;remove)</code>
<div class="block">Sets the add/change/remove callbacks.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setComponentContext-org.apache.felix.dm.context.ComponentContext-">setComponentContext</a></span>(<a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a>&nbsp;component)</code>
<div class="block">Called by the Component implementation before the Dependency can be started.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setInstanceBound-boolean-">setInstanceBound</a></span>(boolean&nbsp;instanceBound)</code>
<div class="block">Called by the Component implementation when the dependency is declared within the Component's init method.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setPropagate-boolean-">setPropagate</a></span>(boolean&nbsp;propagate)</code>
<div class="block">Activates Dependency service properties propagation (to the service properties of the component to which this
dependency is added).</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setPropagate-boolean-boolean-">setPropagate</a></span>(boolean&nbsp;propagate,
boolean&nbsp;overrideServiceProperties)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setPropagate-java.lang.Object-java.lang.String-">setPropagate</a></span>(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;method)</code>
<div class="block">Sets a callback instance which can ba invoked with the given method in order to dynamically retrieve the
dependency service properties.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#setRequired-boolean-">setRequired</a></span>(boolean&nbsp;required)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#start--">start</a></span>()</code>
<div class="block">Starts this dependency.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html#stop--">stop</a></span>()</code>
<div class="block">Starts this dependency.</div>
</td>
</tr>
<tr id="i40" 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/AbstractDependency.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="m_component">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_component</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a> m_component</pre>
<div class="block">The Component implementation is exposed to Dependencies through this interface.</div>
</li>
</ul>
<a name="m_available">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_available</h4>
<pre>protected volatile&nbsp;boolean m_available</pre>
<div class="block">Is this Dependency available ? Volatile because the getState method (part of the
<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><code>ComponentDependencyDeclaration</code></a> interface) may be called by any thread, at any time.</div>
</li>
</ul>
<a name="m_instanceBound">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_instanceBound</h4>
<pre>protected&nbsp;boolean m_instanceBound</pre>
<div class="block">Is this Dependency "instance bound" ? A dependency is "instance bound" if it is defined within the component's
init method, meaning that it won't deactivate the component if it is not currently available when being added
from the component's init method.</div>
</li>
</ul>
<a name="m_required">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_required</h4>
<pre>protected volatile&nbsp;boolean m_required</pre>
<div class="block">Is this dependency required (false by default) ?</div>
</li>
</ul>
<a name="m_add">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_add</h4>
<pre>protected volatile&nbsp;java.lang.String m_add</pre>
<div class="block">Component callback used to inject an added dependency.</div>
</li>
</ul>
<a name="m_change">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_change</h4>
<pre>protected volatile&nbsp;java.lang.String m_change</pre>
<div class="block">Component callback invoked when the dependency has changed.</div>
</li>
</ul>
<a name="m_remove">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_remove</h4>
<pre>protected volatile&nbsp;java.lang.String m_remove</pre>
<div class="block">Component callback invoked when the dependency becomes unavailable.</div>
</li>
</ul>
<a name="m_autoConfig">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_autoConfig</h4>
<pre>protected volatile&nbsp;boolean m_autoConfig</pre>
<div class="block">Can this Dependency be auto configured in the component instance fields ?</div>
</li>
</ul>
<a name="m_autoConfigInstance">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_autoConfigInstance</h4>
<pre>protected volatile&nbsp;java.lang.String m_autoConfigInstance</pre>
<div class="block">The Component field name where the Dependency can be injected (null means any field with a compatible type
will be injected).</div>
</li>
</ul>
<a name="m_autoConfigInvoked">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_autoConfigInvoked</h4>
<pre>protected volatile&nbsp;boolean m_autoConfigInvoked</pre>
<div class="block">Indicates if the setAutoConfig method has been invoked. This flag is used to force autoconfig to "false"
when the setCallbacks method is invoked, unless the setAutoConfig method has been called.</div>
</li>
</ul>
<a name="m_isStarted">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_isStarted</h4>
<pre>protected volatile&nbsp;boolean m_isStarted</pre>
<div class="block">Has this Dependency been started by the Component implementation ? Volatile because the getState method
(part of the <a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm"><code>ComponentDependencyDeclaration</code></a> interface) may be called by any thread, at any time.</div>
</li>
</ul>
<a name="m_callbackInstance">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_callbackInstance</h4>
<pre>protected volatile&nbsp;java.lang.Object m_callbackInstance</pre>
<div class="block">The object instance on which the dependency callbacks are invoked on. Null means the dependency will be
injected to the Component implementation instance(s).</div>
</li>
</ul>
<a name="m_propagate">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_propagate</h4>
<pre>protected volatile&nbsp;boolean m_propagate</pre>
<div class="block">Tells if the dependency service properties have to be propagated to the Component service properties.</div>
</li>
</ul>
<a name="m_propagateOverrides">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_propagateOverrides</h4>
<pre>protected volatile&nbsp;boolean m_propagateOverrides</pre>
<div class="block">Tells if the dependency service properties should override default component service properties (false by default).</div>
</li>
</ul>
<a name="m_propagateCallbackInstance">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_propagateCallbackInstance</h4>
<pre>protected volatile&nbsp;java.lang.Object m_propagateCallbackInstance</pre>
<div class="block">The propagate callback instance that is invoked in order to supply dynamically some dependency service properties.</div>
</li>
</ul>
<a name="m_propagateCallbackMethod">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_propagateCallbackMethod</h4>
<pre>protected volatile&nbsp;java.lang.String m_propagateCallbackMethod</pre>
<div class="block">The propagate callback method that is invoked in order to supply dynamically some dependency service properties.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#m_propagateCallbackInstance}</code></dd>
</dl>
</li>
</ul>
<a name="EMPTY_PROPERTIES">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EMPTY_PROPERTIES</h4>
<pre>protected static final&nbsp;java.util.Dictionary&lt;java.lang.Object,java.lang.Object&gt; EMPTY_PROPERTIES</pre>
<div class="block">Default empty dependency properties.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractDependency--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractDependency</h4>
<pre>public&nbsp;AbstractDependency()</pre>
<div class="block">Creates a new Dependency. By default, the dependency is optional and autoconfig.</div>
</li>
</ul>
<a name="AbstractDependency-org.apache.felix.dm.context.AbstractDependency-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractDependency</h4>
<pre>public&nbsp;AbstractDependency(<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="class in org.apache.felix.dm.context">AbstractDependency</a>&lt;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&gt;&nbsp;prototype)</pre>
<div class="block">Create a clone of a given Dependency.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>prototype</code> - all the fields of the prototype will be copied to this dependency.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="isRequired--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRequired</h4>
<pre>public&nbsp;boolean&nbsp;isRequired()</pre>
<div class="block">Is this Dependency required (false by default) ?</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#isRequired--">isRequired</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the dependency is required</dd>
</dl>
</li>
</ul>
<a name="isAvailable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAvailable</h4>
<pre>public&nbsp;boolean&nbsp;isAvailable()</pre>
<div class="block">Is this Dependency satisfied and available ?</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#isAvailable--">isAvailable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the dependency is available</dd>
</dl>
</li>
</ul>
<a name="isAutoConfig--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAutoConfig</h4>
<pre>public&nbsp;boolean&nbsp;isAutoConfig()</pre>
<div class="block">Can this dependency be injected in a component class field (by reflexion, true by default) ?</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#isAutoConfig--">isAutoConfig</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if auto configuration is enabled for this dependency</dd>
</dl>
</li>
</ul>
<a name="getAutoConfigName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoConfigName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getAutoConfigName()</pre>
<div class="block">Returns the field name when the dependency can be injected to.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#getAutoConfigName--">getAutoConfigName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the name of the member in the class of the component instance to inject into</dd>
</dl>
</li>
</ul>
<a name="isPropagated--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPropagated</h4>
<pre>public&nbsp;boolean&nbsp;isPropagated()</pre>
<div class="block">Returns the propagate callback method that is invoked in order to supply dynamically some dependency service properties.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#isPropagated--">isPropagated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the properties should be propagated</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#m_propagateCallbackInstance}</code></dd>
</dl>
</li>
</ul>
<a name="overrideServiceProperties--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>overrideServiceProperties</h4>
<pre>public&nbsp;boolean&nbsp;overrideServiceProperties()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html#overrideServiceProperties--">Dependency</a></code></span></div>
<div class="block">Determines if the propagated dependency properties must override the component service properties.
By default, propagated service properties don't override the component service properties. It means
that a given dependency property does not override the same property in the component service properties.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#overrideServiceProperties--">overrideServiceProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the dependency service properties are propagated and override the component service properties.</dd>
</dl>
</li>
</ul>
<a name="getProperties--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProperties</h4>
<pre>public&nbsp;&lt;K,V&gt;&nbsp;java.util.Dictionary&lt;K,V&gt;&nbsp;getProperties()</pre>
<div class="block">Returns the dependency service properties (empty by default).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/Dependency.html#getProperties--">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/Dependency.html" title="interface in org.apache.felix.dm">Dependency</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the properties</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/Dependency.html#isPropagated--"><code>Dependency.isPropagated()</code></a></dd>
</dl>
</li>
</ul>
<a name="setComponentContext-org.apache.felix.dm.context.ComponentContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setComponentContext</h4>
<pre>public&nbsp;void&nbsp;setComponentContext(<a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a>&nbsp;component)</pre>
<div class="block">Called by the Component implementation before the Dependency can be started.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#setComponentContext-org.apache.felix.dm.context.ComponentContext-">setComponentContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>component</code> - the Component implementation context</dd>
</dl>
</li>
</ul>
<a name="invokeCallback-org.apache.felix.dm.context.EventType-org.apache.felix.dm.context.Event...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeCallback</h4>
<pre>public&nbsp;void&nbsp;invokeCallback(<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;events)</pre>
<div class="block">A Component callback must be invoked with dependency event(s).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#invokeCallback-org.apache.felix.dm.context.EventType-org.apache.felix.dm.context.Event...-">invokeCallback</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the dependency event type</dd>
<dd><code>events</code> - the dependency service event to inject in the component.
The number of events depends on the dependency event type: ADDED/CHANGED/REMOVED types only has one event parameter,
but the SWAPPED type has two event parameters: the first one is the old event which must be replaced by the second one.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><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...-"><code>ComponentContext.handleEvent(DependencyContext, EventType, Event...)</code></a>,
<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="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;start()</pre>
<div class="block">Starts this dependency. Subclasses can override this method but must then call super.start().</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#start--">start</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
</dl>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;stop()</pre>
<div class="block">Starts this dependency. Subclasses can override this method but must then call super.stop().</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#stop--">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
</dl>
</li>
</ul>
<a name="isStarted--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStarted</h4>
<pre>public&nbsp;boolean&nbsp;isStarted()</pre>
<div class="block">Indicates if this dependency has been started by the Component implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#isStarted--">isStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the dependency has been started, false if not</dd>
</dl>
</li>
</ul>
<a name="setAvailable-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAvailable</h4>
<pre>public&nbsp;void&nbsp;setAvailable(boolean&nbsp;available)</pre>
<div class="block">Called by the Component implementation when the dependency is considered to be available.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#setAvailable-boolean-">setAvailable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>available</code> - true to mark this dependency as available, false to mark it as unavailable</dd>
</dl>
</li>
</ul>
<a name="isInstanceBound--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInstanceBound</h4>
<pre>public&nbsp;boolean&nbsp;isInstanceBound()</pre>
<div class="block">Is this Dependency "instance bound" (has been defined within the component's init method) ?</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#isInstanceBound--">isInstanceBound</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this dependency is instance bound, false if not</dd>
</dl>
</li>
</ul>
<a name="setInstanceBound-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInstanceBound</h4>
<pre>public&nbsp;void&nbsp;setInstanceBound(boolean&nbsp;instanceBound)</pre>
<div class="block">Called by the Component implementation when the dependency is declared within the Component's init method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#setInstanceBound-boolean-">setInstanceBound</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
</dl>
</li>
</ul>
<a name="needsInstance--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>needsInstance</h4>
<pre>public&nbsp;boolean&nbsp;needsInstance()</pre>
<div class="block">Tells if the Component must be first instantiated before starting this dependency (false by default).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#needsInstance--">needsInstance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the dependency need the component instances before it can be started, false if not.</dd>
</dl>
</li>
</ul>
<a name="getAutoConfigType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoConfigType</h4>
<pre>public abstract&nbsp;java.lang.Class&lt;?&gt;&nbsp;getAutoConfigType()</pre>
<div class="block">Returns the type of the field where this dependency can be injected (auto config), or return null
if autoconfig is not supported.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#getAutoConfigType--">getAutoConfigType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the type of the field which can be injected with the dependency service, or null if the dependency does not
support auto config mode.</dd>
</dl>
</li>
</ul>
<a name="getService--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/Event.html" title="class in org.apache.felix.dm.context">Event</a>&nbsp;getService()</pre>
<div class="block">Get the highest ranked available dependency service, or null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#getService--">getService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the highest ranked available dependency service instance, or null</dd>
</dl>
</li>
</ul>
<a name="copyToCollection-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyToCollection</h4>
<pre>public&nbsp;void&nbsp;copyToCollection(java.util.Collection&lt;java.lang.Object&gt;&nbsp;services)</pre>
<div class="block">Copy all dependency service instances to the given collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#copyToCollection-java.util.Collection-">copyToCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>services</code> - the collection where the dependency service instances will be copied</dd>
</dl>
</li>
</ul>
<a name="copyToMap-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyToMap</h4>
<pre>public&nbsp;void&nbsp;copyToMap(java.util.Map&lt;java.lang.Object,java.util.Dictionary&lt;?,?&gt;&gt;&nbsp;map)</pre>
<div class="block">Copy all dependency service instances to the given map (key = dependency service, value = dependency service properties.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#copyToMap-java.util.Map-">copyToMap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>map</code> - the map where the dependency service instances (with the corresponding service properties)</dd>
</dl>
</li>
</ul>
<a name="createCopy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCopy</h4>
<pre>public abstract&nbsp;<a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a>&nbsp;createCopy()</pre>
<div class="block">Creates a copy of this Dependency.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#createCopy--">createCopy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a clone of this dependency.</dd>
</dl>
</li>
</ul>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getName()</pre>
<div class="block">Returns a description of this dependency (like the dependency service class name with associated filters)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></code></dd>
</dl>
</li>
</ul>
<a name="getSimpleName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSimpleName</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getSimpleName()</pre>
<div class="block">Returns a simple name for this dependency (like the dependency service class name).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getSimpleName--">getSimpleName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></code></dd>
</dl>
</li>
</ul>
<a name="getType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getType()</pre>
<div class="block">Returns the dependency symbolic type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></code></dd>
</dl>
</li>
</ul>
<a name="getFilter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilter</h4>
<pre>public&nbsp;java.lang.String&nbsp;getFilter()</pre>
<div class="block">Returns the dependency filter, if any.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getFilter--">getFilter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></code></dd>
</dl>
</li>
</ul>
<a name="getState--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getState</h4>
<pre>public&nbsp;int&nbsp;getState()</pre>
<div class="block">Returns this dependency state.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html#getState--">getState</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a></code></dd>
</dl>
</li>
</ul>
<a name="setPropagate-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropagate</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setPropagate(boolean&nbsp;propagate)</pre>
<div class="block">Activates Dependency service properties propagation (to the service properties of the component to which this
dependency is added).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>propagate</code> - true if the dependency service properties must be propagated to the service properties of
the component to which this dependency is added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this dependency instance</dd>
</dl>
</li>
</ul>
<a name="setPropagate-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropagate</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setPropagate(boolean&nbsp;propagate,
boolean&nbsp;overrideServiceProperties)</pre>
</li>
</ul>
<a name="setPropagate-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropagate</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setPropagate(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;method)</pre>
<div class="block">Sets a callback instance which can ba invoked with the given method in order to dynamically retrieve the
dependency service properties.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instance</code> - the callback instance</dd>
<dd><code>method</code> - the method to invoke on the callback instance</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this dependency instance</dd>
</dl>
</li>
</ul>
<a name="setCallbacks-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallbacks</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setCallbacks(java.lang.String&nbsp;add,
java.lang.String&nbsp;remove)</pre>
<div class="block">Sets the add/remove callbacks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>add</code> - the callback to invoke when a dependency is added</dd>
<dd><code>remove</code> - the callback to invoke when a dependency is removed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this dependency instance</dd>
</dl>
</li>
</ul>
<a name="setCallbacks-java.lang.String-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallbacks</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setCallbacks(java.lang.String&nbsp;add,
java.lang.String&nbsp;change,
java.lang.String&nbsp;remove)</pre>
<div class="block">Sets the add/change/remove callbacks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>add</code> - the callback to invoke when a dependency is added</dd>
<dd><code>change</code> - the callback to invoke when a dependency has changed</dd>
<dd><code>remove</code> - the callback to invoke when a dependency is removed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this dependency instance</dd>
</dl>
</li>
</ul>
<a name="setCallbacks-java.lang.Object-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallbacks</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;add,
java.lang.String&nbsp;remove)</pre>
<div class="block">Sets the callbacks for this service. These callbacks can be used as hooks whenever a
dependency is added or removed. They are called on the instance you provide. When you
specify callbacks, the auto configuration feature is automatically turned off, because
we're assuming you don't need it in this case.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instance</code> - the instance to call the callbacks on</dd>
<dd><code>add</code> - the method to call when a service was added</dd>
<dd><code>remove</code> - the method to call when a service was removed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this service dependency</dd>
</dl>
</li>
</ul>
<a name="setCallbacks-java.lang.Object-java.lang.String-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallbacks</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setCallbacks(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;add,
java.lang.String&nbsp;change,
java.lang.String&nbsp;remove)</pre>
<div class="block">Sets the callbacks for this service. These callbacks can be used as hooks whenever a
dependency is added, changed or removed. They are called on the instance you provide. When you
specify callbacks, the auto configuration feature is automatically turned off, because
we're assuming you don't need it in this case.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instance</code> - the instance to call the callbacks on</dd>
<dd><code>add</code> - the method to call when a service was added</dd>
<dd><code>change</code> - the method to call when a service was changed</dd>
<dd><code>remove</code> - the method to call when a service was removed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this service dependency</dd>
</dl>
</li>
</ul>
<a name="getInstances--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstances</h4>
<pre>public&nbsp;java.lang.Object[]&nbsp;getInstances()</pre>
<div class="block">Returns the dependency callback instances</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the dependency callback instances</dd>
</dl>
</li>
</ul>
<a name="setRequired-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRequired</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setRequired(boolean&nbsp;required)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>ServiceDependency#setRequired(boolean)}</code></dd>
</dl>
</li>
</ul>
<a name="setAutoConfig-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoConfig</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setAutoConfig(boolean&nbsp;autoConfig)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>ServiceDependency#setAutoConfig(boolean)}</code></dd>
</dl>
</li>
</ul>
<a name="setAutoConfig-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoConfig</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/AbstractDependency.html" title="type parameter in AbstractDependency">T</a>&nbsp;setAutoConfig(java.lang.String&nbsp;instanceName)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>ServiceDependency#setAutoConfig(String instanceName)}</code></dd>
</dl>
</li>
</ul>
<a name="getComponentContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComponentContext</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/dm/context/ComponentContext.html" title="interface in org.apache.felix.dm.context">ComponentContext</a>&nbsp;getComponentContext()</pre>
<div class="block">Returns the component implementation context</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html#getComponentContext--">getComponentContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/context/DependencyContext.html" title="interface in org.apache.felix.dm.context">DependencyContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the component implementation context</dd>
</dl>
</li>
</ul>
<a name="getDefaultService-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultService</h4>
<pre>protected&nbsp;java.lang.Object&nbsp;getDefaultService(boolean&nbsp;nullObject)</pre>
<div class="block">Returns the default service, or null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nullObject</code> - if true, a null object may be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the default service</dd>
</dl>
</li>
</ul>
<a name="ensureNotActive--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ensureNotActive</h4>
<pre>protected&nbsp;void&nbsp;ensureNotActive()</pre>
<div class="block">Checks if the component dependency is not started.</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>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/felix/dm/context/ComponentContext.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/AbstractDependency.html" target="_top">Frames</a></li>
<li><a href="AbstractDependency.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>