package Ġch . u zh . ifi . se al . bench er . analysis . finder . shared Ċ Ċ import Ġarrow . core . None Ċ import Ġarrow . core . Option Ċ import Ġarrow . core . Some Ċ import Ġch . u zh . ifi . se al . bench er . execution . Execution Configuration Ċ import Ġch . u zh . ifi . se al . bench er . execution . unset Exec Config Ċ Ċ class ĠB ench Method () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġparams : ĠList < String > ĊĠĠĠ Ġlateinit Ġvar ĠreturnType : ĠString ĊĠĠĠ Ġvar Ġhash : ĠByteArray ? Ġ= Ġnull ĊĠĠĠ Ġvar ĠnumberOf Lines : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġis Bench : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġis Setup : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġis Tear Down : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġlateinit Ġvar Ġexec Config : ĠOption < Execution Configuration > ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġgroup () Ġ= Ġgroup Visitor ?. name ĊĊĠĠĠ Ġ// Ġsub - visitor ĊĠĠĠ Ġvar Ġgroup Visitor : ĠB ench Group Annotation ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfork Visitor : ĠB ench Fork Annotation ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmeasurement Visitor : ĠB ench Iteration Annotation ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġwarm up Visitor : ĠB ench Iteration Annotation ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġbench Mode Visitor : ĠB ench Mode Annotation ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġoutput TimeUnit Annotation Visitor : ĠB ench Output TimeUnit Annotation ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( name : ĠString ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Exec Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġexec Config Ġ= Ġif Ġ( is Bench ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! group (). isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbm Ġ= Ġbench Mode Visitor ?. mode () Ġ?: ĠlistOf () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġif Ġ( bm . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunset Exec Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunset Exec Config . copy ( mode Ġ= Ġbm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSome ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Configuration Helper . to Execution Configuration ( fork Visitor , Ġmeasurement Visitor , Ġwarm up Visitor , Ġbench Mode Visitor , Ġoutput TimeUnit Annotation Visitor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNone ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }