blob: 2cc0db9092926eaf3966fee74d721d4585899b9e [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 (version 1.7.0_25) on Tue Oct 08 19:30:29 CEST 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>DependencyModel (Apache Felix iPOJO ~ JavaDoc 1.10.1 API)</title>
<meta name="date" content="2013-10-08">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DependencyModel (Apache Felix iPOJO ~ JavaDoc 1.10.1 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DependencyModel.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/util/DependencyMetadataHelper.html" title="class in org.apache.felix.ipojo.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.DependencyEventType.html" title="enum in org.apache.felix.ipojo.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/util/DependencyModel.html" target="_top">Frames</a></li>
<li><a href="DependencyModel.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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><a href="#nested_class_summary">Nested</a>&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.ipojo.util</div>
<h2 title="Class DependencyModel" class="title">Class DependencyModel</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.felix.ipojo.util.DependencyModel</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/felix/ipojo/handlers/dependency/Dependency.html" title="class in org.apache.felix.ipojo.handlers.dependency">Dependency</a>, <a href="../../../../../org/apache/felix/ipojo/composite/service/provides/ServiceExporter.html" title="class in org.apache.felix.ipojo.composite.service.provides">ServiceExporter</a>, <a href="../../../../../org/apache/felix/ipojo/composite/service/instantiator/ServiceImporter.html" title="class in org.apache.felix.ipojo.composite.service.instantiator">ServiceImporter</a>, <a href="../../../../../org/apache/felix/ipojo/composite/service/instantiator/SvcInstance.html" title="class in org.apache.felix.ipojo.composite.service.instantiator">SvcInstance</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.41">DependencyModel</a>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Abstract dependency model.
This class is the parent class of every service dependency. It manages the most
part of dependency management. This class creates an interface between the service
tracker and the concrete dependency.</div>
<dl><dt><span class="strong">Author:</span></dt>
<dd><a href="mailto:dev@felix.apache.org">Felix Project Team</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>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.DependencyEventType.html" title="enum in org.apache.felix.ipojo.util">DependencyModel.DependencyEventType</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.ServiceBindingHolder.html" title="class in org.apache.felix.ipojo.util">DependencyModel.ServiceBindingHolder</a></strong></code>
<div class="block">Service binding structure.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" 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>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#BROKEN">BROKEN</a></strong></code>
<div class="block">Dependency state : BROKEN.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#DYNAMIC_BINDING_POLICY">DYNAMIC_BINDING_POLICY</a></strong></code>
<div class="block">Binding policy : Dynamic.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#DYNAMIC_PRIORITY_BINDING_POLICY">DYNAMIC_PRIORITY_BINDING_POLICY</a></strong></code>
<div class="block">Binding policy : Dynamic-Priority.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_aggregate">m_aggregate</a></strong></code>
<div class="block">Does the dependency bind several providers ?</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_boundServices">m_boundServices</a></strong></code>
<div class="block">The current list of bound services.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_context">m_context</a></strong></code>
<div class="block">Bundle context used by the dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/felix/ipojo/util/ContextSourceManager.html" title="class in org.apache.felix.ipojo.util">ContextSourceManager</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_contextSourceManager">m_contextSourceManager</a></strong></code>
<div class="block">The manager handling context sources.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_instance">m_instance</a></strong></code>
<div class="block">The instance requiring the service.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html" title="interface in org.apache.felix.ipojo.util">DependencyStateListener</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_listener">m_listener</a></strong></code>
<div class="block">Listener object on which invoking the <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html#validate(org.apache.felix.ipojo.util.DependencyModel)"><code>DependencyStateListener.validate(DependencyModel)</code></a>
and <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html#invalidate(org.apache.felix.ipojo.util.DependencyModel)"><code>DependencyStateListener.invalidate(DependencyModel)</code></a> methods.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_listeners">m_listeners</a></strong></code>
<div class="block">The listeners of the dependency model.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_lock">m_lock</a></strong></code>
<div class="block">The lock ensuring state consistency of the dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_optional">m_optional</a></strong></code>
<div class="block">Is the dependency optional ?</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_policy">m_policy</a></strong></code>
<div class="block">The Binding policy of the dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>,<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.ServiceBindingHolder.html" title="class in org.apache.felix.ipojo.util">DependencyModel.ServiceBindingHolder</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_serviceObjects">m_serviceObjects</a></strong></code>
<div class="block">Map <a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework"><code>ServiceReference</code></a> -> Service Object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_serviceReferenceManager">m_serviceReferenceManager</a></strong></code>
<div class="block">The service reference manager.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_specification">m_specification</a></strong></code>
<div class="block">The required specification.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_state">m_state</a></strong></code>
<div class="block">The actual state of the dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util">Tracker</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#m_tracker">m_tracker</a></strong></code>
<div class="block">The tracker used by this dependency to track providers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#RESOLVED">RESOLVED</a></strong></code>
<div class="block">Dependency state : RESOLVED.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#STATIC_BINDING_POLICY">STATIC_BINDING_POLICY</a></strong></code>
<div class="block">Binding policy : Static.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#UNRESOLVED">UNRESOLVED</a></strong></code>
<div class="block">Dependency state : UNRESOLVED.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" 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><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#DependencyModel(java.lang.Class, boolean, boolean, org.osgi.framework.Filter, java.util.Comparator, int, org.osgi.framework.BundleContext, org.apache.felix.ipojo.util.DependencyStateListener, org.apache.felix.ipojo.ComponentInstance)">DependencyModel</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;specification,
boolean&nbsp;aggregate,
boolean&nbsp;optional,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework">Filter</a>&nbsp;filter,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;&nbsp;comparator,
int&nbsp;policy,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a>&nbsp;context,
<a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html" title="interface in org.apache.felix.ipojo.util">DependencyStateListener</a>&nbsp;listener,
<a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a>&nbsp;ci)</code>
<div class="block">Creates a DependencyModel.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#acquireReadLockIfNotHeld()">acquireReadLockIfNotHeld</a></strong>()</code>
<div class="block">Acquires the read lock only and only if no read lock is already held by the current thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#acquireWriteLockIfNotHeld()">acquireWriteLockIfNotHeld</a></strong>()</code>
<div class="block">Acquires the write lock only and only if the write lock is not already held by the current thread.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#addListener(org.apache.felix.ipojo.util.DependencyModelListener)">addListener</a></strong>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&nbsp;listener)</code>
<div class="block">Add the given listener to the dependency model's list of listeners.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#applyReconfiguration(org.apache.felix.ipojo.dependency.impl.ServiceReferenceManager.ChangeSet)">applyReconfiguration</a></strong>(<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.ChangeSet.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager.ChangeSet</a>&nbsp;changeSet)</code>
<div class="block">Applies the given reconfiguration.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#cleanup()">cleanup</a></strong>()</code>
<div class="block">Removes all the listeners from this dependency before it gets disposed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#computeAndSetDependencyState()">computeAndSetDependencyState</a></strong>()</code>
<div class="block">Computes the actual dependency state.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getBindingPolicy()">getBindingPolicy</a></strong>()</code>
<div class="block">Gets the used binding policy.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getBundleContext()">getBundleContext</a></strong>()</code>
<div class="block">Gets the bundle context used by the dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getComparator()">getComparator</a></strong>()</code>
<div class="block">Gets the used comparator name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getComponentInstance()">getComponentInstance</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/ipojo/util/ContextSourceManager.html" title="class in org.apache.felix.ipojo.util">ContextSourceManager</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getContextSourceManager()">getContextSourceManager</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getFilter()">getFilter</a></strong>()</code>
<div class="block">Returns the dependency filter (String form).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getId()">getId</a></strong>()</code>
<div class="block">Gets the dependency id.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getService(org.osgi.framework.ServiceReference)">getService</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Gets a service object for the given reference.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getService(org.osgi.framework.ServiceReference, boolean)">getService</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref,
boolean&nbsp;store)</code>
<div class="block">Gets a service object for the given reference.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getServiceReference()">getServiceReference</a></strong>()</code>
<div class="block">Gets the first bound service reference.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getServiceReferenceManager()">getServiceReferenceManager</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getServiceReferences()">getServiceReferences</a></strong>()</code>
<div class="block">Gets bound service references.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getSize()">getSize</a></strong>()</code>
<div class="block">Gets the number of actual matching references.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getSpecification()">getSpecification</a></strong>()</code>
<div class="block">Gets the tracked specification.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getState()">getState</a></strong>()</code>
<div class="block">Gets the actual state of the dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util">Tracker</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getTracker()">getTracker</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#getUsedServiceReferences()">getUsedServiceReferences</a></strong>()</code>
<div class="block">Gets the list of currently used service references.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#invalidate()">invalidate</a></strong>()</code>
<div class="block">Calls the listener callback to notify the new state of the current
dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#invalidateMatchingServices()">invalidateMatchingServices</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#invalidateSelectedServices()">invalidateSelectedServices</a></strong>()</code>
<div class="block">This callback is called by ranking interceptor to notify the dependency that the selected service set has
changed and must be recomputed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#isAggregate()">isAggregate</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#isFrozen()">isFrozen</a></strong>()</code>
<div class="block">Is the reference set frozen (cannot change anymore)?
This method must be override by concrete dependency to support
the static binding policy.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#isOptional()">isOptional</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#match(org.osgi.framework.ServiceReference)">match</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Does the service reference match ? This method must be overridden by
concrete dependencies if they need advanced testing on service reference
(that cannot be expressed in the LDAP filter).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#notifyListeners(org.apache.felix.ipojo.util.DependencyModel.DependencyEventType, org.osgi.framework.ServiceReference, java.lang.Object)">notifyListeners</a></strong>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.DependencyEventType.html" title="enum in org.apache.felix.ipojo.util">DependencyModel.DependencyEventType</a>&nbsp;type,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&lt;?&gt;&nbsp;service,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</code>
<div class="block">Notify all listeners that a change has occurred in this dependency model.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#onChange(org.apache.felix.ipojo.dependency.impl.ServiceReferenceManager.ChangeSet)">onChange</a></strong>(<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.ChangeSet.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager.ChangeSet</a>&nbsp;set)</code>
<div class="block">Callbacks call by the ServiceReferenceManager when the selected service set has changed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#onDependencyReconfiguration(org.osgi.framework.ServiceReference[], org.osgi.framework.ServiceReference[])">onDependencyReconfiguration</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;departs,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;arrivals)</code>
<div class="block">Concrete dependency callback.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#onServiceArrival(org.osgi.framework.ServiceReference)">onServiceArrival</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Concrete dependency callback.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#onServiceDeparture(org.osgi.framework.ServiceReference)">onServiceDeparture</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Concrete dependency callback.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#onServiceModification(org.osgi.framework.ServiceReference)">onServiceModification</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Concrete dependency callback.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#releaseReadLockIfHeld()">releaseReadLockIfHeld</a></strong>()</code>
<div class="block">Releases the read lock only and only if the read lock is held by the current thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#releaseWriteLockIfHeld()">releaseWriteLockIfHeld</a></strong>()</code>
<div class="block">Releases the write lock only and only if the write lock is held by the current thread.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#removeListener(org.apache.felix.ipojo.util.DependencyModelListener)">removeListener</a></strong>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&nbsp;listener)</code>
<div class="block">Remove the given listener from the dependency model's list of listeners.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setAggregate(boolean)">setAggregate</a></strong>(boolean&nbsp;isAggregate)</code>
<div class="block">Sets the aggregate attribute of the current dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setBundleContext(org.osgi.framework.BundleContext)">setBundleContext</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a>&nbsp;context)</code>
<div class="block">Sets the bundle context used by this dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setComparator(java.util.Comparator)">setComparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;&nbsp;cmp)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setFilter(org.osgi.framework.Filter)">setFilter</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework">Filter</a>&nbsp;filter)</code>
<div class="block">Sets the filter of the dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setOptionality(boolean)">setOptionality</a></strong>(boolean&nbsp;isOptional)</code>
<div class="block">Sets the optionality attribute of the current dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#setSpecification(java.lang.Class)">setSpecification</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;specification)</code>
<div class="block">Sets the required specification of this service dependency.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#start()">start</a></strong>()</code>
<div class="block">Opens the tracking.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#stop()">stop</a></strong>()</code>
<div class="block">Closes the tracking.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#unfreeze()">unfreeze</a></strong>()</code>
<div class="block">Unfreezes the dependency.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#ungetAllServices()">ungetAllServices</a></strong>()</code>
<div class="block">Ungets all 'get' service references.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#ungetService(org.osgi.framework.ServiceReference)">ungetService</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</code>
<div class="block">Ungets a used service reference.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#validate()">validate</a></strong>()</code>
<div class="block">Calls the listener callback to notify the new state of the current
dependency.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="BROKEN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BROKEN</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.48">BROKEN</a></pre>
<div class="block">Dependency state : BROKEN.
A broken dependency cannot be fulfilled anymore. The dependency becomes
broken when a used service disappears in the static binding policy.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.BROKEN">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="UNRESOLVED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNRESOLVED</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.54">UNRESOLVED</a></pre>
<div class="block">Dependency state : UNRESOLVED.
A dependency is unresolved if the dependency is not valid and no service
providers are available.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.UNRESOLVED">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="RESOLVED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOLVED</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.60">RESOLVED</a></pre>
<div class="block">Dependency state : RESOLVED.
A dependency is resolved if the dependency is optional or at least one
provider is available.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.RESOLVED">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DYNAMIC_BINDING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DYNAMIC_BINDING_POLICY</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.65">DYNAMIC_BINDING_POLICY</a></pre>
<div class="block">Binding policy : Dynamic.
In this policy, services can appears and departs without special treatment.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.DYNAMIC_BINDING_POLICY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="STATIC_BINDING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATIC_BINDING_POLICY</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.71">STATIC_BINDING_POLICY</a></pre>
<div class="block">Binding policy : Static.
Once a service is used, if this service disappears the dependency becomes
<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#BROKEN"><code>BROKEN</code></a>. The instance needs to be recreated.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.STATIC_BINDING_POLICY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DYNAMIC_PRIORITY_BINDING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DYNAMIC_PRIORITY_BINDING_POLICY</h4>
<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.78">DYNAMIC_PRIORITY_BINDING_POLICY</a></pre>
<div class="block">Binding policy : Dynamic-Priority.
In this policy, services can appears and departs. However, once a service
with a highest ranking (according to the used comparator) appears, this
new service is re-injected.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.felix.ipojo.util.DependencyModel.DYNAMIC_PRIORITY_BINDING_POLICY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="m_serviceReferenceManager">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_serviceReferenceManager</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.82">m_serviceReferenceManager</a></pre>
<div class="block">The service reference manager.</div>
</li>
</ul>
<a name="m_contextSourceManager">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_contextSourceManager</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/felix/ipojo/util/ContextSourceManager.html" title="class in org.apache.felix.ipojo.util">ContextSourceManager</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.86">m_contextSourceManager</a></pre>
<div class="block">The manager handling context sources.</div>
</li>
</ul>
<a name="m_listener">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_listener</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html" title="interface in org.apache.felix.ipojo.util">DependencyStateListener</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.91">m_listener</a></pre>
<div class="block">Listener object on which invoking the <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html#validate(org.apache.felix.ipojo.util.DependencyModel)"><code>DependencyStateListener.validate(DependencyModel)</code></a>
and <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html#invalidate(org.apache.felix.ipojo.util.DependencyModel)"><code>DependencyStateListener.invalidate(DependencyModel)</code></a> methods.</div>
</li>
</ul>
<a name="m_instance">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_instance</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.95">m_instance</a></pre>
<div class="block">The instance requiring the service.</div>
</li>
</ul>
<a name="m_aggregate">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_aggregate</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.99">m_aggregate</a></pre>
<div class="block">Does the dependency bind several providers ?</div>
</li>
</ul>
<a name="m_optional">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_optional</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.103">m_optional</a></pre>
<div class="block">Is the dependency optional ?</div>
</li>
</ul>
<a name="m_specification">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_specification</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.108">m_specification</a></pre>
<div class="block">The required specification.
Cannot change once set.</div>
</li>
</ul>
<a name="m_context">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_context</h4>
<pre>private&nbsp;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.113">m_context</a></pre>
<div class="block">Bundle context used by the dependency.
(may be a <a href="../../../../../org/apache/felix/ipojo/ServiceContext.html" title="interface in org.apache.felix.ipojo"><code>ServiceContext</code></a>).</div>
</li>
</ul>
<a name="m_state">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_state</h4>
<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.118">m_state</a></pre>
<div class="block">The actual state of the dependency.
<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#UNRESOLVED"><code>UNRESOLVED</code></a> at the beginning.</div>
</li>
</ul>
<a name="m_policy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_policy</h4>
<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.122">m_policy</a></pre>
<div class="block">The Binding policy of the dependency.</div>
</li>
</ul>
<a name="m_tracker">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_tracker</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util">Tracker</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.126">m_tracker</a></pre>
<div class="block">The tracker used by this dependency to track providers.</div>
</li>
</ul>
<a name="m_serviceObjects">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_serviceObjects</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>,<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.ServiceBindingHolder.html" title="class in org.apache.felix.ipojo.util">DependencyModel.ServiceBindingHolder</a>&gt; <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.132">m_serviceObjects</a></pre>
<div class="block">Map <a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework"><code>ServiceReference</code></a> -> Service Object.
This map stores service object, and so is able to handle
iPOJO custom policies.</div>
</li>
</ul>
<a name="m_boundServices">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_boundServices</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt; <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.136">m_boundServices</a></pre>
<div class="block">The current list of bound services.</div>
</li>
</ul>
<a name="m_lock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_lock</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.141">m_lock</a></pre>
<div class="block">The lock ensuring state consistency of the dependency.
This lock can be acquired from all collaborators.</div>
</li>
</ul>
<a name="m_listeners">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>m_listeners</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&gt; <a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.146">m_listeners</a></pre>
<div class="block">The listeners of the dependency model.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DependencyModel(java.lang.Class, boolean, boolean, org.osgi.framework.Filter, java.util.Comparator, int, org.osgi.framework.BundleContext, org.apache.felix.ipojo.util.DependencyStateListener, org.apache.felix.ipojo.ComponentInstance)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DependencyModel</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.165">DependencyModel</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;specification,
boolean&nbsp;aggregate,
boolean&nbsp;optional,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework">Filter</a>&nbsp;filter,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;&nbsp;comparator,
int&nbsp;policy,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a>&nbsp;context,
<a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html" title="interface in org.apache.felix.ipojo.util">DependencyStateListener</a>&nbsp;listener,
<a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a>&nbsp;ci)</pre>
<div class="block">Creates a DependencyModel.
If the dependency has no comparator and follows the
<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#DYNAMIC_PRIORITY_BINDING_POLICY"><code>DYNAMIC_PRIORITY_BINDING_POLICY</code></a> policy
the OSGi Service Reference Comparator is used.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>specification</code> - the required specification</dd><dd><code>aggregate</code> - is the dependency aggregate ?</dd><dd><code>optional</code> - is the dependency optional ?</dd><dd><code>filter</code> - the LDAP filter</dd><dd><code>comparator</code> - the comparator object to sort references</dd><dd><code>policy</code> - the binding policy</dd><dd><code>context</code> - the bundle context (or service context)</dd><dd><code>listener</code> - the dependency lifecycle listener to notify from dependency</dd><dd><code>ci</code> - instance managing the dependency
state changes.</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="start()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.208">start</a>()</pre>
<div class="block">Opens the tracking.
This method computes the dependency state.
<p/>
As the dependency is starting, locking is not required here.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#computeAndSetDependencyState()"><code>computeAndSetDependencyState()</code></a></dd></dl>
</li>
</ul>
<a name="getBundleContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBundleContext</h4>
<pre>public&nbsp;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.225">getBundleContext</a>()</pre>
<div class="block">Gets the bundle context used by the dependency.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the bundle context</dd></dl>
</li>
</ul>
<a name="invalidateSelectedServices()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidateSelectedServices</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.234">invalidateSelectedServices</a>()</pre>
<div class="block">This callback is called by ranking interceptor to notify the dependency that the selected service set has
changed and must be recomputed.</div>
</li>
</ul>
<a name="invalidateMatchingServices()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidateMatchingServices</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.238">invalidateMatchingServices</a>()</pre>
</li>
</ul>
<a name="stop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.247">stop</a>()</pre>
<div class="block">Closes the tracking.
The dependency becomes <a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.html#UNRESOLVED"><code>UNRESOLVED</code></a>
at the end of this method.</div>
</li>
</ul>
<a name="ungetAllServices()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ungetAllServices</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.272">ungetAllServices</a>()</pre>
<div class="block">Ungets all 'get' service references.
This also clears the service object map.
The method is called while holding the exclusive lock.</div>
</li>
</ul>
<a name="isFrozen()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFrozen</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.297">isFrozen</a>()</pre>
<div class="block">Is the reference set frozen (cannot change anymore)?
This method must be override by concrete dependency to support
the static binding policy. In fact, this method allows optimizing
the static dependencies to become frozen only when needed.
This method returns <code>false</code> by default.
The method must always return <code>false</code> for non-static dependencies.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the reference set is frozen.</dd></dl>
</li>
</ul>
<a name="unfreeze()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unfreeze</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.306">unfreeze</a>()</pre>
<div class="block">Unfreezes the dependency.
This method must be override by concrete dependency to support
the static binding policy. This method is called after tracking restarting.</div>
</li>
</ul>
<a name="match(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>match</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.319">match</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Does the service reference match ? This method must be overridden by
concrete dependencies if they need advanced testing on service reference
(that cannot be expressed in the LDAP filter). By default this method
returns <code>true</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the tested reference.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the service reference matches.</dd></dl>
</li>
</ul>
<a name="computeAndSetDependencyState()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeAndSetDependencyState</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.330">computeAndSetDependencyState</a>()</pre>
<div class="block">Computes the actual dependency state.
This methods invokes the <a href="../../../../../org/apache/felix/ipojo/util/DependencyStateListener.html" title="interface in org.apache.felix.ipojo.util"><code>DependencyStateListener</code></a>.
If this method is called without the write lock, it takes it. Anyway, the lock will be released before called
the
callbacks.</div>
</li>
</ul>
<a name="getServiceReference()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceReference</h4>
<pre>public&nbsp;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.378">getServiceReference</a>()</pre>
<div class="block">Gets the first bound service reference.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>null</code> if no more provider is available,
else returns the first reference from the matching set.</dd></dl>
</li>
</ul>
<a name="getServiceReferences()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceReferences</h4>
<pre>public&nbsp;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.398">getServiceReferences</a>()</pre>
<div class="block">Gets bound service references.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the sorted (if a comparator is used) array of matching service
references, <code>null</code> if no references are available.</dd></dl>
</li>
</ul>
<a name="getUsedServiceReferences()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUsedServiceReferences</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.417">getUsedServiceReferences</a>()</pre>
<div class="block">Gets the list of currently used service references.
If no service references, returns <code>null</code></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the list of used reference (according to the service tracker).</dd></dl>
</li>
</ul>
<a name="getComponentInstance()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComponentInstance</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/ipojo/ComponentInstance.html" title="interface in org.apache.felix.ipojo">ComponentInstance</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.451">getComponentInstance</a>()</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>the component instance on which this dependency is plugged.</dd></dl>
</li>
</ul>
<a name="getSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.461">getSize</a>()</pre>
<div class="block">Gets the number of actual matching references.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of matching references</dd></dl>
</li>
</ul>
<a name="onServiceArrival(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onServiceArrival</h4>
<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.477">onServiceArrival</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Concrete dependency callback.
This method is called when a new service needs to be
re-injected in the underlying concrete dependency.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the service reference to inject.</dd></dl>
</li>
</ul>
<a name="onServiceDeparture(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onServiceDeparture</h4>
<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.485">onServiceDeparture</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Concrete dependency callback.
This method is called when a used service (already injected) is leaving.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the leaving service reference.</dd></dl>
</li>
</ul>
<a name="onServiceModification(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onServiceModification</h4>
<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.493">onServiceModification</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Concrete dependency callback.
This method is called when a used service (already injected) is modified.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the modified service reference.</dd></dl>
</li>
</ul>
<a name="onDependencyReconfiguration(org.osgi.framework.ServiceReference[], org.osgi.framework.ServiceReference[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDependencyReconfiguration</h4>
<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.504">onDependencyReconfiguration</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;departs,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;arrivals)</pre>
<div class="block">Concrete dependency callback.
This method is called when the dependency is reconfigured and when this
reconfiguration implies changes on the matching service set ( and by the
way on the injected service).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>departs</code> - the service leaving the matching set.</dd><dd><code>arrivals</code> - the service arriving in the matching set.</dd></dl>
</li>
</ul>
<a name="invalidate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidate</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.511">invalidate</a>()</pre>
<div class="block">Calls the listener callback to notify the new state of the current
dependency.
No lock hold when calling this callback.</div>
</li>
</ul>
<a name="validate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.522">validate</a>()</pre>
<div class="block">Calls the listener callback to notify the new state of the current
dependency.
No lock hold when calling this callback.</div>
</li>
</ul>
<a name="getState()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getState</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.532">getState</a>()</pre>
<div class="block">Gets the actual state of the dependency.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the state of the dependency.</dd></dl>
</li>
</ul>
<a name="getSpecification()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSpecification</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.546">getSpecification</a>()</pre>
<div class="block">Gets the tracked specification.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the Class object tracked by the dependency.</dd></dl>
</li>
</ul>
<a name="setSpecification(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSpecification</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.557">setSpecification</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;specification)</pre>
<div class="block">Sets the required specification of this service dependency.
This operation is not supported if the dependency tracking has already begun.
So, we don't have to hold a lock.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>specification</code> - the required specification.</dd></dl>
</li>
</ul>
<a name="acquireWriteLockIfNotHeld()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireWriteLockIfNotHeld</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.569">acquireWriteLockIfNotHeld</a>()</pre>
<div class="block">Acquires the write lock only and only if the write lock is not already held by the current thread.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the lock was acquired within the method, false otherwise.</dd></dl>
</li>
</ul>
<a name="releaseWriteLockIfHeld()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseWriteLockIfHeld</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.581">releaseWriteLockIfHeld</a>()</pre>
<div class="block">Releases the write lock only and only if the write lock is held by the current thread.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the lock has no more holders, false otherwise.</dd></dl>
</li>
</ul>
<a name="acquireReadLockIfNotHeld()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireReadLockIfNotHeld</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.594">acquireReadLockIfNotHeld</a>()</pre>
<div class="block">Acquires the read lock only and only if no read lock is already held by the current thread.
As the introspection methods provided by this method are java 6+, we just take a read lock.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the lock was acquired within the method, false otherwise.</dd></dl>
</li>
</ul>
<a name="releaseReadLockIfHeld()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseReadLockIfHeld</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.604">releaseReadLockIfHeld</a>()</pre>
<div class="block">Releases the read lock only and only if the read lock is held by the current thread.
* As the introspection methods provided by this method are java 6+, we just unlock the read lock.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the lock has no more holders, false otherwise.</dd></dl>
</li>
</ul>
<a name="getFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilter</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.619">getFilter</a>()</pre>
<div class="block">Returns the dependency filter (String form).</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the String form of the LDAP filter used by this dependency,
<code>null</code> if not set.</dd></dl>
</li>
</ul>
<a name="setFilter(org.osgi.framework.Filter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilter</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.641">setFilter</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework">Filter</a>&nbsp;filter)</pre>
<div class="block">Sets the filter of the dependency. This method recomputes the
matching set and call the onDependencyReconfiguration callback.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filter</code> - the new LDAP filter.</dd></dl>
</li>
</ul>
<a name="applyReconfiguration(org.apache.felix.ipojo.dependency.impl.ServiceReferenceManager.ChangeSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyReconfiguration</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.660">applyReconfiguration</a>(<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.ChangeSet.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager.ChangeSet</a>&nbsp;changeSet)</pre>
<div class="block">Applies the given reconfiguration.
This method check if the current thread is holding the write lock, if not, acquire it.
The lock will be released before calling callbacks. As a consequence, the caller has to check if the lock is
still hold when this method returns.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>changeSet</code> - the reconfiguration changes</dd></dl>
</li>
</ul>
<a name="isAggregate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregate</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.732">isAggregate</a>()</pre>
</li>
</ul>
<a name="setAggregate(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAggregate</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.747">setAggregate</a>(boolean&nbsp;isAggregate)</pre>
<div class="block">Sets the aggregate attribute of the current dependency.
If the tracking is opened, it will call arrival and departure callbacks.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isAggregate</code> - the new aggregate attribute value.</dd></dl>
</li>
</ul>
<a name="setOptionality(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOptionality</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.814">setOptionality</a>(boolean&nbsp;isOptional)</pre>
<div class="block">Sets the optionality attribute of the current dependency.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isOptional</code> - the new optional attribute value.</dd></dl>
</li>
</ul>
<a name="isOptional()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptional</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.824">isOptional</a>()</pre>
</li>
</ul>
<a name="getBindingPolicy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBindingPolicy</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.838">getBindingPolicy</a>()</pre>
<div class="block">Gets the used binding policy.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the current binding policy.</dd></dl>
</li>
</ul>
<a name="getComparator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComparator</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.854">getComparator</a>()</pre>
<div class="block">Gets the used comparator name.
<code>null</code> if no comparator (i.e. the OSGi one is used).</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the comparator class name or <code>null</code> if the dependency doesn't use a comparator.</dd></dl>
</li>
</ul>
<a name="setComparator(java.util.Comparator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setComparator</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.870">setComparator</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;&nbsp;cmp)</pre>
</li>
</ul>
<a name="setBundleContext(org.osgi.framework.BundleContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBundleContext</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.885">setBundleContext</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html?is-external=true" title="class or interface in org.osgi.framework">BundleContext</a>&nbsp;context)</pre>
<div class="block">Sets the bundle context used by this dependency.
This operation is not supported if the tracker is already opened, and as a consequence does not require locking.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>context</code> - the bundle context or service context to use</dd></dl>
</li>
</ul>
<a name="getService(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.900">getService</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Gets a service object for the given reference.
The service object is stored to handle custom policies.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the wanted service reference</dd>
<dt><span class="strong">Returns:</span></dt><dd>the service object attached to the given reference</dd></dl>
</li>
</ul>
<a name="getService(org.osgi.framework.ServiceReference, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.911">getService</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref,
boolean&nbsp;store)</pre>
<div class="block">Gets a service object for the given reference.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the wanted service reference</dd><dd><code>store</code> - enables / disables the storing of the reference.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the service object attached to the given reference</dd></dl>
</li>
</ul>
<a name="ungetService(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ungetService</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.955">ungetService</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;ref)</pre>
<div class="block">Ungets a used service reference.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ref</code> - the reference to unget.</dd></dl>
</li>
</ul>
<a name="getContextSourceManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContextSourceManager</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/ipojo/util/ContextSourceManager.html" title="class in org.apache.felix.ipojo.util">ContextSourceManager</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.974">getContextSourceManager</a>()</pre>
</li>
</ul>
<a name="getId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getId</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.984">getId</a>()</pre>
<div class="block">Gets the dependency id.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the dependency id. Specification name by default.</dd></dl>
</li>
</ul>
<a name="onChange(org.apache.felix.ipojo.dependency.impl.ServiceReferenceManager.ChangeSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onChange</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.993">onChange</a>(<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.ChangeSet.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager.ChangeSet</a>&nbsp;set)</pre>
<div class="block">Callbacks call by the ServiceReferenceManager when the selected service set has changed.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>set</code> - the change set.</dd></dl>
</li>
</ul>
<a name="getServiceReferenceManager()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceReferenceManager</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.html" title="class in org.apache.felix.ipojo.dependency.impl">ServiceReferenceManager</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1130">getServiceReferenceManager</a>()</pre>
</li>
</ul>
<a name="getTracker()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTracker</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util">Tracker</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1134">getTracker</a>()</pre>
</li>
</ul>
<a name="addListener(org.apache.felix.ipojo.util.DependencyModelListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1155">addListener</a>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&nbsp;listener)</pre>
<div class="block">Add the given listener to the dependency model's list of listeners.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>listener</code> - the <code>DependencyModelListener</code> object to be added</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if <code>listener</code> is <code>null</code></dd></dl>
</li>
</ul>
<a name="removeListener(org.apache.felix.ipojo.util.DependencyModelListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeListener</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1171">removeListener</a>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModelListener.html" title="interface in org.apache.felix.ipojo.util">DependencyModelListener</a>&nbsp;listener)</pre>
<div class="block">Remove the given listener from the dependency model's list of listeners.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>listener</code> - the <code>DependencyModelListener</code> object to be removed</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if <code>listener</code> is <code>null</code></dd>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util">NoSuchElementException</a></code> - if <code>listener</code> wasn't present in the dependency model's list of listeners</dd></dl>
</li>
</ul>
<a name="notifyListeners(org.apache.felix.ipojo.util.DependencyModel.DependencyEventType, org.osgi.framework.ServiceReference, java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyListeners</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1201">notifyListeners</a>(<a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.DependencyEventType.html" title="enum in org.apache.felix.ipojo.util">DependencyModel.DependencyEventType</a>&nbsp;type,
<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&lt;?&gt;&nbsp;service,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
<div class="block">Notify all listeners that a change has occurred in this dependency model.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>type</code> - the type of event</dd><dd><code>service</code> - the reference of the concerned service (may be null)</dd><dd><code>object</code> - the concerned service object (may be null)</dd></dl>
</li>
</ul>
<a name="cleanup()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>cleanup</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/DependencyModel.html#line.1251">cleanup</a>()</pre>
<div class="block">Removes all the listeners from this dependency before it gets disposed.</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DependencyModel.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/util/DependencyMetadataHelper.html" title="class in org.apache.felix.ipojo.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/util/DependencyModel.DependencyEventType.html" title="enum in org.apache.felix.ipojo.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/util/DependencyModel.html" target="_top">Frames</a></li>
<li><a href="DependencyModel.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2013. All rights reserved.</small></p>
</body>
</html>