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)
}
}
}