260 def unapply(json: T): Option[scala.Int] = |
268 def unapply(json: T): Option[scala.Int] = |
261 json match { |
269 json match { |
262 case x: scala.Double if x.toInt.toDouble == x => Some(x.toInt) |
270 case x: scala.Double if x.toInt.toDouble == x => Some(x.toInt) |
263 case x: scala.Long if x.toInt.toLong == x => Some(x.toInt) |
271 case x: scala.Long if x.toInt.toLong == x => Some(x.toInt) |
264 case x: scala.Int => Some(x) |
272 case x: scala.Int => Some(x) |
|
273 case _ => None |
|
274 } |
|
275 } |
|
276 |
|
277 object Boolean { |
|
278 def unapply(json: T): Option[scala.Boolean] = |
|
279 json match { |
|
280 case x: scala.Boolean => Some(x) |
265 case _ => None |
281 case _ => None |
266 } |
282 } |
267 } |
283 } |
268 } |
284 } |
269 |
285 |
300 a = a0.map(unapply(_)) |
316 a = a0.map(unapply(_)) |
301 if a.forall(_.isDefined) |
317 if a.forall(_.isDefined) |
302 } yield a.map(_.get) |
318 } yield a.map(_.get) |
303 |
319 |
304 def string(obj: T, name: String): Option[String] = |
320 def string(obj: T, name: String): Option[String] = |
305 value(obj, name) match { |
321 value(obj, name, Value.String.unapply) |
306 case Some(x: String) => Some(x) |
|
307 case _ => None |
|
308 } |
|
309 |
322 |
310 def double(obj: T, name: String): Option[Double] = |
323 def double(obj: T, name: String): Option[Double] = |
311 value(obj, name, Number.Double.unapply) |
324 value(obj, name, Value.Double.unapply) |
312 |
325 |
313 def long(obj: T, name: String): Option[Long] = |
326 def long(obj: T, name: String): Option[Long] = |
314 value(obj, name, Number.Long.unapply) |
327 value(obj, name, Value.Long.unapply) |
315 |
328 |
316 def int(obj: T, name: String): Option[Int] = |
329 def int(obj: T, name: String): Option[Int] = |
317 value(obj, name, Number.Int.unapply) |
330 value(obj, name, Value.Int.unapply) |
318 |
331 |
319 def bool(obj: T, name: String): Option[Boolean] = |
332 def bool(obj: T, name: String): Option[Boolean] = |
320 value(obj, name) match { |
333 value(obj, name, Value.Boolean.unapply) |
321 case Some(x: Boolean) => Some(x) |
|
322 case _ => None |
|
323 } |
|
324 } |
334 } |