44 lines
1.3 KiB
Scala
44 lines
1.3 KiB
Scala
/**
|
|
* Copyright (C) 2009-2017 Lightbend Inc. <http://www.lightbend.com>
|
|
*/
|
|
package docs.actor
|
|
|
|
import akka.actor.{ Actor, Props }
|
|
import docs.CompileOnlySpec
|
|
import org.scalatest.WordSpec
|
|
|
|
//#props-edge-cases-value-class
|
|
case class MyValueClass(v: Int) extends AnyVal
|
|
|
|
//#props-edge-cases-value-class
|
|
|
|
class PropsEdgeCaseSpec extends WordSpec with CompileOnlySpec {
|
|
"value-class-edge-case-example" in compileOnlySpec {
|
|
//#props-edge-cases-value-class-example
|
|
class ValueActor(value: MyValueClass) extends Actor {
|
|
def receive = {
|
|
case multiplier: Long => sender() ! (value.v * multiplier)
|
|
}
|
|
}
|
|
val valueClassProp = Props(classOf[ValueActor], MyValueClass(5)) // Unsupported
|
|
//#props-edge-cases-value-class-example
|
|
|
|
//#props-edge-cases-default-values
|
|
class DefaultValueActor(a: Int, b: Int = 5) extends Actor {
|
|
def receive = {
|
|
case x: Int => sender() ! ((a + x) * b)
|
|
}
|
|
}
|
|
|
|
val defaultValueProp1 = Props(classOf[DefaultValueActor], 2.0) // Unsupported
|
|
|
|
class DefaultValueActor2(b: Int = 5) extends Actor {
|
|
def receive = {
|
|
case x: Int => sender() ! (x * b)
|
|
}
|
|
}
|
|
val defaultValueProp2 = Props[DefaultValueActor2] // Unsupported
|
|
val defaultValueProp3 = Props(classOf[DefaultValueActor2]) // Unsupported
|
|
//#props-edge-cases-default-values
|
|
}
|
|
}
|