diff options
Diffstat (limited to 'src/main/scala/cc/spray/json/AdditionalFormats.scala')
-rw-r--r-- | src/main/scala/cc/spray/json/AdditionalFormats.scala | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/scala/cc/spray/json/AdditionalFormats.scala b/src/main/scala/cc/spray/json/AdditionalFormats.scala index e8b59c7..db9d3ba 100644 --- a/src/main/scala/cc/spray/json/AdditionalFormats.scala +++ b/src/main/scala/cc/spray/json/AdditionalFormats.scala @@ -27,17 +27,26 @@ trait AdditionalFormats { def read(value: JsValue) = value } + /** + * Constructs a JsonFormat from its two parts, JsonReader and JsonWriter. + */ def jsonFormat[T](reader: JsonReader[T], writer: JsonWriter[T]) = new JsonFormat[T] { def write(obj: T) = writer.write(obj) def read(json: JsValue) = reader.read(json) } + /** + * Turns a JsonWriter into a JsonFormat that throws an UnsupportedOperationException for reads. + */ def lift[T](writer :JsonWriter[T]) = new JsonFormat[T] { def write(obj: T): JsValue = writer.write(obj) def read(value: JsValue) = throw new UnsupportedOperationException("JsonReader implementation missing") } + /** + * Turns a JsonReader into a JsonFormat that throws an UnsupportedOperationException for writes. + */ def lift[T <: AnyRef](reader :JsonReader[T]) = new JsonFormat[T] { def write(obj: T): JsValue = throw new UnsupportedOperationException("No JsonWriter[" + obj.getClass + "] available") |