package Ġorg . gradle . dev prod . collector . enterprise . export . extractor Ċ Ċ import Ġorg . gradle . dev prod . collector . enterprise . export . model . Build Event Ċ Ċ abstract Ġclass ĠExtract or < T >( val Ġevent Types : ĠList < String >) Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġextract From ( events : ĠMap < String ?, ĠList < Build Event >> ): ĠT Ċ } Ċ Ċ abstract Ġclass ĠSingle Event Extractor < T >( eventType : ĠString ) Ġ: ĠExtract or < T >( listOf ( eventType )) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġextract From ( events : ĠMap < String ?, ĠList < Build Event >> ): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġextract ( events . get OrDefault ( event Types [ 0 ], ĠlistOf ())) ĊĊĠĠĠ Ġabstract Ġfun Ġextract ( events : ĠIterable < Build Event >): ĠT Ċ } Ċ