blob: e452afdfa6509c4d5bde553568004a8481535ff5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_74) on Sun Feb 28 20:11:23 CET 2016 -->
<title>ComponentBuilder</title>
<meta name="date" content="2016-02-28">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ComponentBuilder";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":18,"i51":6,"i52":18,"i53":6,"i54":18,"i55":18,"i56":18,"i57":18,"i58":18,"i59":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/lambda/BundleDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/lambda/ConfigurationDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/lambda/ComponentBuilder.html" target="_top">Frames</a></li>
<li><a href="ComponentBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.dm.lambda</div>
<h2 title="Interface ComponentBuilder" class="title">Interface ComponentBuilder&lt;B extends ComponentBuilder&lt;B&gt;&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>B</code> - the type of a builder that may extends this builder interface (aspect/adapter).</dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../../org/apache/felix/dm/lambda/BundleAdapterBuilder.html" title="interface in org.apache.felix.dm.lambda">BundleAdapterBuilder</a>, <a href="../../../../../org/apache/felix/dm/lambda/FactoryPidAdapterBuilder.html" title="interface in org.apache.felix.dm.lambda">FactoryPidAdapterBuilder</a>, <a href="../../../../../org/apache/felix/dm/lambda/ServiceAdapterBuilder.html" title="interface in org.apache.felix.dm.lambda">ServiceAdapterBuilder</a>&lt;T&gt;, <a href="../../../../../org/apache/felix/dm/lambda/ServiceAspectBuilder.html" title="interface in org.apache.felix.dm.lambda">ServiceAspectBuilder</a>&lt;T&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ComponentBuilder&lt;B extends ComponentBuilder&lt;B&gt;&gt;</span></pre>
<div class="block">Builds a Dependency Manager Component. <p> Components are the main building blocks for OSGi applications.
They can publish themselves as a service, and they can have dependencies.
These dependencies will influence their life cycle as component will only be activated when all
required dependencies are available. This interface is also the base interface for extended components like
aspects, adapters, etc ...
<p> Example of a component that depends on a LogServce service. The dependency is injected by reflection
on fields having a compatible type with the LogService interface:
<pre><code>
public class Activator extends DependencyManagerActivator {
public void init(BundleContext ctx, DependencyManager dm) throws Exception {
component(comp -&gt; comp.impl(Pojo.class).withSvc(LogService.class));
}
}
</code> </pre></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#autoAdd-boolean-">autoAdd</a></span>(boolean&nbsp;autoAdd)</code>
<div class="block">Automatically adds this component to its DependencyManager object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#autoConfig-java.lang.Class-boolean-">autoConfig</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
boolean&nbsp;autoConfig)</code>
<div class="block">Configures OSGi object (BundleContext, Component, etc ...) that will be injected in any field having the same OSGi object type.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#autoConfig-java.lang.Class-java.lang.String-">autoConfig</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
java.lang.String&nbsp;field)</code>
<div class="block">Configures OSGi object (BundleContext, Component, etc ...) that will be injected in a given field.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.felix.dm.Component</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#build--">build</a></span>()</code>
<div class="block">Builds the real DependencyManager Component.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#composition-java.lang.Object-java.lang.String-">composition</a></span>(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;getCompositionMethod)</code>
<div class="block">Sets the instance and method to invoke to get back all instances that
are part of a composition and need dependencies injected.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#composition-java.lang.String-">composition</a></span>(java.lang.String&nbsp;getCompositionMethod)</code>
<div class="block">Sets the method to invoke on the service implementation to get back all
instances that are part of a composition and need dependencies injected.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#composition-java.util.function.Supplier-">composition</a></span>(java.util.function.Supplier&lt;java.lang.Object[]&gt;&nbsp;getCompositionMethod)</code>
<div class="block">Sets a java8 method reference to a Supplier that returns all instances that are part of a composition and need dependencies injected.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#debug-java.lang.String-">debug</a></span>(java.lang.String&nbsp;label)</code>
<div class="block">Activates debug mode</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#destroy-org.apache.felix.dm.lambda.callbacks.InstanceCb-">destroy</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "destroy" callback.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#destroy-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">destroy</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "destroy" callback.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#destroy-java.lang.Object-java.lang.String-">destroy</a></span>(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</code>
<div class="block">Sets a callback instance and the name of the method used as the "destroy" callback.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#destroy-java.lang.String-">destroy</a></span>(java.lang.String&nbsp;callback)</code>
<div class="block">Sets the name of the method used as the "destroy" callback.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#factory-java.lang.Object-java.lang.String-">factory</a></span>(java.lang.Object&nbsp;factory,
java.lang.String&nbsp;createMethod)</code>
<div class="block">Sets the factory to use when creating the implementation.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#factory-java.util.function.Supplier-">factory</a></span>(java.util.function.Supplier&lt;?&gt;&nbsp;create)</code>
<div class="block">Configures a factory that can be used to create this component implementation.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#factory-java.util.function.Supplier-java.util.function.Supplier-">factory</a></span>(java.util.function.Supplier&lt;?&gt;&nbsp;factory,
java.util.function.Supplier&lt;java.lang.Object[]&gt;&nbsp;getComposition)</code>
<div class="block">Configures a factory used to create this component implementation using a Factory object and a "getComposition" factory method.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#factory-java.util.function.Supplier-java.util.function.Function-java.util.function.Function-">factory</a></span>(java.util.function.Supplier&lt;U&gt;&nbsp;factory,
java.util.function.Function&lt;U,?&gt;&nbsp;create,
java.util.function.Function&lt;U,java.lang.Object[]&gt;&nbsp;getComposition)</code>
<div class="block">Configures a factory that also returns a composition of objects for this component implemenation.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>&lt;U,V&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#factory-java.util.function.Supplier-java.util.function.Function-">factory</a></span>(java.util.function.Supplier&lt;U&gt;&nbsp;factory,
java.util.function.Function&lt;U,V&gt;&nbsp;create)</code>
<div class="block">Configures a factory used to create this component implementation using a Factory object and a method in the Factory object.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#impl-java.lang.Object-">impl</a></span>(java.lang.Object&nbsp;impl)</code>
<div class="block">Configures the component implementation.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#init-org.apache.felix.dm.lambda.callbacks.InstanceCb-">init</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "init" callback.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#init-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">init</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "init" callback.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#init-java.lang.Object-java.lang.String-">init</a></span>(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</code>
<div class="block">Sets a callback instance and the name of the method used as the "init" callback.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#init-java.lang.String-">init</a></span>(java.lang.String&nbsp;callback)</code>
<div class="block">Sets the name of the method used as the "init" callback.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#properties-java.util.Dictionary-">properties</a></span>(java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
<div class="block">Sets the component's service properties</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#properties-org.apache.felix.dm.lambda.FluentProperty...-">properties</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</code>
<div class="block">Sets the components's service properties using List of lamda properties.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#properties-java.lang.String-java.lang.Object-java.lang.Object...-">properties</a></span>(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</code>
<div class="block">Sets the components's service properties using varargs.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class-">provides</a></span>(java.lang.Class&lt;?&gt;&nbsp;iface)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class:A-">provides</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;ifaces)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class:A-java.util.Dictionary-">provides</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class:A-org.apache.felix.dm.lambda.FluentProperty...-">provides</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class:A-java.lang.String-java.lang.Object-java.lang.Object...-">provides</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class-java.util.Dictionary-">provides</a></span>(java.lang.Class&lt;?&gt;&nbsp;iface,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class-org.apache.felix.dm.lambda.FluentProperty...-">provides</a></span>(java.lang.Class&lt;?&gt;&nbsp;iface,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.Class-java.lang.String-java.lang.Object-java.lang.Object...-">provides</a></span>(java.lang.Class&lt;?&gt;&nbsp;iface,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String-">provides</a></span>(java.lang.String&nbsp;iface)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String:A-">provides</a></span>(java.lang.String[]&nbsp;ifaces)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String:A-java.util.Dictionary-">provides</a></span>(java.lang.String[]&nbsp;ifaces,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String:A-org.apache.felix.dm.lambda.FluentProperty...-">provides</a></span>(java.lang.String[]&nbsp;ifaces,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String:A-java.lang.String-java.lang.Object-java.lang.Object...-">provides</a></span>(java.lang.String[]&nbsp;ifaces,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</code>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String-java.util.Dictionary-">provides</a></span>(java.lang.String&nbsp;iface,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String-org.apache.felix.dm.lambda.FluentProperty...-">provides</a></span>(java.lang.String&nbsp;iface,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#provides-java.lang.String-java.lang.String-java.lang.Object-java.lang.Object...-">provides</a></span>(java.lang.String&nbsp;iface,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</code>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#start-org.apache.felix.dm.lambda.callbacks.InstanceCb-">start</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "start" callback.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#start-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">start</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "start" callback.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#start-java.lang.Object-java.lang.String-">start</a></span>(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</code>
<div class="block">Sets the name of the method used as the "start" callback.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#start-java.lang.String-">start</a></span>(java.lang.String&nbsp;callback)</code>
<div class="block">Sets a callback instance and the name of the method used as the "start" callback.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#stop-org.apache.felix.dm.lambda.callbacks.InstanceCb-">stop</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "stop" callback.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#stop-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">stop</a></span>(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</code>
<div class="block">Sets an Object instance method reference used as the "stop" callback.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#stop-java.lang.Object-java.lang.String-">stop</a></span>(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</code>
<div class="block">Sets a callback instance and the name of the method used as the "stop" callback.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#stop-java.lang.String-">stop</a></span>(java.lang.String&nbsp;callback)</code>
<div class="block">Sets the name of the method used as the "stop" callback.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withBundle-java.util.function.Consumer-">withBundle</a></span>(java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/BundleDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">BundleDependencyBuilder</a>&gt;&nbsp;consumer)</code>
<div class="block">Adds a bundle dependency.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>default <a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withCnf-java.lang.Class-">withCnf</a></span>(java.lang.Class&lt;?&gt;&nbsp;configType)</code>
<div class="block">Adds a configuration dependency using a configuration type.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withCnf-java.util.function.Consumer-">withCnf</a></span>(java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/ConfigurationDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">ConfigurationDependencyBuilder</a>&gt;&nbsp;consumer)</code>
<div class="block">Adds a configuration dependency.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>default <a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withCnf-java.lang.String...-">withCnf</a></span>(java.lang.String...&nbsp;pids)</code>
<div class="block">Adds multiple configuration dependencies in one single call.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withFuture-java.util.concurrent.CompletableFuture-java.util.function.Consumer-">withFuture</a></span>(java.util.concurrent.CompletableFuture&lt;U&gt;&nbsp;future,
java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/FutureDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">FutureDependencyBuilder</a>&lt;U&gt;&gt;&nbsp;consumer)</code>
<div class="block">Adds a CompletableFuture dependency.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>default <a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-boolean-java.lang.Class...-">withSvc</a></span>(boolean&nbsp;required,
java.lang.Class&lt;?&gt;...&nbsp;services)</code>
<div class="block">Adds in one shot multiple service dependencies injected in compatible class fields.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>default <a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-java.lang.Class...-">withSvc</a></span>(java.lang.Class&lt;?&gt;...&nbsp;services)</code>
<div class="block">Adds in one shot multiple service dependencies injected in compatible class fields.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>default <a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-java.lang.Class-boolean-">withSvc</a></span>(java.lang.Class&lt;?&gt;&nbsp;service,
boolean&nbsp;required)</code>
<div class="block">Adds a service dependency injected in compatible class fields.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-java.lang.Class-java.lang.String-boolean-">withSvc</a></span>(java.lang.Class&lt;T&gt;&nbsp;service,
java.lang.String&nbsp;filter,
boolean&nbsp;required)</code>
<div class="block">Adds a service dependency injected in compatible class fields.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-java.lang.Class-java.lang.String-java.lang.String-boolean-">withSvc</a></span>(java.lang.Class&lt;T&gt;&nbsp;service,
java.lang.String&nbsp;filter,
java.lang.String&nbsp;field,
boolean&nbsp;required)</code>
<div class="block">Adds a service dependency injected in a given compatible class field.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html#withSvc-java.lang.Class-java.util.function.Consumer-">withSvc</a></span>(java.lang.Class&lt;U&gt;&nbsp;service,
java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/ServiceDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">ServiceDependencyBuilder</a>&lt;U&gt;&gt;&nbsp;consumer)</code>
<div class="block">Adds a service dependency built using a Consumer lambda that is provided with a ServiceDependencyBuilder.</div>
</td>
</tr>
</table>
</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="impl-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>impl</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;impl(java.lang.Object&nbsp;impl)</pre>
<div class="block">Configures the component implementation. Can be a class name, or a component implementation object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>impl</code> - the component implementation (a class, or an Object).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="factory-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;factory(java.lang.Object&nbsp;factory,
java.lang.String&nbsp;createMethod)</pre>
<div class="block">Sets the factory to use when creating the implementation. You can specify both the factory class and method to invoke. The method should return the implementation,
and can use any method to create it. Actually, this can be used together with setComposition to create a composition of instances that work together to implement
a component. The factory itself can also be instantiated lazily by not specifying an instance, but a Class.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the factory instance, or the factory class.</dd>
<dd><code>createMethod</code> - the create method called on the factory in order to instantiate the component.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="factory-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;factory(java.util.function.Supplier&lt;?&gt;&nbsp;create)</pre>
<div class="block">Configures a factory that can be used to create this component implementation.
Example:
<pre> <code>
factory(ComponentImpl::new)", or "factory(() -&gt; new ComponentImpl())
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>create</code> - the factory used to create the component implementation.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="factory-java.util.function.Supplier-java.util.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory</h4>
<pre>&lt;U,V&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;factory(java.util.function.Supplier&lt;U&gt;&nbsp;factory,
java.util.function.Function&lt;U,V&gt;&nbsp;create)</pre>
<div class="block">Configures a factory used to create this component implementation using a Factory object and a method in the Factory object.
Example:
<pre> <code>
factory(Factory::new, Factory::create)
</code></pre></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - the type of the factory returned by the supplier</dd>
<dd><code>V</code> - the type of the object that is returned by the factory create method.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the function used to create the Factory itself</dd>
<dd><code>create</code> - the method reference on the Factory method that is used to create the Component implementation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="factory-java.util.function.Supplier-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;factory(java.util.function.Supplier&lt;?&gt;&nbsp;factory,
java.util.function.Supplier&lt;java.lang.Object[]&gt;&nbsp;getComposition)</pre>
<div class="block">Configures a factory used to create this component implementation using a Factory object and a "getComposition" factory method.
the Factory method may then return multiple objects that will be part of this component implementation, and
all of them will be searched when injecting any of the dependencies.
Example:
<pre> <code>
CompositionManager mngr = new CompositionManager();
...
factory(mngr::create, mngr::getComposition)
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the supplier used to return the main component implementation instance</dd>
<dd><code>getComposition</code> - the supplier that returns the list of instances that are part of the component implementation classes.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="factory-java.util.function.Supplier-java.util.function.Function-java.util.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory</h4>
<pre>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;factory(java.util.function.Supplier&lt;U&gt;&nbsp;factory,
java.util.function.Function&lt;U,?&gt;&nbsp;create,
java.util.function.Function&lt;U,java.lang.Object[]&gt;&nbsp;getComposition)</pre>
<div class="block">Configures a factory that also returns a composition of objects for this component implemenation.
Example:
<pre> <code>
factory(CompositionManager::new, CompositionManager::create, CompositionManager::getComposition).
</code></pre>
Here, the CompositionManager will act as a factory (the create method will return the component implementation object), the
CompositionManager.getComposition() method will return all the objects that are also part of the component implementation,
and all of them will be searched for injecting any of the dependencies.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - the type of the object returned by the supplier factory</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - the function used to create the Factory itself</dd>
<dd><code>create</code> - the Factory method used to create the main component implementation object</dd>
<dd><code>getComposition</code> - the Factory method used to return the list of objects that are also part of the component implementation.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;&nbsp;iface)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class-java.lang.String-java.lang.Object-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;&nbsp;iface,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>name</code> - a property name for the provided service</dd>
<dd><code>value</code> - a property value for the provided service</dd>
<dd><code>rest</code> - the rest of property name/value pairs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class-org.apache.felix.dm.lambda.FluentProperty...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;&nbsp;iface,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.
Warning: you can only use this method if you compile your application using the "-parameters" javac option.
code example:
<pre> <code>
provides(MyService.class, property1 -&gt; "value1", property2 -&gt; 123);
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>properties</code> - a list of fluent service properties for the provided service. You can specify a list of lambda expression, each one implementing the
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda"><code>FluentProperty</code></a> interface that allows to define a property name using a lambda parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;&nbsp;iface,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>properties</code> - the properties for the provided service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;[]&nbsp;ifaces)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - list of services provided by the component.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class:A-java.lang.String-java.lang.Object-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>name</code> - a property name for the provided service</dd>
<dd><code>value</code> - a property value for the provided service</dd>
<dd><code>rest</code> - the rest of property name/value pairs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class:A-org.apache.felix.dm.lambda.FluentProperty...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.
Warning: you can only use this method if you compile your application using the "-parameters" javac option.
code example:
<pre> <code>
provides(new Class[] { MyService.class, MyService2.class }, property1 -&gt; "value1", property2 -&gt; 123);
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>properties</code> - a list of fluent service properties for the provided service. You can specify a list of lambda expression, each one implementing the
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda"><code>FluentProperty</code></a> interface that allows to define a property name using a lambda parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.Class:A-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.Class&lt;?&gt;[]&nbsp;ifaces,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>properties</code> - the properties for the provided service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String&nbsp;iface)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the service provided by this component.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String-java.lang.String-java.lang.Object-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String&nbsp;iface,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>name</code> - a property name for the provided service</dd>
<dd><code>value</code> - a property value for the provided service</dd>
<dd><code>rest</code> - the rest of property name/value pairs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String-org.apache.felix.dm.lambda.FluentProperty...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String&nbsp;iface,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.
Warning: you can only use this method if you compile your application using the "-parameters" javac option.
code example:
<pre> <code>
provides(MyService.class, property1 -&gt; "value1", property2 -&gt; 123);
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>properties</code> - a list of fluent service properties for the provided service. You can specify a list of lambda expression, each one implementing the
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda"><code>FluentProperty</code></a> interface that allows to define a property name using a lambda parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String&nbsp;iface,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
<div class="block">Sets the public interface under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iface</code> - the public interface to register in the OSGI service registry.</dd>
<dd><code>properties</code> - the properties for the provided service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String[]&nbsp;ifaces)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the list of services provided by the component.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String:A-java.lang.String-java.lang.Object-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String[]&nbsp;ifaces,
java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>name</code> - a property name for the provided service</dd>
<dd><code>value</code> - a property value for the provided service</dd>
<dd><code>rest</code> - the rest of property name/value pairs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String:A-org.apache.felix.dm.lambda.FluentProperty...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String[]&nbsp;ifaces,
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.
Warning: you can only use this method if you compile your application using the "-parameters" javac option.
code example:
<pre> <code>
provides(new Class[] { MyService.class, MyService2.class }, property1 -&gt; "value1", property2 -&gt; 123);
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>properties</code> - a list of fluent service properties for the provided service. You can specify a list of lambda expression, each one implementing the
<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda"><code>FluentProperty</code></a> interface that allows to define a property name using a lambda parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="provides-java.lang.String:A-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>provides</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;provides(java.lang.String[]&nbsp;ifaces,
java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
<div class="block">Sets the public interfaces under which this component should be registered in the OSGi service registry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ifaces</code> - the public interfaces to register in the OSGI service registry.</dd>
<dd><code>properties</code> - the properties for the provided service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="properties-java.util.Dictionary-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>properties</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;properties(java.util.Dictionary&lt;?,?&gt;&nbsp;properties)</pre>
<div class="block">Sets the component's service properties</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the component's service properties</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="properties-java.lang.String-java.lang.Object-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>properties</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;properties(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value,
java.lang.Object...&nbsp;rest)</pre>
<div class="block">Sets the components's service properties using varargs. The number of parameters must be even, representing a list of pair property key-value.
<pre> <code>
Example: properties("param1", "value1", "service.ranking", 3)
</code></pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the first property name</dd>
<dd><code>value</code> - the first property value</dd>
<dd><code>rest</code> - the rest of properties key/value pairs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="properties-org.apache.felix.dm.lambda.FluentProperty...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>properties</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;properties(<a href="../../../../../org/apache/felix/dm/lambda/FluentProperty.html" title="interface in org.apache.felix.dm.lambda">FluentProperty</a>...&nbsp;properties)</pre>
<div class="block">Sets the components's service properties using List of lamda properties.
Example:
<pre> <code>
properties(param1 -&gt; "value1, param2 -&gt; 2);
</code></pre>
When you use this method, you must compile your source code using the "-parameters" option, and the "arg0" parameter
name is now allowed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the fluent properties</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withSvc-java.lang.Class-java.util.function.Consumer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(java.lang.Class&lt;U&gt;&nbsp;service,
java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/ServiceDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">ServiceDependencyBuilder</a>&lt;U&gt;&gt;&nbsp;consumer)</pre>
<div class="block">Adds a service dependency built using a Consumer lambda that is provided with a ServiceDependencyBuilder.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - the type of the dependency service</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - the service</dd>
<dd><code>consumer</code> - the lambda used to build the service dependency</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="withSvc-java.lang.Class...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>default&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(java.lang.Class&lt;?&gt;...&nbsp;services)</pre>
<div class="block">Adds in one shot multiple service dependencies injected in compatible class fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>services</code> - some dependencies to inject in compatible class fields.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withSvc-boolean-java.lang.Class...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>default&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(boolean&nbsp;required,
java.lang.Class&lt;?&gt;...&nbsp;services)</pre>
<div class="block">Adds in one shot multiple service dependencies injected in compatible class fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>required</code> - true if the dependency is required, false if not</dd>
<dd><code>services</code> - some dependencies to inject in compatible class fields.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withSvc-java.lang.Class-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>default&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(java.lang.Class&lt;?&gt;&nbsp;service,
boolean&nbsp;required)</pre>
<div class="block">Adds a service dependency injected in compatible class fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - a service dependency</dd>
<dd><code>required</code> - true if the dependency is required, false if not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withSvc-java.lang.Class-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>default&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(java.lang.Class&lt;T&gt;&nbsp;service,
java.lang.String&nbsp;filter,
boolean&nbsp;required)</pre>
<div class="block">Adds a service dependency injected in compatible class fields.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the service dependency type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - the service dependency.</dd>
<dd><code>filter</code> - the service filter</dd>
<dd><code>required</code> - true if the dependency is required, false if not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withSvc-java.lang.Class-java.lang.String-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withSvc</h4>
<pre>default&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withSvc(java.lang.Class&lt;T&gt;&nbsp;service,
java.lang.String&nbsp;filter,
java.lang.String&nbsp;field,
boolean&nbsp;required)</pre>
<div class="block">Adds a service dependency injected in a given compatible class field.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the service dependency type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - the service dependency</dd>
<dd><code>filter</code> - the service filter</dd>
<dd><code>field</code> - the class field when the dependency has to be injected</dd>
<dd><code>required</code> - true if the dependency is required, false if not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withCnf-java.util.function.Consumer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withCnf</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withCnf(java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/ConfigurationDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">ConfigurationDependencyBuilder</a>&gt;&nbsp;consumer)</pre>
<div class="block">Adds a configuration dependency.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>consumer</code> - the lambda used to build the configuration dependency.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="withCnf-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withCnf</h4>
<pre>default&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withCnf(java.lang.String...&nbsp;pids)</pre>
<div class="block">Adds multiple configuration dependencies in one single call. All configurations are injected by default in the "updated" callback.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pids</code> - list of configuration pids.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="withCnf-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withCnf</h4>
<pre>default&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withCnf(java.lang.Class&lt;?&gt;&nbsp;configType)</pre>
<div class="block">Adds a configuration dependency using a configuration type. The configuration is injected in an updated callback which takes in argument
an implementation of the specified configuration type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>configType</code> - the configuration type that will be injected to the "updated" callback</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/lambda/ConfigurationDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda"><code>ConfigurationDependencyBuilder</code></a></dd>
</dl>
</li>
</ul>
<a name="withBundle-java.util.function.Consumer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withBundle</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withBundle(java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/BundleDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">BundleDependencyBuilder</a>&gt;&nbsp;consumer)</pre>
<div class="block">Adds a bundle dependency.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>consumer</code> - the lambda used to build the bundle dependency.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="withFuture-java.util.concurrent.CompletableFuture-java.util.function.Consumer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withFuture</h4>
<pre>&lt;U&gt;&nbsp;<a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;withFuture(java.util.concurrent.CompletableFuture&lt;U&gt;&nbsp;future,
java.util.function.Consumer&lt;<a href="../../../../../org/apache/felix/dm/lambda/FutureDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda">FutureDependencyBuilder</a>&lt;U&gt;&gt;&nbsp;consumer)</pre>
<div class="block">Adds a CompletableFuture dependency.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - the type of the result of the CompletableFuture.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>future</code> - a CompletableFuture on which the dependency will wait for</dd>
<dd><code>consumer</code> - the builder used to build the dependency</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="init-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;init(java.lang.String&nbsp;callback)</pre>
<div class="block">Sets the name of the method used as the "init" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
<p>The dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="init-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;init(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</pre>
<div class="block">Sets a callback instance and the name of the method used as the "init" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
<p>The dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callbackInstance</code> - a callback instance object the callback is invoked on</dd>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="init-org.apache.felix.dm.lambda.callbacks.InstanceCb-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;init(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "init" callback. It is invoked as part of the life cycle management of the component
implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
The method does not take any parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method does not take any parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="init-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;init(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "init" callback. It is invoked as part of the life cycle management of the component
implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
The method takes as argument a Component parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method takes as argument a Component parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="start-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;start(java.lang.String&nbsp;callback)</pre>
<div class="block">Sets a callback instance and the name of the method used as the "start" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="start-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;start(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</pre>
<div class="block">Sets the name of the method used as the "start" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callbackInstance</code> - a callback instance object the callback is invoked on</dd>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="start-org.apache.felix.dm.lambda.callbacks.InstanceCb-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;start(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "start" callback.
This method is invoked as part of the life cycle management of the component implementation.
The method does not take any parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method does not take any parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="start-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;start(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "start" callback.
This method is invoked as part of the life cycle management of the component implementation.
The method takes as argument a Component parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method takes as argument a Component parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="stop-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;stop(java.lang.String&nbsp;callback)</pre>
<div class="block">Sets the name of the method used as the "stop" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="stop-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;stop(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</pre>
<div class="block">Sets a callback instance and the name of the method used as the "stop" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callbackInstance</code> - a callback instance object the callback is invoked on</dd>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="stop-org.apache.felix.dm.lambda.callbacks.InstanceCb-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;stop(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "stop" callback. It is invoked as part of the life cycle management of the component
implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
The method does not take any parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method does not take any parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="stop-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;stop(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "stop" callback.
This method is invoked as part of the life cycle management of the component implementation.
The method takes as argument a Component parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method takes as argument a Component parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="destroy-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;destroy(java.lang.String&nbsp;callback)</pre>
<div class="block">Sets the name of the method used as the "destroy" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="destroy-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;destroy(java.lang.Object&nbsp;callbackInstance,
java.lang.String&nbsp;callback)</pre>
<div class="block">Sets a callback instance and the name of the method used as the "destroy" callback. This method, when found, is
invoked as part of the life cycle management of the component implementation. <p>The
dependency manager will look for a method of this name with the following signatures,
in this order:
<ol>
<li>method(Component component)</li>
<li>method()</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callbackInstance</code> - a callback instance object the callback is invoked on</dd>
<dd><code>callback</code> - the callback name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="destroy-org.apache.felix.dm.lambda.callbacks.InstanceCb-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;destroy(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCb.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCb</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "destroy" callback. It is invoked as part of the life cycle management of the component
implementation.
This method is useful because when it is invoked, all required dependencies defines in the Activator
are already injected, and you can then add more extra dependencies from the init() method.
And once all extra dependencies will be available and injected, then the "start" callback will be invoked.
The method does not take any parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method does not take any parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="destroy-org.apache.felix.dm.lambda.callbacks.InstanceCbComponent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;destroy(<a href="../../../../../org/apache/felix/dm/lambda/callbacks/InstanceCbComponent.html" title="interface in org.apache.felix.dm.lambda.callbacks">InstanceCbComponent</a>&nbsp;callback)</pre>
<div class="block">Sets an Object instance method reference used as the "destroy" callback.
This method is invoked as part of the life cycle management of the component implementation.
The method takes as argument a Component parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - an Object instance method reference. The method takes as argument a Component parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a name="autoConfig-java.lang.Class-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>autoConfig</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;autoConfig(java.lang.Class&lt;?&gt;&nbsp;clazz,
boolean&nbsp;autoConfig)</pre>
<div class="block">Configures OSGi object (BundleContext, Component, etc ...) that will be injected in any field having the same OSGi object type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the OSGi object type (BundleContext, Component, DependencyManager).</dd>
<dd><code>autoConfig</code> - true if the OSGi object has to be injected, false if not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="autoConfig-java.lang.Class-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>autoConfig</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;autoConfig(java.lang.Class&lt;?&gt;&nbsp;clazz,
java.lang.String&nbsp;field)</pre>
<div class="block">Configures OSGi object (BundleContext, Component, etc ...) that will be injected in a given field.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the OSGi object type (BundleContext, Component, DependencyManager).</dd>
<dd><code>field</code> - the field that will be injected with the OSGI object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="debug-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>debug</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;debug(java.lang.String&nbsp;label)</pre>
<div class="block">Activates debug mode</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>label</code> - the debug label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="autoAdd-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>autoAdd</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;autoAdd(boolean&nbsp;autoAdd)</pre>
<div class="block">Automatically adds this component to its DependencyManager object. When a lambda builds a Component using this builder, by default
the built component is auto added to its DependencyManager object, unless you invoke autoAdd(false).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>autoAdd</code> - true for automatically adding this component to the DependencyManager object, false if not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="composition-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composition</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;composition(java.lang.String&nbsp;getCompositionMethod)</pre>
<div class="block">Sets the method to invoke on the service implementation to get back all
instances that are part of a composition and need dependencies injected.
All of them will be searched to inject any of the dependencies. The method that
is invoked must return an <code>Object[]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>getCompositionMethod</code> - the method to invoke</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="composition-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composition</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;composition(java.lang.Object&nbsp;instance,
java.lang.String&nbsp;getCompositionMethod)</pre>
<div class="block">Sets the instance and method to invoke to get back all instances that
are part of a composition and need dependencies injected. All of them
will be searched to inject any of the dependencies. The method that is
invoked must return an <code>Object[]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>instance</code> - the instance that has the method</dd>
<dd><code>getCompositionMethod</code> - the method to invoke</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="composition-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composition</h4>
<pre><a href="../../../../../org/apache/felix/dm/lambda/ComponentBuilder.html" title="type parameter in ComponentBuilder">B</a>&nbsp;composition(java.util.function.Supplier&lt;java.lang.Object[]&gt;&nbsp;getCompositionMethod)</pre>
<div class="block">Sets a java8 method reference to a Supplier that returns all instances that are part of a composition and need dependencies injected.
All of them will be searched for any of the dependencies. The method that
is invoked must return an <code>Object[]</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>getCompositionMethod</code> - the method to invoke</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder</dd>
</dl>
</li>
</ul>
<a name="build--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre>org.apache.felix.dm.Component&nbsp;build()</pre>
<div class="block">Builds the real DependencyManager Component.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the real DependencyManager Component.</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>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/lambda/BundleDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/lambda/ConfigurationDependencyBuilder.html" title="interface in org.apache.felix.dm.lambda"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/lambda/ComponentBuilder.html" target="_top">Frames</a></li>
<li><a href="ComponentBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>