blob: 6f38e115852ce4c1f8d8ef65a49a589e676a76a1 [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_75) on Tue Dec 01 13:56:19 CET 2015 -->
<title>DependencyGraph</title>
<meta name="date" content="2015-12-01">
<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="DependencyGraph";
}
//-->
</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="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/diagnostics/CircularDependency.html" title="class in org.apache.felix.dm.diagnostics"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.ComponentState.html" title="enum in org.apache.felix.dm.diagnostics"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/diagnostics/DependencyGraph.html" target="_top">Frames</a></li>
<li><a href="DependencyGraph.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.dm.diagnostics</div>
<h2 title="Class DependencyGraph" class="title">Class DependencyGraph</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.felix.dm.diagnostics.DependencyGraph</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">DependencyGraph</span>
extends java.lang.Object</pre>
<div class="block">The dependency graph is a view of all components managed by the dependency manager
and of their dependencies. Using this API you can get the dependencies of a given component,
the components providing a given service, the circular dependencies that might exist.</div>
</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/dm/diagnostics/DependencyGraph.ComponentState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.ComponentState</a></strong></code>
<div class="block">Use this to specify which components the dependency graph should contain</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.DependencyState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.DependencyState</a></strong></code>
<div class="block">Use this to specify which dependencies the graph should contain</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>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getAllComponents()">getAllComponents</a></strong>()</code>
<div class="block">Returns the list of components in the graph</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getAllDependencies()">getAllDependencies</a></strong>()</code>
<div class="block">Returns a list all dependencies in the graph</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/diagnostics/CircularDependency.html" title="class in org.apache.felix.dm.diagnostics">CircularDependency</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getCircularDependencies()">getCircularDependencies</a></strong>()</code>
<div class="block">Returns the list of circular dependencies in the graph</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getDependecies(org.apache.felix.dm.ComponentDeclaration)">getDependecies</a></strong>(<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&nbsp;componentDeclaration)</code>
<div class="block">For a given component declaration, it returns a list of its dependencies in the state
specified when the graph was built.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html" title="class in org.apache.felix.dm.diagnostics">DependencyGraph</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getGraph(org.apache.felix.dm.diagnostics.DependencyGraph.ComponentState,%20org.apache.felix.dm.diagnostics.DependencyGraph.DependencyState)">getGraph</a></strong>(<a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.ComponentState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.ComponentState</a>&nbsp;componentState,
<a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.DependencyState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.DependencyState</a>&nbsp;dependencyState)</code>
<div class="block">Build the dependency graph.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/diagnostics/MissingDependency.html" title="class in org.apache.felix.dm.diagnostics">MissingDependency</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getMissingDependencies(java.lang.String)">getMissingDependencies</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Returns all the missing dependencies of a given type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html#getProviders(org.apache.felix.dm.ComponentDependencyDeclaration)">getProviders</a></strong>(<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&nbsp;dependency)</code>
<div class="block">Returns the list of components that provide the given 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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getGraph(org.apache.felix.dm.diagnostics.DependencyGraph.ComponentState, org.apache.felix.dm.diagnostics.DependencyGraph.DependencyState)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGraph</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.html" title="class in org.apache.felix.dm.diagnostics">DependencyGraph</a>&nbsp;getGraph(<a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.ComponentState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.ComponentState</a>&nbsp;componentState,
<a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.DependencyState.html" title="enum in org.apache.felix.dm.diagnostics">DependencyGraph.DependencyState</a>&nbsp;dependencyState)</pre>
<div class="block">Build the dependency graph. It will contain all the components managed by the dependency manager, provided
that those components are in the given state, and all dependencies of their dependencies, provided that the
dependencies are in the given state.
<p>This implementation currently only builds a graph of unregistered components and
required unavailable dependencies.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>componentState</code> - Include only the components in this state</dd><dd><code>dependencyState</code> - Include only the dependencies in this state</dd>
<dt><span class="strong">Returns:</span></dt><dd></dd></dl>
</li>
</ul>
<a name="getAllComponents()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllComponents</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&gt;&nbsp;getAllComponents()</pre>
<div class="block">Returns the list of components in the graph</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the list of components in the graph</dd></dl>
</li>
</ul>
<a name="getAllDependencies()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllDependencies</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&gt;&nbsp;getAllDependencies()</pre>
<div class="block">Returns a list all dependencies in the graph</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the list of all dependencies in the graph</dd></dl>
</li>
</ul>
<a name="getDependecies(org.apache.felix.dm.ComponentDeclaration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDependecies</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&gt;&nbsp;getDependecies(<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&nbsp;componentDeclaration)</pre>
<div class="block">For a given component declaration, it returns a list of its dependencies in the state
specified when the graph was built.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>componentDeclaration</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>the list of dependencies or null if the component declaration is not in the graph</dd></dl>
</li>
</ul>
<a name="getProviders(org.apache.felix.dm.ComponentDependencyDeclaration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProviders</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/ComponentDeclaration.html" title="interface in org.apache.felix.dm">ComponentDeclaration</a>&gt;&nbsp;getProviders(<a href="../../../../../org/apache/felix/dm/ComponentDependencyDeclaration.html" title="interface in org.apache.felix.dm">ComponentDependencyDeclaration</a>&nbsp;dependency)</pre>
<div class="block">Returns the list of components that provide the given dependency. This only returns the components
managed by the dependency manager that are in the state specified when the graph was built. The
dependency can only be a service dependency.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dependency</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>the list of components providing this dependency or null if the dependency declaration is
not in the graph</dd></dl>
</li>
</ul>
<a name="getCircularDependencies()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCircularDependencies</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/diagnostics/CircularDependency.html" title="class in org.apache.felix.dm.diagnostics">CircularDependency</a>&gt;&nbsp;getCircularDependencies()</pre>
<div class="block">Returns the list of circular dependencies in the graph</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the list of circular dependencies</dd></dl>
</li>
</ul>
<a name="getMissingDependencies(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getMissingDependencies</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/felix/dm/diagnostics/MissingDependency.html" title="class in org.apache.felix.dm.diagnostics">MissingDependency</a>&gt;&nbsp;getMissingDependencies(java.lang.String&nbsp;type)</pre>
<div class="block">Returns all the missing dependencies of a given type.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>type</code> - The type of the dependencies to be returned. This can be either one of the types
known by the DependencyManager (service, bundle, configuration, resource),
a user defined type or null, in which case all missing dependencies must be returned.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The missing dependencies of the given type or all the missing dependencies.</dd></dl>
</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="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/diagnostics/CircularDependency.html" title="class in org.apache.felix.dm.diagnostics"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/diagnostics/DependencyGraph.ComponentState.html" title="enum in org.apache.felix.dm.diagnostics"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/diagnostics/DependencyGraph.html" target="_top">Frames</a></li>
<li><a href="DependencyGraph.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>