blob: 66597b48b997d779343f8899e0671173572fcdd3 [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) on Wed Dec 24 15:58:25 CET 2014 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ConstructorInjector (Apache Felix iPOJO ~ JavaDoc 1.12.1 API)</title>
<meta name="date" content="2014-12-24">
<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="ConstructorInjector (Apache Felix iPOJO ~ JavaDoc 1.12.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ConstructorInjector.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/felix/ipojo/ConfigurationTracker.html" title="class in org.apache.felix.ipojo"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/felix/ipojo/ContextListener.html" title="interface in org.apache.felix.ipojo"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/felix/ipojo/ConstructorInjector.html" target="_top">Frames</a></li>
<li><a href="ConstructorInjector.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.ipojo</div>
<h2 title="Interface ConstructorInjector" class="title">Interface ConstructorInjector</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/felix/ipojo/handlers/architecture/ArchitectureHandler.html" title="class in org.apache.felix.ipojo.handlers.architecture">ArchitectureHandler</a>, <a href="../../../../org/apache/felix/ipojo/handlers/context/BundleContextHandler.html" title="class in org.apache.felix.ipojo.handlers.context">BundleContextHandler</a>, <a href="../../../../org/apache/felix/ipojo/handlers/configuration/ConfigurationHandler.html" title="class in org.apache.felix.ipojo.handlers.configuration">ConfigurationHandler</a>, <a href="../../../../org/apache/felix/ipojo/handlers/lifecycle/controller/ControllerHandler.html" title="class in org.apache.felix.ipojo.handlers.lifecycle.controller">ControllerHandler</a>, <a href="../../../../org/apache/felix/ipojo/handlers/dependency/Dependency.html" title="class in org.apache.felix.ipojo.handlers.dependency">Dependency</a>, <a href="../../../../org/apache/felix/ipojo/handlers/dependency/DependencyHandler.html" title="class in org.apache.felix.ipojo.handlers.dependency">DependencyHandler</a>, <a href="../../../../org/apache/felix/ipojo/handlers/lifecycle/callback/LifecycleCallbackHandler.html" title="class in org.apache.felix.ipojo.handlers.lifecycle.callback">LifecycleCallbackHandler</a>, <a href="../../../../org/apache/felix/ipojo/PrimitiveHandler.html" title="class in org.apache.felix.ipojo">PrimitiveHandler</a>, <a href="../../../../org/apache/felix/ipojo/util/Property.html" title="class in org.apache.felix.ipojo.util">Property</a>, <a href="../../../../org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.html" title="class in org.apache.felix.ipojo.handlers.providedservice">ProvidedServiceHandler</a></dd>
</dl>
<hr>
<br>
<pre>public interface <a href="../../../../src-html/org/apache/felix/ipojo/ConstructorInjector.html#line.33">ConstructorInjector</a></pre>
<div class="block">Interface implemented to support constructor parameter injection.
When a new POJO object has to be created, all constructor injectors are
called to gets the objects to injects as well as the type (to discover
the constructor).
Handlers willing to inject constructor parameters must register themselves
using <a href="../../../../org/apache/felix/ipojo/InstanceManager.html#register-int-org.apache.felix.ipojo.ConstructorInjector-"><code>InstanceManager.register(int, ConstructorInjector)</code></a> where
the integer is the parameter index. Only one injector can inject a value
for a specific index. If several injectors are registered for the same index,
the component type is declared as invalid.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd><a href="mailto:dev@felix.apache.org">Felix Project Team</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/ipojo/ConstructorInjector.html#getConstructorParameter-int-">getConstructorParameter</a></span>(int&nbsp;index)</code>
<div class="block">Gets the object to inject in the constructor parameter.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/felix/ipojo/ConstructorInjector.html#getConstructorParameterType-int-">getConstructorParameterType</a></span>(int&nbsp;index)</code>
<div class="block">Gets the type of the object to inject in the constructor parameter.</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="getConstructorParameter-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstructorParameter</h4>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/felix/ipojo/ConstructorInjector.html#line.40">getConstructorParameter</a>(int&nbsp;index)</pre>
<div class="block">Gets the object to inject in the constructor parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the parameter index</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object to be injected.</dd>
</dl>
</li>
</ul>
<a name="getConstructorParameterType-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getConstructorParameterType</h4>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;<a href="../../../../src-html/org/apache/felix/ipojo/ConstructorInjector.html#line.51">getConstructorParameterType</a>(int&nbsp;index)</pre>
<div class="block">Gets the type of the object to inject in the constructor parameter.
This is the type looked into the Pojo class, so it must match.
Returning <code>null</code> will try to get the class from the
injected object, however this can be wrong (implementation instead of interface,
boxed objects...) and error-prone.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the parameter index</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Class object (must fit also for primitive type)</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="class-use/ConstructorInjector.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/felix/ipojo/ConfigurationTracker.html" title="class in org.apache.felix.ipojo"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/felix/ipojo/ContextListener.html" title="interface in org.apache.felix.ipojo"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/felix/ipojo/ConstructorInjector.html" target="_top">Frames</a></li>
<li><a href="ConstructorInjector.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 ======= -->
<p class="legalCopy"><small>Copyright &#169; 2014. All rights reserved.</small></p>
</body>
</html>