blob: d0b22e11157c426092a075b789fe47a4c267804b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_25) on Sat May 17 12:14:24 CEST 2014 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>ConstructorInjector (Apache Felix iPOJO ~ JavaDoc 1.12.0 API)</title>
<meta name="date" content="2014-05-17">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ConstructorInjector (Apache Felix iPOJO ~ JavaDoc 1.12.0 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/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="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/felix/ipojo/ContextListener.html" title="interface in org.apache.felix.ipojo"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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="strong">Author:</span></dt>
<dd><a href="mailto:dev@felix.apache.org">Felix Project Team</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/felix/ipojo/ConstructorInjector.html#getConstructorParameter(int)">getConstructorParameter</a></strong>(int&nbsp;index)</code>
<div class="block">Gets the object to inject in the constructor parameter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/felix/ipojo/ConstructorInjector.html#getConstructorParameterType(int)">getConstructorParameterType</a></strong>(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/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/felix/ipojo/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="strong">Parameters:</span></dt><dd><code>index</code> - the parameter index</dd>
<dt><span class="strong">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/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;<a href="../../../../src-html/org/apache/felix/ipojo/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="strong">Parameters:</span></dt><dd><code>index</code> - the parameter index</dd>
<dt><span class="strong">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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/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="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/felix/ipojo/ContextListener.html" title="interface in org.apache.felix.ipojo"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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>