/* Ċ Ġ* ĠCopyright Ġ@ Ġ 2 0 1 8 ĠAt lassian ĠP ty ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġorg . j its i . j ibri . sink . impl Ċ Ċ import Ġorg . j its i . j ibri . sink . Sink Ċ import Ġjava . nio . file . Path Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ /** Ċ Ġ* Ġ[ File Sink ] Ġrepresents Ġa Ġsink Ġwhich Ġwill Ġwrite Ġto Ġa Ġmedia Ġfile Ġon Ġthe Ċ Ġ* Ġfilesystem . Ġ ĠA Ġmaximum Ġlength Ġof Ġ 1 2 5 Ġcharacters Ġis Ġen forced Ġfor Ġthe Ġfilename . Ċ Ġ* ĠNOTE : ĠI Ġconsidered Ġletting Ġthe Ġmaximum Ġlength Ġbe Ġconfigurable , Ġbut Ġwe Ġrequire Ġthat Ġwe Ċ Ġ* Ġare Ġable Ġto Ġappend Ġa Ġtimestamp Ġto Ġthe Ġfilename , Ġso Ġwe Ġcan 't Ġgive Ġthe Ġcaller Ġfull Ġcontrol Ċ Ġ* Ġover Ġthe Ġvalue Ġanyway . Ġ ĠBecause Ġof Ġthat ĠI Ġjust Ġmade Ġthe Ġvalue Ġhard - coded . Ċ Ġ*/ Ċ class ĠFile Sink ( record ings Directory : ĠPath , Ġcall Name : ĠString , Ġextension : ĠString Ġ= Ġ" mp 4 ") Ġ: ĠS ink Ġ{ ĊĠĠĠ Ġval Ġfile : ĠPath ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsuffix Ġ= Ġ"_ ${ LocalDateTime . now (). format ( TIMESTAMP _ FORMAT TER )}. $ extension " ĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġ"${ call Name . take ( MAX _ FILENAME _ LENGTH Ġ- Ġsuffix . length )} $ suffix " ĊĠĠĠĠĠĠĠ Ġfile Ġ= Ġrecord ings Directory . resolve ( filename ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġval Ġpath : ĠString Ġ= Ġfile . toString () ĊĠĠĠ Ġoverride Ġval Ġformat : ĠString Ġ= Ġextension ĊĠĠĠ Ġoverride Ġval Ġoptions : ĠArray < String > Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ Ġ"- profile : v ", Ġ" main ", ĊĠĠĠĠĠĠĠ Ġ"- level ", Ġ" 3 . 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTIMESTAMP _ FORMAT TER Ġ= ĠDateTime Formatter . of Pattern (" yyyy - MM - dd - HH - mm - ss ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMAX _ FILENAME _ LENGTH Ġ= Ġ 1 2 5 ĊĠĠĠ Ġ} Ċ } Ċ