package Ġcom . nan abel l . quickstart . config . adapter Ċ Ċ import Ġcom . nan abel l . quickstart . config . Ad ap table Config Provider Ċ import Ġcom . nan abel l . quickstart . config . node . Node Provider Ċ import Ġcom . nan abel l . quickstart . util . Adapter Not Attached Exception Ċ import Ġn inja . le aping . configur ate . Configuration Node Ċ import Ġn inja . le aping . configur ate . comment ed . Comment ed Configuration Node Ċ Ċ abstract Ġclass ĠAbstract Config Adapter < C > Ġ: ĠConfig Adapter < C > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmodule : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġparent : ĠAd ap table Config Provider ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnode Provider : ĠNode Provider ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġheader : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġattach Provider ( parent : ĠAd ap table Config Provider , Ġmodule : ĠString , Ġnode Provider : ĠNode Provider , Ġheader : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . module Ġ= Ġmodule ĊĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġparent ĊĠĠĠĠĠĠĠ Ġthis . node Provider Ġ= Ġnode Provider ĊĠĠĠĠĠĠĠ Ġthis . header Ġ= Ġheader ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdetach Provider () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . module Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġthis . node Provider Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġthis . header Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Attached (): ĠBoolean Ġ= Ġparent Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Default Config (): ĠConfiguration Node Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgenerate Default ( getNode Provider (). provide Node ( getModule ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetConfig (): ĠC ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrieve From Configuration Node ( getNode Provider (). provide Node ( getModule ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Config ( config : ĠC ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġinsert Into Configuration Node ( getNode Provider (). empty Node (), Ġconfig ) ĊĠĠĠĠĠĠĠ Ġif Ġ( node Ġis ĠComment ed Configuration Node Ġ&& Ġheader Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . set Comment ( getHeader ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠgetNode Provider (). consume Node ( node , Ġget Module ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh Config () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Config ( getConfig OrDefault ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Module (): ĠString Ġ= Ġmodule Ġ?: Ġthrow Ġthrow ĠAdapter Not Attached Exception ( this :: class ) ĊĠĠĠ Ġprivate Ġfun ĠgetParent (): ĠAd ap table Config Provider Ġ= Ġparent Ġ?: Ġthrow Ġthrow ĠAdapter Not Attached Exception ( this :: class ) ĊĠĠĠ Ġprivate Ġfun ĠgetNode Provider (): ĠNode Provider Ġ= Ġnode Provider Ġ?: Ġthrow Ġthrow ĠAdapter Not Attached Exception ( this :: class ) ĊĠĠĠ Ġprivate Ġfun Ġget Header (): ĠString Ġ= Ġheader Ġ?: Ġthrow Ġthrow ĠAdapter Not Attached Exception ( this :: class ) Ċ } Ċ