Created
July 1, 2016 09:04
-
-
Save pfcoperez/b93f61093ef32d9a5c9356f06c6d7add to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
trait JavaJsonizer { def toJson: String } | |
class SimpleJavaJsonizer extends JavaJsonizer { | |
def toJson: String = """{"type":"Int", "pattern":"hello*"}""" | |
} | |
case class YourBuilder(underlying: JavaJsonizer, name: Option[String]) { | |
def build(newName: String): YourBuilder = copy(name = Some(newName)) | |
} | |
object YourBuilder { | |
implicit def javajsonizer2yourbuilder(javajsonizer: JavaJsonizer): YourBuilder = YourBuilder(javajsonizer, None) | |
implicit def yourbuilder2javajsonizer(builder: YourBuilder): JavaJsonizer = builder.underlying | |
} | |
// Lets use it | |
import YourBuilder._ | |
val sser = new SimpleJavaJsonizer | |
sser.build("hello") | |
sser.build("hello").toJson | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
case class RangeMapper(@JSON from, @JSON to) extends JavaJsonizer {
def sayHello()
}
val o:RangeMapper = JavaJsonizer.toJson("{}")
o.build("hello")
o.sayHello()