/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠJ oh ann es ĠDon ath Ġ< jo h ann es d @ torch mind . com > Ċ Ġ* Ġand Ġother Ġcopyright Ġowners Ġas Ġdocumented Ġin Ġthe Ġproject 's ĠIP Ġlog . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . bas in mc . fa uc et . event . extension Ċ Ċ import Ġorg . bas in mc . fa uc et . event . State less Event Ċ import Ġorg . bas in mc . fa uc et . extension . Extension Ċ import Ġorg . bas in mc . fa uc et . extension . Extension . Phase Ċ import Ġorg . bas in mc . fa uc et . util . Bit Mask Ċ Ċ /** Ċ Ġ* ĠNot ifies Ġlisteners Ġabout Ġan Ġin - progress Ġextension Ġresolve . Ċ Ġ* Ċ Ġ* Ġ@ author Ġ[ J oh ann es ĠDon ath ]( mailto : jo h ann es d @ torch mind . com ) Ċ Ġ*/ Ċ interface ĠExtension Resolve Event < S > Ġ: ĠExtension Phase Event < S > Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ{@ inheritDoc } ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġval Ġcurrent Phase : ĠPhase ĊĠĠĠ Ġget () Ġ= ĠPhase . REGISTER ED ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ{@ inheritDoc } ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġval Ġtarget Phase : ĠPhase ĊĠĠĠ Ġget () Ġ= ĠPhase . RESOL VED ĊĊĠ Ġclass ĠPre Ġ@ Jvm Over loads Ġconstructor ( extension : ĠExtension , Ġstate : ĠState Ġ= ĠState . RESOL VE ) Ġ: ĊĠĠĠĠĠ ĠAbstract State ful Extension Event < State >( extension , Ġstate ), ĠExtension Resolve Event < State > ĊĊĠ Ġclass ĠPost ( extension : ĠExtension ) Ġ: ĠAbstract Extension Event < Unit >( extension ), ĊĠĠĠĠĠ ĠExtension Resolve Event < Unit >, ĠStateless Event ĊĊĠ Ġclass ĠState ( mask : ĠInt ) Ġ: ĠBit Mask < State >( mask ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdefinition Ġ= ĠComp anion ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠDefinition < State > Ġ{ ĊĊĠĠĠĠĠ Ġval ĠRES OL VE Ġ= ĠState ( 1 ) ĊĊĠĠĠĠĠ Ġoverride Ġval Ġvalues Ġ= ĠlistOf ( RESOL VE ) ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġnew Instance ( mask : ĠInt ) Ġ= ĠState ( mask ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ