// ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . openapi . options Ċ Ċ import Ġcom . intellij . configuration Store . CURRENT _ NAME _ CONVER TER Ċ import Ġcom . intellij . configuration Store . Scheme Name To FileName Ċ import Ġcom . intellij . configuration Store . Stream Provider Ċ import Ġcom . intellij . openapi . components . Roaming Type Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . j dom . Parent Ċ import Ġjava . nio . file . Path Ċ Ċ @ Deprecated (" Please Ġuse ĠScheme Manager ") Ċ abstract Ġclass ĠScheme s Manager < T > Ġ: ĠScheme Manager < T >() Ċ Ċ interface ĠExternal izable Scheme Ġ: ĠScheme Ġ{ ĊĠ Ġfun ĠsetName ( value : ĠString ) Ċ } Ċ Ċ abstract Ġclass ĠScheme ManagerFactory Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetInstance () Ġ= Ġservice < Scheme ManagerFactory >() ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetInstance ( project : ĠProject ) Ġ= Ġproject . service < Scheme ManagerFactory >() ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġdirectory Name Ġ- Ġlike Ġ" key maps ". ĊĠĠ Ġ*/ ĊĠ Ġ@ Jvm Over loads ĊĠ Ġfun Ġ< SCHEME Ġ: ĠAny , ĠMUT ABLE _ SCHEME Ġ: ĠS CHE ME > Ġcreate ( directory Name : ĠString , Ġprocessor : ĠScheme Processor < SCHEME , ĠMUT ABLE _ SCHEME >, Ġpresent able Name : ĠString ? Ġ= Ġnull , Ġdirectory Path : ĠPath ? Ġ= Ġnull ): ĠScheme Manager < SCHEME > Ġ{ ĊĠĠĠ Ġreturn Ġcreate ( directory Name , Ġprocessor , Ġpresent able Name , ĠRo aming Type . DEFAULT , Ġdirectory Path Ġ= Ġdirectory Path ) ĊĠ Ġ} ĊĊĠ Ġabstract Ġfun Ġ< SCHEME Ġ: ĠAny , ĠMUT ABLE _ SCHEME Ġ: ĠS CHE ME > Ġcreate ( directory Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor : ĠScheme Processor < SCHEME , ĠMUT ABLE _ SCHEME >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresent able Name : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġro aming Type : ĠRo aming Type Ġ= ĠRo aming Type . DEFAULT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Name To FileName : ĠScheme Name To FileName Ġ= ĠCURRENT _ NAME _ CONVER TER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream Provider : ĠStream Provider ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirectory Path : ĠPath ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Save : ĠBoolean Ġ= Ġtrue ): ĠScheme Manager < SCHEME > ĊĊĠ Ġopen Ġfun Ġdispose ( scheme Manager : ĠScheme Manager <* >) Ġ{ ĊĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠScheme State Ġ{ ĊĠ ĠUN CHANGED , ĠNON _ PER SIST ENT , ĠPOSS IB LY _ CHANGED Ċ } Ċ Ċ abstract Ġclass ĠScheme Processor < SCHEME , Ġin ĠMUT ABLE _ SCHEME : ĠS CHE ME > Ġ{ ĊĠ Ġopen Ġfun Ġget Scheme Key ( scheme : ĠS CHE ME ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ( scheme Ġas ĠScheme ). name ĊĠ Ġ} ĊĊĠ Ġopen Ġfun Ġis External izable ( scheme : ĠS CHE ME ): ĠBoolean Ġ= Ġscheme Ġis ĠExternal izable Scheme ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠElement Ġwill Ġnot Ġbe Ġmodified , Ġit Ġis Ġsafe Ġto Ġreturn Ġnon - cloned Ġinstance . ĊĠĠ Ġ*/ ĊĠ Ġabstract Ġfun Ġwrite Scheme ( scheme : ĠMUT ABLE _ SCHEME ): ĠParent ? ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCalled Ġon Ġexternal Ġscheme Ġadd Ġor Ġchange Ġfile Ġevents . ĊĠĠ Ġ*/ ĊĠ Ġopen Ġfun Ġon Scheme Added ( scheme : ĠMUT ABLE _ SCHEME ) Ġ{ ĊĠ Ġ} ĊĊĠ Ġopen Ġfun Ġon Scheme Deleted ( scheme : ĠMUT ABLE _ SCHEME ) Ġ{ ĊĠ Ġ} ĊĊĠ Ġopen Ġfun Ġon Current Scheme Sw itched ( old Scheme : ĠS CHE ME ?, Ġnew Scheme : ĠS CHE ME ?, Ġprocess Change S ynchronously : ĠBoolean ) Ġ{ ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠIf Ġscheme Ġimplements Ġ[ com . intellij . configuration Store . Serializable Scheme ], Ġthis Ġmethod Ġwill Ġbe Ġcalled Ġonly Ġif Ġ[ com . intellij . configuration Store . Serializable Scheme . get Scheme State ] Ġreturns Ġ` null ` ĊĠĠ Ġ*/ ĊĠ Ġ@ Suppress (" K Doc Un resolved Reference ") ĊĠ Ġopen Ġfun ĠgetState ( scheme : ĠS CHE ME ): ĠScheme State Ġ= ĠScheme State . PO SS IB LY _ CHANGED ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMay Ġbe Ġcalled Ġfrom Ġany Ġthread Ġ- ĠE DT Ġis Ġnot Ġguaranteed . ĊĠĠ Ġ*/ ĊĠ Ġopen Ġfun Ġbefore Re loaded ( scheme Manager : ĠScheme Manager < SCHEME >) Ġ{ ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMay Ġbe Ġcalled Ġfrom Ġany Ġthread Ġ- ĠE DT Ġis Ġnot Ġguaranteed . ĊĠĠ Ġ*/ ĊĠ Ġopen Ġfun Ġre loaded ( scheme Manager : ĠScheme Manager < SCHEME >, Ġschemes : ĠCollection < SCHEME >) Ġ{ ĊĠ Ġ} Ċ }