felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pde...@apache.org
Subject svn commit: r1719970 - in /felix/sandbox/pderop/dependencymanager-lambda: org.apache.felix.dependencymanager.lambda.itest/testdir/ org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ org.apache.felix.dependencymanager.lamb...
Date Mon, 14 Dec 2015 17:38:58 GMT
Author: pderop
Date: Mon Dec 14 17:38:58 2015
New Revision: 1719970

URL: http://svn.apache.org/viewvc?rev=1719970&view=rev
Log:
Moved some functions from the Functions class to the ServiceCallbacksBuilder interface.

Removed:
    felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda.itest/testdir/TEST-org.apache.felix.dependencymanager.lambda.itest-0.0.0.xml
Modified:
    felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/Functions.java
    felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ServiceCallbacksBuilder.java
    felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/impl/ServiceCallbacksBuilderImpl.java

Modified: felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/Functions.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/Functions.java?rev=1719970&r1=1719969&r2=1719970&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/Functions.java
(original)
+++ felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/Functions.java
Mon Dec 14 17:38:58 2015
@@ -1,21 +1,15 @@
 package org.apache.felix.dm.builder.lambda;
 
 import java.io.Serializable;
-import java.util.Dictionary;
-import java.util.Map;
 import java.util.Objects;
 
-import org.osgi.framework.ServiceReference;
-
 /**
- * This class contains the definition of all possible method references that a component
may define for dependency injections and
- * lifecycle callbacks.
+ * This class regroups some reuisable functional interfaces. 
  */
 public class Functions {
 	
 	/**
-	 * Base interface for serializable functions. To be able to detect actual lambda generic
types, the lambda must be
-	 * serializable.
+	 * Base interface for serializable functions. Any lambda which generic types need to be
introspected must extends this interface.
 	 */
 	public interface SerializableLambda extends Serializable {		
 	}
@@ -27,7 +21,6 @@ public class Functions {
 	public interface Consumer<T> extends SerializableLambda {
 	    /**
 	     * Performs this operation on the given argument.
-	     *
 	     * @param t the input argument
 	     */
 	    void accept(T t);
@@ -49,7 +42,6 @@ public class Functions {
 	public interface Consumer2<T, U> extends SerializableLambda {
 	    /**
 	     * Performs this operation on the given arguments.
-	     *
 	     * @param t the first input argument
 	     * @param u the second input argument
 	     */
@@ -67,258 +59,5 @@ public class Functions {
 	        };
 	    }
 	}
-				
-	/**
-	 * Defines a reference on a bind method from an object instance. The bind method takes a
service parameter.
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface Service<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param service the service injected using the callback method
-    	 */
-    	void call(T service);
-    }
-    
-	/**
-	 * Defines a reference on a bind method from an object instance. The bind method takes a
service parameter, as well as a Map 
-	 * (for service properties).
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface ServiceMap<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param service the service injected using the callback method
-    	 * @param properties the service properties
-    	 */
-    	void call(T service, Map<String, Object> properties);
-    }
-
-	/**
-	 * Defines a method reference on a bind method from an object instance. The bind method
takes a service parameter, as well as a Dictionary 
-	 * (for service properties).
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface ServiceDict<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param service the service injected using the callback method
-    	 * @param properties the service properties
-    	 */
-    	void call(T service, Dictionary<String, Object> properties);
-    }
-
-    /**
-	 * Defines a method reference on a bind method from an object instance. The bind method
takes an OSGi service reference parameter. 
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface Ref<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param service the service injected using the callback method
-    	 */
-    	void call(ServiceReference<T> service);
-    }
-    
-    /**
-	 * Defines a method reference on a bind method from an object instance. The bind method
takes a service, and the corresponding OSGi service reference. 
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface ServiceRef<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param service the service injected using the callback method
-    	 * @param ref the corresponding OSGi service reference
-    	 */
-    	void call(T service, ServiceReference<T> ref);
-    }
-
-    /**
-	 * Defines a method reference on a DependencManager swap callback, using ServiceReference
for service properties.
-	 * @param <T> the type of the swapped service.
-	 */
-    @FunctionalInterface
-    public interface RefServiceRefService<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param oldRef the replaced service reference
-    	 * @param old the replaced service
-    	 * @param replaceRef the reference to the new service that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(ServiceReference<T> oldRef, T old, ServiceReference<T> replaceRef,
T replace); 
-    }
-        
-    /**
-	 * Defines a method reference on a DependencManager swap callback, using Map for service
properties.
-	 * @param <T> the type of the swapped service.
-	 */
-    @FunctionalInterface
-    public interface MapServiceMapService<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param oldProps the replaced service properties
-    	 * @param old the replaced service
-    	 * @param replaceProps the new service properties that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(Map<String, Object> oldProps, T old, Map<String, Object> replaceProps,
T replace); 
-    }
-    
-    /**
-	 * Defines a method reference on a DependencManager swap callback, using Dictionary for
service properties.
-	 * @param <T> the type of the swapped service.
-	 */
-    @FunctionalInterface
-    public interface DictServiceDictService<T> {
-    	/**
-    	 * Signature of the callback method
-    	 * @param oldProps the replaced service properties
-    	 * @param old the replaced service
-    	 * @param replaceProps the new service properties that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(Dictionary<String, Object> oldProps, T old, Dictionary<String, Object>
replaceProps, T replace); 
-    }
-
-	/**
-	 * Defines a method reference on a class method, without the instance. The bind method takes
an OSGi service as parameter.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceService<I, T> extends SerializableLambda {
-    	/**
-    	 * Signature of the callback method.
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param service the service to inject in the instance method using this method reference
-    	 */
-    	void call(I instance, T service);
-    }
-    
-	/**
-	 * Defines a method reference on a class method, without the instance. the bind method takes
an OSGi service as parameter, and a Map 
-	 * for service properties.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the method parameter.
-	 */
-    @FunctionalInterface
-    public interface InstanceServiceMap<I, T> extends SerializableLambda {
-    	/**
-    	 * Signature of the callback method.
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param service the service to inject in the instance method using this method reference
-    	 * @param properties the service properties
-    	 */
-    	void call(I instance, T service, Map<String, Object> properties);
-    }
-        
-	/**
-	 * Defines a method reference on a class method, without the instance. the bind method takes
an OSGi service as parameter, and a Dictionary 
-	 * for service properties.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the method parameter.
-	 */
-    @FunctionalInterface
-    public interface InstanceServiceDict<I, T> extends SerializableLambda {
-    	/**
-    	 * Signature of the callback method.
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param service the service to inject in the instance method using this method reference
-    	 * @param properties the service properties
-    	 */
-    	void call(I instance, T service, Dictionary<String, Object> properties);
-    }
-    
-	/**
-	 * Defines a method reference on a class method, without the instance. The bind method takes
an OSGi service reference as parameter. 
-	 * for service properties.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceRef<I, T> extends SerializableLambda {
-    	/**
-    	 * Signature of the callback method.
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param service the service to inject in the instance method using this method reference
-    	 */
-    	void call(I instance, ServiceReference<T> service);
-    }
-    
-	/**
-	 * Defines a method reference on a class method, without the instance. The bind method takes
a Service, and the corresponding service reference. 
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceServiceRef<I, T> extends SerializableLambda {
-    	/**
-    	 * Signature of the callback method.
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param service the service to inject in the instance method using this method reference
-    	 * @param ref the service reference
-    	 */
-    	void call(I instance, T service, ServiceReference<T> ref);
-    }
-    
-	/**
-	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a ServiceReference, a Service, a ServiceReference, and a Service.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceRefServiceRefService<I, T> extends SerializableLambda
{
-    	/**
-    	 * Signature of the callback method
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param oldRef the replaced service reference
-    	 * @param old the replaced service
-    	 * @param replaceRef the reference to the new service that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(I instance, ServiceReference<T> oldRef, T old, ServiceReference<T>
replaceRef, T replace); 
-    }
-        
-	/**
-	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a Map, a Service, a Map, and a Service.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceMapServiceMapService<I, T> extends SerializableLambda
{
-    	/**
-    	 * Signature of the callback method
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param oldProps the replaced service properties
-    	 * @param old the replaced service
-    	 * @param replaceProps the new service properties that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(I instance, Map<String, Object> oldProps, T old, Map<String, Object>
replaceProps, T replace); 
-    }
-    
-	/**
-	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a Dictionary, a Service, a Dictionary, and a Service.
-	 * @param <I> the type of the instance on which this method reference is applied
-	 * @param <T> the type of the parameter passed to the callback method.
-	 */
-    @FunctionalInterface
-    public interface InstanceDictServiceDictService<I, T> extends SerializableLambda
{
-    	/**
-    	 * Signature of the callback method
-    	 * @param instance the instance on which the callback has to be called
-    	 * @param oldProps the replaced service properties
-    	 * @param old the replaced service
-    	 * @param replaceProps the new service properties that replaces the old service
-    	 * @param replace the new service that replaces the old service
-    	 */
-    	void call(I instance, Dictionary<String, Object> oldProps, T old, Dictionary<String,
Object> replaceProps, T replace); 
-    }
-    
+				    
 }

Modified: felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ServiceCallbacksBuilder.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ServiceCallbacksBuilder.java?rev=1719970&r1=1719969&r2=1719970&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ServiceCallbacksBuilder.java
(original)
+++ felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/ServiceCallbacksBuilder.java
Mon Dec 14 17:38:58 2015
@@ -1,21 +1,10 @@
 package org.apache.felix.dm.builder.lambda;
 
-import org.apache.felix.dm.builder.lambda.Functions.DictServiceDictService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceDictServiceDictService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceMapServiceMapService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceRef;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceRefServiceRefService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceDict;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceMap;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceRef;
-import org.apache.felix.dm.builder.lambda.Functions.MapServiceMapService;
-import org.apache.felix.dm.builder.lambda.Functions.Ref;
-import org.apache.felix.dm.builder.lambda.Functions.RefServiceRefService;
-import org.apache.felix.dm.builder.lambda.Functions.Service;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceDict;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceMap;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceRef;
+import java.util.Dictionary;
+import java.util.Map;
+
+import org.apache.felix.dm.builder.lambda.Functions.SerializableLambda;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Definition of method references for general service dependency callbacks.
@@ -26,6 +15,259 @@ import org.apache.felix.dm.builder.lambd
  * TODO: add javadocs
  */
 public interface ServiceCallbacksBuilder<T, B extends ServiceCallbacksBuilder<T, B>>
{
+	/**
+	 * Defines a reference on a bind method from an object instance. The bind method takes a
service parameter.
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface Service<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param service the service injected using the callback method
+    	 */
+    	void call(T service);
+    }
+	
+	/**
+	 * Defines a reference on a bind method from an object instance. The bind method takes a
service parameter, as well as a Map 
+	 * (for service properties).
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface ServiceMap<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param service the service injected using the callback method
+    	 * @param properties the service properties
+    	 */
+    	void call(T service, Map<String, Object> properties);
+    }
+
+	/**
+	 * Defines a method reference on a bind method from an object instance. The bind method
takes a service parameter, as well as a Dictionary 
+	 * (for service properties).
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface ServiceDict<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param service the service injected using the callback method
+    	 * @param properties the service properties
+    	 */
+    	void call(T service, Dictionary<String, Object> properties);
+    }
+
+    /**
+	 * Defines a method reference on a bind method from an object instance. The bind method
takes an OSGi service reference parameter. 
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface Ref<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param service the service injected using the callback method
+    	 */
+    	void call(ServiceReference<T> service);
+    }
+    
+    /**
+	 * Defines a method reference on a bind method from an object instance. The bind method
takes a service, and the corresponding OSGi service reference. 
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface ServiceRef<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param service the service injected using the callback method
+    	 * @param ref the corresponding OSGi service reference
+    	 */
+    	void call(T service, ServiceReference<T> ref);
+    }
+
+    /**
+	 * Defines a method reference on a DependencManager swap callback, using ServiceReference
for service properties.
+	 * @param <T> the type of the swapped service.
+	 */
+    @FunctionalInterface
+    public interface RefServiceRefService<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param oldRef the replaced service reference
+    	 * @param old the replaced service
+    	 * @param replaceRef the reference to the new service that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(ServiceReference<T> oldRef, T old, ServiceReference<T> replaceRef,
T replace); 
+    }
+        
+    /**
+	 * Defines a method reference on a DependencManager swap callback, using Map for service
properties.
+	 * @param <T> the type of the swapped service.
+	 */
+    @FunctionalInterface
+    public interface MapServiceMapService<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param oldProps the replaced service properties
+    	 * @param old the replaced service
+    	 * @param replaceProps the new service properties that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(Map<String, Object> oldProps, T old, Map<String, Object> replaceProps,
T replace); 
+    }
+    
+    /**
+	 * Defines a method reference on a DependencManager swap callback, using Dictionary for
service properties.
+	 * @param <T> the type of the swapped service.
+	 */
+    @FunctionalInterface
+    public interface DictServiceDictService<T> {
+    	/**
+    	 * Signature of the callback method
+    	 * @param oldProps the replaced service properties
+    	 * @param old the replaced service
+    	 * @param replaceProps the new service properties that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(Dictionary<String, Object> oldProps, T old, Dictionary<String, Object>
replaceProps, T replace); 
+    }
+
+	/**
+	 * Defines a method reference on a class method, without the instance. The bind method takes
an OSGi service as parameter.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceService<I, T> extends SerializableLambda {
+    	/**
+    	 * Signature of the callback method.
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param service the service to inject in the instance method using this method reference
+    	 */
+    	void call(I instance, T service);
+    }
+    
+	/**
+	 * Defines a method reference on a class method, without the instance. the bind method takes
an OSGi service as parameter, and a Map 
+	 * for service properties.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the method parameter.
+	 */
+    @FunctionalInterface
+    public interface InstanceServiceMap<I, T> extends SerializableLambda {
+    	/**
+    	 * Signature of the callback method.
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param service the service to inject in the instance method using this method reference
+    	 * @param properties the service properties
+    	 */
+    	void call(I instance, T service, Map<String, Object> properties);
+    }
+        
+	/**
+	 * Defines a method reference on a class method, without the instance. the bind method takes
an OSGi service as parameter, and a Dictionary 
+	 * for service properties.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the method parameter.
+	 */
+    @FunctionalInterface
+    public interface InstanceServiceDict<I, T> extends SerializableLambda {
+    	/**
+    	 * Signature of the callback method.
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param service the service to inject in the instance method using this method reference
+    	 * @param properties the service properties
+    	 */
+    	void call(I instance, T service, Dictionary<String, Object> properties);
+    }
+    
+	/**
+	 * Defines a method reference on a class method, without the instance. The bind method takes
an OSGi service reference as parameter. 
+	 * for service properties.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceRef<I, T> extends SerializableLambda {
+    	/**
+    	 * Signature of the callback method.
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param service the service to inject in the instance method using this method reference
+    	 */
+    	void call(I instance, ServiceReference<T> service);
+    }
+    
+	/**
+	 * Defines a method reference on a class method, without the instance. The bind method takes
a Service, and the corresponding service reference. 
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceServiceRef<I, T> extends SerializableLambda {
+    	/**
+    	 * Signature of the callback method.
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param service the service to inject in the instance method using this method reference
+    	 * @param ref the service reference
+    	 */
+    	void call(I instance, T service, ServiceReference<T> ref);
+    }
+    
+	/**
+	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a ServiceReference, a Service, a ServiceReference, and a Service.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceRefServiceRefService<I, T> extends SerializableLambda
{
+    	/**
+    	 * Signature of the callback method
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param oldRef the replaced service reference
+    	 * @param old the replaced service
+    	 * @param replaceRef the reference to the new service that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(I instance, ServiceReference<T> oldRef, T old, ServiceReference<T>
replaceRef, T replace); 
+    }
+        
+	/**
+	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a Map, a Service, a Map, and a Service.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceMapServiceMapService<I, T> extends SerializableLambda
{
+    	/**
+    	 * Signature of the callback method
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param oldProps the replaced service properties
+    	 * @param old the replaced service
+    	 * @param replaceProps the new service properties that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(I instance, Map<String, Object> oldProps, T old, Map<String, Object>
replaceProps, T replace); 
+    }
+    
+	/**
+	 * Defines a method reference on a DependencyManager swap callback, without the instance.
The bind method takes a Dictionary, a Service, a Dictionary, and a Service.
+	 * @param <I> the type of the instance on which this method reference is applied
+	 * @param <T> the type of the parameter passed to the callback method.
+	 */
+    @FunctionalInterface
+    public interface InstanceDictServiceDictService<I, T> extends SerializableLambda
{
+    	/**
+    	 * Signature of the callback method
+    	 * @param instance the instance on which the callback has to be called
+    	 * @param oldProps the replaced service properties
+    	 * @param old the replaced service
+    	 * @param replaceProps the new service properties that replaces the old service
+    	 * @param replace the new service that replaces the old service
+    	 */
+    	void call(I instance, Dictionary<String, Object> oldProps, T old, Dictionary<String,
Object> replaceProps, T replace); 
+    }
+
     <I> B onAdd(InstanceService<I, T> add);
     B onAdd(Service<T> add);
     <I> B onAdd(InstanceServiceMap<I, T> add);

Modified: felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/impl/ServiceCallbacksBuilderImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/impl/ServiceCallbacksBuilderImpl.java?rev=1719970&r1=1719969&r2=1719970&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/impl/ServiceCallbacksBuilderImpl.java
(original)
+++ felix/sandbox/pderop/dependencymanager-lambda/org.apache.felix.dependencymanager.lambda/src/org/apache/felix/dm/builder/lambda/impl/ServiceCallbacksBuilderImpl.java
Mon Dec 14 17:38:58 2015
@@ -7,22 +7,22 @@ import java.util.Map;
 import java.util.stream.Stream;
 
 import org.apache.felix.dm.Component;
-import org.apache.felix.dm.builder.lambda.Functions.DictServiceDictService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceDictServiceDictService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceMapServiceMapService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceRef;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceRefServiceRefService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceService;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceDict;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceMap;
-import org.apache.felix.dm.builder.lambda.Functions.InstanceServiceRef;
-import org.apache.felix.dm.builder.lambda.Functions.MapServiceMapService;
-import org.apache.felix.dm.builder.lambda.Functions.Ref;
-import org.apache.felix.dm.builder.lambda.Functions.RefServiceRefService;
-import org.apache.felix.dm.builder.lambda.Functions.Service;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceDict;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceMap;
-import org.apache.felix.dm.builder.lambda.Functions.ServiceRef;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.DictServiceDictService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceDictServiceDictService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceMapServiceMapService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceRef;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceRefServiceRefService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceServiceDict;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceServiceMap;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.InstanceServiceRef;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.MapServiceMapService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.Ref;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.RefServiceRefService;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.Service;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.ServiceDict;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.ServiceMap;
+import org.apache.felix.dm.builder.lambda.ServiceCallbacksBuilder.ServiceRef;
 import org.osgi.framework.ServiceReference;
 
 /**



Mime
View raw message