package Ġnl . n iel sv anh ove . g ith istorical stats . core Ċ Ċ import Ġnl . n iel sv anh ove . g ith istorical stats . model . Annotated Commit Ċ import Ġjava . time . temporal . Iso Fields Ċ Ċ /** Ċ Ġ* Ġ@ param Ġall Commits Ġlist Ġof Ġcommits Ġin Ġreverse Ġchrono logical Ġorder . Ċ Ġ*/ Ċ class ĠImport ant Commit Filter ( val Ġall Commits : ĠList < Log Item >) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFilters Ġout Ġall Ġthe Ġcommits Ġthat Ġare Ġnot Ġone Ġof Ġthe Ġfollowing : ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġfirst Ġcommit ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġlast Ġcommit ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġlast Ġcommit Ġof Ġa Ġyear ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġlast Ġcommit Ġof Ġa Ġquarter ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġlast Ġcommit Ġof Ġa Ġmonth ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfilter Important Commits (): ĠList < Annotated Commit > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimportant Commits Ġ= Ġmutable ListOf < Annotated Commit >() ĊĊĠĠĠĠĠĠĠ Ġall Commits . forEach Indexed Ġ{ Ġindex , Ġlog Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġlog Item . commit ter Date ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthis Year Do est Exist Y et Ġ= Ġimportant Commits . none Ġ{ Ġimportant Commit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimportant Commit . commit ter Date . year Ġ== Ġdate . year ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthis Qu arter Do est Exist Y et Ġ= Ġimportant Commits . none Ġ{ Ġimportant Commit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimportant Commit . commit ter Date . get ( Iso Fields . QU AR TER _ OF _ YEAR ) Ġ== Ġdate . get ( Iso Fields . QU AR TER _ OF _ YEAR ) Ġ&& Ġimportant Commit . commit ter Date . year Ġ== Ġdate . year ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthis Month Do est Exist Y et Ġ= Ġimportant Commits . none Ġ{ Ġimportant Commit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimportant Commit . commit ter Date . month Value Ġ== Ġdate . month Value Ġ&& Ġimportant Commit . commit ter Date . year Ġ== Ġdate . year ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Last Ġ= Ġindex Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis First Ġ= Ġindex Ġ== Ġall Commits . size Ġ- Ġ 1 ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is First Ġ|| Ġis Last Ġ|| Ġthis Year Do est Exist Y et Ġ|| Ġthis Qu arter Do est Exist Y et Ġ|| Ġthis Month Do est Exist Y et ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimportant Commits . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated Commit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Item . commit Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Item . commit ter Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast OfMonth Ġ= Ġ! is Last Ġ&& Ġthis Month Do est Exist Y et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Of Qu arter Ġ= Ġ! is Last Ġ&& Ġthis Qu arter Do est Exist Y et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast OfYear Ġ= Ġ! is Last Ġ&& Ġthis Year Do est Exist Y et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Last Commit Ġ= Ġis Last , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Commit Ġ= Ġis First ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġimportant Commits ĊĠĠĠ Ġ} Ċ Ċ }