package Ġde . ham ur asa . data . lesson Ċ Ċ import Ġcom . google . gson . Json Deserialization Context Ċ import Ġcom . google . gson . Json Deserializer Ċ import Ġcom . google . gson . Json Element Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġde . ham ur asa . data . util . getType Token Ċ import Ġde . ham ur asa . data . voc able . Language Ċ import Ġde . ham ur asa . data . voc able . V oc able Ċ import Ġorg . joda . time . DateTime Ċ import Ġjava . lang . reflect . Type Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMark us ĠJ Ã¼ rg ens Ċ Ġ* ĠK lasse Ġzum Ġman ue llen Ġder il is ieren Ġder ĠK lasse ĠLess on Ċ Ġ* Ċ Ġ*/ Ċ class ĠLess on Deserializer Ġ: ĠJson Deserializer < Lesson > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( ĊĠĠĠĠĠĠĠ Ġjson : ĠJson Element ?, ĊĠĠĠĠĠĠĠ ĠtypeOf T : ĠType ?, ĊĠĠĠĠĠĠĠ Ġcontext : ĠJson Deserialization Context ? ĊĠĠĠ Ġ): ĠLess on ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( json Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġjson . as JsonObject ĊĠĠĠĠĠĠĠ Ġval Ġlesson Ġ= Ġget Lesson () ĊĊĠĠĠĠĠĠĠ Ġ// Language ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Json Ġ= ĠjsonObject . getAs JsonObject (" language ") ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġcontext . deserialize < Language >( language Json , ĠLanguage :: class . java ) ĊĠĠĠĠĠĠĠ Ġlesson . language Ġ= Ġlanguage ĊĊĠĠĠĠĠĠĠ Ġ// Words ĊĠĠĠĠĠĠĠ Ġval Ġwords Json Ġ= ĠjsonObject . getAs JsonArray (" voc ables ") ĊĠĠĠĠĠĠĠ Ġval Ġwords Json Type Ġ= ĠgetType Token < ArrayList < V oc able ?> ?> () ĊĠĠĠĠĠĠĠ Ġval Ġlist : ĠArrayList < V oc able > Ġ= Ġcontext . deserialize ( words Json , Ġwords Json Type ) ĊĠĠĠĠĠĠĠ Ġlesson . words . addAll ( list . map Ġ{ Ġit . id Ġ= Ġ 0 ; Ġit Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// DD ates ĊĠĠĠĠĠĠĠ Ġval Ġlast Changed Json Ġ= ĠjsonObject . getAs Json Primitive (" last Changed "). asString ĊĠĠĠĠĠĠĠ Ġval Ġlast Changed Ġ= ĠDateTime . parse ( last Changed Json ) ĊĊĠĠĠĠĠĠĠ Ġlesson . last Changed Ġ= Ġlast Changed ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlesson ĊĠĠĠ Ġ} Ċ }