package Ġcom . ro che . amb ass ador . model . source Ċ Ċ import Ġcom . ro che . amb ass ador . model . Visibility Ċ import Ġcom . ro che . amb ass ador . model . group . Group Ċ import Ġjava . time . LocalDate Ċ Ċ object ĠInvalid Project Criteria Ġ{ ĊĊĠĠĠ Ġfun Ġhas Default Branch (): ĠC riterion Verifier Ġ= Ġ{ Ġdefault Branch Ġ!= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġis Repository NotEmpty (): ĠC riterion Verifier Ġ= Ġ{ Ġ! empty Ġ} ĊĊĠĠĠ Ġfun Ġcan Create Merge Request (): ĠC riterion Verifier Ġ= Ġ{ Ġpermissions . pull Requests . can Every one Access () Ġ} ĊĊĠĠĠ Ġfun Ġcan Fork Project (): ĠC riterion Verifier Ġ= Ġ{ Ġpermissions . fork s . can Every one Access () Ġ} ĊĊĠĠĠ Ġfun Ġhas Visibility At Most ( visibility : ĠVisibility ): ĠC riterion Verifier Ġ= Ġ{ Ġthis . visibility . is More Strict Than ( visibility ) Ġ} ĊĊĠĠĠ Ġfun Ġexclude Arch ived (): ĠC riterion Verifier Ġ= Ġ{ Ġ! arch ived Ġ} ĊĊĠĠĠ Ġfun Ġhas Activity After ( date : ĠLocalDate ): ĠC riterion Verifier Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Activity Date Ġ!= Ġnull Ġ&& Ġlast Activity Date . is After ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexclude Fork ed (): ĠC riterion Verifier Ġ= Ġ{ Ġ! fork ed Ġ} ĊĊĠĠĠ Ġfun Ġexclude Groups ( groups : ĠList < String >): ĠC riterion Verifier Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroups . none Ġ{ Ġgroup Ġ-> Ġis Excluded Group ( parent , Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Excluded Group ( group : ĠGroup , ĠgroupId : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgroupId Ġ== Ġgroup . id . toString () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId . equals ( group . fullName , Ġignore Case Ġ= Ġtrue ) ĊĠĠĠ Ġ} Ċ } Ċ