[jboss-cvs] JBossAS SVN: r84095 - projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/factory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 11 10:33:45 EST 2009
Author: alesj
Date: 2009-02-11 10:33:45 -0500 (Wed, 11 Feb 2009)
New Revision: 84095
Modified:
projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/factory/PropertyMap.java
Log:
Fix contextual injection.
Modified: projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/factory/PropertyMap.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/factory/PropertyMap.java 2009-02-11 15:26:37 UTC (rev 84094)
+++ projects/microcontainer/trunk/kernel/src/main/java/org/jboss/beans/metadata/spi/factory/PropertyMap.java 2009-02-11 15:33:45 UTC (rev 84095)
@@ -26,6 +26,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
+import java.util.Stack;
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.info.spi.PropertyInfo;
@@ -79,7 +80,7 @@
for (ValueMetaData value : values())
{
ValueInfo vi = ValueInfo.class.cast(value);
- if (vi.value == previous)
+ if (vi == previous)
{
valueInfo = vi;
break;
@@ -106,7 +107,7 @@
return typeInfo;
}
- private static class ValueInfo extends JBossObject implements ValueMetaData, Serializable
+ private static class ValueInfo extends JBossObject implements ValueMetaData, Serializable, TypeProvider
{
private static final long serialVersionUID = 1L;
@@ -119,6 +120,29 @@
this.value = value;
}
+ public TypeInfo getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable
+ {
+ Stack<MetaDataVisitorNode> visitorNodeStack = visitor.visitorNodeStack();
+ // see AbstractInjectionValueMetaData.describeVisit
+ MetaDataVisitorNode node = visitorNodeStack.pop();
+ try
+ {
+ if (node instanceof TypeProvider)
+ {
+ TypeProvider typeProvider = (TypeProvider) node;
+ return typeProvider.getType(visitor, this);
+ }
+ else
+ {
+ throw new IllegalArgumentException(TypeProvider.ERROR_MSG);
+ }
+ }
+ finally
+ {
+ visitorNodeStack.push(node);
+ }
+ }
+
public Object getUnderlyingValue()
{
return value.getUnderlyingValue();
More information about the jboss-cvs-commits
mailing list