package Ġnet . nem eros a . on track . extension . scm . indicator Ċ Ċ import Ġnet . nem eros a . on track . common . get OrNull Ċ import Ġnet . nem eros a . on track . extension . indicators . computing . Indicator Computed Value Ċ import Ġnet . nem eros a . on track . extension . indicators . computing . Indicator Computer Ċ import Ġnet . nem eros a . on track . extension . scm . service . SCM Service Ċ import Ġnet . nem eros a . on track . extension . scm . service . SCM Service Detector Ċ import Ġnet . nem eros a . on track . extension . support . Abstract Extension Ċ import Ġnet . nem eros a . on track . model . extension . Extension Feature Ċ import Ġnet . nem eros a . on track . model . structure . Project Ċ Ċ /** Ċ Ġ* Ġ[ Indicator ][ Indicator Computer ] Ġwhich Ġrelies Ġon Ġfiles Ġin Ġthe ĠS CM Ġto Ġcompute Ġits Ġvalue . Ċ Ġ* Ċ Ġ* ĠIts Ġrelies Ġon Ġthe Ġdefault Ġor Ġmain Ġbranch Ġto Ġbe Ġknown . Ċ Ġ*/ Ċ abstract Ġclass ĠAbstract SCM Indicator Computer ( ĊĠĠĠ Ġextension : ĠExtension Feature , ĊĠĠĠ Ġprotected Ġval Ġsc m Service Detector : ĠS CM Service Detector Ċ ) Ġ: ĠAbstract Extension ( extension ), ĠIndicator Computer Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParallel isation Ġof Ġthe Ġcomputation Ġis Ġenabled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġper Project : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġproject Ġis Ġel igible Ġonly Ġif Ġit Ġhas Ġa ĠS CM Ġservice Ġassociated Ġwith Ġit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġis Project El igible ( project : ĠProject ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe ĠS CM Ġservice Ġif Ġany ĊĠĠĠĠĠĠĠ Ġval Ġsc m Service Ġ= Ġsc m Service Detector . get Sc m Service ( project ). get OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġfalse Ġ// ĠNo ĠS CM Ġ==> Ġnot Ġel igible ĊĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe Ġdefault Ġbranch ĊĠĠĠĠĠĠĠ Ġval Ġsc m Branch Ġ= Ġsc m Service . get SCM Default Branch ( project ) ĊĠĠĠĠĠĠĠ Ġ// ĠNo Ġdefault Ġbranch Ġ==> Ġnot Ġel igible ĊĠĠĠĠĠĠĠ Ġreturn Ġ! scm Branch . isNull Or Blank () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompute Indicators ( project : ĠProject ): ĠList < Indicator Computed Value < *, Ġ* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsc m Service Ġ= Ġsc m Service Detector . get Sc m Service ( project ). get OrNull () ĊĠĠĠĠĠĠĠ Ġval Ġsc m Branch Ġ= Ġsc m Service ?. get SCM Default Branch ( project ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( scm Service Ġ!= Ġnull Ġ&& Ġsc m Branch Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompute SCM Indicators ( project , Ġsc m Service , Ġsc m Branch ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġcompute SCM Indicators ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġsc m Service : ĠS CM Service , ĊĠĠĠĠĠĠĠ Ġsc m Branch : ĠString ĊĠĠĠ Ġ): ĠList < Indicator Computed Value < *, Ġ* >> Ċ }