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/03/18 22:45:26 UTC
svn commit: r1579065 -
/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java
Author: pderop
Date: Tue Mar 18 21:45:26 2014
New Revision: 1579065
URL: http://svn.apache.org/r1579065
Log:
Using Generic in order to put some common methods in DependencyImpl class
Modified:
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java?rev=1579065&r1=1579064&r2=1579065&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ServiceDependencyImpl.java Tue Mar 18 21:45:26 2014
@@ -22,17 +22,14 @@ import dm.ServiceDependency;
import dm.context.DependencyContext;
import dm.context.Event;
-public class ServiceDependencyImpl extends DependencyImpl implements ServiceDependency, ServiceTrackerCustomizer {
- private volatile ServiceTracker m_tracker;
- private final BundleContext m_context;
+public class ServiceDependencyImpl extends DependencyImpl<ServiceDependency> implements ServiceDependency, ServiceTrackerCustomizer {
+ protected volatile ServiceTracker m_tracker;
+ protected final BundleContext m_context;
private final Logger m_logger;
protected volatile Class<?> m_trackedServiceName;
private volatile String m_trackedServiceFilter;
private volatile String m_trackedServiceFilterUnmodified;
private volatile ServiceReference m_trackedServiceReference;
- private volatile boolean m_propagate;
- private volatile Object m_propagateCallbackInstance;
- private volatile String m_propagateCallbackMethod;
private volatile Object m_defaultImplementation;
private volatile Object m_defaultImplementationInstance;
private volatile Object m_nullObject;
@@ -133,54 +130,19 @@ public class ServiceDependencyImpl exten
}
// --- CREATION
-
- public ServiceDependency setCallbacks(String add, String remove) {
- super.setCallbacks(add, remove);
- return this;
- }
-
- public ServiceDependency setCallbacks(String add, String change, String remove) {
- super.setCallbacks(add, change, remove);
- return this;
- }
-
- public ServiceDependency setCallbacks(String added, String changed, String removed, String swapped) {
- setCallbacks(added, changed, removed);
- // TODO handle the swapped parameter.
- return this;
- }
-
- public ServiceDependency setCallbacks(Object instance, String add, String remove) {
- super.setCallbacks(instance, add, remove);
- return this;
- }
-
- public ServiceDependency setCallbacks(Object instance, String add, String change, String remove) {
- super.setCallbacks(instance, add, change, remove);
- return this;
- }
-
+
public ServiceDependency setCallbacks(Object instance, String added, String changed, String removed, String swapped) {
setCallbacks(instance, added, changed, removed);
// TODO handle the swapped parameter
return this;
}
-
- public ServiceDependency setRequired(boolean required) {
- super.setRequired(required);
- return this;
- }
-
- public ServiceDependency setAutoConfig(boolean autoConfig) {
- super.setAutoConfig(autoConfig);
- return this;
- }
-
- public ServiceDependency setAutoConfig(String instanceName) {
- super.setAutoConfig(instanceName);
- return this;
+
+ public ServiceDependency setCallbacks(String added, String changed, String removed, String swapped) {
+ setCallbacks(added, changed, removed);
+ // TODO handle the swapped parameter
+ return this;
}
-
+
@Override
public ServiceDependency setDefaultImplementation(Object implementation) {
ensureNotActive();
@@ -343,24 +305,9 @@ public class ServiceDependencyImpl exten
}
@Override
- public ServiceDependency setPropagate(boolean propagate) {
- ensureNotActive();
- m_propagate = propagate;
- return this;
- }
-
- @Override
- public ServiceDependency setPropagate(Object instance, String method) {
- setPropagate(instance != null && method != null);
- m_propagateCallbackInstance = instance;
- m_propagateCallbackMethod = method;
- return this;
- }
-
- @Override
public Dictionary getProperties() {
Object service = null;
- ServiceEventImpl se = m_dependencies.size() > 0 ? (ServiceEventImpl) m_dependencies.first() : null;
+ ServiceEventImpl se = (ServiceEventImpl) m_component.getDependencyEvent(this);
if (se != null) {
if (m_propagateCallbackInstance != null && m_propagateCallbackMethod != null) {
try {
@@ -434,7 +381,7 @@ public class ServiceDependencyImpl exten
@Override
protected Object getService() {
Object service = null;
- ServiceEventImpl se = m_dependencies.size() > 0 ? (ServiceEventImpl) m_dependencies.last() : null;
+ ServiceEventImpl se = (ServiceEventImpl) m_component.getDependencyEvent(this);
if (se != null) {
service = se.getService();
} else if (isAutoConfig()) {
@@ -480,10 +427,4 @@ public class ServiceDependencyImpl exten
}
return m_defaultImplementationInstance;
}
-
- private void ensureNotActive() {
- if (m_tracker != null) {
- throw new IllegalStateException("Cannot modify state while active.");
- }
- }
}