package Ġde . z al ando . z ally . rule . z al ando Ċ Ċ import Ġde . z al ando . z ally . rule . api . Check Ċ import Ġde . z al ando . z ally . rule . api . Rule Ċ import Ġde . z al ando . z ally . rule . api . Severity Ċ import Ġde . z al ando . z ally . rule . api . Violation Ċ import Ġde . z al ando . z ally . util . Pattern Util Ċ import Ġio . swagger . models . Swagger Ċ Ċ @ Rule ( ĊĠĠĠĠĠĠĠ Ġrule Set Ġ= ĠZ al ando Rule Set :: class , ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ" 1 2 9 ", ĊĠĠĠĠĠĠĠ Ġseverity Ġ= ĠSeverity . MUST , ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Lower case Ġwords Ġwith Ġhy ph ens " Ċ ) Ċ class ĠK eb ab Case In Path Segments Rule Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdescription Ġ= Ġ" Use Ġlowercase Ġseparate Ġwords Ġwith Ġhy ph ens Ġfor Ġpath Ġsegments " ĊĊĠĠĠ Ġ@ Check ( severity Ġ= ĠSeverity . MUST ) ĊĠĠĠ Ġfun Ġvalidate ( swagger : ĠSwagger ): ĠVi olation ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpaths Ġ= Ġswagger . paths . or Empty (). keys . filter Not Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Segments Ġ= Ġit . split ("/ "). filter Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Segments . filter Ġ{ Ġ! Pattern Util . is PathVariable ( it ) Ġ&& Ġ! Pattern Util . is LowerCase And Hy ph ens ( it ) Ġ}. isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( paths . isNotEmpty ()) ĠVi olation ( description , Ġpaths ) Ġelse Ġnull ĊĠĠĠ Ġ} Ċ } Ċ