package Ġcom . ely e proj . custom lint Ċ Ċ import Ġcom . android . tools . lint . client . api . U Element Handler Ċ import Ġcom . android . tools . lint . detector . api .* Ċ import Ġorg . jetbrains . u ast . U Class Ċ import Ġorg . jetbrains . u ast . get Containing U File Ċ import Ġorg . jetbrains . u ast . get Io File Ċ import Ġjava . io . IOException Ċ import Ġjava . io . LineNumber Reader Ċ import Ġjava . util .* Ċ Ċ const Ġval ĠMAX _ LINE _ IN _ CLASS Ġ= Ġ 2 5 0 Ċ Ċ val ĠISS UE _ CLASS _ LINE _ EX CE EDED Ġ= ĠIssue . create (" Lines Exceeded ", ĊĠĠĠĠĠĠĠ Ġ" Only Ġ$ MAX _ LINE _ IN _ CLASS Ġallow Ġin Ġclass .", ĊĠĠĠĠĠĠĠ Ġ" Class Ġshould Ġnot Ġuse Ġmore Ġthan Ġ$ MAX _ LINE _ IN _ CLASS Ġlines .", ĊĠĠĠĠĠĠĠ ĠCategory . CORRECT NESS , Ġ 5 , ĠSeverity . WARNING , ĊĠĠĠĠĠĠĠ ĠImplementation ( Line Detector :: class . java , ĠEnum Set . of ( Scope . JAVA _ FILE , ĠScope . TEST _ SOURCES ))) Ċ Ċ class ĠLine Detector Ġ: ĠDetector (), ĠDetector . U ast Scanner Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Applicable U ast Types () Ġ= ĠlistOf ( U Class :: class . java ) ĊĠĠĠ Ġoverride Ġfun Ġcreate U ast Handler ( context : ĠJava Context ) Ġ= ĠLine Detection Handler ( context ) ĊĊĠĠĠ Ġclass ĠLine Detection Handler ( private Ġval Ġcontext : ĠJava Context ) Ġ: ĠU Element Handler () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Class ( node : ĠU Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġnode . get Containing U File ()?. get Io File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl nr Ġ= ĠLine Number Reader ( file ?. buffered Reader ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl nr . skip ( Long . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlines In File Ġ= Ġl nr . line Number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lines In File Ġ> ĠMAX _ LINE _ IN _ CLASS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . report ( ISSUE _ CLASS _ LINE _ EX CE EDED , Ġnode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getName Location ( node ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Class Ġ${ file ?. name } Ġcontains Ġ$ lines In File Ġline Ġof Ġcode , Ġshould Ġcontain Ġonly Ġ$ MAX _ LINE _ IN _ CLASS Ġline Ġof Ġcode .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ