blob: bd991a9bb3fd992539c4a0c54a32325fb7dd498f [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 Jun 29 08:36:29 CEST 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>ConstructorInjector (Apache Felix iPOJO ~ JavaDoc 1.10.1 API)</title>
<meta name="date" content="2013-06-29">
<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.10.1 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/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/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 type of 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</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.44">getConstructorParameter</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 for primitive type)</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</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd></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; 2013. All rights reserved.</small></p>
</body>
</html>