You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2014/10/11 18:21:31 UTC
svn commit: r1631078 - in
/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm:
Component.java impl/ComponentImpl.java impl/FilterComponent.java
Author: pderop
Date: Sat Oct 11 16:21:30 2014
New Revision: 1631078
URL: http://svn.apache.org/r1631078
Log:
Added a convenient "<T> T getInstance()" method in the Component interface, allowing to easily get
the component instance implementation without a cast.
Modified:
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/Component.java
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ComponentImpl.java
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/FilterComponent.java
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/Component.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/Component.java?rev=1631078&r1=1631077&r2=1631078&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/Component.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/Component.java Sat Oct 11 16:21:30 2014
@@ -152,6 +152,15 @@ public interface Component {
public ServiceRegistration getServiceRegistration();
/**
+ * Returns the instance that make up this component. If the component has a composition of instances,
+ * then the first instance of the composition is returned. Null is returned if the component has not
+ * even been instantiated.
+ *
+ * @return the component instances
+ */
+ public <T> T getInstance();
+
+ /**
* Returns the composition instances that make up this component, or just the
* component instance if it does not have a composition, or an empty array if
* the component has not even been instantiated.
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ComponentImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ComponentImpl.java?rev=1631078&r1=1631077&r2=1631078&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ComponentImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ComponentImpl.java Sat Oct 11 16:21:30 2014
@@ -873,6 +873,12 @@ public class ComponentImpl implements Co
}
}
+ @SuppressWarnings("unchecked")
+ public <T> T getInstance() {
+ Object[] instances = getCompositionInstances();
+ return instances.length == 0 ? null : (T) instances[0];
+ }
+
public Object[] getInstances() {
return getCompositionInstances();
}
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/FilterComponent.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/FilterComponent.java?rev=1631078&r1=1631077&r2=1631078&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/FilterComponent.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/FilterComponent.java Sat Oct 11 16:21:30 2014
@@ -309,6 +309,11 @@ public class FilterComponent implements
}
@Override
+ public <T> T getInstance() {
+ return m_component.getInstance();
+ }
+
+ @Override
public Object[] getInstances() {
return m_component.getInstances();
}