// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 Ġ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 . external System . service . project Ċ Ċ import Ġcom . intellij . openapi . components . Persistent State Component Ċ import Ġcom . intellij . openapi . components . State Ċ import Ġcom . intellij . openapi . external System . External System Module Property Manager Ċ import Ġcom . intellij . openapi . external System . model . Project System Id Ċ import Ġcom . intellij . openapi . external System . model . project . Module Data Ċ import Ġcom . intellij . openapi . external System . model . project . Project Data Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . project . is External Storage Enabled Ċ import Ġcom . intellij . openapi . roots . External Project System Registry Ċ import Ġcom . intellij . openapi . roots . Project Model Element Ċ import Ġcom . intellij . openapi . roots . Project Model External Source Ċ import Ġcom . intellij . util . xml b . annotations . Attribute Ċ import Ġcom . intellij . util . xml b . annotations . Transient Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ val ĠEMPTY _ STATE : ĠExternal State Component Ġ= ĠExternal State Component () Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġisn 't Ġused Ġin Ġthe Ġnew Ġimplementation Ġof Ġproject Ġmodel , Ġwhich Ġis Ġbased Ġon Ġ[ Workspace ĠModel ][ com . intellij . workspace Model . ide ]. Ċ Ġ* ĠIt Ġshouldn 't Ġbe Ġused Ġdirectly , Ġits Ġinterface Ġ[ External System Module Property Manager ] Ġshould Ġbe Ġused Ġinstead . Ċ Ġ*/ Ċ @ Suppress (" DE PREC ATION ") Ċ @ State ( name Ġ= Ġ" External System ") Ċ class ĠExternal System Module Property ManagerImpl ( private Ġval Ġmodule : ĠModule ) Ġ: ĠExternal System Module Property Manager (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPersistent State Component < External State Component >, ĠProject Model Element Ġ{ ĊĠ Ġoverride Ġfun Ġget External Source (): ĠProject Model External Source ? Ġ= Ġstore . external System ?. let Ġ{ ĊĠĠĠ ĠExternal Project System Registry . getInstance (). getSource ById ( it ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġvar Ġstore Ġ= Ġif Ġ( module . project . is External Storage Enabled ) ĠExternal State Component () Ġelse ĠExternal State Module ( module ) ĊĊĠ Ġoverride Ġfun ĠgetState (): ĠExternal State Component Ġ= Ġstore Ġas ? ĠExternal State Component Ġ?: ĠEMPTY _ STATE ĊĊĠ Ġoverride Ġfun Ġload State ( state : ĠExternal State Component ) Ġ{ ĊĠĠĠ Ġstore Ġ= Ġstate ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠ Ġoverride Ġfun Ġget External System Id (): ĠString ? Ġ= Ġstore . external System ĊĊĠ Ġoverride Ġfun Ġget External Module Type (): ĠString ? Ġ= Ġstore . external System Module Type ĊĊĠ Ġoverride Ġfun Ġget External Module Version (): ĠString ? Ġ= Ġstore . external System Module Version ĊĊĠ Ġoverride Ġfun Ġget External Module Group (): ĠString ? Ġ= Ġstore . external System Module Group ĊĊĠ Ġoverride Ġfun Ġget Linked ProjectId (): ĠString ? Ġ= Ġstore . linked ProjectId ĊĊĠ Ġoverride Ġfun Ġget Root Project Path (): ĠString ? Ġ= Ġstore . root Project Path ĊĊĠ Ġoverride Ġfun Ġget Linked Project Path (): ĠString ? Ġ= Ġstore . linked Project Path ĊĊĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠ Ġoverride Ġfun Ġis Maven ized (): ĠBoolean Ġ= Ġstore . is Maven ized ĊĊĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠ Ġoverride Ġfun Ġset Maven ized ( maven ized : ĠBoolean ) Ġ{ ĊĠĠĠ Ġif Ġ( maven ized ) Ġ{ ĊĠĠĠĠĠ Ġ// Ġclear Ġexternal Ġsystem ĠAPI Ġoptions ĊĠĠĠĠĠ Ġ// Ġsee Ġcom . intellij . openapi . external System . service . project . manage . Module DataService # set Module Options ĊĠĠĠĠĠ Ġunlink External Options () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġmust Ġbe Ġafter Ġunlink External Options ĊĠĠĠ Ġstore . is Maven ized Ġ= Ġmaven ized ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġswap Store () Ġ{ ĊĠĠĠ Ġval Ġold Store Ġ= Ġstore ĊĠĠĠ Ġval Ġis Maven Ġ= Ġold Store . is Maven ized ĊĠĠĠ Ġif Ġ( old Store Ġis ĠExternal State Module ) Ġ{ ĊĠĠĠĠĠ Ġstore Ġ= ĠExternal State Component () ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠ Ġstore Ġ= ĠExternal State Module ( module ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġstore . external System Ġ= Ġif Ġ( store Ġis ĠExternal State Module Ġ&& Ġis Maven ) Ġnull Ġelse Ġold Store . external System ĊĠĠĠ Ġif Ġ( store Ġ! is ĠExternal State Component ) Ġ{ ĊĠĠĠĠĠ Ġ// Ġdo Ġnot Ġset Ġis Maven ized Ġfor ĠExternal State Component Ġit Ġjust Ġset Ġexternal System ĊĠĠĠĠĠ Ġstore . is Maven ized Ġ= Ġis Maven ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġstore . linked ProjectId Ġ= Ġold Store . linked ProjectId ĊĠĠĠ Ġstore . linked Project Path Ġ= Ġold Store . linked Project Path ĊĠĠĠ Ġstore . root Project Path Ġ= Ġold Store . root Project Path ĊĠĠĠ Ġstore . external System Module Group Ġ= Ġold Store . external System Module Group ĊĠĠĠ Ġstore . external System Module Version Ġ= Ġold Store . external System Module Version ĊĊĠĠĠ Ġif Ġ( old Store Ġis ĠExternal State Module ) Ġ{ ĊĠĠĠĠĠ Ġold Store . is Maven ized Ġ= Ġfalse ĊĠĠĠĠĠ Ġold Store . unlink External Options () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġunlink External Options () Ġ{ ĊĠĠĠ Ġstore . unlink External Options () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset External Options ( id : ĠProject System Id , Ġmodule Data : ĠModule Data , Ġproject Data : ĠProject Data ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodels Provider : ĠIde Mod ifiable Models Provider ?) Ġ{ ĊĠĠĠ Ġ// Ġclear Ġmaven Ġoption , Ġmust Ġbe Ġfirst ĊĠĠĠ Ġstore . is Maven ized Ġ= Ġfalse ĊĊĠĠĠ Ġstore . external System Ġ= Ġid . toString () ĊĠĠĠ Ġstore . linked ProjectId Ġ= Ġmodule Data . id ĊĠĠĠ Ġstore . linked Project Path Ġ= Ġmodule Data . linked External Project Path ĊĠĠĠ Ġstore . root Project Path Ġ= Ġproject Data ?. linked External Project Path Ġ?: Ġ"" ĊĊĠĠĠ Ġstore . external System Module Group Ġ= Ġmodule Data . group ĊĠĠĠ Ġstore . external System Module Version Ġ= Ġmodule Data . version ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset External Id ( id : ĠProject System Id ) Ġ{ ĊĠĠĠ Ġstore . external System Ġ= Ġid . id ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Linked Project Path ( path : ĠString ?) Ġ{ ĊĠĠĠ Ġstore . linked Project Path Ġ= Ġpath ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Root Project Path ( path : ĠString ?) Ġ{ ĊĠĠĠ Ġstore . root Project Path Ġ= Ġpath ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset External Module Type ( type : ĠString ?, Ġmodels Provider : ĠIde Mod ifiable Models Provider ?) Ġ{ ĊĠĠĠ Ġstore . external System Module Type Ġ= Ġtype ĊĠ Ġ} Ċ } Ċ Ċ private Ġinterface ĠExternal Option State Ġ{ ĊĠ Ġvar Ġexternal System : ĠString ? ĊĠ Ġvar Ġexternal System Module Version : ĠString ? ĊĊĠ Ġvar Ġlinked Project Path : ĠString ? ĊĠ Ġvar Ġlinked ProjectId : ĠString ? ĊĠ Ġvar Ġroot Project Path : ĠString ? ĊĊĠ Ġvar Ġexternal System Module Group : ĠString ? ĊĠ Ġvar Ġexternal System Module Type : ĠString ? ĊĊĠ Ġvar Ġis Maven ized : ĠBoolean Ċ } Ċ Ċ private Ġfun ĠExternal Option State . unlink External Options () Ġ{ ĊĠ Ġexternal System Ġ= Ġnull ĊĠ Ġlinked ProjectId Ġ= Ġnull ĊĠ Ġlinked Project Path Ġ= Ġnull ĊĠ Ġroot Project Path Ġ= Ġnull ĊĠ Ġexternal System Module Group Ġ= Ġnull ĊĠ Ġexternal System Module Version Ġ= Ġnull Ċ } Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ private Ġclass ĠModule Option Delegate ( private Ġval Ġkey : ĠString ) Ġ: ĠRead Write Property < External State Module , ĠString ?> Ġ{ ĊĠ Ġoverride Ġoperator Ġfun ĠgetValue ( this Ref : ĠExternal State Module , Ġproperty : ĠK Property <* >) Ġ= Ġthis Ref . module . getOption Value ( key ) ĊĊĠ Ġoverride Ġoperator Ġfun ĠsetValue ( this Ref : ĠExternal State Module , Ġproperty : ĠK Property <* >, Ġvalue : ĠString ?) Ġ{ ĊĠĠĠ Ġthis Ref . module . set Option ( key , Ġvalue ) ĊĠ Ġ} Ċ } Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ private Ġclass ĠExternal State Module ( internal Ġval Ġmodule : ĠModule ) Ġ: ĠExternal Option State Ġ{ ĊĠ Ġoverride Ġvar Ġexternal System Ġby ĠModule Option Delegate ( External Project System Registry . EXTERNAL _ SYSTEM _ ID _ KEY ) ĊĠ Ġoverride Ġvar Ġexternal System Module Version Ġby ĠModule Option Delegate (" external . system . module . version ") ĊĠ Ġoverride Ġvar Ġexternal System Module Group Ġby ĠModule Option Delegate (" external . system . module . group ") ĊĠ Ġoverride Ġvar Ġexternal System Module Type Ġby ĠModule Option Delegate (" external . system . module . type ") ĊĊĠ Ġoverride Ġvar Ġlinked Project Path Ġby ĠModule Option Delegate (" external . linked . project . path ") ĊĠ Ġoverride Ġvar Ġlinked ProjectId Ġby ĠModule Option Delegate (" external . linked . project . id ") ĊĊĠ Ġoverride Ġvar Ġroot Project Path Ġby ĠModule Option Delegate (" external . root . project . path ") ĊĊĠ Ġoverride Ġvar Ġis Maven ized : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ" true " Ġ== Ġmodule . getOption Value ( External Project System Registry . IS _ MA VEN _ MODULE _ KEY ) ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġmodule . set Option ( External Project System Registry . IS _ MA VEN _ MODULE _ KEY , Ġif Ġ( value ) Ġ" true " Ġelse Ġnull ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠExternal State Component Ġ: ĠExternal Option State Ġ{ ĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġexternal System : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġexternal System Module Version : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġexternal System Module Group : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġexternal System Module Type : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġlinked Project Path : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġlinked ProjectId : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Attribute ĊĠ Ġoverride Ġvar Ġroot Project Path : ĠString ? Ġ= Ġnull ĊĊĠ Ġ@ get : Transient ĊĠ Ġoverride Ġvar Ġis Maven ized : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġexternal System Ġ== ĠExternal Project System Registry . MA VEN _ EXTERNAL _ SOURCE _ ID ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġexternal System Ġ= Ġif Ġ( value ) ĠExternal Project System Registry . MA VEN _ EXTERNAL _ SOURCE _ ID Ġelse Ġnull ĊĠĠĠ Ġ} Ċ }