Author: reto
Date: Sat Apr  9 15:17:39 2011
New Revision: 1090611

URL: http://svn.apache.org/viewvc?rev=1090611&view=rev
Log:
CLEREZZA-492: overloaded doWith functions supporting up to 3 arguments

Modified:
    
incubator/clerezza/trunk/parent/osgi.services/src/main/scala/org/apache/clerezza/osgi/services/ServicesDsl.scala

Modified: 
incubator/clerezza/trunk/parent/osgi.services/src/main/scala/org/apache/clerezza/osgi/services/ServicesDsl.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/osgi.services/src/main/scala/org/apache/clerezza/osgi/services/ServicesDsl.scala?rev=1090611&r1=1090610&r2=1090611&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/parent/osgi.services/src/main/scala/org/apache/clerezza/osgi/services/ServicesDsl.scala
 (original)
+++ 
incubator/clerezza/trunk/parent/osgi.services/src/main/scala/org/apache/clerezza/osgi/services/ServicesDsl.scala
 Sat Apr  9 15:17:39 2011
@@ -65,13 +65,13 @@ class ServicesDsl(bundleContext: BundleC
        def doWith[T,U](action: (T,U) => Unit)(implicit mt: Manifest[T], mu: 
Manifest[U]) {
                doWith[T] {
                        t: T => {
-                               val clazz = mt.erasure.asInstanceOf[Class[U]]
+                               val clazz = mu.erasure.asInstanceOf[Class[U]]
                                val service = getService(clazz)
                                if (service != null) {
                                        action(t, service)
                                } else {
                                        doWith[U,T] {
-                                               (u: U, t: T) => action(t,u)
+                                               (iu: U, it: T) => action(it,iu)
                                        }
                                        }
                        }
@@ -83,12 +83,12 @@ class ServicesDsl(bundleContext: BundleC
                doWith[T,U] {
                        (t: T, u: U) => {
                                val clazz = mv.erasure.asInstanceOf[Class[V]]
-                               val service = getService(clazz)
+                               val service: V = getService(clazz)
                                if (service != null) {
                                        action(t, u, service)
                                } else {
                                        doWith[U,V,T] {
-                                               (u: U, v: V, t: T) => 
action(t,u,v)
+                                               (iu: U, iv: V, it: T) => 
action(it,iu,iv)
                                        }
                                }
                        }


Reply via email to