package Ġcom . sak aim obile . development . s aka ic lient 2 0 . networking . de serializers . builders . courses Ċ Ċ import Ġcom . google . gson . JsonObject Ċ import Ġcom . sak aim obile . development . s aka ic lient 2 0 . models . Term Ċ import Ġcom . sak aim obile . development . s aka ic lient 2 0 . networking . de serializers . builders . Abstract Builder Ċ import Ġcom . sak aim obile . development . s aka ic lient 2 0 . networking . de serializers . getString Member Ċ import Ġcom . sak aim obile . development . s aka ic lient 2 0 . persistence . entities . Course Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠDevelopment Ġon Ġ 8 / 5 / 1 8 . Ċ Ġ*/ Ċ Ċ class ĠCourse Builder ( jsonObject : ĠJsonObject ) Ġ: ĠAbstract Builder < JsonObject , ĠCourse >( jsonObject ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠCourse Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġcourse Ġwith Ġthe Ġsite Id ĊĠĠĠĠĠĠĠ Ġresult Ġ= ĠCourse ( source . getString Member (" id ") !! ) ĊĊĠĠĠĠĠĠĠ Ġresult . term Ġ= Ġparse Term () ĊĠĠĠĠĠĠĠ Ġresult . subject Code Ġ= Ġparse Subject Code () ĊĠĠĠĠĠĠĠ Ġresult . title Ġ= Ġsource . getString Member (" title ") ĊĊĠĠĠĠĠĠĠ Ġresult . description Ġ= Ġsource . getString Member (" description ") ĊĠĠĠĠĠĠĠ Ġresult . site Owner Ġ= Ġsource . getAs JsonObject (" site Owner ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString Member (" user DisplayName ") ĊĊĠĠĠĠĠĠĠ Ġval Ġraw Site Pages Ġ= Ġsource . getAs JsonArray (" site Pages ") ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSite Pages Builder ( raw Site Pages ) ĊĠĠĠĠĠĠĠ Ġresult . site Pages Ġ= Ġbuilder . build (). result ĊĠĠĠĠĠĠĠ Ġresult . assignment Site Page Url Ġ= Ġbuilder . get Assignment Site Page Url () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Term (): ĠTerm Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠIt Ġis Ġpossible Ġthat Ġeven Ġif Ġprops Ġis Ġdefined , Ġterm _ eid ĊĠĠĠĠĠĠĠ Ġ// Ġis Ġnot Ġprovided , Ġin Ġwhich Ġcase Ġthe Ġelement Ġitself Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġbe Ġnull Ġ( instead Ġof Ġholding Ġa Ġnull Ġvalue Ġand Ġbeing ĠJson Null ) ĊĠĠĠĠĠĠĠ Ġval Ġprops Ġ= Ġsource . getAs JsonObject (" props ") ĊĠĠĠĠĠĠĠ Ġval Ġterm E id Ġ= Ġprops . getString Member (" term _ eid ", Ġdefault Ġ= Ġ" 0 0 0 0 : 0 ") ĊĠĠĠĠĠĠĠ Ġreturn ĠTerm ( term E id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Subject Code (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider GroupId Ġ= Ġsource . getString Member (" provider GroupId ", Ġdefault Ġ= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . replace ("+ ", Ġ"_ delim _ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// Ġdrop Last While Ġremoves Ġtrailing Ġempty Ġstrings , Ġjust Ġgood Ġpractice Ġwhen Ġsplitting ĊĠĠĠĠĠĠĠ Ġval Ġcourse Code Ġ= Ġprovider GroupId . split ("_ delim _ ". to Regex ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array ()[ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġsubject Code Ġ= Ġcourse Code . split (" :" . to Regex ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array ()[ 3 ] ĊĠĠĠĠĠĠĠ Ġreturn ĠInteger . parseInt ( subject Code ) ĊĠĠĠ Ġ} Ċ } Ċ