summaryrefslogtreecommitdiff
path: root/src/main/scala/cc/spray/json/AdditionalFormats.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/cc/spray/json/AdditionalFormats.scala')
-rw-r--r--src/main/scala/cc/spray/json/AdditionalFormats.scala9
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")