/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . analysis . api . tokens Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . kotlin . analysis . providers . create Project Wide OutOf Block Modification Tracker Ċ import Ġkotlin . reflect . K Class Ċ Ċ public Ġclass ĠAlways Accessible Validity Token ( project : ĠProject ) Ġ: ĠValid ity Token () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmodification Tracker Ġ= Ġproject . create Project Wide OutOf Block Modification Tracker () ĊĠĠĠ Ġprivate Ġval Ġon Created TimeStamp Ġ= Ġmodification Tracker . modification Count ĊĊĠĠĠ Ġoverride Ġfun ĠisValid (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon Created TimeStamp Ġ== Ġmodification Tracker . modification Count ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Invalid ation Reason (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( on Created TimeStamp Ġ!= Ġmodification Tracker . modification Count ) Ġreturn Ġ" P SI Ġhas Ġchanged Ġsince Ġcreation " ĊĠĠĠĠĠĠĠ Ġerror (" Getting Ġinvalid ation Ġreason Ġfor Ġvalid Ġvalidity Ġtoken ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Accessible (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget In accessibility Reason (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġerror (" Getting Ġin accessibility Ġreason Ġfor Ġvalidity Ġtoken Ġwhen Ġit Ġis Ġaccessible ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġfactory : ĠValid ity Token Factory Ġ= ĠAlways Accessible Validity Token Factory Ċ } Ċ Ċ public Ġobject ĠAlways Accessible Validity Token Factory Ġ: ĠValid ity Token Factory () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġidentifier : ĠK Class < out ĠValid ity Token > Ġ= ĠAlways Accessible Validity Token :: class ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( project : ĠProject ): ĠValid ity Token Ġ= ĊĠĠĠĠĠĠĠ ĠAlways Accessible Validity Token ( project ) Ċ } Ċ