package Ġsim . rotation . criteria Ċ Ċ import Ġsim . Sim Participant Ċ import Ġsim . config . Rotation Rule Criterion Ċ import Ġsim . rotation . Criterion Ċ Ċ class ĠResource L te Pct ( data : ĠRotation Rule Criterion ) Ġ: ĠC riterion ( Type . RESOURCE _ LTE _ P CT , Ġdata ) Ġ{ ĊĠĠĠ Ġval Ġp ct : ĠInt ? Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġ( data . pct Ġas ĠInt ). coerce At Least ( 0 ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" Field Ġ' pct ' Ġis Ġrequired Ġfor Ġcriterion Ġ$ type " Ġ} ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ġcatch ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" Field Ġ' pct ' Ġmust Ġbe Ġan Ġinteger Ġfor Ġcriterion Ġ$ type " Ġ} ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsatisfied ( sp : ĠSim Participant ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġp ct Ġ!= Ġnull Ġ&& Ġsp . resource . current Amount Ġ<= Ġsp . resource . max Amount Ġ* Ġ( pct Ġ/ Ġ 1 0 0 . 0 ) ĊĠĠĠ Ġ} Ċ } Ċ